2012-05-28 202 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