2012-05-28 160 views
0

我们有一个Web服务功能,我们将音频文件上传到该服务中以保存在服务器中。我使用创建一个数据缓冲区中的代码(传递到Web服务)的音频文件的内容是:从音频文件中提取数据

NSURL *soundFileURL = [[NSURL alloc] initFileURLWithPath:fnWithSlash]; 
    audioData = [NSData dataWithContentsOfURL:soundFileURL]; 
    NSLog(@"audiodata%d",audioData.length); 

这里fnWithSlash包含文件的完整路径。然而audioData.length始终为0. 我缺少什么?

在此先感谢您的回复。

+0

'dataWithContentsOfURL: '是一个_synchronous_方法。它将阻止您的用户界面,直到网络返回音频文件。 *将导致用户界面无响应,直到网络请求完成,并且*如果iOS监视程序由于无响应而退出应用程序,则*会导致崩溃。在此处阅读更多信息:http://stackoverflow.com/a/9122690/495384 –

回答

0

尝试使用NSData的的dataWithContentsOfFile:instead..If文件是在你的包它看起来就像下面的例子中,否则构建声音文件的文件路径到所需的位置..

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"yourSound" ofType:@"wav"]; 
audioData = [NSData dataWithContentsOfFile:filePath]; 
NSLog(@"audiodata%d",audioData.length); 
+0

更新:原始代码确实有效。对于虚惊一场! – user1306828