AudioPlayer 和 lockscreen/control 中心控制 Swift

AudioPlayer and lockscreen/control center control Swift

我是 Swift 的新手。我写信是因为我想问一个问题。我和我的朋友正在开发一个音频播放器,但我们遇到了一个问题。播放器也可以在后台运行,并且可以通过锁屏和控制中心进行远程控制,但是如果音乐被这两个控件之一中断,我们播放器的 play/pause 按钮不会更新为正确的图标。 我的问题是,我怎样才能通过遥控器之一让播放器清楚地知道音乐是 starting/stopping 并且播放器会相应地采取行动,更改 play/pause 按钮的图标?非常感谢,我希望我已经清楚了。

您需要使用 MPRemoteCommandCenter 来执行此操作。例如在你的 viewControllers viewDidLoad() 你可以添加这个:

override func viewDidLoad() {
    super.viewDidLoad()

    UIApplication.shared.beginReceivingRemoteControlEvents()
    let commandCenter = MPRemoteCommandCenter.shared()

    commandCenter.pauseCommand.addTarget { (event) -> MPRemoteCommandHandlerStatus in
        //Update your button here for the pause command
        return .success
    }

    commandCenter.playCommand.addTarget { (event) -> MPRemoteCommandHandlerStatus in
        //Update your button here for the play command
        return .success
    }

}

只需更改我包含的评论即可更新您的按钮 UI。您还需要 导入 MediaPlayerMediaPlayer.framework 如果您还没有这样做的话。