2014-06-17 72 views
0

我在iPad上錄製了一個聲音文件。該文件保存在文檔目錄中。現在我想播放這個聲音,但是我得到一個錯誤。用AVAudioPlayer和有效的URL播放聲音

我想玩的聲音是這樣的:

NSURL *soundFileURL = [NSURL URLWithString:ulrString]; 
_audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL 
                 error:&err]; 

soundFileURL是:

Printing description of soundFileURL: 
/var/mobile/Applications/1824FDFA-18D7-472F-8C4D-16270372F9C9/Documents/Aufnahme-M-bi-1-7.m4a 
(lldb) 

但我得到一個錯誤:

Error Domain=NSOSStatusErrorDomain Code=1685348671 "The operation couldn’t be completed. (OSStatus error 1685348671.)" 

我也曾嘗試以下操作路徑聲音文件:

@"file:///var/mobile/Applications/1824FDFA-18D7-472F-8C4D-16270372F9C9/Documents/Aufnahme-M-bi-1-7.m4a" 

但是,這也簡化版​​,工作:/

回答

1

該文件格式不正確。它向您報告kAudioFileInvalidFileError

嘗試使用其他格式,例如.caf,看看是否有效。

我在過去播放不是來自iTunes的文件時遇到過問題.m4a

再次嘗試其他格式以縮小問題的範圍。我的猜測是,當你切換到另一種格式時它會工作,因爲你的代碼對我來說似乎很好。

希望這會有所幫助。

+1

是的,這是真的。 .m4a只適用於這種情況下的模擬器。我用kAudioFormatMPEG4AAC切換到.caf工作正常。謝謝! –

0

你如何定義你的AVAudioPlayer?如果您使用ARC,它必須是強類型的屬性。

@property (strong,nonatomic) AVAudioPlayer *audioPlayer; 

另外,你是否爲你想播放的m4a文件正確設置音頻會話?

AVAudioSession *session = [AVAudioSession sharedInstance]; 
[session setCategory:AVAudioSessionCategoryRecord error:nil]; 
[session setActive:YES error:nil]; 
+0

是的一切都是這樣設置的。在模擬器工作正常:/ –

相關問題