Pārlūkot izejas kodu

1.录音上传功能

huangxiaodong 2 mēneši atpakaļ
vecāks
revīzija
7dd75477f7

+ 1 - 0
创维盒子/code/Class/Set/uploadFile/model/uploadFileDataModel.h

@@ -24,6 +24,7 @@ typedef enum{
     uploadFileTypeFileAPP,//(文件APP里的文件)
     DownLoadThumbnail,//下载缩略图
     DownLoadFileType,//下载文件
+    uploadFileTypeRecord,//(录音的文件)
 }uploadFileType;
 
 //self.fileName = [assetModel.asset valueForKey:@"filename"];

+ 5 - 0
创维盒子/code/Class/Set/uploadFile/uploadFileManager/cachesFileManager.m

@@ -137,6 +137,11 @@
             name = [NSString stringWithFormat:@"%@/%@",kSHPath_FileAPP,name];
         }
             break;
+        case uploadFileTypeRecord://文件APP
+        {
+            name = [NSString stringWithFormat:@"%@/%@",kSHPath_Record,name];
+        }
+            break;
         case DownLoadThumbnail://image
         {
             name = [NSString stringWithFormat:@"%@/%@.png",kSHPath_DownLoadThumbnail,name];

+ 3 - 0
创维盒子/code/Class/Set/uploadFile/uploadFileRecordViewController.h

@@ -23,6 +23,9 @@ NS_ASSUME_NONNULL_BEGIN
 //处理文件app上传的文件
 -(void)gotoUploadFileByFileApp:(NSArray*)FileUrl;
 
+//处理文件录音上传的文件
+-(void)gotoUploadFileByRecord:(NSArray*)recordFileArr;
+
 @property (nonatomic, assign) BOOL isDownloadingType;//下载页面进入
 -(void)gotoDownloadFile:(NSMutableArray*)selectedItems;
 

+ 17 - 0
创维盒子/code/Class/Set/uploadFile/uploadFileRecordViewController.m

@@ -628,6 +628,23 @@
     }];
 }
 
+//处理文件录音上传的文件
+-(void)gotoUploadFileByRecord:(NSArray*)recordFileArr
+{
+    KWeakSelf
+    mainBlock(^{
+        weakSelf.didGetUploadDataType = YES;
+        [weakSelf handleRemoveIndicator];
+    });
+    
+    //KWeakSelf
+    [[nasUploadFileManager shareInstance] handlToRecorUploadFileDataFunBy:recordFileArr complete:^(NSMutableArray * _Nonnull Arr) {
+        mainBlock(^{
+            weakSelf.leftTableView.outSideDataArr = Arr;
+            [weakSelf handleUploadingRightButFun:YES];
+        });
+    }];
+}
 #pragma mark 读取数据库数据
 - (void)getUploadDataInDatabaseFun
 {

+ 37 - 0
创维盒子/code/NAS/nasUploadManager/nasMixUploadManager.m

@@ -63,6 +63,14 @@
                 needAddType = NO;
                 break;
             }
+            
+            //录音上传处理
+            if (model.curUploadFileType == uploadFileTypeRecord
+                && operationDoing.fileModel.curUploadFileType == uploadFileTypeRecord
+                && [operationDoing.fileModel.filename isEqualToString:model.filename]) {
+                needAddType = NO;
+                break;
+            }
         }
         
         //1. 排查等待下载
@@ -79,6 +87,14 @@
                 needAddType = NO;
                 break;
             }
+            
+            //录音上传处理
+            if (waitModel.curUploadFileType == uploadFileTypeRecord
+                && model.curUploadFileType == uploadFileTypeRecord
+                && [waitModel.filename isEqualToString:model.filename]) {
+                needAddType = NO;
+                break;
+            }
         }
         
         if(needAddType){
@@ -483,6 +499,24 @@
             
         }];
     }
