在背景模式下播放音频时,播放器控件会出现在锁定屏幕上。如何在音频停止时删除它?如果尝试设置:
MPNowPlayingInfoCenter.default().nowPlayingInfo = nil
播放器仍在锁定屏幕上,但艺术家/歌曲字段为空
UPD(我的音频会话代码):
在AppDelegate中:
func setupAudioSession() {
let audioSession = AVAudioSession.sharedInstance()
do {
try audioSession.setCategory(AVAudioSessionCategoryPlayback)
try audioSession.setActive(true)
} catch {
print("Setting category to AVAudioSessionCategoryPlayback failed.")
}
}
在Player类中:
private func clearRemotePlayerInfo() { // call after stop button pressed
try? AVAudioSession.sharedInstance().setActive(false)
MPNowPlayingInfoCenter.default().nowPlayingInfo = [:]
}
2条答案
按热度按时间anauzrmj1#
TL;DR
Github上的例子:https://github.com/JakubMazur/SO52243428
您不应该将
nil
分配给此nowPlayingInfo
。要实现这一点,您应该做的是:
1.停止播放(不需要,但清理你创建的内容很好)
1.将会话设置为非活动状态
1.清除
nowPlayingInfo
因此,代码看起来像:
它的行为是这样的:
编辑:
我写了尽可能简单的例子来尝试它。在Github https://github.com/JakubMazur/SO52243428上可以找到。如果符合你的情况,请随意检查。
hfwmuf9z2#
对我来说是工作。