前端如何检测上传的音频是否能够播放?

现在有一个这样的需求,就是没办法判断.mp3格式或者wav格式的音频到底能不能播放,因为有些人喜欢骚操作,比如用pdf文件转化成mp3给我传上来,还播放不了,有大佬晓得这个问题怎么弄吗?!


回答:

你验证下mime type不就完了?虽然不是绝对准确,但基本上已经能阻挡绝大多数恶意文件了,扩展名+mime type双向验证不就哦了?

mediainfo对于这个需求有点杀鸡焉用宰牛刀的意味了,只是验证下mime type这种简单的需求不需要引入第三方依赖。

一个典型的参考范例可以参见 https://stackoverflow.com/que...

上传前验证文件的mime type,跟你的需求是完全一致的

常见的扩展名和mimetype对照表可以参见: https://developer.mozilla.org...


回答:

document.querySelector('input[type="file"]').onchange = function(e){

var file=this.files[0];

const urlObj = URL.createObjectURL(file);

const aud=new Audio(urlObj)

aud.onerror= (e) => {

console.log(aud.error);

//有错误的就是不能播放的

}

}


回答:

1、根据文件头信息判断文件格式:每种音频文件格式通常都有其特定的文件头信息,可以根据文件头信息来判断文件格式。需要注意的是,文件头信息可能会被修改,因此这种方法并不完全可靠。
2、可以考虑使用第三方音频文件检测API,如Filestack、CloudConvert等。这些API可以将音频文件上传到云端进行检测,并返回音频文件的格式和元数据。
3、最好还是后端来做检测,后端可以通过FFmpeg库来检测音频文件的格式,以及将音频文件转换为支持的格式,还有一些专门用于解析音频文件的库,如getID3和PHP Audio File


回答:

纯前端实现的话,我提供一个思路
使用mediainfo.js去获取实际封装格式
前端如何检测上传的音频是否能够播放?

以上是 前端如何检测上传的音频是否能够播放? 的全部内容, 来源链接: utcz.com/p/933730.html

回到顶部