diff --git a/msext.xcodeproj/project.pbxproj b/msext.xcodeproj/project.pbxproj index 1b06ed0..4333bbe 100644 --- a/msext.xcodeproj/project.pbxproj +++ b/msext.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 1A5D92FD2F3CA18000C282A3 /* qiniudomain in Resources */ = {isa = PBXBuildFile; fileRef = 1A5D92FC2F3CA16100C282A3 /* qiniudomain */; }; 1A6D67D02DFE70BD00C72F69 /* QiniuConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A6D67CD2DFE70BD00C72F69 /* QiniuConfig.m */; }; 1A6D67D12DFE70BD00C72F69 /* QiniuManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A6D67CF2DFE70BD00C72F69 /* QiniuManager.m */; }; 1A6D67E22DFE935900C72F69 /* DouyinShareManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A6D67DF2DFE935900C72F69 /* DouyinShareManager.m */; }; @@ -205,6 +206,7 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 1A5D92FC2F3CA16100C282A3 /* qiniudomain */ = {isa = PBXFileReference; lastKnownFileType = folder; path = qiniudomain; sourceTree = ""; }; 1A6D67CC2DFE70BC00C72F69 /* QiniuConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QiniuConfig.h; sourceTree = ""; }; 1A6D67CD2DFE70BD00C72F69 /* QiniuConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QiniuConfig.m; sourceTree = ""; }; 1A6D67CE2DFE70BD00C72F69 /* QiniuManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QiniuManager.h; sourceTree = ""; }; @@ -1146,6 +1148,7 @@ E5FA4EBD1B607BC9006FB4C2 /* msext */ = { isa = PBXGroup; children = ( + 1A5D92FC2F3CA16100C282A3 /* qiniudomain */, 31E803782250C28F005DEBFA /* gameid */, A8DEEC4420901DB0005E9AED /* appleconfig */, A8D14E70206BAAEF00DEB914 /* msext.entitlements */, @@ -1339,6 +1342,7 @@ buildActionMask = 2147483647; files = ( E56F24E61E1F4E0500F32036 /* record_animate_13.png in Resources */, + 1A5D92FD2F3CA18000C282A3 /* qiniudomain in Resources */, 31E803792250C28F005DEBFA /* gameid in Resources */, E55D87121EA5A73A00A9A0F4 /* gameconfig in Resources */, E51FE5AF1E656BAE00C35672 /* BackBT.png in Resources */, diff --git a/msext/AppDelegate.m b/msext/AppDelegate.m index c149af1..06db330 100755 --- a/msext/AppDelegate.m +++ b/msext/AppDelegate.m @@ -22,6 +22,8 @@ #import "XianliaoApiManager.h" #import "QQShareManager.h" #import +#import "QiniuConfig.h" + @interface AppDelegate () { BOOL flag; @@ -131,6 +133,12 @@ } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + // 动态读取并配置七牛云域名 + NSString *dynamicDomain = [FuncPublic filename:@"qiniudomain"]; + if (dynamicDomain && dynamicDomain.length > 0) { + kQiniuDomain = [dynamicDomain copy]; + NSLog(@"[QiniuConfig] Initialized with domain: %@", kQiniuDomain); + } [self configureAPIKey]; [self setupBugly]; diff --git a/msext/Class/Common/FuncPublic.m b/msext/Class/Common/FuncPublic.m index 999473f..faa68a0 100755 --- a/msext/Class/Common/FuncPublic.m +++ b/msext/Class/Common/FuncPublic.m @@ -1269,11 +1269,22 @@ FuncPublic * _funcPublic = nil; +(NSString *)filename:(NSString *)file { NSString *path=[FuncPublic getFilePath:file PathType:3];// 要列出来的目录 +// NSLog(@"[FuncPublic filename] reading path: %@", path); + NSFileManager* fm=[NSFileManager defaultManager]; if([fm fileExistsAtPath:path]){ - NSArray *files = [fm subpathsAtPath: path ]; - NSLog(@"%@",[files objectAtIndex:0]); - return [files objectAtIndex:0]; + NSArray *files = [fm subpathsAtPath: path]; +// NSLog(@"[FuncPublic filename] files found in %@: %@", file, files); + + for (NSString *name in files) { + // 过滤隐藏文件和 .DS_Store + if (![name hasPrefix:@"."] && ![name isEqualToString:@".DS_Store"]) { +// NSLog(@"[FuncPublic filename] filename found: %@", name); + return name; + } + } + } else { +// NSLog(@"[FuncPublic filename] Path does not exist: %@", path); } return @""; } diff --git a/msext/Class/RootVC/NewRootVC.m b/msext/Class/RootVC/NewRootVC.m index c8c8571..c55ca32 100755 --- a/msext/Class/RootVC/NewRootVC.m +++ b/msext/Class/RootVC/NewRootVC.m @@ -28,6 +28,7 @@ #import "gameController.h" #import #import +#import "QiniuManager.h" #import #import #import "AppDelegate.h" @@ -1886,6 +1887,29 @@ } NSString *amrPath = [FuncPublic GetPathByFileName: _fileName ofType:@"amr"]; if ([VoiceConverter ConvertWavToAmr:_filePath amrSavePath:amrPath]){ + + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + formatter.dateFormat =@"yyyyMMddHHmmss"; + NSString *str = [formatter stringFromDate:[NSDate date]]; + NSString *fileName = [NSString stringWithFormat:@"%@%08X.amr", str, arc4random()]; + + // 使用七牛云上传 + [[QiniuManager sharedManager] uploadAudioFile:amrPath + fileName:fileName + progressHandler:^(float percent) { + NSLog(@"七牛上传进度: %.2f", percent); + } completionHandler:^(NSString *key, NSError *error) { + if (error) { + NSLog(@"七牛上传失败: %@", error); + } else { + NSLog(@"七牛上传成功, key: %@", key); + // 获取完整URL + NSString *audiourl = [[QiniuManager sharedManager] getFileUrlWithKey:key]; + + [_bridge callHandler:@"getaudiourl" data:@{ @"audiourl":audiourl,@"time":[NSString stringWithFormat:@"%ld",(long)time]} ]; + } + }]; + /* NSData *test=[NSData dataWithContentsOfFile:amrPath]; AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; //接收类型不一致请替换一致text/html或别的 @@ -1895,7 +1919,7 @@ @"image/png", @"application/octet-stream", @"text/json", - @"audio/amr", + @"audio/amr", nil]; NSString *string=@"http://gameapi.0791ts.cn/api/UpLoad/PostFile"; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; @@ -1915,6 +1939,7 @@ } failure:^(NSURLSessionDataTask *_Nullable task, NSError * _Nonnull error) { NSLog(@"上传失败"); }]; + */ }else NSLog(@"wav转amr失败"); diff --git a/msext/Class/Utils/QiniuConfig.h b/msext/Class/Utils/QiniuConfig.h index 16830f6..fee8385 100644 --- a/msext/Class/Utils/QiniuConfig.h +++ b/msext/Class/Utils/QiniuConfig.h @@ -17,7 +17,7 @@ extern NSString *const kQiniuSecretKey; extern NSString *const kQiniuBucketName; // 七牛云默认域名 -extern NSString *const kQiniuDomain; +extern NSString *kQiniuDomain; // 录音文件目录 extern NSString *const kQiniuRecordingDirectory; diff --git a/msext/Class/Utils/QiniuConfig.m b/msext/Class/Utils/QiniuConfig.m index 8942d83..852344a 100644 --- a/msext/Class/Utils/QiniuConfig.m +++ b/msext/Class/Utils/QiniuConfig.m @@ -16,7 +16,7 @@ NSString *const kQiniuSecretKey = @"RCZpwLhAPoQ2sQQyWXzMJc7Po2MyZWfUJeW4Jmfq"; NSString *const kQiniuBucketName = @"iosaudio"; // 七牛云默认域名,用于访问上传后的文件 -NSString *const kQiniuDomain = @"iosaudio.daoqi88.cn"; +NSString *kQiniuDomain = @"iosaudio.daoqi8888.cn"; // 录音文件在七牛云中的目录 NSString *const kQiniuRecordingDirectory = @""; diff --git a/msext/Class/Utils/QiniuManager.m b/msext/Class/Utils/QiniuManager.m index ebfd9e2..d875a5d 100644 --- a/msext/Class/Utils/QiniuManager.m +++ b/msext/Class/Utils/QiniuManager.m @@ -11,6 +11,7 @@ #import #import #import +#import "FuncPublic.h" @implementation QiniuManager @@ -192,7 +193,8 @@ } - (NSString *)getFileUrlWithKey:(NSString *)key { - return [NSString stringWithFormat:@"%@/%@", kQiniuDomain, key]; + // 域名已在AppDelegate启动时从文件夹读取并赋值给kQiniuDomain + return [NSString stringWithFormat:@"http://%@/%@", kQiniuDomain, key]; } #pragma mark - Private Methods