我有这个代码,在iOS应用程序中播放声音时似乎非常标准。
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:@"click"
ofType:@"wav"]];
NSError *error;
self._audioPlayer = [[AVAudioPlayer alloc]
initWithContentsOfURL:url
error:&error];
if (error)
{
NSLog(@"Error in audioPlayer: %@",
[error localizedDescription]);
} else {
self._audioPlayer.delegate = self;
[self._audioPlayer prepareToPlay];
[self._audioPlayer play];
}
它在设备上运行得非常好。
然而,在模拟器上,它没有播放任何内容,只是打印此错误消息(由于应用程序没有崩溃,因此会在较低级别捕获)。
2014-05-14 18:10:46.121 sample_app[7684:14303] 18:10:46.121 ERROR: 189: EXCEPTION thrown ('fmt?'): -
(此错误可以多次打印)
调试时,一切看起来都正常,nserror保持为nil,url有效等等。
audioPlayerDidFinishPlaying:successfully:是使用1调用的事件。
任何人都有同样的问题或对我的环境有什么问题有建议吗?
非常感谢
答案 0 :(得分:6)
我遇到了同样的问题,并找到了一个奇怪的解决方案。试试这个:
不知道为什么会这样,必须是模拟器的bug。如果您在模拟器运行时进行了这些更改,您会注意到Xcode中弹出一条日志消息,警告您重新启动模拟器。