23

这段代码工作了一会儿,但我认为链接发生了变化,导致第二天找不到它?
Firefox/Chrome/Opera下播放的视频...如何让video标签永久播放该视频?!

<video width="480" height="270" controls="controls" style="color:green;">
  <source src="youtubelink" type="video/mp4">
  <source src="youtubelink" type="video/ogg">
  <source src="youtubelink" type="video/webm">
Your browser does not support the video tag.
</video>
4

1 回答 1

28

没有真正可靠的方法可以在真实视频标签中实际播放 YouTube 视频。YouTube 不希望你这样做,这可能违反了他们的服务条款。无论如何,该 URL 可能会定期更改,无论 YT 是否调整其基础架构,或者他们会竭尽全力阻止人们直接访问视频文件。

但是,如果您使用视频标签,您可以采取一些步骤来完成您可以做的所有事情。首先,您可以在嵌入中添加“html5=1”提示,这将告诉 youtube 使用 html5 视频而不是 Flash(它通常符合,但并非总是如此)。视频将在 iframe 中,但您可以将所有常用的 CSS 技巧应用于该 iframe - 不透明度、变换等。

如果您使用的是 YouTube API,请添加html5: 1playerVars. 如果您只是直接嵌入 iframe,请将其添加到查询字符串中,如下所示: http ://www.youtube.com/embed/okqEVeNqBhc?html5=1

现在,如果你想更进一步,Popcorn.js 现在为 YouTube API 提供了一个漂亮的包装对象,它将使 YouTube(他们也为 Vimeo 提供一个)视频表现得像一个 HTMLVideoElement,具有大多数相同的属性,方法和事件。它并不完美,但它非常好。

注意:该文件的官方来源位于mozilla/popcorn-js存储库中,但文件目前正在修复错误和功能。您需要包含最新版本的 Popcorn.js 和wrappers/common/popcorn._MediaElementProto.js来自该 repo 的内容。确保&html5=1在设置src.

您会注意到的差异是:

  • 即使使用包装器,HTML5 视频 API 的性能也比 YT API 好一点。例如,更灵敏和更好的缓冲报告。

  • 您无法摆脱在暂停或鼠标悬停时显示的右下角的 YouTube 图标。

  • 您无法阻止 YouTube 展示广告。

  • 您无法访问音频 API 和 canvas/webgl 绘图之类的实际视频/音频内容。但是由于跨域限制,您无论如何都不能这样做。

于 2012-11-24T18:35:59.460 回答