Ios 启动时停止背景音频

Ios 启动时停止背景音频,ios,objective-c,avaudiosession,foreground,Ios,Objective C,Avaudiosession,Foreground,我可以通过在info.plist文件中添加设置,使应用程序在音频移动到背景时播放音频 但是,当其他一些iOS应用程序播放后台音频时,当当前应用程序进入前台时,如何停止其他应用程序调用的后台音频?请查看苹果公司的AVAudioSession类和AVAudioSession编程指南。 这将有希望引导你朝着正确的方向前进 要在应用程序启动时停止背景音频,请将音频会话设置为不可混合类别和模式,然后设置为活动 如果您没有配置音频会话,您的应用程序将获得默认会话,在您的情况下,该会话不是您想要的 在您的应用

我可以通过在info.plist文件中添加设置,使应用程序在音频移动到背景时播放音频


但是,当其他一些iOS应用程序播放后台音频时,当当前应用程序进入前台时,如何停止其他应用程序调用的后台音频?

请查看苹果公司的AVAudioSession类和AVAudioSession编程指南。 这将有希望引导你朝着正确的方向前进

要在应用程序启动时停止背景音频,请将音频会话设置为不可混合类别和模式,然后设置为活动

如果您没有配置音频会话,您的应用程序将获得默认会话,在您的情况下,该会话不是您想要的

在您的应用程序中尝试此方法—(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项

// set audio session category AVAudioSessionCategoryPlayAndRecord with no options
success = [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error:nil];
if (!success) {
    NSLog(@"setCategoryError");
}

// set audio session mode to default
success = [[AVAudioSession sharedInstance] setMode:AVAudioSessionModeDefault error:nil];
if (!success) {
    NSLog(@"setModeError");
}

// activate audio session
success = [[AVAudioSession sharedInstance] setActive:YES error:nil];
if (!success) {
    NSLog(@"activationError");
}

你说的是iOS应用程序吗?是的,在iOS应用程序中,我使用audiotoolbox框架进行播放/录制。不切换到AVAudioSession有可能吗?您不会切换到AVAudioSession。iOS中的每个应用程序都有一个应用程序可以配置的音频会话对象。它使用单例模式,用于说明应用程序的“意图”,即您希望如何“与他人一起玩”。太好了!!在给定代码中设置“setActive:NO”后,我满足了要求。它按预期工作。我尝试了“AudioSessionGetProperty(kAudioSessionProperty_OtherAudioDisplay,&size,&AudioIsalReadyPlay);”用于检测。但它无法停止背景音频。您的解决方案很酷。谢谢,很高兴您喜欢。额外注意:-要检测背景音频(来自iOS 6.0),请检查BOOL属性[AVAudioSession sharedInstance]。otherAudioPlayingSorry,当其他音频应用程序出现在前台时,它似乎没有停止播放音频。有什么想法吗?