在我的一个模块中,我需要从输入[type='file']中浏览视频,然后在开始上传之前显示所选视频。
我正在使用基本的HTML标签来展示,但它没有工作。
这是代码:
我正在使用基本的HTML标签来展示,但它没有工作。
这是代码:
$(document).on("change",".file_multi_video",function(evt){
var this_ = $(this).parent();
var dataid = $(this).attr('data-id');
var files = !!this.files ? this.files : [];
if (!files.length || !window.FileReader) return;
if (/^video/.test( files[0].type)){ // only video file
var reader = new FileReader(); // instance of the FileReader
reader.readAsDataURL(files[0]); // read the local file
reader.onloadend = function(){ // set video data as background of div
var video = document.getElementById('video_here');
video.src = this.result;
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<video width="400" controls >
<source src="mov_bbb.mp4" id="video_here">
Your browser does not support HTML5 video.
</video>
<input type="file" name="file[]" class="file_multi_video" accept="video/*">
input[type=file]
提供文件),createObjectURL
返回的blobURI只是一个指向用户磁盘上文件的直接符号链接,因此内存影响并不重要。但在其他情况下,它确实会产生真正的后果:从生成或获取的Blob中未撤销的blobURI将在会话结束之前一直保留其数据。更糟糕的是,在MediaStream中,例如gUM(在回答此问题时,cOU仍然是显示MediaStreams的方法,现已弃用),它可能会阻止设备(例如网络摄像头)。 - Kaiido