1

Edited to explain why its not a duplicate:

I am trying to use MPMusicPlayerController.systemMusicPlayer() to control music playback from my app, but I want to disable the Command Center previous track button. I also want to override the default Command Center play and next track functions. The code should be simple:

This code is in ViewController.swift - viewDidLoad

    let commandCenter = MPRemoteCommandCenter.sharedCommandCenter()
    commandCenter.previousTrackCommand.enabled = false
    commandCenter.previousTrackCommand.addTargetWithHandler({ (commandEvent: MPRemoteCommandEvent!) -> MPRemoteCommandHandlerStatus in
        self.empty()
        return MPRemoteCommandHandlerStatus.Success
    })
    //MPRemoteCommandCenter.sharedCommandCenter().previousTrackCommand.addTarget(self, action: "empty")

    commandCenter.nextTrackCommand.enabled = true
    commandCenter.nextTrackCommand.addTargetWithHandler { (commandEvent: MPRemoteCommandEvent!) -> MPRemoteCommandHandlerStatus in

        self.gameOver()
        return MPRemoteCommandHandlerStatus.Success
    }
    commandCenter.playCommand.enabled = true
    commandCenter.playCommand.addTargetWithHandler { (commandEvent: MPRemoteCommandEvent!) -> MPRemoteCommandHandlerStatus in
        self.playing()
        return MPRemoteCommandHandlerStatus.Success
    }

Also, in AppDelegate.swift - application

UIApplication.sharedApplication().beginReceivingRemoteControlEvents()

And in the iOS simulator (both iPad and iPhone), it works correctly, as can be seen in the first screenshot (of the simulator).

However, when deploying the app to my iPad, none of the MPRemoteCommandCenter commands work at all, as can be seen in the second screenshot (of an actual device).

This is different from the "dupliate" question (How Do I Get Audio Controls on Lock Screen/Control Center from AVAudioPlayer in Swift) in the following ways:

  • I am not using AVAudioSession, I am using MPMusicPlayerController.systemMusicPlayer()
  • I have already called beginReceivingRemoteControlEvents, so that cant be the issue (unless I have somehow called it incorrectly, in which case, I would love an answer explaining how else it should be called).

Thank you.

Image from the Xcode Simulator,

Image from real device

Community
  • 1
  • 1

0 Answers0