【发布时间】:2015-10-07 14:43:50
【问题描述】:
我的代码在运行 iOS 9.0.2 的模拟器、iPad-4 和 iPhone 6+ 上运行良好。
但是,我知道这是一个奇怪的说法,在我的 iPad Air 2 上它看起来在工作,但实际上什么也没听到。还在其他设备上重现,例如另一台 iPhone 6+ 和另一台运行 iOS 8.4 的 iPhone 6。我已经创建了一个演示项目(下面的链接),以便其他人可以尝试他们自己的设备。
我正在这样做:
- 使用
[[NSBundle mainBundle] resourcePath]下的路径初始化NSURL *url:/var/mobile/Containers/Bundle/Application/0ACADB94-886E-4C7E-A327-3FFF0E54CEF9/My App.app/sndEfcts/!snap.mp3 -
将新对象分配给 ivar:
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&err]; -
在调试器中测试 url - 好! (注意空格变成了%20。我也验证了文件存在):
(lldb) po audioPlayer.url file:///var/mobile/Containers/Bundle/Application/0ACADB94-886E-4C7E-A327-3FFF0E54CEF9/My%20App.app/sndEfcts/!snap.mp3` -
如果创建成功则播放:
if (audioPlayer) { audioPlayer.delegate = self; [audioPlayer prepareToPlay]; __unused BOOL playOk = [audioPlayer play]; } 完成委托已激活:
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
......和旗帜说是! - 但什么也没听到 :(
所以看起来一切正常,但仍然听不到任何声音(尽管其他应用程序的其他声音也可以正常工作)
有人知道这种行为的原因吗?
编辑
我创建了一个simple project 来演示。它发生在各种设备上,甚至在 8.4 上。在模拟器上它一直在工作
【问题讨论】:
标签: ios ipad avaudioplayer