播放带有HTML5视频标签的本地(硬盘)视频文件吗?

我要实现以下目标。

<video src="file:///Users/username/folder/video.webm">

</video>

目的是使用户能够从他/她的硬盘驱动器中选择文件。

不上传的原因当然是传输成本和存储配额。没有理由保存文件。

可能吗?

回答:

可以播放本地视频文件。

<input type="file" accept="video/*"/>

<video controls autoplay></video>

通过input元素选择文件时:

  1. “更改”事件被触发
  2. FileList获取第一个File对象input.files
  3. 制作指向File对象的对象URL
  4. 将对象URL设置为video.src属性
  5. 靠后看

(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

回到顶部