2016-08-02 1 views
3

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!

+0

S'il vous plaît télécharger votre '- (IBAction) Onclick_Play_Pause: (id) sender' cet événement –

Répondre

0
- (IBAction)Onclick_Play_Pause:(id)sender { 
    MPNowPlayingInfoCenter *center = [MPNowPlayingInfoCenter defaultCenter]; 
     NSMutableDictionary *playingInfo = [NSMutableDictionary dictionaryWithDictionary:center.nowPlayingInfo]; 
    (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]; 
     //set playback rate 
     [playingInfo setObject:[NSNumber numberWithFloat:0] forKey:MPNowPlayingInfoPropertyPlaybackRate]; 
    } 
    else 
    { 
     [MusicSetting set_SongStatus:@"Play"]; 
     [MusicSetting set_isMusicPlay:@"Playing"]; 

     [self.Play_PauseBtn setImage:[UIImage imageNamed:@"playImg"] forState:UIControlStateNormal]; 
     [self.manager play]; 
     //set playback rate 
     [playingInfo setObject:[NSNumber numberWithFloat:1] forKey:MPNowPlayingInfoPropertyPlaybackRate]; 
    } 
    center.nowPlayingInfo = playingInfo; 

} 
0

Salut S'il vous plaît vérifier ont ajouté les éléments suivants dans info.plist

info.plist addition

+1

je l'ai déjà ajouté cette ligne @Surbhi Garg –

0

Vous avez le code suivant

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; 

Dans les deux premiers cas, vous appelé votre méthode, mais pas dans le troisième pouvez-vous partager la définition de votre méthode?

+0

Est-ce que la musique a cessé? –

+0

@MonikaPatel vous avez également demandé la même chose, s'il vous plaît ne pas commenter sans même lire vos propres commentaires. –