MPNowPlayingInfoCenter AVPlayer на iOS 7

Я делаю приложение, которое транслирует музыку. Я пытаюсь отобразить метаданные (название, имя исполнителя и обложку) на экране блокировки.

MPNowPlayingInfoCenter, кажется, хорошо работает с MediaPlayer.framework, но я не могу понять, как заставить его работать с AVPlayer на iOS 7.

Проигрыватель хорошо работает в фоновом режиме благодаря AVAudioSession :

AVAudioSession *session = [AVAudioSession sharedInstance];    
[session setCategory:AVAudioSessionCategoryPlayback error:&error];
[session setActive:YES error:&error];

Вот мой код для отображения метаданных на экране блокировки (который не работает):

Class playingInfoCenter = NSClassFromString(@"MPNowPlayingInfoCenter");

if (playingInfoCenter)
{
    NSDictionary *nowPlaying = @{MPMediaItemPropertyArtist: currentTrack.artist,
                                 MPMediaItemPropertyAlbumTitle: currentTrack.title};

    [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:nowPlaying];
}        

Любая помощь будет оценена!

Спасибо, что прочитали это :)


person Rémy Virin    schedule 18.12.2013    source источник


Ответы (1)


Нашла ответ на свой вопрос!

При использовании фонового звука вы должны указать, что ваше приложение может получать события удаленного управления:

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
person Rémy Virin    schedule 19.12.2013
comment
Когда я начинаю играть песню. Я тоже вызываю этот метод, когда больше не играю: [[UIApplication sharedApplication] endReceiveRemoteControlEvents]; - person Rémy Virin; 10.03.2014
comment
Спасибо за ваш ответ. на самом деле все еще не повезло, я использую github.com/mattgallagher/AudioStreamer для потоковой передачи радио. Я хочу показать изображение радиостанции на экране блокировки, все данные есть. просто не отображается на экране блокировки :( - person justicepenny; 10.03.2014
comment
я имею в виду, что все данные есть, что означает, что я получил всю информацию, которая мне нужна, и заполнил ее в словаре ... но на экране блокировки нет контроля, ни названия альбома, ни изображения. и я поставил это, но это не повезло [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:nowPlaying]; - person justicepenny; 11.03.2014
comment
Вы проверяли Audio и Airplay в фоновых режимах? это в настройках вашего проекта в разделе возможностей. - person Rémy Virin; 11.03.2014
comment
ты имеешь в виду в инфоплисте? Требуемые фоновые режимы я установил - person justicepenny; 11.03.2014
comment
давайте продолжим это обсуждение в чате - person Rémy Virin; 11.03.2014
comment
Здравствуйте @RémyVirin, вы смогли решить свою проблему ... я тоже столкнулся с той же проблемой, не могли бы вы мне помочь? - person Rohit; 19.11.2014
comment
@Rohit, да, но как? Ты пробовал то, что я предлагаю? - person Rémy Virin; 19.11.2014
comment
@RémyVirin Я попробовал это, и волшебным образом я заставил его работать для iOS 8, а также для загруженных файлов, а не для потоковой передачи файлов с сервера. Я не мог понять, где я ошибаюсь, ищу много других ответов, но смог заставить его работать только для iOS 8 (только загруженные файлы). Спасибо за помощь.. - person Rohit; 20.11.2014
comment
Этот ответ помог мне. Работает для потокового видео / живого видео HLS. - person Jonny; 24.08.2017