我有一个自定义类,用AVPlayer播放音频。在此类的方法中,已向MPRemoteCommandCenter实例添加了play,pause,previous和next track命令,如下所示:
let mediaPlayerCommandCenter = MPRemoteCommandCenter.shared()
mediaPlayerCommandCenter.playCommand.addTarget(self, action: #selector(playRemoteHandler(_:))) // .. and so on
我还添加了MPNowPlayingInfoCenter详细信息。 “背景模式”在项目设置的“功能”部分打开,应用程序通常在后台播放音频。
在应用程序(application:didFinishLaunchingWithOptions :)方法中选择并激活AVAudioSession类别:
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print(error)
}
application.beginReceivingRemoteControlEvents() // in the documentation noticed that it is not necessary if we are using MPRemoteCommandCenter but anyways I tried it also
在所有这些代码之后,远程控制在锁定屏幕和控制中心都不可见。但音频通常在后台播放。