js获取音频时长

这篇具有很好参考价值的文章主要介绍了js获取音频时长。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上传音频文件时,需要将音频时长一起上传,纯 JavaScript 获取音频时长:使用 HTML5 的 Audio 对象和 duration 属性

方法1

// 使用`new Audio()`构造函数创建一个`Audio`对象,将音频文件的URL作为参数传入
// const audio = new Audio(this.audioSrc) // 【可能出现的问题】this.audioSrc(文件上传接口返回的地址)作为音频链接可能出现下图获取不了音频时长的问题,可以将File转为链接 const audio = new Audio(URL.createObjectURL(file.raw))
const audio = new Audio(URL.createObjectURL(file.raw))
// 由于音频需要加载完成才能获取到正确的时长信息,因此需要监听`canplaythrough`事件,该事件表示音频已加载完毕并可以播放。在事件回调函数中进行后续操作。
audio.addEventListener('canplaythrough', () => {
  console.log('audio----', audio)
  console.log('audio.duration----', audio.duration)
  const duration = audio.duration // 在音频加载完成后,通过`audio.duration`获取音频的时长
  // 由于音频需要加载完成才能获取到正确的时长信息,因此在监听事件之前可能无法获取到时长。
  console.log('duration----', duration)
})

js获取audio时长,项目问题,JavaScript,javascript,音视频,开发语言

来源

方法2


// 选择文件(音视频)的标签,uploadFile是回调函数
<input type="file" @change="uploadFile">
 
// js
uploadFile(event) {
  var urlFile = event.target.files[0] // 获取链接
  console.log('urlFile----', urlFile)
  var url = URL.createObjectURL(urlFile) // 动态创建一个链接
  var videoTime = ''
  // 判断音频还是视频,创建不同的音视频标签
  // var videoElem =
  //   video.type.indexOf('audio') == -1
  //     ? document.createElement('video')
  //     : document.createElement('audio')
  var videoElem = document.createElement('audio')
  videoElem.src = url // 向标签注入链接
  videoElem.oncanplaythrough = function () {
    // 获取时长,并向下取整
    videoTime = Math.floor(videoElem.duration)
    console.log('videoTime----', videoTime)
  }
},

来源文章来源地址https://www.toymoban.com/news/detail-769837.html

到了这里,关于js获取音频时长的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【javascript】js获取数组中数值最大的数

    一、借助apply()的参数,获得最大值 由于max()里面参数不能为数组,所以借助apply(funtion,args)方法调用Math.max(),function为要调用的方法,args是数组对象,当function为null时,默认为上文,即相当于apply(Math.max,arr) 二、借助call()的参数,获得最大值 call()与apply()类似,区别是传入参数

    2024年02月11日
    浏览(41)
  • JavaScript获取时间(js中的new Date(),获取前7天时间)

    简述:我们在写Echarts的时候,难免会用到js中的new Date(),用来获取时间, 今天就来分享下它的用法,顺便做下笔记。 关于new Date()的一些js方法: 输出: 1、 获取前一段时间的日期 难点: 这里用到了setDate()方法,该方法用于实现日期的相加减,它接收一个整数,如果这个整

    2024年02月09日
    浏览(79)
  • JS中常用的的选择器,JavaScript获取HTML标签元素

    getElementById是JavaScript中的一个DOM方法,用于根据元素的id属性获取HTML文档中的元素。该方法接受一个字符串参数,即元素的id属性值,并返回具有该id属性值的元素。如果没有找到匹配的元素,则返回null。 以下是一个示例,演示如何使用getElementById获取页面中的元素: 在这个

    2024年02月04日
    浏览(56)
  • java获取一段音频/mp3的时长

    引言 在日常开发中,经常会遇到产品经理提出一个需求“上传音乐/音频”,而且还得显示出音频的播放时长。那我们直接世界上最简单的实现方案,必须是最简单,多一句啰嗦不准点赞。 How to do 1.提前引入包 2.逻辑实现

    2024年01月25日
    浏览(40)
  • JAVA获取视频音频时长 文件大小 MultipartFileUtil和file转换

    java 获取视频时长_java获取视频时长_似夜晓星辰的博客-CSDN博客 可以转换文档也可转换视频

    2024年02月14日
    浏览(57)
  • 【JavaScript】JS能力测试题:数组扁平化 | 判断质数 | 获取字符串的长度

    💎个人主页: 阿选不出来 💎个人简介: 大三学生,热爱Web前端,随机掉落学习碎片 💎目前开发的专栏: JS 🍭Vue🍭React🍭 💎祝愿今天的你比昨天更加博识了! 题目描述 请补全JavaScript代码,要求将数组参数中的多维数组扩展为一维数组并返回该数组。 注意: 数组参数中仅

    2024年02月07日
    浏览(56)
  • JavaScript中的时间日期函数new Date()(JS中5种获取时间戳的函数)

    简介: JavaScript 中的 new Date() 方法用于创建一个新的 Date 对象,该对象表示当前日期和时间。Date 对象提供了许多方法和属性,可以用于获取和设置日期和时间信息。 new Date([year, month, day, hour, minute, second, millisecond]) 其中,每个参数都是可选的。如果没有指定参数,则 new Dat

    2024年02月04日
    浏览(73)
  • javaScript和jQuery获取、设置textarea标签的内容(常见问题)

    昨天晚上在写代码的时候前端遇到一个bug,在js取值textarea中,我使用了getElementById方法对textarea标签取值,但不论如何取值,始终无法成功取到页面上输入的值并进行Ajax请求,一开始以为是ajax与后端接口之间数据传输出问题了,后来经过排查,就是对于textarea标签取值失败的

    2024年02月05日
    浏览(43)
  • JavaScript:解决计算精度问题/mathjs/bignumber.js/big.js/decimal.js

    一、计算精度现象举例 举例1、加法 举例2、减法    举例3、乘法 举例3、除法 二、JS为什么会有计算精度的问题 JavaScript 内部只有一种数字类型Number,也就是说,JavaScript 语言的底层根本没有整数,所有数字都是以IEEE-754标准格式64位浮点数形式储存,1与1.0是相同的。因为有

    2024年02月10日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包