我有2 ViewControllers
,每个AVAudioPlayer
发挥不同MPRemoteCommandCenter
。每个人都需要let remoteCommandCenter = MPRemoteCommandCenter().shared
func refreshCommandCenterButtons() {
remoteCommandCenter.previousTrackCommand.isEnabled = true
remoteCommandCenter.nextTrackCommand.isEnabled = true
remoteCommandCenter.playCommand.isEnabled = true
remoteCommandCenter.pauseCommand.isEnabled = true
remoteCommandCenter.playCommand.addTarget(self, action: #selector(self.playButtonTapped))
remoteCommandCenter.pauseCommand.addTarget(self, action: #selector(self.pauseButtonTapped))
remoteCommandCenter.nextTrackCommand.addTarget(self, action: #selector(self.nextButtonTapped))
remoteCommandCenter.previousTrackCommand.addTarget(self, action: #selector(self.previousButtonTapped))
remoteCommandCenter.togglePlayPauseCommand.addTarget(self, action: #selector(self.playPauseAction))
}
override func viewDidLoad() {
super.viewDidLoad()
refreshCommandCenterButtons()
}
的不同命令集。每个ViewController都有这样的东西:
FirstViewController
每当用户从SecondViewController
播放歌曲,然后导航到FirstViewContoller's
时,FirstViewController
audioPlayer就会暂停。问题是,一旦用户从refreshCommandCenterButtons()
导航到第二个,并按下Second上的播放按钮,它就会播放两个audioPlayers。
我尝试将其添加到SecondViewController
函数中。这将在remoteCommandCenter.pauseCommand.removeTarget(#selector(FirstViewController().pauseButtonPressed))
remoteCommandCenter.playCommand.removeTarget(#selector(FirstViewController().playButtonPressed))
remoteCommandCenter.togglePlayPauseCommand.removeTarget(#selector(FirstViewController().playPauseTapped))
:
{{1}}
但没有改变。我该怎么办?谢谢你的帮助!