MPNowPlayingInfoCenter отображается как приостановленный

Я использую AVQueuePlayer в своем приложении для воспроизведения некоторых мультимедиа. Я пытаюсь использовать MPNowPlayingInfoCenter, чтобы показать текущий статус воспроизведения, когда приложение работает в фоновом режиме. Моя проблема в том, что кнопка воспроизведения всегда отображается, даже когда воспроизводится мультимедиа. Я устанавливаю информацию о воспроизведении с помощью следующего кода:

 NSDictionary *songInfo = @{
                           MPMediaItemPropertyTitle: title,
                           MPMediaItemPropertyArtist: artist,
                           MPMediaItemPropertyAlbumTitle: album,
                           MPMediaItemPropertyPlaybackDuration: duration,
                           MPNowPlayingInfoPropertyPlaybackRate: @(1.0f),
                           MPNowPlayingInfoPropertyElapsedPlaybackTime: @(0.0f)
                           };

[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:songInfo];

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

Если это уместно, я устанавливаю категорию AVAudioSession на AVAudioSessionCategoryPlayback.

NSError *sessionError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback
                                       error:&sessionError];
[[AVAudioSession sharedInstance] setActive: YES error: NULL];

person squarefrog    schedule 15.12.2014    source источник


Ответы (1)


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

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
person squarefrog    schedule 15.12.2014