iPhone AVAudioPlayer停止背景音乐

Ken*_*ker 18 iphone audio avaudioplayer

所以我刚注意到,在我的iPod Touch上,当我的应用程序触发使用AVAudioPlayer播放的短wav文件时,音乐会暂停.这是正常的吗?

我找不到任何对此的引用,似乎会在某处注意到.在播放我的声音时,有没有办法让音乐继续播放?

小智 74

基本上,每个应用程序都分配了一个音频会话,该会话被建模为单例类,您可以在应用程序启动时获取并将参数设置为.我解决同样问题的方法是通过以下单行代码applicationDidFinishLaunching:

Objective-C的:

[[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryAmbient error:nil];
Run Code Online (Sandbox Code Playgroud)

斯威夫特2/3:

try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案.这就是OP的具体问题 (4认同)

mah*_*udz 13

注意:AudioSession API已在iOS 7.0中完全弃用

您无法同时运行AVAudioPlayer和iPod播放器或MPMusicPlayer或MPMoviePlayer,无需多做多少工作.如果您想轻松,请使用Audio Toolbox的System Sounds.

如果你想做一些额外的工作,那么你应该看看音频会话:

kAudioSessionCategory_UserInterfaceSoundEffects 用于声音效果,如触摸反馈,爆炸等.

相当于kAudioSessionCategory_AmbientSound 您应该使用的 类别.该 kAudioSessionCategory_UserInterfaceSoundEffects 类别在iPhone OS 3.0中已弃用.

kAudioSessionCategory_AmbientSound适用于长时间的声音,如下雨,汽车引擎噪音等.它也适用于"播放"风格的应用程序,例如用户在iPod音频上播放的虚拟钢琴.

使用此类别时,内置应用程序(如iPod)中的音频会与音频混合.当振铃/静音开关设置为静音或屏幕锁定时,您的音频会静音.