2015-08-21 1 views
-5

Я играю в MP3 с помощью AVPlayer. MP3 также воспроизводится в фоновом режиме. Я хочу получить доступ к музыке с панели уведомлений pull up, как это делает любое другое приложение для медиаплеера.Как установить медиа-контроллер на панель уведомлений по поднятию в ios

ответ

0

Это очень простой в использовании MPNowPlayingInfoCenter, во-первых прочитать here

Если вы используете backgroundMode вы initiazing AVAudioSession, так что вы можете просто добавить его в информационный центр.

Вы можете следить за этой blog

И это, как я это сделал

MPNowPlayingInfoCenter* mpic = [MPNowPlayingInfoCenter defaultCenter]; 
    NSMutableDictionary *songDictionary = [[NSMutableDictionary alloc] init]; 
    if (songInfo.detail.songTitle) { 
     [songDictionary setObject:songInfo.detail.songTitle forKey:MPMediaItemPropertyTitle]; 
    } else { 
     [songDictionary setObject:songInfo.visibleName forKey:MPMediaItemPropertyTitle]; 
    } 
    if (songInfo.detail.artist) { 
     [songDictionary setObject:songInfo.detail.artist forKey:MPMediaItemPropertyArtist]; 
    } 
    if (songInfo.detail.album) { 
     [songDictionary setObject:songInfo.detail.album forKey:MPMediaItemPropertyAlbumTitle]; 
    } 
    if (songInfo.detail.duration) { 
     double durationDouble = CMTimeGetSeconds([APPDELEGATE.session.playerItem duration]); 
     [songDictionary setObject:[NSNumber numberWithDouble:durationDouble] forKey:MPMediaItemPropertyPlaybackDuration]; 

     double playbackDouble = CMTimeGetSeconds([APPDELEGATE.session.playerItem currentTime]); 
     [songDictionary setObject:[NSNumber numberWithDouble:playbackDouble] forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime]; 

    } 
    if(mpic) { 
     [mpic setNowPlayingInfo:songDictionary]; 
    } 
+0

да. Это было легко. получил ответ от google, прежде чем вы отправили сообщение. Благодарю. – Soumen

+0

, так что в следующий раз, google перед запросом –

0

Я знаю, что я слишком поздно, чтобы ответить на этот пост, но я не нашел ни одного решения об этой проблеме, когда я искал на нем. Проверьте это и просто добавьте в свой код, ваша песня будет показана на панели уведомлений.

//Add these lines where you are initializing your player and creating items for it. 
_appdel.player.actionAtItemEnd = AVPlayerActionAtItemEndNone; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(playerItemDidReachEnd:) 
               name:AVPlayerItemDidPlayToEndTimeNotification 
               object:[_appdel.player currentItem]]; 
- (void)remoteControlReceivedWithEvent:(UIEvent *)event 
{ 
//if it is a remote control event handle it correctly 
if (event.type == UIEventTypeRemoteControl) { 
    if (event.subtype == UIEventSubtypeRemoteControlPlay) 
    { 
     NSLog(@"UIEventSubtypeRemoteControlPlay"); 
     //[[AppMusicPlayer sharedService]playAudio]; 
     [_appdel.player play]; 
    } 
    else if (event.subtype == UIEventSubtypeRemoteControlPause) 
    { 
     NSLog(@"UIEventSubtypeRemoteControlPause"); 
     //[[AppMusicPlayer sharedService]pauseAudio]; 
     [_appdel.player pause]; 
    } 
    else if (event.subtype == UIEventSubtypeRemoteControlTogglePlayPause) 
    { 
     NSLog(@"UIEventSubtypeRemoteControlTogglePlayPause"); 
    } 
    else if (event.subtype == UIEventSubtypeRemoteControlNextTrack) 
    { 
     NSLog(@"UIEventSubtypeRemoteControlToggleNext"); 

    } 
    else if (event.subtype == UIEventSubtypeRemoteControlPreviousTrack) 
    { 
     NSLog(@"UIEventSubtypeRemoteControlPrevious"); 

    } 
} 
} 

его работы на моей стороне и, надеюсь, он будет работать для вас, спасибо ..