3

要从应用程序 Spotify 或音乐应用程序启用背景音乐,我使用以下代码:

do
        {
            try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
            try AVAudioSession.sharedInstance().setActive(true)
        }
        catch let error as NSError
        {
            print(error)
        }

但我怎样才能扭转这种局面,停止播放背景音乐?

4

3 回答 3

3

根据文档,主要的播放音频会话类别是:

AVAudioSessionCategoryAmbient

当您使用此类别时,来自其他应用程序的音频会与您的音频混合。

AVAudioSessionCategorySoloAmbient

默认情况下,使用此类别意味着您的应用程序的音频是不可混合的——激活您的会话将中断任何其他同样不可混合的音频会话。

AVAudioSessionCategoryPlayback

默认情况下,使用此类别意味着您的应用程序的音频是不可混合的——激活您的会话将中断任何其他同样不可混合的音频会话。

因此,您特意选择了唯一不会使不可混合的背景音频静音的播放类别。如果您确实想使不可混合的背景音频静音,请选择其他类别之一。随时更改类别并没有错。

于 2016-01-14T16:19:18.660 回答
0
private func setIsAudioPlaysInBackground(isPlay: Bool) {
    if isPlay {
        try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.ambient)
    } else {
        try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback)
    }
    try? AVAudioSession.sharedInstance().setActive(true)
}
于 2019-05-01T08:52:08.513 回答
-1

你试过这个代码吗?

AVAudioSession.sharedInstance().setActive(false)

我还没有测试过它,但我认为它会停止音乐。

于 2016-01-14T15:44:03.447 回答