前言
实现
调用FileReader API,并通过(window.AudioContext || window.webkitAudioContext)()创建音频上下文对象实现
代码示例
关键代码
const customRequest = (file) => {
//创建FileReader
const fileReader = new FileReader();
//读取成功完成时触发
fileReader.onload = (event) => {
const arrayBuffer = event.target.result;
//创建音频上下文对象
const audioContext = new (window.AudioContext ||
window.webkitAudioContext)();
audioContext.decodeAudioData(arrayBuffer, async (buffer) => {
const duration = Math.floor(buffer.duration); // 获取音频时长
console.log("音频时长:", duration);
//下面可做对音频时长限制的操作
});
};
//当读取由于错误而失败时触发。
fileReader.onerror = (error) => {
console.error("Error reading file:", error);
};
//开始读取指定的 Blob 中的内容,读取完成,result 属性中将包含一个表示文件数据的 ArrayBuffer 对象
fileReader.readAsArrayBuffer(file);
};