2

I have 2 ViewControllers which each play a diffrent AVAudioPlayer. Each one needs a diffrent set of commands for the MPRemoteCommandCenter. Each ViewController has something like this:

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()

}

Whenever a user plays a song from FirstViewController, and then navigate to the SecondViewController, the FirstViewContoller's audioPlayer pauses. The problem is that once a user navigates from FirstViewController to the Second, and presses the play button on the Second, it plays both audioPlayers.

I tried adding this to the refreshCommandCenterButtons() function. This would be in the SecondViewController:

remoteCommandCenter.pauseCommand.removeTarget(#selector(FirstViewController().pauseButtonPressed))
remoteCommandCenter.playCommand.removeTarget(#selector(FirstViewController().playButtonPressed))
remoteCommandCenter.togglePlayPauseCommand.removeTarget(#selector(FirstViewController().playPauseTapped))

But nothing changed. What do I do? Thanks for the help!

Jacob Cavin
  • 2,169
  • 3
  • 19
  • 47
  • ** [Refer this link ](https://stackoverflow.com/a/39081521/7776881) to solve this issue – sabari vasagan Jul 20 '17 at 14:28
  • only self.commandCenter.previousTrackCommand.isEnabled = false self.commandCenter.nextTrackCommand.isEnabled = false self.commandCenter.playCommand.isEnabled = false self.commandCenter.pauseCommand.isEnabled = false that working – Harshad Patel Oct 26 '18 at 15:47

0 Answers0