【问题标题】:Vimeo random seekTo() & playVimeo 随机 seekTo() 和播放
【发布时间】:2011-12-07 17:13:35
【问题描述】:

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

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

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

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

我发现了类似问题的讨论,虽然他们关心的是 Flash 播放器和需要加载视频的事实,而上面的描述说它不应该是 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=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);
}

【问题讨论】:

  • 我正在寻找的另一种可能的解决方案是 Vimeo 的“Hubnut”,但在这种情况下,我需要一种方法来消除每两个视频之间的五秒钟“下一个视频即将到来”消息而且,更重要的是,一种从播放列表中选择首先选择哪个视频的方法。有没有人尝试过这些东西?还是我应该开始投入精力来说服团队领导改用 Youtube?
  • 问题是你的JS运行后Flash视频正在加载。您是否有机会使用 jQuery?如果是这样,请将您的 JS 包装在 jQuery(document).ready() 函数中。

标签: vimeo


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-14
    • 2023-01-23
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多