I have an iOS 9 app that plays MIDI-like songs using an AudioGraph. I've set up remote control commands with MPRemoteCommandCenter and info with MPNowPlayingInfoCenter such that the currently playing song shows up in Control Center and responds to control center button presses or headphone button presses. Tapping the pause button in Control Center pauses my song, but the playhead in Control Center keeps moving and the button remains as a pause icon. Tapping it again just keeps calling pause.
Is there a way to update the MPNowPlayingInfoCenter or MPRemoteCommandCenter state such that Control Center knows the song is paused?
Solutions I have tried:
Setting
enabledonplayCommandandpauseCommandhas no effect
Setting
MPNowPlayingInfoPropertyPlaybackRateto0inMPNowPlayingInfoCenterstops the playhead from advancing (and resets the elapsed time if I don't explicitly set it as well), but the button is still a pause button
Stopping my audio engine and calling
AVAudioSession.setActive(false)this does seem to work, but it is slow, causes audio glitches, and other parts of my app rely on the audio engine running even if a song is paused