YouTube API - Обработка видео, которые были удалены Youtube - PullRequest
4 голосов
/ 21 ноября 2011

Вот сайт, над которым я работаю: http://t3kno.dewpixel.net/

Как вы можете видеть, есть бегущий список песен (видео с песнями на YouTube).Я реализовал такую ​​функциональность, что после воспроизведения одной песни автоматически начинается воспроизведение следующей в списке.

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

player.getPlayerState()

и ожидаю, пока состояние вернет 0 (окончено).Как только песня заканчивается, я пытаюсь загрузить следующую песню.После загрузки этой песни я звоню:

player.playVideo()

Однако, если эта песня была удалена, мне не повезло.Я хочу попытаться найти способ поймать это событие и перейти к следующей песне.Однако при попытке воспроизвести песню, которая была удалена, состояние не меняется.Значение:

function onytplayerStateChange(newState) {
//do stuff
}

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

1 Ответ

6 голосов
/ 23 ноября 2011

Вместо использования onStateChange попробуйте использовать прослушиватель событий OnError.Если он возвращает 100, то это означает, что видео было удалено или превращено в приватное.Обратитесь сюда для получения официальной документации по слушателю onError: https://code.google.com/apis/youtube/flash_api_reference.html#Adding_event_listener

Так что вы хотели бы сделать что-то вроде этого:

ytplayer.addEventListener("onError", "onPlayerError");

function onPlayerError(errorCode) {
    if(errorCode == 100)
    {
       //play next video
    }
}

Вы можете возиться с API и определить лучшийспособ поймать ошибку, перейдя сюда: https://code.google.com/apis/ajax/playground/?exp=youtube#polling_the_player

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...