AudioSession - 想要停止在后台播放的所有内容吗?

时间:2012-02-28 15:39:43

标签: iphone objective-c ios xcode

我需要停止(或至少静音)iPhone中播放的音乐/声音。 重要提示:我希望即使处于背景状态,我的应用程序也会这样做!

我正在使用:

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategorySoloAmbient error:nil]];
[[AVAudioSession sharedInstance] setActive: YES];

问题是所有内容都被停止,甚至是来自其他应用程序的流式传输音乐,但前提是应用程序位于FOREGROUND中。如前所述,我希望它也可以在BACKGROUND中工作。

我做了简单的研究,并意识到这种应用在某种程度上可行,这些应用证明:

App Store - Streaming Music TimerApp Store - Music Sleep Timer

我想我的SoloAmbient解决方案可能不是那么完美,而且可能是错误的方式。 有人知道即使应用程序处于后台状态,我怎么能停止/睡眠/暂停/静音全球音乐? 我指出的这些应用基本上都在做这件事......

1 个答案:

答案 0 :(得分:0)

您需要启用音频背景模式。

Required Background Modes密钥添加到您应用的Info.plist中,并将App Plays Audio密钥添加到其中。

有关详情,请参阅this tutorial

编辑此外,您可能想要AVAudioSessionCategoryPlayback类别,而不是AVAudioSessionCategorySoloAmbient