在iOS10 +中完成播放后,如何从锁定屏幕上消失播放器控件?

时间:2018-09-09 10:08:46

标签: ios swift avaudiosession background-audio

在后台模式下播放音频时,播放器控件会出现在锁定屏幕上。音频停止后如何将其删除?如果尝试设置:

MPNowPlayingInfoCenter.default().nowPlayingInfo = nil

播放器仍在锁定屏幕上,但艺术家/歌曲字段为空

enter image description here

UPD(我的音频会话代码):

在AppDelegate中:

func setupAudioSession() {

    let audioSession = AVAudioSession.sharedInstance()

    do {
        try audioSession.setCategory(AVAudioSessionCategoryPlayback)
        try audioSession.setActive(true)

    } catch {
        print("Setting category to AVAudioSessionCategoryPlayback failed.")
    }
}

在播放器类中:

private func clearRemotePlayerInfo() { // call after stop button pressed
    try? AVAudioSession.sharedInstance().setActive(false)
    MPNowPlayingInfoCenter.default().nowPlayingInfo = [:]
}

1 个答案:

答案 0 :(得分:4)

TL; DR

Github上的示例:https://github.com/JakubMazur/SO52243428


您不应为此if (is!TRUE(file.exists("data"))) { dir.create("data") } 分配nil

要实现这一目标,您应该做的是:

  1. 停止播放(不是必需的,但是清理您创建的内容会很好)
  2. 将会话设置为无效
  3. 清除nowPlayingInfo

所以代码如下:

nowPlayingInfo

它将表现为:

enter image description here

编辑:

我已经编写了尽可能简单的示例进行试用。它在Github https://github.com/JakubMazur/SO52243428上可用。随时检查一下,它与您的情况相符。