首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVAudioPlayer没有在某些设备上播放

AVAudioPlayer没有在某些设备上播放
EN

Stack Overflow用户
提问于 2015-10-07 14:43:50
回答 1查看 323关注 0票数 2

我的代码在模拟器、iPad-4和iPhone 6+上运行得很好,它们都运行着iOS 9.0.2。

然而,我知道这是个奇怪的说法,在我的iPad Air 2上,它看起来很有效,但实际上什么也没听到。还在其他设备上复制,如另一款iPhone 6+和另一款运行iOS 8.4的iPhone 6。我已经创建了一个演示项目(链接下面),以便其他人可以尝试自己的设备。

我要这么做:

  1. NSURL *url /var/mobile/Containers/Bundle/Application/0ACADB94-886E-4C7E-A327-3FFF0E54CEF9/My App.app/sndEfcts/!snap.mp3下用路径初始化[[NSBundle mainBundle] resourcePath]
  2. 将新对象赋值给ivar:

audioPlayer = [AVAudioPlayer alloc initWithContentsOfURL:AVAudioPlayer错误:&err];

  1. 测试url在调试器-很好!(请注意,空格变为%20。我还验证了文件的存在):(Lldb) po audioPlayer.url audioPlayer.url
  2. 如果被创建,可以播放: if ( audioPlayer ) { audioPlayer.delegate = self;audioPlayer prepareToPlay;__unused BOOL playOk =audioPlayer play;}
  3. 激活了finish的委托:- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag ..。国旗说是的!-但是什么都没听到:

因此,一切看起来都很好,但仍然没有听到任何声音(尽管其他应用程序的其他声音确实正常)

有谁知道造成这种行为的原因吗?

编辑

我创建了一个简单工程来演示。这种情况发生在各种设备上,甚至在8.4上。在模拟器上,它总是工作的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-08 13:39:12

我已经找到了解决办法。

在有问题的设备上,“静音”打开,影响了设备中的一些声音。为了防止出现这种情况,请在应用程序开始时将其命名为:

代码语言:javascript
复制
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];

这将导致音频被视为回放,因此不会被静音选项静音。

我了解到,用户通常不知道在哪里打开/关闭控制。在iPad空气2:提高下窗格从底部和按下扬声器图标。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32995335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档