因此,我的应用程序在后台运行,因为CoreLocation已请求AlwaysAuthorization。这可以防止应用程序达到暂停状态。它保持在后台状态并正在接收位置事件。在一些位置事件之后,我想激活AVAudioSession并播放一些声音。如何正确激活会话(在此后台应用程序中),我现在正在使用前台中的其他应用程序,此应用程序正在播放音轨。假设我在Youtube应用中观看了一些视频,而我的后台应用需要立即播放音频。在这种情况下,我在激活音频会话方面遇到了问题。
在这种情况下,我无法使用AudioToolbox
播放引擎,因为即使启用了铃声/静音开关,也需要播放这些声音。
我知道我需要使用AVAudioSessionCategoryPlayback
类别。我也不希望其他应用同时播放,因此我没有使用MixWithOthers
或DuckOthers
类别选项。
我已启用UIBackgroundModes
在后台播放音频。
当app处于后台时,如何激活此类会话,而其他应用当前正在播放音频而未启用任何混音选项。如何中断当前前台应用程序中的音频会话,以便我的后台应用程序可以将其激活播放时间。播放结束后,我的计划是在后台停用音频会话,并通知其他应用,他们可以恢复播放。
答案 0 :(得分:0)
在didFinishLaunchingWithOptions
类的AppDelegate.m
方法中添加以下3行,然后再次测试该应用。如果有任何问题,请告诉我。
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
[UIApplication sharedApplication].idleTimerDisabled = YES;