【问题标题】:HTML5 video height and width through javascriptHTML5视频高度和宽度通过javascript
【发布时间】:2011-07-28 09:34:32
【问题描述】:

我正在尝试使用简单的 javascript 从视频中获取并打印出宽度和高度属性,但由于某种原因我无法管理。

这是javascript

video = document.getElementsByTagName("video")[1];
span1 = document.getElementById("dimensions");
span1.innerHTML = video.videoWidth + " x " + video.videoHeight;

这是它影响的html5代码(这是html结构中的第二个视频标签)

<figure>
<video controls>
<source src="video.webm" type="video/webm">
</video>
</figure>
<p>
Dimensions: <span id="dimensions"></span>
</p>

非常感谢,我是初学者,所以请轻点。

【问题讨论】:

  • 视频是 webm 格式,目前只能在 Chrome 中播放

标签: javascript html5-video


【解决方案1】:

根据您的标记,您的索引不会返回您想要的元素。索引是从零开始的,因为节点列表类似于数组并且从 0 开始索引。

var video = document.getElementsByTagName("video")[0];

编辑:抱歉,没看到你说这是第二个视频标签。在那种情况下,我不确定,因为它对我有用:http://jsfiddle.net/3wCYz/1/

您可能想尝试的一件事是将用于获取宽度和高度的代码放在您的视频标签上的处理程序中,该处理程序会侦听loadedmetadata 事件:

video.addEventListener("loadedmetadata", dimensionFunction, false);

其中 dimensionFunction 是一个函数,可以执行您已经在执行的操作来获取维度。

这样做是确保在您尝试抓取视频之前已下载视频的元数据。

【讨论】:

  • 我添加了一个监听器,也尝试了1秒延迟,它只在Chrome中运行良好,可能是因为其他浏览器不支持webm?它在 Firefox 中显示 0 x 0 并带有时间延迟,而侦听器则没有。但是,嘿,在 Chrome 中一切正常:D 谢谢
  • @3mpetri 在这种情况下,您应该将脚本移动到 html 代码下方。或者让你的脚本在onload 事件中执行。我强烈建议不要使用延迟。
  • 同意将其放入 onload 事件中。要让它在其他浏览器上播放,只需将其编码为 mp4 和 ogv,您将涵盖所有支持 html5 的浏览器。使用各种免费工具进行编码非常容易 - 我使用 Miro Converter:mirovideoconverter.com
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-08
  • 2013-12-06
  • 1970-01-01
相关资源
最近更新 更多