+    else if(operation.fileModel.curUploadFileType == uploadFileTypeRecord){
+        //上传文件
+        [paraDict setObject:@4 forKey:@"videoType"];
+        [paraDict setObject:@"false" forKey:@"isLast"];
+
+        if(![cachesFileManager checkFileIsSaveState:operation.fileModel.filename withType:uploadFileTypeRecord]){
+            
+            [weakSelf handleUploadFailOneFileBy:operation];
+            return;
+        }
+        
+        long curPosition = operation.fileModel.didUploadBytes;
+        [self beginUploadVideoDataFunBy:operation with:curPosition withPara:paraDict success:^(id  _Nonnull responseObject) {
+            
+        } faild:^(NSError * _Nonnull error) {
+            
+        }];
+    }
     
 }
 
@@ -556,6 +590,9 @@
     if (dataModel.curUploadFileType == uploadFileTypeFileAPP) {
         filePath = [cachesFileManager getFilePathWithName:dataModel.filename type:uploadFileTypeFileAPP]; // 文件路径
     }
+    else if (dataModel.curUploadFileType == uploadFileTypeRecord) {
+        filePath = [cachesFileManager getFilePathWithName:dataModel.filename type:uploadFileTypeRecord]; // 文件路径
+    }
     
     NSFileManager *manager0 = [NSFileManager defaultManager];
     if(![manager0 fileExistsAtPath:filePath]) {

+ 4 - 0
创维盒子/code/NAS/nasUploadManager/nasUploadFileManager.h

@@ -10,6 +10,7 @@
 #import "frpUploadModel.h"
 #import "frpFileExistModel.h"
 #import "nasMixUploadManager.h"
+#import "recordFileModel.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -37,6 +38,9 @@ NS_ASSUME_NONNULL_BEGIN
 //把url 转成 我们需要上传的model
 - (void)handlUrlToUploadFileDataFunBy:(NSArray*)UrlArr complete:(custom_complete_Arr)complete;
 
+//把录音filePath 转成 我们需要上传的model
+- (void)handlToRecorUploadFileDataFunBy:(NSArray*)recordFileArr complete:(custom_complete_Arr)complete;
+
 //删除本地数据库记录
 - (void)deleteUploadFileRecordBy:(NSMutableArray *)delArr withDelCache:(BOOL)isDelCache complete:(custom_complete_B)complete;
 

+ 85 - 0
创维盒子/code/NAS/nasUploadManager/nasUploadFileManager.m

@@ -279,6 +279,9 @@
     else if(uploadFileDataMod.curUploadFileType == uploadFileTypeFileAPP){
         [cachesFileManager removeItemAtPath:uploadFileDataMod.filename type:uploadFileTypeFileAPP error:nil];
     }
+    else if(uploadFileDataMod.curUploadFileType == uploadFileTypeRecord){
+        //录音上传完不删除
+    }
     
     uploadFileDataMod = nil;
 }
@@ -835,4 +838,86 @@
     }
 }
 
