js获取上传视频的时长(video标签获取视频时长)

本文介绍了一种使用HTML5和JavaScript结合的方式,通过video标签来获取上传视频文件的时长。具体实现包括利用File API读取文件,创建Object URL,以及使用Audio对象的loadedmetadata事件监听器来捕获并输出视频的时长。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

h5配合javascript 通过video标签获取视频时长


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="file" id='upload'>
<button onclick='getVideoTime()'>获取时长</button>
</body>
<script>
    function getVideoTime() {
        var fileVIdeo =  document.getElementById("upload").files[0]
        var url = URL.createObjectURL(fileVIdeo);
        var audioElement = new Audio(url);
        audioElement.addEventListener("loadedmetadata", function (_event) {
            var duration = audioElement.duration;
            console.log("视频时长:"+duration+"秒");
        });
    }
</script>
</html>

 

### 获取 HTML5 Video 标签中的视频时长JavaScript 中,可以通过访问 `HTMLVideoElement` 的 `duration` 属性来获取视频总时长。然而,在实际操作中需要注意的是,只有当浏览器成功加载并解析了视频元数据之后,才能正确读取到该属性的值[^1]。 以下是实现这一功能的具体方法: #### 使用原生 JavaScript 实现 可以监听 `<video>` 元素上的 `loadedmetadata` 事件,此事件会在视频的元数据(包括时长)被加载完成时触发。一旦接收到该事件,则可以直接通过 `video.duration` 来获得视频长度。 ```javascript const video = document.getElementById(&#39;video&#39;); video.addEventListener(&#39;loadedmetadata&#39;, function() { console.log(`视频时长为 ${this.duration} 秒`); }); ``` 如果是在 Vue.js 或其他框架环境中工作,并且已经定义了一个自定义函数用于处理播放准备就绪的情况 (如引用所提到的例子),那么可以在那个回调里安全地调用 `getDuration()` 方法或者直接打印出 `this.$refs.vueMiniPlayer.duration`. #### 结合Vue组件实例化后的生命周期钩子执行逻辑 对于像您给出那样的 Vue 组件模板代码片段[^2], 可能需要确保在 DOM 完全渲染后再尝试去触碰这些元素及其特性: ```javascript export default { mounted(){ const vm = this; let vidElm = this.$refs[&#39;vueMiniPlayer&#39;]; vidElm.addEventListener(&#39;loadedmetadata&#39;, () => { console.log(vidElm.duration); // 输出视频时长 }); } } ``` 以上脚本展示了如何利用现代前端开发技术栈内的工具链有效地提取多媒体资源的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值