J'utilise ce code ci-dessous. Et ce code fonctionne parfaitement, une fois l'application passée en arrière-plan. Si l'application ne passe pas en arrière-plan et que nous essayons de lire et de mettre en pause la chanson en cours de lecture, la lecture et la pause de l'image ne changent pas. Annonce chaque point de rupture va dans ce cas case UIEventSubtypeRemoteControlPause:
.MPNowPlayingInfoCenter lecture image pause pas changer
albumArt= [[MPMediaItemArtwork alloc] initWithImage: img.image];
NSDictionary *playingNowInfo = @{MPMediaItemPropertyTitle: (self.currentItem.songname==nil) ? (@"") : (self.currentItem.songname),
MPMediaItemPropertyPlaybackDuration: @(self.currentItem.duration),
MPMediaItemPropertyArtist:[MusicSetting getArtistName],
MPMediaItemPropertyAlbumTitle:(self.currentItem.albumname==nil) ? (@"") : (self.currentItem.albumname),
MPNowPlayingInfoPropertyPlaybackRate: @(self.player.rate),
MPNowPlayingInfoPropertyElapsedPlaybackTime: @(CMTimeGetSeconds(self.player.currentItem.currentTime)),
MPMediaItemPropertyArtwork:albumArt,
};
[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = playingNowInfo;
#pragma mark - Remote Control
- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent {
// [self.manager remoteControlReceivedWithEvent:receivedEvent];
if (receivedEvent.type == UIEventTypeRemoteControl) {
switch (receivedEvent.subtype) {
case UIEventSubtypeRemoteControlPlay:
[self Onclick_Play_Pause:self];
break;
case UIEventSubtypeRemoteControlPause:
[self Onclick_Play_Pause:self];
break;
case UIEventSubtypeRemoteControlTogglePlayPause:
//if ([self.manager.player isPlaying])
if(self.manager.player.rate != 0)
{
[self.manager.player pause];
}
else {
[self.manager.player play];
}
break;
case UIEventSubtypeRemoteControlNextTrack:
[self Onclick_next:self];
NSLog(@"Next song play");
break;
case UIEventSubtypeRemoteControlPreviousTrack:
[self Onclick_prev:self];
NSLog(@"Prev song play");
break;
default:
break;
}
}
}
- (IBAction)Onclick_Play_Pause:(id)sender {
(AppObj).playerview_height=playviewHeight;
if(self.manager.player.rate != 0)
{
[MusicSetting set_SongStatus:@"Pause"];
[self.Play_PauseBtn setImage:[UIImage imageNamed:@"pauseImg"] forState:UIControlStateNormal];
[self.manager pause];
}
else {
[MusicSetting set_SongStatus:@"Play"];
[MusicSetting set_isMusicPlay:@"Playing"];
[self.Play_PauseBtn setImage:[UIImage imageNamed:@"playImg"] forState:UIControlStateNormal];
[self.manager play];
}
}
Merci!
S'il vous plaît télécharger votre '- (IBAction) Onclick_Play_Pause: (id) sender' cet événement –