【发布时间】:2012-08-17 14:39:18
【问题描述】:
我在 iOS 上为 PhoneGap (Cordova) 使用 AudioEncode 插件。在为较新版本的 Cordova 更新了几行之后,它似乎将 wav 文件正确编码为 m4a。在 Xcode 控制台中我看到:
AVAssetExportSessionStatusCompleted
doing success callback
查看手机上的文件系统,wav文件确实变成了m4a。但是,成功回调(我将文件上传到服务器的地方)永远不会运行。这是插件中的相关代码:
-(void) doSuccessCallback:(NSString*)path {
NSLog(@"doing success callback");
NSString* jsCallback = [NSString stringWithFormat:@"%@(\"%@\");", self.successCallback, path];
[self writeJavascript: jsCallback];
[self.successCallback release];
}
我在应用中的代码是这样的:
function encodeSuccess (path) {
console.log('Audio encoded to M4A! Preparing to upload...')
// file transfer code...
}
console.log('Preparing to encode audio file...')
window.plugins.AudioEncode.encodeAudio(entry.fullPath, encodeSuccess, fail)
我假设插件中的 doSuccessCallback 函数需要更新,但我没有使用 Objective C 或 PhoneGap 插件的经验,所以我被困在这一点上。
有什么想法吗?
更新
在上面发布的 Objective C 函数中,我尝试记录 self.successCallback,它记录为 <null>。然后我走到encodeAudio主函数的顶部,分配给self.successCallback([arguments objectAtIndex:1])的参数也记录为<null>。所以,在我看来,回调没有成功地传递到主函数中。
这是 AudioEncode.h 文件,也许有人可以在这里发现问题:
@interface AudioEncode : CDVPlugin {
NSString* successCallback;
NSString* failCallback;
}
@property (nonatomic, retain) NSString* successCallback;
@property (nonatomic, retain) NSString* failCallback;
- (void)encodeAudio:(NSArray*)arguments withDict:(NSDictionary*)options;
【问题讨论】:
标签: objective-c ios cordova phonegap-plugins