首页 文章

AVAudioSession可以在没有MixWithOthers的后台状态下激活吗?

提问于
浏览
2

所以我的应用程序在后台运行,因为CoreLocation已请求AlwaysAuthorization . 这可以防止应用程序达到暂停状态 . 它保持在后台状态并正在接收位置事件 . 在一些位置事件之后,我想激活AVAudioSession并播放一些声音 . 当我在前台使用其他应用程序时,如何正确激活会话(在此后台应用程序中),此应用程序正在播放音频轨道 . 假设我在Youtube应用程序中观看一些视频,我的后台应用程序现在需要播放音频 . 在这种情况下,我在激活音频会话方面遇到了问题 .

在这种情况下,我无法使用 AudioToolbox 播放引擎,因为即使启用了铃声/静音开关,也需要播放这些声音 .

我知道我需要使用 AVAudioSessionCategoryPlayback 类别 . 我也没有't want other apps to be played in the same time so I'我没有使用 MixWithOthersDuckOthers 类别选项 .

我已在后台启用 UIBackgroundModes 进行音频播放 .

当应用程序处于后台时,如何激活此类会话,而其他应用程序当前正在播放音频而未启用任何混音选项 . 如何中断当前前台应用程序中的音频会话,以便我的后台应用程序可以将其激活播放时间 . 播放结束后我的计划是在后台停用音频会话并通知其他应用程序他们可以恢复他们的播放 .

1 回答

  • 0

    AppDelegate.m 类的 didFinishLaunchingWithOptions 方法中添加以下3行,然后再次测试应用程序 . 如果有相同问题,请告诉我 .

    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
    [UIApplication sharedApplication].idleTimerDisabled = YES;
    

相关问题