我想在我的应用程序中构建一个控件,可以播放/暂停和跳过在后台播放的声音。这应该与媒体控件对控制中心的所有不同媒体源的行为方式相同。 截屏
我玩了各种选择。AVAudioSession、MPRemoteCommandCenter 以及获取一些蓝牙配置文件,因为耳机也可以播放/暂停背景音乐。不幸的是,没有任何东西能够播放/暂停背景音乐。
有谁知道如何使这种行为发生。
如果您试图让您的音频应用程序使用控制中心(就像 spotify 一样),您需要使用MPNowPlayingInfoCenter来设置正在播放的项目数据(例如:标题、速率、持续时间、elapsedTime ......)它将类似于那:
MPNowPlayingInfoCenter.default().nowPlayingInfo = [
MPMediaItemPropertyTitle: title,
MPMediaItemPropertyArtist: artist,
MPNowPlayingInfoPropertyElapsedPlaybackTime: position,
MPMediaItemPropertyPlaybackDuration: duration,
MPNowPlayingInfoPropertyPlaybackRate: rate,
]
这将现在在媒体控制中心设置播放音频项目的数据,以便能够使用控制按钮需要使用MPRemoteCommandCenter并为您要使用的每个命令设置目标,例如播放/暂停操作可以这样做:
MPRemoteCommandCenter.shared().playCommand.addTarget(handler: playActionHandler)
MPRemoteCommandCenter.shared().pauseCommand.addTarget(handler: pauseActionHandler)
完成所有这些后,您将需要调用下面的方法,以便您的应用能够接收远程事件并执行所需的操作
UIApplication.shared.beginReceivingRemoteControlEvents()