swift - AudioPlayer 和锁屏/控制中心控制 Swift

标签 swift swift3 avaudioplayer lockscreen control-center

<分区>

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

最佳答案

您需要使用 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(如果您尚未这样做的话)。

关于swift - AudioPlayer 和锁屏/控制中心控制 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42897354/

相关文章:

ios - swift 3 : PerformSegue WithIdentifier Not Displaying View Controller, 没有错误

sprite-kit - OpenAL 与 AVAudioPlayer 与其他播放声音的技术

iphone - aurioTouch2录制问题。我需要将数据从一个AudioBufferList添加到另一个

ios - AVAudioPlayer 在使用调试脚本之前无法播放声音

iOS UISwitch "animated: Bool"不工作

ios - 如何在 swift 中使用 BBBadgeBarButtonItem

swift - ARKit 如何使 NSNODE 持久化

swift - 如何为每个象限创建一个末端为圆角的圆

swift - 缺少带有默认参数的声明

swift - 转到 UIPageViewController 中的下一页