Включенное видео на YouTube активируется слишком поздно, чтобы принять вызов JavaScript - PullRequest
0 голосов
/ 27 октября 2010

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

<a href="javascript:play('xxxxxxxxxxx')">Video 1</a>
<a href="javascript:play('xxxxxxxxxxx')">Video 2</a>

xxxxxxxxx представляют идентификаторы видео YouTube.

Вот функция воспроизведения:

function play(id)
{
    ytplayer.style.display = 'block';
    ytplayer.loadVideoById( id, 0, 'hd1080' );
}

Это принципиальнодовольно просто!Но вот проблема.так как видеоплеер скрыт, флэш-объект не активирован.Поэтому, когда я нажимаю ссылку на видео, строка ytplayer.style.display = 'block'; отображает видеопроигрыватель, но для загрузки флэш-памяти требуется примерно полсекунды.В течение этого времени он не может принимать вызовы каких-либо методов, например, следующую строку ytplayer.loadVideoById( id, 0, 'hd1080' );.По сути, мне нужно дважды щелкнуть ссылку, один раз, чтобы загрузить проигрыватель флэш-видео, второй раз, чтобы фактически загрузить видео в проигрыватель.

1 Ответ

0 голосов
/ 27 октября 2010

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

onYouTubePlayerReady(playerid)

(взято с этой страницы: http://code.google.com/apis/youtube/js_api_reference.html)

В этой функции вы можете делать любые вызовы, требующие загрузки плеера:

ytplayer.loadVideoById( id, 0, 'hd1080' );

Если вы не используете проигрыватель Chromeless, вам может потребоваться прослушивать события onStateChange и onError.

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