我正在构建一个使用 AVPlayer 播放音频文件的 iOS 媒体播放器。播放器一切正常。我现在正在研究从锁定屏幕和耳机控制媒体播放。我已经为MPRemoteCommandCenter.shared()
's实现了一个目标playCommand
,pauseCommand
因此togglePlayPauseCommand
:
let commandCenter = MPRemoteCommandCenter.shared()
commandCenter.pauseCommand.addTarget { (_) -> MPRemoteCommandHandlerStatus in
// Pause media
return .success
}
commandCenter.playCommand.addTarget { (_) -> MPRemoteCommandHandlerStatus in
// Play media
return .success
}
commandCenter.togglePlayPauseCommand.addTarget { (_) -> MPRemoteCommandHandlerStatus in
if player.isPlaying() {
// Pause media
} else {
// Play media
}
return .success
}
完成上述操作后,锁屏控件和耳机控件都可以正常工作。我的问题是,使用 playCommand/ pauseCommand 与 togglePlayPauseCommand 有什么区别?
我注意到在我测试的某些设备上,当我删除 togglePlayPauseCommand 时,耳机按钮将不起作用。这让我知道有什么区别,但我不确定。澄清这一点的任何帮助都会很棒,谢谢!
更新:
经过更多测试,它似乎togglePlayPauseCommand
用于播放/暂停有线耳机的媒体。而单独的playCommand
和pauseCommand
用于播放/暂停无线蓝牙耳机(以及锁定屏幕)的媒体。仍然不是 100% 确定为什么需要两种单独的播放/暂停媒体方法...