5

我是 Swift 的新手。我写作是因为我想问一个问题。我和我的朋友正在开发音频播放器,但我们遇到了问题。播放器也可以在后台运行,锁屏和控制中心的遥控器也可以工作,但是如果音乐被这两个控件之一打断,我们的播放器的播放/暂停按钮不会更新为正确的图标。我的问题是,我怎样才能让播放器清楚地知道音乐是由其中一个遥控器开始/停止的,而播放器则采取相应的行动,改变播放/暂停按钮的图标?非常感谢,我希望我很清楚。

4

1 回答 1

16

您需要使用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如果您还没有这样做的话。

于 2017-03-20T07:31:40.673 回答