我的代码在模拟器、iPad-4和iPhone 6+上运行得很好,它们都运行着iOS 9.0.2。
然而,我知道这是个奇怪的说法,在我的iPad Air 2上,它看起来很有效,但实际上什么也没听到。还在其他设备上复制,如另一款iPhone 6+和另一款运行iOS 8.4的iPhone 6。我已经创建了一个演示项目(链接下面),以便其他人可以尝试自己的设备。
我要这么做:
NSURL *url /var/mobile/Containers/Bundle/Application/0ACADB94-886E-4C7E-A327-3FFF0E54CEF9/My App.app/sndEfcts/!snap.mp3下用路径初始化[[NSBundle mainBundle] resourcePath]audioPlayer = [AVAudioPlayer alloc initWithContentsOfURL:AVAudioPlayer错误:&err];
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
..。国旗说是的!-但是什么都没听到:因此,一切看起来都很好,但仍然没有听到任何声音(尽管其他应用程序的其他声音确实正常)
有谁知道造成这种行为的原因吗?
编辑
我创建了一个简单工程来演示。这种情况发生在各种设备上,甚至在8.4上。在模拟器上,它总是工作的。
发布于 2015-10-08 13:39:12
我已经找到了解决办法。
在有问题的设备上,“静音”打开,影响了设备中的一些声音。为了防止出现这种情况,请在应用程序开始时将其命名为:
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];这将导致音频被视为回放,因此不会被静音选项静音。
我了解到,用户通常不知道在哪里打开/关闭控制。在iPad空气2:提高下窗格从底部和按下扬声器图标。
https://stackoverflow.com/questions/32995335
复制相似问题