我想实现以下目标.

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

其目的是用户将能够从他/她的硬盘驱动器中 Select 文件.

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

有可能吗?

推荐答案

可以播放本地视频文件.

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

通过input元素 Select 文件时:

  1. 激发"Change"事件
  2. input.files FileList中获取第一个File对象
  3. 使指向File对象的值为object URL
  4. 将对象URL设置为video.src属性
  5. 往后靠看:)

http://jsfiddle.net/dsbonev/cCCZ2/embedded/result,js,html,css/

(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>

Html相关问答推荐

如何访问django + tailwind中的媒体文件夹

悬停时跳转的内容

为什么在CSS中字段是一个有效的 colored颜色 名称?

防止SVG边框半径zoom

悬停效果在新西兰表上不起作用

在单独的容器之间堆叠上下文

无法从路径参数获取ID

Bootstrap 5.3.2模式页脚左填充还是左边距?

使用bash从html表格中提取表格

带有排序元素的 CSS 网格

带有图像的虚线边框

在 HTML 视频上环绕文本叠加

并排放置两个 div,同时 div2 环绕 div1

如何垂直对齐列表中的图像和文本?

不同屏幕尺寸的显示问题

我用 ejs 修复了一个奇怪的语法错误,我想知道问题出在哪里

为什么图像会影响我的

使用模板循环每行列出 3 个 bootstrap 卡

沿文本对齐双引号

将固定/绝对伪元素放置在相对 div(具有滚动条)内,始终位于底部