Vimeo random seekTo () и воспроизведение

#vimeo

#vimeo

Вопрос:

Я искал способ заставить проигрыватель Vimeo на нашем веб-сайте запускаться со смещением, случайным образом выбранным из массива.

Я обнаружил, что API Vimeo предоставляет функцию с именем seekTo(), описанную на сайте Vimeo следующим образом:

Выполняется поиск в указанной точке видео. Будет поддерживать то же состояние воспроизведения / приостановки. Проигрыватель Flash не будет искать дальше загруженной точки, в то время как проигрыватель HTML будет искать это место независимо от того, сколько видео было загружено.

Строго говоря, это работает: страница загружается, а индикатор выполнения видео устанавливается с выбранным смещением. Однако, если видео начинает воспроизводиться, оно начинается с самого начала. Это происходит независимо от того, как я запускаю видео (автозапуск в src-атрибуте iframe, ‘play’ — функция API, кнопка воспроизведения на видео).

Я нашел обсуждения подобных проблем, хотя они касались Flash Player и того факта, что видео необходимо загрузить, тогда как в описании выше говорится, что это не должно быть проблемой с версией HTML.

Ниже вы можете найти мои HTML и JS в версии с автозапуском, добавленным к URL. Если у кого-нибудь есть опыт работы с такого рода проблемами, любая помощь будет высоко оценена.

HTML-код:

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>bla</h1>
    <iframe id="vimeoframe" src="http://player.vimeo.com/video/29705942?autoplay=1amp;amp;api=1amp;amp;player_id=vimeoframeamp;amp;title=0amp;amp;byline=0amp;amp;portrait=0" width="521" height="293" frameborder="0"></iframe>
    <script type="text/javascript" src="../common/templates/template3/js/vimeo.random.js"></script>
</body>
</html>
  

JS:

 if (window.addEventListener){
    window.addEventListener('message', onMessageReceived, false);
} else { // IE
    window.attachEvent('onmessage', onMessageReceived, false);
}
function onMessageReceived(e) {
    var data = JSON.parse(e.data);
    if (data.event === 'ready') {
        seekTo();
    }
}
function seekTo(){
    var videoCuts = [20,40,60]; //to be filled with actual cuts provided by Sven
    var vimeoStartPoint = videoCuts[Math.floor(Math.random()*videoCuts.length)];
    var vimeoframe = document.getElementById("vimeoframe");
    var url = "http://player.vimeo.com";
    var vimeoJSONObject = JSON.stringify({method:"seekTo",value:vimeoStartPoint});
    vimeoframe.contentWindow.postMessage(vimeoJSONObject,url);
}
  

Комментарии:

1. Другим возможным решением того, что я ищу, является «Hubnut» от Vimeo, но в этом случае мне понадобится способ устранить пятисекундное сообщение «следующее видео идет» между каждыми двумя видео и, что более важно, способ выбрать, какое видео из списка воспроизведения выбирается первым. Кто-нибудь пробовал что-нибудь из этих вещей? Или я должен начать вкладывать свою энергию в попытки убедить тимлида вместо этого перейти на Youtube?

2. Проблема в том, что флэш-видео загружается после запуска JS. Вы случайно не используете jQuery? Если это так, оберните JS в jQuery (документ). функция ready().

Ответ №1:

Возможно, это поможет вам понять, как работает API Vimeo. Я думаю, что вся ваша штука с JSON делает ее намного сложнее, чем нужно. http://labs.funkhausdesign.com/examples/vimeo/froogaloop2-api-basics.html