当我启动我的 iPhone 游戏时,只要有声音播放背景音乐或正在播放的播客就会停止。我注意到其他游戏允许背景音频继续播放。
这怎么可能?我是否需要覆盖我的 App Delegate 中的方法?
当我启动我的 iPhone 游戏时,只要有声音播放背景音乐或正在播放的播客就会停止。我注意到其他游戏允许背景音频继续播放。
这怎么可能?我是否需要覆盖我的 App Delegate 中的方法?
在使用音频播放器之前,将这条线放在您的application:didFinishLaunchingWithOptions:
方法中或一般情况下。AppDelegate
[[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>