1

我正在构建一个使用 AVPlayer 播放音频文件的 iOS 媒体播放器。播放器一切正常。我现在正在研究从锁定屏幕和耳机控制媒体播放。我已经为MPRemoteCommandCenter.shared()'s实现了一个目标playCommandpauseCommand因此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用于播放/暂停有线耳机的媒体。而单独的playCommandpauseCommand用于播放/暂停无线蓝牙耳机(以及锁定屏幕)的媒体。仍然不是 100% 确定为什么需要两种单独的播放/暂停媒体方法...

4

0 回答 0