iphone app允许背景音乐继续播放

Posted

技术标签:

【中文标题】iphone app允许背景音乐继续播放【英文标题】:iphone app allow background music to continue to play 【发布时间】:2013-01-02 12:49:54 【问题描述】:

当我启动我的 iPhone 游戏时,只要有声音播放背景音乐或正在播放的播客就会停止。我注意到其他游戏允许背景音频继续播放。

这怎么可能?我是否需要覆盖我的 App Delegate 中的方法?

【问题讨论】:

iPhone AVAudioPlayer stopping background music的可能重复 【参考方案1】:

将此行放在AppDelegateapplication:didFinishLaunchingWithOptions: 方法中,或者通常在使用音频播放器之前。

 [[AVAudiosession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];

根据文档,AVAudioSessionCategoryAmbient 类别是

对于声音播放为非主要的应用,也就是说,您的应用可以在关闭声音的情况下成功使用。

此类别也适用于“随玩”风格的应用程序,例如用户通过 iPod 音频播放的虚拟钢琴。 当您使用此类别时,来自其他应用的音频会与您的音频混合。您的音频会因屏幕锁定和静音开关(在 iPhone 上称为响铃/静音开关)而静音。

如果你还想确保没有发生错误,你必须检查返回值

NSError *error;
BOOL success = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error];
if (!success) 
     //Handle error
     NSLog(@"%@", [error localizedDescription]);
 else 
   // Yay! It worked!      

最后,不要忘记将AVFoundation 框架链接到您的项目并导入它。

#import <AVFoundation/AVFoundation.h>

【讨论】:

谢谢,这成功了。供其他人参考不要忘记导入 AVFoundation。 #import 是否有任何类别阻止应用在播放音乐时播放声音? 我建议也将它放在 applicationWillEnterForeground 中,否则如果您的应用在某些时候关闭了用户的音频并且用户在重新打开您的应用时尝试恢复他们的音频,则用户的音频将不会恢复,只有重新启动应用程序才能重新启用该设置。 如果我正在使用播放音频会话类别,有什么方法可以防止打开我的应用停止 iTunes 音乐? @vikzilla 是的,您可以使用AVAudioSessionCategoryOptionMixWithOthers 选项启用与其他音频会话的混合

以上是关于iphone app允许背景音乐继续播放的主要内容,如果未能解决你的问题,请参考以下文章

iPhone App杀死我的iPhone音乐播放器?

允许用户继续在 ios 应用中收听他们的音乐

Unity用代码控制音乐暂停后怎么继续播放?

freestreamer在后台通话结束后无法继续播放音乐(实际上没有声音)

如何通过App在后台连续播放音乐?

微信小程序播放背景音乐