iphone应用程序允许继续播放背景音乐

iphone应用程序允许继续播放背景音乐,iphone,objective-c,ios,Iphone,Objective C,Ios,当我启动我的iPhone游戏时,只要有声音播放背景音乐或播客播放,就会停止。我注意到其他游戏允许背景音频继续播放 这怎么可能?我是否需要覆盖我的应用程序委派中的方法?在您的应用程序中放置这一行:使用选项完成启动:您的应用程序委派的方法或在使用音频播放器之前 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil]; 根据文档,AvaudioSessionCategoryBient

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


这怎么可能?我是否需要覆盖我的应用程序委派中的方法?

在您的
应用程序中放置这一行:使用选项完成启动:
您的
应用程序委派的方法
或在使用音频播放器之前

 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
根据文档,AvaudioSessionCategoryBient类别为

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

该类别也适用于“随行播放”风格的应用程序,例如用户通过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#导入是否有任何类别阻止应用程序在播放音乐时播放声音?我建议将其置于applicationWillEnterForeground中,否则,如果应用程序在某个点关闭用户音频,并且用户在重新打开应用程序时尝试恢复音频,则用户的音频将不会恢复,只有重新启动应用程序才能重新启用设置。如果我使用的是播放音频会话类别,是否有任何方法阻止打开我的应用程序停止iTunes音乐?@vikzilla是的,您可以通过使用
AvaudioSessionCategoryOptionMixewithOthers
选项启用与其他音频会话的混音