如何在中导入文件并使用video
元素播放它?
我想导入一个视频文件(在页面上(,然后会弹出一个视频元素。
<input type="file">
<h3>What would be imported video:</h3>
<video width="320" height="176" controls>
<source src="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" type="video/mp4">
<source src="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" type="video/ogg">
Your browser does not support HTML5 video.
</video>
如果你有任何问题,请告诉我。
提前感谢!
只是通知您,BigBuckBunny.mp4
是一个巨大的视频,需要大量的计算机CPU才能加载。
下面的代码为您提供了一个接受mpeg
、mp4
、mp2
和avi
的<input type=file>
输入。你可以让它接受任何东西,或者任何MIME类型的视频
它将视频作为Blob
,将Blob
传递给FileReader
,并将其作为数据URL读取。然后,它在视频中添加了一个<source src="the_url">
。
function loadVideo() {
// 'input' is the <input> element
// 'video' is the <video> element
// 'fs' is a FileReader, to read 'input'
const input = document.getElementById("input"),
video = document.getElementById("video"),
fs = new FileReader;
// Executes when finished reading; it's asynchronous
fs.onload = () => {
// Update video src to the Data URL
video.innerHTML = `<source src="${fs.result}">nYour browser does not support HTML5 videos.`;
}
// Data URL is data:video/mpeg,base64;AAAAA.....
fs.readAsDataURL(input.files[0]);
}
Upload video: <input id="input" type="file" accept=".avi, .mpeg, .mp2, .mp4" onchange="loadVideo()">
<hr>
<video id="video" controls width="320"></video>
编辑@tinker9
谢谢!如何使
mov
文件也能使用此功能?在accept
属性中添加.mov
不起作用
[评论链接]
- 尝试将
accept
属性设置为.avi, .mpeg, .mp2, .mp4, .mov
- 尝试删除
accept
属性 - 检查浏览器是否支持
.mov
文件 - 检查您要上传的
.mov
文件是否编码正确并且可以播放