Vimeo随机搜索()&玩

时间:2011-10-14 12:11:17

标签: vimeo

我一直在寻找一种方法让我们网站上的Vimeo播放器以从阵列中随机挑选的偏移量开始。

我发现Vimeo API提供了一个名为seekTo()的函数,在Vimeo site中描述如下:

  

寻找视频中的指定点。会保持不变   播放/暂停状态。 Flash播放器不会搜索已加载的内容   这一点,HTML播放器无论如何都会寻找那个位置   大部分视频已加载。

严格说来,这有效:页面加载,视频进度指示器设置为所选的偏移量。但是,如果视频开始播放,则从头开始。无论我如何启动视频,都会发生这种情况(iframe src属性中的自动播放,API的“播放”功能,视频上的播放按钮)。

我发现了类似问题的讨论,虽然他们关注Flash播放器以及视频需要加载的事实,而上面的描述说它不应该是HTML版本的问题。

下面,您可以在自动播放添加到网址的版本中找到我的HTML和JS。如果有人对此类问题有任何经验,我们将非常感谢您的帮助。

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=1&amp;api=1&amp;player_id=vimeoframe&amp;title=0&amp;byline=0&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 个答案:

答案 0 :(得分:0)

也许这有助于您了解Vimeo API的工作原理。我认为你的整个JSON事情正在变得比它需要的更难。 http://labs.funkhausdesign.com/examples/vimeo/froogaloop2-api-basics.html