0

我想在我的应用程序中构建一个控件,可以播放/暂停和跳过在后台播放的声音。这应该与媒体控件对控制中心的所有不同媒体源的行为方式相同。 截屏

我玩了各种选择。AVAudioSession、MPRemoteCommandCenter 以及获取一些蓝牙配置文件,因为耳机也可以播放/暂停背景音乐。不幸的是,没有任何东西能够播放/暂停背景音乐。

有谁知道如何使这种行为发生。

4

1 回答 1

0

如果您试图让您的音频应用程序使用控制中心(就像 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()
于 2021-12-23T09:57:50.177 回答