【问题标题】:Javascript - Adding Video Element features to embedded Youtube contentJavascript - 向嵌入的 Youtube 内容添加视频元素功能
【发布时间】:2016-05-24 21:12:02
【问题描述】:

让我从我已经拥有的开始: HTML5:

<video id= "video" preload=auto autoplay controls>
<source src = "http://www.w3schools.com/html/mov_bbb.mp4">
</video>

JS:

<script>
video.addEventListener("loadedmetadata", start);
var track;
var data;
var currentX, currentY;
function start(){
    data = video.getBoundingClientRect();
    track = video.addTextTrack("captions", "English", "en");
    video.addEventListener("mousemove", movement);         

}
function movement(e){
    currentX = e.clientX, currentY = e.clientY;

}
</script>

如您所见,我有基本的 HTML5 视频元素,我会在其中添加事件并稍后以各种方式进行操作。我对这些事件所做的其中一件事是通过对 Node 服务器的 ajax 调用将动态字幕(addTextTrack)添加到我的 HTML5 视频中。一切正常,但这是实际问题:

我希望能够使用 youtube API 完成所有这些事情:

 <iframe width="560" height="315" src="https://www.youtube.com/embed/QtXby3twMmI" frameborder="0" allowfullscreen></iframe>

但不能做上面列出的许多事情,因为 youtube 提供了一个可以使用的 iframe。

最后一件事,我很欣赏不使用 jQuery 或大型库的解决方案,因为最后,我自己向客户建议了一个 API,我不想在他们身上强加大型库。谢谢。

【问题讨论】:

  • 确实,那里有一些功能,但我没有找到添加侦听器的方法,例如通过鼠标在元素上移动获取绳索信息,或者如何添加轨道(addTextTrack)......
  • 抱歉不知道其他方法

标签: javascript html video youtube


【解决方案1】:

您可以使用这个很棒的 Plyr 软件包并通过以下方式安装它:npmbowerEmber使用一个CDN

  • 这是语义(&lt;video&gt; 标签)
  • 响应式
  • 适用于 Youtube 和 Vimeo
  • 用“vanilla”JavaScript 编写(无库依赖)

并且总重量小于 60 Kb 完全可以接受。

到目前为止,我认为这是最好的选择 :) 希望对您有所帮助。

【讨论】:

  • 据我所知,他们允许您将我上面提到的事件监听器添加到非 YouTube 视频中。他们的 youtube API 仍然只是他们操作的 Iframe,我认为您不能在该 Iframe 事件侦听器中添加字幕和 mousemove,如果您认为可以演示的话?
  • 我昨天正在尝试,但不知道该怎么做,srr
  • 是的,这可能是因为 iframe 的限制不允许您这样做...
【解决方案2】:

您可以使用 youtube 提供的选项,这些选项可用 here 或者如果这些限制您可以 使用youtube-dl 下载视频并将其托管在您的服务器上。然后您就可以像使用其他 html5 视频一样使用它了。

警告:使用 youtube-dl 可能不合法(它违反了 Google 的服务条款)。请先咨询律师。

【讨论】:

  • 您到底在暗示什么,我将通过某种注册方式下载他们需要的每个 youtube 视频,然后通过视频元素将其流式传输给我的客户?我暂时做不到。太多的资源处于危险之中。
  • @RunningFromShia 我想不出其他方法
猜你喜欢
  • 1970-01-01
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多