是否可以在上传之前以类似于下面示例中的 file.size 的方式检查音频文件的持续时间?
handleSubmit = async event =>
event.preventDefault();
if (this.file && this.file.size > config.MAX_ATTACHMENT_SIZE) {
alert("Please pick a file smaller than" + config.MAX_ATTACHMENT_SIZE);
return;
}
最佳答案
如果我们谈论的是浏览器,是的。您可以使用 URL.createObjectURL()
在你的 file
, 将其用作 src
对于 <audio>
您创建的元素,等待元素的 canplaythrough
事件,然后阅读 duration
属性(property)。
事实上,该代码在我最近的回答here 中可用。 (并转载如下);它应该很容易集成到您的代码中。
function computeLength(file) {
return new Promise((resolve) => {
var objectURL = URL.createObjectURL(file);
var mySound = new Audio([objectURL]);
mySound.addEventListener(
"canplaythrough",
() => {
URL.revokeObjectURL(objectURL);
resolve({
file,
duration: mySound.duration
});
},
false,
);
});
}
关于javascript - 上传前验证音频文件的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51918459/