Max*_*Max 2 ios avaudiosession background-audio swift
在后台模式下播放音频时,播放器控件会出现在锁屏上。音频停止后如何将其删除?如果尝试设置:
MPNowPlayingInfoCenter.default().nowPlayingInfo = nil
Run Code Online (Sandbox Code Playgroud)
播放器仍在锁定屏幕上,但歌手/歌手字段为空
UPD(我的音频会话代码):
在AppDelegate中:
func setupAudioSession() {
let audioSession = AVAudioSession.sharedInstance()
do {
try audioSession.setCategory(AVAudioSessionCategoryPlayback)
try audioSession.setActive(true)
} catch {
print("Setting category to AVAudioSessionCategoryPlayback failed.")
}
}
Run Code Online (Sandbox Code Playgroud)
在播放器类中:
private func clearRemotePlayerInfo() { // call after stop button pressed
try? AVAudioSession.sharedInstance().setActive(false)
MPNowPlayingInfoCenter.default().nowPlayingInfo = [:]
}
Run Code Online (Sandbox Code Playgroud)
TL; DR
Github上的示例:https://github.com/JakubMazur/SO52243428
您不应该分配nil给这个nowPlayingInfo。
为此,您应该做的是:
nowPlayingInfo因此代码如下所示:
self.player?.stop() // Where self.player is AVAudioPlayer
try? self.session?.setActive(false, with: .notifyOthersOnDeactivation) // Where self.session is AVAudioSession. You should do it with do-catch to good error catching.
MPNowPlayingInfoCenter.default().nowPlayingInfo = [:]
Run Code Online (Sandbox Code Playgroud)
它的行为将如下所示:
我已经写了尽可能简单的示例进行尝试。它的问世在Github https://github.com/JakubMazur/SO52243428。随时检查一下,它与您的情况相符。
| 归档时间: |
|
| 查看次数: |
491 次 |
| 最近记录: |