我的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"
但这也行不通:/
答案 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];