根据 new FileReader() 上传的音频audio获取音频时长

在这里插入图片描述

function getAudioDuraion(url) {
    return new Promise(function (resolve) {
        let audioElement = new Audio(url);//audio获取音频时长
        audioElement.addEventListener("loadedmetadata", function (_event) {
            resolve(parseInt(audioElement.duration));
        });
    });
}
上传音频(外面)

$(document).on('change','[data-role="hwUploadaudio"]',function(input){
	if (homeworkTime <= 0 && stutaskData.status == '01') {
	    errorMsg('该作业已过期');
	    return;
	}
	let uploadfile = input.currentTarget.files[0];
	$(this).val('');
	if(!uploadfile){
	    return;
	}
	var filetype = uploadfile.type.split(".")[0];
	if (!window.FileReader) {
	    errorMsg('该浏览器不支持文件上传');
	}
	var imgfile = {};
	let audios;
	let _this = this;
	if (window.FileReader) {
		var reader = new FileReader();
		reader.readAsDataURL(uploadfile);
		reader.onload = async function() {
			let html = '';
			let duration = await getAudioDuraion(this.result);
			html =  '<div class="v1-homework-audio hw-waidelbox" data-del="waiAudio" data-role="audioPreview" data-uri="'+this.result+'">'+
						'<i class="layui-icon delfilebtn delfilebtnWai">&#x1007;</i>'+
						'<div class="hwaudio-animate"></div>'+
						'<div><i>'+Math.floor(duration)+'</i>"</div>'+
					'</div>';
			audios = {
				length:duration,
				url:uploadfile,
			    fileid:''
			};
			answerQuestionDataWaiAudio.push(audios);//非打回数据
			answerQuestionDataWaiAudioback.push(audios);//打回数据
			$('[data-role="submitAudiobox"]').show();
			$('[data-role="submitAudiobox"]').append(html);	
	   }
	}
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值