使用AVAudioPlayer播放声音和有效的URL

时间:2014-06-17 10:15:33

标签: ios avaudioplayer nsurl

我的iPad上录制了一个声音文件。该文件保存在文档目录中。现在我想播放这个声音,但是我收到了一个错误。

我想播放这样的声音:

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"

但这也行不通:/

2 个答案:

答案 0 :(得分:1)

文件格式错误。它会向您报告kAudioFileInvalidFileError

尝试其他格式,例如.caf,看看是否有效。

我在过去使用不是来自iTunes的文件时遇到.m4a问题。

再次尝试其他格式以缩小问题范围。我的猜测是当你切换到另一种格式时它会起作用,因为你的代码对我来说似乎很好。

希望这有帮助。

答案 1 :(得分:0)

您如何定义AVAudioPlayer?如果您使用ARC,则必须是强类型的属性。

    @property (strong,nonatomic) AVAudioPlayer *audioPlayer;

另外,您是否正确设置了要播放的m4a文件的音频会话?

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