Автоматически пропускать видео в YouTube при возникновении ошибки с помощью YouTube Android SDK

Я пытаюсь создать приложение, которое воспроизводит список видео. Это очень простая реализация, основанная на примерах API.

Плейлист (массив video_ids) загружается с помощью player.loadVideos метод. Изменения в состоянии игрока отслеживаются с помощью реализации PlayerStateChangeListener,

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

При возникновении ошибки при воспроизведении видео (например, YouTubePlayer.ErrorReason.NOT_PLAYABLE), он попадает в плен onError метод PlayerStateChangeListenerи я звоню player.next() там перейти к следующему видео.

Тем не мение, player.next не работает после того, как произошла ошибка - в основном, когда есть ошибка, я ничего не могу сделать, чтобы пропустить это видео и воспроизвести следующее, поставленное в очередь в списке воспроизведения.

1 ответ

При возникновении ошибки проигрывателя во время воспроизведения плейлиста YouTubePlayer вызов next() не имеет никакого эффекта. Я считаю, что это потому, что ошибки в YouTubePlayer не подлежат восстановлению. Решение состоит в том, чтобы перезагрузить список воспроизведения со следующим индексом списка воспроизведения.

Итак, чтобы отслеживать текущий индекс списка воспроизведения,

@Override   // YouTubePlayer.PlaylistEventListener
public void onPrevious() 
{
    mPlaylistIndex--;
}

@Override   // YouTubePlayer.PlaylistEventListener
public void onNext() 
{
    mPlaylistIndex++;
}

Затем в onError()

@Override   // YouTubePlayer.PlayerStateChangeListener
public void onError(YouTubePlayer.ErrorReason errorReason) 
{
    Log.d(TAG, "YouTubePlayer error: " + errorReason);

    // Check if the mContentId is of kind video or playlist,
    // if video, there is nothing you can do, end playback.

    // Check if the mPlaylistIndex is the last video in playlist,
    // if so, there is nothing you can do, end playback.

    mPlaylistIndex++;
    mYouTubePlayer.loadPlaylist(mContentId, mPlaylistIndex, 0);
}
Другие вопросы по тегам