【问题标题】:Enable/Disable background music启用/禁用背景音乐
【发布时间】:2016-01-14 15:17:32
【问题描述】:
要从应用 Spotify 或音乐应用启用背景音乐,我使用以下代码:
do
{
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
try AVAudioSession.sharedInstance().setActive(true)
}
catch let error as NSError
{
print(error)
}
但我怎样才能扭转这种局面,停止播放背景音乐?
【问题讨论】:
标签:
ios
swift
avplayer
avplayerviewcontroller
【解决方案1】:
根据the documentation,主要播放音频会话类别为:
AVAudioSessionCategoryAmbient
什么时候
您使用此类别,来自其他应用的音频会与您的音频混合。
AVAudioSessionCategorySoloAmbient
默认情况下,使用此类别意味着您的应用的音频是
不可混合——激活您的会话将中断任何其他音频
会话也是不可混合的。
AVAudioSessionCategoryPlayback
默认情况下,使用此类别意味着您的应用的音频是
不可混合——激活您的会话将中断任何其他音频
会话也是不可混合的。
所以,您特意选择了 only 播放类别,它不会 使不可混合的背景音频静音。如果您确实想要使不可混合的背景音频静音,请选择其他类别之一。随时更改类别没有任何问题。
【解决方案2】:
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)
}
【解决方案3】:
你试过这个代码吗?
AVAudioSession.sharedInstance().setActive(false)
我没有测试过它,但我认为它会停止音乐。