MPNowPlayingInfoCenter not reacting properly when pausing playback MPNowPlayingInfoCenter not reacting properly when pausing playback ios ios

MPNowPlayingInfoCenter not reacting properly when pausing playback


I've the solution! Set only the MPMediaItemPropertyPlaybackDuration

1 - When you start the track, set the property with the total duration of the track:

MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];NSDictionary *songInfo = @{    MPMediaItemPropertyTitle: title,    MPMediaItemPropertyArtist: artist    MPMediaItemPropertyPlaybackDuration : [NSNumber numberWithFloat:length]};center.nowPlayingInfo = songInfo;

2 - when you pause the track... do nothing.

3 - when you play the track, set the property with the currentTrackTime:

MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo];        [playingInfo setObject:[NSNumber numberWithFloat:player.currentTrackTime] forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime];            center.nowPlayingInfo = playingInfo;


Here what you searching, this working very good add this to your Class:

- (void)remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {    if (receivedEvent.type == UIEventTypeRemoteControl) {        switch (receivedEvent.subtype) {            case UIEventSubtypeRemoteControlTogglePlayPause:[self playPause:nil];                break;            default: break;        }    }}

you can add functions for forward or backward with adding other CASE code like this:

case UIEventSubtypeRemoteControlBeginSeekingBackward:[self yourBackward:nil];                break;

and to calling play pause you need to create a action like this:

- (IBAction)playPause:(id)sender {    if (yourPlayer.rate == 1.0){        [yourPlayer pause];    } else if (yourPlayer.rate == 0.0) {        [yourPlayer play];    }}

Important: any case you adding need the IBAction

Hope this help you


MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter];NSDictionary *songInfo = @{    MPMediaItemPropertyTitle: title,    MPMediaItemPropertyArtist: artist};

the call like

center setnowPlayingInfo = songInfo;