获取视频时长:JavaScript 实现方案

DDD
发布: 2025-11-20 12:04:29
原创
689人浏览过

获取视频时长:javascript 实现方案

本文将介绍如何使用 JavaScript 从视频链接中提取视频时长。通过监听 `loadeddata` 事件,确保视频元数据加载完毕后,即可获取准确的时长信息。本文提供详细的代码示例,帮助开发者轻松实现视频时长的提取和展示。

使用 JavaScript 获取视频时长

在网页中展示视频时,有时需要获取视频的时长并显示给用户。由于视频的元数据(包括时长)需要一定时间加载,因此直接访问视频元素的 duration 属性可能无法立即获取到正确的值。正确的做法是监听视频元素的 loadeddata 事件,在该事件触发后,再获取视频时长。

HTML 结构

首先,需要在 HTML 中添加一个 video 标签,并指定视频的 src 属性。

立即学习Java免费学习笔记(深入)”;

<h1>视频时长</h1>
<button onclick="getVideoLength()" type="button">获取视频长度</button><br>

<video id="myVideo">
    <source src="https://firebasestorage.googleapis.com/v0/b/qriositynet-dev.appspot.com/o/chat%2FMgttfKqKIDhQ6bgtgy6V%2Fvideos%2F1663229371400watermelon-bunny.mp4?alt=media&token=722bb260-c65b-46fe-8805-4a5a742f282d" type="video/mp4" />
</video>
登录后复制

JavaScript 代码

接下来,使用 JavaScript 获取视频元素,并监听 loadeddata 事件。

OmniAudio
OmniAudio

OmniAudio 是一款通过 AI 支持将网页、Word 文档、Gmail 内容、文本片段、视频音频文件都转换为音频播客,并生成可在常见 Podcast ap

OmniAudio 111
查看详情 OmniAudio
let video = document.getElementById("myVideo");

video.addEventListener('loadeddata', function() {
    console.log("视频时长:", video.duration);
    // 在这里可以进行其他操作,例如将时长显示在页面上
}, false);

function getVideoLength() {
    alert(video.duration);
}
登录后复制

代码解释

  1. document.getElementById("myVideo"): 获取 ID 为 "myVideo" 的视频元素。
  2. video.addEventListener('loadeddata', function() { ... }, false);: 为视频元素添加一个事件监听器,监听 loadeddata 事件。当视频的元数据加载完毕后,该事件会被触发。
  3. console.log("视频时长:", video.duration);: 在 loadeddata 事件处理函数中,使用 video.duration 获取视频时长,并输出到控制台。video.duration 的单位是秒。
  4. getVideoLength(): 点击按钮时,弹窗显示视频时长。

完整示例

<!DOCTYPE html>
<html>
<head>
    <title>获取视频时长</title>
</head>
<body>
    <h1>视频时长</h1>
    <button onclick="getVideoLength()" type="button">获取视频长度</button><br>

    <video id="myVideo">
        <source src="https://firebasestorage.googleapis.com/v0/b/qriositynet-dev.appspot.com/o/chat%2FMgttfKqKIDhQ6bgtgy6V%2Fvideos%2F1663229371400watermelon-bunny.mp4?alt=media&token=722bb260-c65b-46fe-8805-4a5a742f282d" type="video/mp4" />
    </video>

    <script>
        let video = document.getElementById("myVideo");

        video.addEventListener('loadeddata', function() {
            console.log("视频时长:", video.duration);
            // 在这里可以进行其他操作,例如将时长显示在页面上
        }, false);

        function getVideoLength() {
            alert(video.duration);
        }
    </script>
</body>
</html>
登录后复制

注意事项

  • 确保视频链接是有效的,并且可以被浏览器访问。
  • loadeddata 事件只会在视频元数据加载完毕后触发一次。
  • video.duration 返回的是视频的总时长,单位为秒。如果需要显示为更友好的格式(例如 "分钟:秒"),需要进行格式化。

总结

通过监听 loadeddata 事件,可以确保在视频元数据加载完毕后获取视频时长。这是一种可靠的方法,可以避免因元数据未加载而导致获取时长失败的问题。希望本文能够帮助你成功获取视频时长并在你的项目中应用。

以上就是获取视频时长:JavaScript 实现方案的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号