Я играю в MP3 с помощью AVPlayer. MP3 также воспроизводится в фоновом режиме. Я хочу получить доступ к музыке с панели уведомлений pull up, как это делает любое другое приложение для медиаплеера.Как установить медиа-контроллер на панель уведомлений по поднятию в ios
-5
A
ответ
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
Я знаю, что я слишком поздно, чтобы ответить на этот пост, но я не нашел ни одного решения об этой проблеме, когда я искал на нем. Проверьте это и просто добавьте в свой код, ваша песня будет показана на панели уведомлений.
//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");
}
}
}
его работы на моей стороне и, надеюсь, он будет работать для вас, спасибо ..
да. Это было легко. получил ответ от google, прежде чем вы отправили сообщение. Благодарю. – Soumen
, так что в следующий раз, google перед запросом –