我想从输入按钮获得视频的宽度和高度。但是我的代码不能工作。我得到了文件,但我想从file变量中获得信息。
fileButton.addEventListener('change', function(e) {
//Get file
var file = e.target.files[0];
let reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(){
var height =reader.naturalHeight;
var width =reader.naturalWidth;
}
});
发布于 2018-08-06 00:47:31
使用FileReader将其从二进制转换为base64,然后再转换回二进制是一种资源和内存的浪费,请改用URL.createObjectURL。并且您不必将视频附加到DOM
fileButton.addEventListener('change', evt => {
const file = fileButton.files[0]
const url = URL.createObjectURL(file)
const video = document.createElement('video')
video.onloadedmetadata = evt => {
// Revoke when you don't need the url any more to release any reference
URL.revokeObjectURL(url)
console.log(video.videoWidth, video.videoHeight)
}
video.src = url
video.load() // fetches metadata
})
<html>
<input type="file" id="fileButton">
https://stackoverflow.com/questions/51665617
复制相似问题