如何更改you-tube iframe中包含的html5视频中的playbackRate?

时间:2015-07-20 19:16:25

标签: html5 video cross-domain

有一个Chrome扩展程序,允许为you-tube iframe中包含的html5视频设置和更改playbackRate。

我想在Firefox上做同样的事情(或者更好,独立于浏览器)。

我想知道我是否必须通过附加组件这样做(为了能够发送消息传递站点,因为我的html不在你的管上,但我的视频是),或者是否有更简单的方式(甚至可能跨浏览器工作。)

对此事的任何想法都会有用。

根据Rachel Gallen的优秀建议(在评论中),这里有一些我尝试过的事情:

$(function (){
  // a convenient way to get at things once the page renders
  $("button#stop-me").click(function() {
    var mytags = document.getElementsByTagName("video");
  });
});

$(function (){
  // a convenient way to get at things once the page renders
  $("button#stop-me").click(function() {
    var myframe = document.getElementsByTagName("iframe");
    for(p in myframe)
    {
      var mytags = myframe.document.getElementsByTagName("video");
    }
  });
});

$(function (){

  document.addEventListener('DOMNodeInserted', function(event) {
    var node = event.target || null;
    if (node && node.nodeName === 'VIDEO') {
      nodeList.push(node);
    }
  });

  $("button#stop-me").click(function() {
    alert(nodeList.length);
  });
});

第一个返回一个空的“mytags”。

第二个返回iframe列表但是myframe.document调用上的错误(正如预期的那样)。

第三个on永远不会命中nodeList.push(node)行并显示0表示计数(如预期的那样)

2 个答案:

答案 0 :(得分:0)

如果可能,最好使用Youtube的API。你不知道Youtube会展示什么,它可能(例如)甚至不是HTML5视频,它可能是像flash这样的东西。因此虽然有可能破解这一点,但这不是最好的方法。

答案 1 :(得分:0)

我没有测试过这个,但它应该可行

document.getElementsByTagName("video")[0].playbackRate = 1.2应该加速到速度的1.2倍

(同样0.7会减慢速度等)