我正在製作音樂/視頻流應用程序,並且我正在使用AVPlayer
加載視頻和歌曲。iOS MPRemoteCommandCenter在音頻和視頻流之間切換時
我有一個處理音樂播放的音樂播放器類的單例實例。我已經包含的代碼片段與相關音頻會話和指揮中心設置:
let audio_Session: AVAudioSession = AVAudioSession.sharedInstance()
do {
try audio_Session.setCategory(AVAudioSessionCategoryPlayback)
} catch _ {
}
do {
try audio_Session.setActive(true)
} catch _ {
}
UIApplication.sharedApplication().beginReceivingRemoteControlEvents()
if UIApplication.sharedApplication().canBecomeFirstResponder() {
UIApplication.sharedApplication().becomeFirstResponder()
}
let now_Playing_Command: MPRemoteCommandCenter = MPRemoteCommandCenter.sharedCommandCenter()
now_Playing_Command.pauseCommand.addTarget(self, action: #selector(self.pause_Command))
now_Playing_Command.playCommand.addTarget(self, action: #selector(self.play_Command))
now_Playing_Command.nextTrackCommand.addTarget(self, action: #selector(self.next_Track_Command))
now_Playing_Command.togglePlayPauseCommand.addTarget(self, action: #selector(self.toggle_Play_Pause))
now_Playing_Command.previousTrackCommand.addTarget(self, action: #selector(self.previous_Track_Command))
一切正常,直到我開始流式視頻。在視頻播放過程中,指揮中心開始接受視頻的暫停/播放命令,暫停/恢復視頻。有時,它會導致歌曲在後臺繼續播放。
這是序列:
- 開始串流歌曲
- 暫停歌曲
- 開始串流視頻
- 端視頻
- 但是當我恢復播放樂曲(經由視圖控制器控制),
MPCommandCenter
按鈕變灰,我不能設置它們。開始一首新歌曲(其中大部分音頻會話等設置都不起作用)也不起作用。
在播放任何歌曲之前開始播放視頻並結束播放所有未來歌曲流的命令中心按鈕。
我希望能夠編程命令中心,從接收來自音樂(單例實例)的遠程命令到視頻(常規實例)的無縫轉換,並返回到暫停的Singleton實例歌曲。