+//把录音filePath 转成 我们需要上传的model
+- (void)handlToRecorUploadFileDataFunBy:(NSArray*)recordFileArr complete:(custom_complete_Arr)complete
+{
+    if(!recordFileArr && recordFileArr.count == 0){
+        complete(_databaseArr);
+        return;
+    }
+    
+    _isNewAddTaskType = YES;
+    
+    NSMutableArray *newUploadTaskArr = [NSMutableArray new];
+    
+    for (recordFileModel * recordModel in recordFileArr) {
+        uploadFileDataModel * curModel = [uploadFileDataModel new];
+        
+        // 获取文件名称
+        NSString *fileName = recordModel.fileName;
+        curModel.filename = fileName;
+        curModel.curUploadFileType = uploadFileTypeRecord;
+        BOOL isRepeatingTasksType = NO;
+        
+        //查询上传任务是否存在
+        if(_databaseArr && _databaseArr.count == 3 ){
+            NSMutableArray *uploadingArr = [[NSMutableArray alloc] initWithArray:_databaseArr[0]];
+            for (uploadFileDataModel *preModel in uploadingArr) {
+                if([preModel.filename isEqualToString:curModel.filename]
+                   && preModel.curUploadFileType ==  uploadFileTypeRecord){
+                    isRepeatingTasksType = YES;
+                    break;
+                }
+            }
+        }
+        
+        if(isRepeatingTasksType){
+            continue;
+        }
+        
+        NSString * uploadDefaultPath = [HWDataManager getStringWithKey:stringKeyAddSn(Const_photo_upload_default_path)];
+        if(!uploadDefaultPath || uploadDefaultPath.length == 0){
+            [HWDataManager setStringWithKey:stringKeyAddSn(Const_photo_upload_default_path) value:Const_default_upload_path];
+            uploadDefaultPath = Const_default_upload_path;
+        }
+        
+        //判断最后一个是否是/
+        NSString *lastStr= [uploadDefaultPath substringFromIndex:uploadDefaultPath.length-1];
+        if(![lastStr isEqualToString:@"/"]){
+            uploadDefaultPath = [[NSString alloc] initWithFormat:@"%@/",uploadDefaultPath];
+        }
+        
+        //NSString*savePath = [[NSString alloc] initWithFormat:@"%@%@",uploadDefaultPath,filePath];
+        curModel.savePath = uploadDefaultPath;
+        
+        curModel.curUploadStateType = uploadStateUploading;
+        
+//        NSString *documentsDirectory = kSHPath_FileAPP;
+//        // 构建目标文件路径
+//        NSString *destinationPath = [documentsDirectory stringByAppendingPathComponent:fileName];
+        NSString *destinationPath = recordModel.filePath;
+        curModel.totalBytes = [iTools getFileSize:destinationPath];
+        
+        //保存到数据库
+        curModel.bg_tableName = nasUpLoadFile_tableName;
+        [newUploadTaskArr addObject:curModel];
+        
+    }
+    
+    KWeakSelf
+    if(newUploadTaskArr.count == 0){
+        [self getDataInDatabaseFun:YES complete:^(NSMutableArray * _Nonnull Arr) {
+            complete(Arr);
+            [weakSelf handleUploadFileModelBg_idFun:Arr];
+        }];
+    }
+    else{
+        [uploadFileDataModel bg_saveOrUpdateArrayAsync:newUploadTaskArr complete:^(BOOL isSuccess) {
+            [weakSelf getDataInDatabaseFun:YES complete:^(NSMutableArray * _Nonnull Arr) {
+                complete(Arr);
+                [weakSelf handleUploadFileModelBg_idFun:Arr];
+            }];
+        }];
+    }
+}
 @end

+ 24 - 1
创维盒子/code/mine/recordViewController.m

@@ -15,6 +15,7 @@
 #import "ComontAlretViewController.h"
 #import "editTypeHeadView.h"
 #import "recordEditBottomView.h"
+#import "uploadFileRecordViewController.h"
 
 @interface recordViewController ()<UITableViewDelegate,UITableViewDataSource,DZNEmptyDataSetSource, DZNEmptyDataSetDelegate>
 @property (nonatomic, strong) UIButton *rightButton;//编辑
@@ -106,7 +107,7 @@
 #pragma mark 编辑状态的 下载  删除 响应事件
     _curEditTypeBottomView.didClickButtonFun = ^(NSInteger tag) {
         if(tag==1){
-            //[weakSelf gotoDownLoadFileFun];
+            [weakSelf gotoUpLoadFileFun];
         }
         else if(tag==3){
             [weakSelf showDeleteAlearViewFun];
@@ -673,6 +674,8 @@
     _curEditTypeBottomView.hidden = NO;
     _recordBottomV.hidden = YES;
     
+    [self setEditTypeTitleFun];
+    
     for (recordFileModel*model in _audioArr) {
         model.showAllType = NO;
         model.isEditType = YES;
@@ -764,6 +767,26 @@
 - (void)setEditTypeTitleFun
 {
     [_curEditTypeHeadView setTitleLabetextByNumbers:_didSelectListArr.count];
+    
+    if (_didSelectListArr.count > 0) {
+        [_curEditTypeBottomView setButtonStateFunBy:YES];
+    }
+    else{
+        [_curEditTypeBottomView setButtonStateFunBy:NO];
+    }
+}
+
+#pragma mark 处理上传
+- (void)gotoUpLoadFileFun{
+    
+    if (_didSelectListArr.count <= 0) {
+        return;
+    }
+    
+    uploadFileRecordViewController *vc = [uploadFileRecordViewController new];
+    [self.navigationController pushViewController:vc animated:YES];
+    vc.isUploadingType = YES;
+    [vc gotoUploadFileByRecord:_didSelectListArr];
 }
 
 @end