【问题标题】:Javascript or jQuery for getting the length of a video file before playing the video用于在播放视频之前获取视频文件长度的 Javascript 或 jQuery
【发布时间】:2012-01-02 15:38:56
【问题描述】:

在播放视频文件之前,是否有任何有用的 Javascript 或 JQuery 插件可用于获取视频的长度(例如 mp4、flv - 我可以接受任何视频格式,只要我可以获得视频长度)?

更新 1:

<video controls>
 <source src="video.mp4" onerror="fallback(this.parentNode)">
 video not supported
</video>

<script>
document.write("The duration is: " + video[0].duration);
</script>

【问题讨论】:

    标签: javascript jquery video


    【解决方案1】:

    如果您使用的是 HTML5 视频元素,您可以使用“持续时间”属性获取,该属性将在 sec 内返回。

    https://www.w3.org/TR/2011/WD-html5-20110113/video.html#dom-media-duration

    否则,您可能需要从服务器端获取所需的信息。

    【讨论】:

    • 嗨凯,我添加了基于 HTML5 语法的代码,但似乎没有显示视频的时长。有什么见解吗?
    【解决方案2】:

    您可以对目标文件发出 HEAD 请求并获取文件大小。如果没有关于文件细节的额外信息(即,它是如何编码的),您将无法确定地计算持续时间。

    可以在this similar question 的已接受答案中找到使用 jQuery 的此类请求示例。

    请注意,如果请求被发送到提供 javascript 的域,那么在浏览器中执行此操作会很幸运。如果您希望发出跨域请求,那么在服务器端使用更多的东西可能会为您提供更好的服务。

    【讨论】:

      【解决方案3】:

      为了扩展 Kai 的回答,duration 属性仅适用于 HTML5 视频元素。您应该查看 http://mediaelementjs.com/ 以帮助为旧浏览器中的 api 调用提供 shim。

      看起来他们已经实现了 duration() 方法https://github.com/johndyer/mediaelement/wiki/Events-and-Methods

      【讨论】:

        猜你喜欢
        • 2019-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-27
        • 2021-05-02
        • 1970-01-01
        • 1970-01-01
        • 2011-02-07
        相关资源
        最近更新 更多