【问题标题】:AudioPlayer and lockscreen/control center control Swift [closed]AudioPlayer 和锁屏/控制中心控制 Swift [关闭]
【发布时间】:2017-03-20 06:46:50
【问题描述】:

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

【问题讨论】:

    标签: swift swift3 avaudioplayer lockscreen control-center


    【解决方案1】:

    您需要使用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
        }
    
    }
    

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

    【讨论】:

    • 完美运行!谢谢
    • 如果您已经在使用MPRemoteCommandCenter,则无需致电UIApplication.shared.beginReceivingRemoteControlEvents(),详情请参阅developer.apple.com/documentation/uikit/uiapplication/…
    • @totiG,它对我有用。但是在锁定屏幕控制面板中按下暂停按钮后,然后重新打开锁定屏幕,控制面板不再显示。什么原因,这里有设置flag的参数吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    相关资源
    最近更新 更多