我正在用HTML和Javascript做一个项目,它将使用本地文件运行本地.我需要通过输入选择一个文件,获取它的信息然后决定我是否会添加到我的列表中并重现.如果我决定使用它,我将不得不把它放在队列中以便以后使用.否则我只会丢弃并选择另一个文件.
我面临的问题是,我无法通过在输入上选择它来找到获得vídeo持续时间的方法.
我搜索了很多,但没有找到任何方法来获得持续时间.在下面的代码中,我尝试使用' file.duration '但不起作用,它只返回' undefined '.
这是我的意见,你可以看到正常.
<div id="input-upload-file" class="box-shadow">
<span>upload! (?????)</span> <!--ignore the text face lol -->
<input type="file" class="upload" id="fileUp" name="fileUpload" onchange="setFileInfo()">
</div>
Run Code Online (Sandbox Code Playgroud)
这就是我用来获取所有信息的功能.
function setFileInfo(){
showInfo(); //change div content
var file = document.getElementById("fileUp").files[0];
var pid = 1;
var Pname = file.name;
Pname = Pname.slice(0, Pname.indexOf(".")); //get filename without extension
var Ptype = file.type;
var Psize = bytesToSize(file.size); //turns into KB,MB, etc...
var Pprior = setPriority(Ptype); //returns 1, 2 or 3
var Pdur = file.duration;
var Pmem …Run Code Online (Sandbox Code Playgroud) 我的需要是获取该视频文件的持续时间或时间长度。所以我做了 console.log(videoFile.duration),但是它的显示undefined&为什么它显示未定义?那么如何在React js 中获取视频时长...
const VideoList = ({ videoFile }) => {
console.log(videoFile.duration);
// output ==> undefined
return (
<div className="relative">
<video src={videoFile} className="w-full pb-2 sm:w-32 sm:pb-0 rounded mr-2" />
<span className="absolute bottom-1 right-3 bg-black/60 text-white rounded px-1.5">0:00</span>
</div>
);
}
export default VideoList;
Run Code Online (Sandbox Code Playgroud) 我正在尝试将视频上传到服务器,并在客户端上传.我正在使用FileReader来阅读它readAsBinaryString().
现在,我的问题是,我不知道如何阅读此视频文件的持续时间.
如果我尝试读取文件,并将阅读器的数据分配给视频标签的源,则不会触发与视频标签关联的任何事件.我需要找到客户端上传的文件的持续时间.
有人可以给我一些建议吗?