最近我遇到了,我找不到任何地方在互联网上讨论的一个问题 - 我是初始化AVAudioPlayer
播放音频文件,并得到以下错误:AVAudioPlayer初始化:错误代码-50
Error Domain=NSOSStatusErrorDomain Code=-50 "Operation could not be completed. (OSStatus error -50.)
事实证明,我创建了一个错误,将我的NSURL
发送给音频播放器init
方法,导致NSURL
对象为空。愚蠢的错误,调试时很容易找到,但我想我会在这里列出来,以防别人做同样的事情。
对于任何人想知道为什么他们的NSURL对象为空,如果你是这样创建你的NSURL,并且你的文件名中有空格,你需要百分比编码:'NSString * path = [[ NSBundle mainBundle] pathForResource:@“file with spaces.mp3”ofType:@“”]; NSString * path = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSURL * url = [NSURL URLWithString:path];' – Brynjar 2011-07-31 18:14:19
真棒评论指出文件名中的空格问题!非常感谢! – codepushr 2014-07-04 15:46:16
此错误的一个可能的来源是尝试将AVAudioSessionCategoryOptions.defaultToSpeaker选项与AVAudioSessionCategoryPlayback一起使用。这不起作用,你需要使用AVAudioSessionCategoryPlayAndRecord - 或者删除defaultToSpeaker选项。 – RenniePet 2017-03-11 15:02:35