Вопрос по background-audio, ios, avaudiosession, avaudioplayer, mpnowplayinginfocenter – AVAudioPlayer на экране блокировки

7

мы реализовали аудиоплеер, используяAVAudioPlayer (неAVPlayer). Я'Я могу обрабатывать события дистанционного управления следующим методом. Пока все работает нормально, но я вижу еще дваsubtypes для этих событий:UIEventSubtypeRemoteControlEndSeekingForward а также .UIEventSubtypeRemoteControlEndSeekingBackward

- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
    //if it is a remote control event handle it correctly
    if (event.type == UIEventTypeRemoteControl)
    {
        if (event.subtype == UIEventSubtypeRemoteControlPlay)
        {
            [self playAudio];
        }
        else if (event.subtype == UIEventSubtypeRemoteControlPause)
        {
            [self pauseAudio];
        }
        else if (event.subtype == UIEventSubtypeRemoteControlTogglePlayPause)
        {
            [self togglePlayPause];
        }
        else if (event.subtype == UIEventSubtypeRemoteControlBeginSeekingBackward)
        {
            [self rewindTheAudio]; //this method rewinds the audio by 15 seconds.
        }
        else if (event.subtype == UIEventSubtypeRemoteControlBeginSeekingForward)
        {
            [self fastForwardTheAudio]; //this method fast-forwards the audio by 15 seconds.
        }

}

Итак, вопросы:

Чтобы все работало правильно, я должен также реализовать эти два подтипа?

Этот метод включает толькоrewindplay/pause, а такжеfast forward кнопки на экране блокировки, но это не так• отображать заголовок файла, обложку и продолжительность. Как я могу отобразить эту информацию, используяAVAudioPlayer или жеAVAudioSession (Я ненеужели еще одна библиотека / API для реализации этого)?

2-а. Я узналMPNowPlayingInfoCenter во время поиска и я нене знаю много об этом. Должен ли я использовать это для реализации этих вещей выше? : - [

За что именно проголосовал против? Neeku

Ваш Ответ

1   ответ
10

Ты прав,MPNowPlayingInfoCenter это единственный способ сделать это. Так что давай и связь сMediaPlayer.framework, В классе, который обрабатывает воспроизводимые треки, импортируйте, Всякий раз, когда ваш трек меняется, сделайте это:

NSDictionary *info = @{ MPMediaItemPropertyArtist: artistName,
                            MPMediaItemPropertyAlbumTitle: albumName,
                            MPMediaItemPropertyTitle: songName };

    [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = info;
Спасибо Патрик; а как насчет первого вопроса? Они тоже должны быть реализованы? Neeku

Похожие вопросы