播放带有HTML5视频标签的本地(硬盘)视频文件吗?
我要实现以下目标。
<video src="file:///Users/username/folder/video.webm"></video>
目的是使用户能够从他/她的硬盘驱动器中选择文件。
不上传的原因当然是传输成本和存储配额。没有理由保存文件。
可能吗?
回答:
可以播放本地视频文件。
<input type="file" accept="video/*"/><video controls autoplay></video>
通过input
元素选择文件时:
- “更改”事件被触发
- 从
FileList
获取第一个File对象input.files
- 制作指向File对象的对象URL
- 将对象URL设置为
video.src
属性 - 靠后看
(function localFileVideoPlayer() { 'use strict'
var URL = window.URL || window.webkitURL
var displayMessage = function(message, isError) {
var element = document.querySelector('#message')
element.innerHTML = message
element.className = isError ? 'error' : 'info'
}
var playSelectedFile = function(event) {
var file = this.files[0]
var type = file.type
var videoNode = document.querySelector('video')
var canPlay = videoNode.canPlayType(type)
if (canPlay === '') canPlay = 'no'
var message = 'Can play type "' + type + '": ' + canPlay
var isError = canPlay === 'no'
displayMessage(message, isError)
if (isError) {
return
}
var fileURL = URL.createObjectURL(file)
videoNode.src = fileURL
}
var inputNode = document.querySelector('input')
inputNode.addEventListener('change', playSelectedFile, false)
})()
video,input {
display: block;
}
input {
width: 100%;
}
.info {
background-color: aqua;
}
.error {
background-color: red;
color: white;
}
<h1>HTML5 local video file player example</h1><div id="message"></div>
<input type="file" accept="video/*" />
<video controls autoplay></video>
以上是 播放带有HTML5视频标签的本地(硬盘)视频文件吗? 的全部内容, 来源链接: utcz.com/qa/432037.html