上传视频或音乐时获取时长信息
在这篇文章中,我们介绍了如何使用JavaScript来获取上传视频或音乐的时长信息。首先,我们使用`URL.createObjectURL()`方法创建一个表示文件或Blob对象的URL,然后通过监听`loadedmetadata`事件来获取音频或视频的元数据,包括时长。对于音乐,我们还尝试了使用`Audio`对象来获取时长。这种方法简单且高效,特别适用于处理文件类型的数据。

上传视频或音乐时获取时长信息

1. 视频时长获取

VUE中使用的一个方式

    handleBeforeUpload(file) {
      const that = this
      var video = document.createElement('video')
      video.src = URL.createObjectURL(file)
      video.oncanplay = function() {
        var duration = video.duration
        console.log('视频长度:', duration)
        that.$emit('duration', Math.ceil(duration))
      }
    },

2. 音乐时长获取

    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="file" id='upload'>
<button onclick='getTimes()'>获取时长</button>
</body>
<script>
    function getTimes() {
        var obj_file = document.getElementById("upload");
        var content = obj_file.files[0]
        console.log(content)
        //获取录音时长
        var url = URL.createObjectURL(content);
         //经测试,发现audio也可获取视频的时长
        var audioElement = new Audio(url);

        var duration;
        audioElement.addEventListener("loadedmetadata", function (_event) {
            duration = audioElement.duration;
            console.log(duration/60);
        });
    }
</script>
</html>

对以上代码进行简单说明:

1.**URL.createObjectURL() **静态方法会创建一个 DOMString,其中包含一个表示参数中给出的对象的URL。这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的URL 对象表示指定的 File 对象或 Blob 对象。(个人感觉可以把对象转换成url使用,十分灵活方便,特别是对于文件对象)。

2.loadedmetadata 当指定的音频/视频的元数据已加载时,会发生 loadedmetadata 事件。音频/视频的元数据包括:时长、尺寸(仅视频)以及文本轨道。

咻兔哔
咻兔哔·2021年11月20日

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处

推荐文章

一大波正则验证来袭请接收
前端技术

一大波正则验证来袭请接收

本文介绍了一些常用的表单验证工具,包括any-rule、JS开发技巧、火车车次、手机机身码、必须带端口号的网址、网址(支持端口和"?"+参数)、统一社会信用代码、迅雷链接、ed2k链接、磁力链接、子网掩码、linux文件夹路径、linux文件路径、window文件夹路径、window下文件路径、股票代码(A股)以及大于等于0, 小于等于150, 支持小数位出现5, 如145.5, 用于判断考卷分数。这些工具可以帮助开发者在网页中进行有效的表单验证,提高用户体验。

3月16日0
仿小说APP滑动翻页效果实现
前端技术

仿小说APP滑动翻页效果实现

这段代码是一个使用CSS3实现的左右滑动翻页效果,主要利用了`transform: translateX(0px)`和`transform: translateX(125px)`两个属性来实现左右滑动的效果。具体来说,当页面滚动到左边时,`transform`属性设置为`translateX(0px)`,使左边的内容显示出来;当页面滚动到右边时,`transform`属性设置为`translateX(125px)`,使右边的内容显示出来。需要注意的是,这个效果需要在支持CSS3的浏览器中才能正常显示,例如Chrome、Firefox等。同时,由于使用了JavaScript控制滚动条的位置,所以在实际使用时可能需要配合其他代码来实现具体的功能。

3月10日0
AceAdmin 菜单定位
前端技术

AceAdmin 菜单定位

这段代码是关于Ace Admin后台模版的,它通过JavaScript根据URL来判断显示哪块内容。具体来说,它首先获取URL的路径部分和查询参数部分,然后遍历所有的链接,如果链接的href属性与当前URL的路径部分相同,那么就给这个链接添加一个"active open"的类名,表示这个链接是打开的并且是活动的。

1月17日0