HTML5 Video/Audio播放本地文件示例介绍


Posted in HTML / CSS onNovember 18, 2013

这段时间经常看到开发者在反复询问同一个问题,为什么通过设置src属性,不能播放本地的媒体文件?例如video.src=”D:\test.mp4”。

这是因为浏览器中的JavaScript不能直接直接访问本地资源(例如文件系统,摄像头,麦克风等),除非事先得到了用户的允许。浏览器之所以进行该限制也是很有必要的,试想一下,如果JavaScript能够肆无忌惮的访问本地的文件系统,那么窃取用户隐私数据就变得轻而易举了,当用户访问网络上的某个网页时,不知不觉中自己机器上保存的信用卡卡号,密码,公司的秘密文件等隐私文件或许已经被恶意的JavaScript程序上传到了远方的服务器上,这对用户来说是不可容忍的。

在得到用户允许后我们还是可以播放本地文件的,下面介绍一种方法。

在页面中插入一个input节点并指定type为file,如果需要播放多个文件,可以添加属性multiple。注册文件节点被更新时的回调函数,在回调函数中调用URL.createObjectURL函数来获取刚选择文件的url,然后把该url设置为audio或video的src值即可。

代码实例如下:

复制代码
代码如下:

<html>
<body>
<input type="file" id="file" onchange="onInputFileChange()">
<audio id="audio_id" controls autoplay loop>Your browser can't support HTML5 Audio</audio>
<script>
function onInputFileChange() {
var file = document.getElementById('file').files[0];
var url = URL.createObjectURL(file);
console.log(url);
document.getElementById("audio_id").src = url;
}
</script>
</body>
</html>

该代码在Chrome 30和Firefox 24上测试通过,在IE上应该存在一定的兼容性问题(据我所知IE8及以前的版本肯定是不能工作的),因为IE对HTML5的支持不好,不知道IE10有没有实现相关的API。
HTML / CSS 相关文章推荐
让IE6支持css3,让 IE7、IE8 都支持CSS3
Oct 09 HTML / CSS
CSS3中的content属性使用示例
Jul 20 HTML / CSS
CSS3实现伪类hover离开时平滑过渡效果示例
Aug 10 HTML / CSS
css3 transform过渡抖动问题解决
Oct 23 HTML / CSS
Html5 postMessage实现跨域消息传递
Mar 11 HTML / CSS
HTML5实现视频直播功能思路详解
Nov 16 HTML / CSS
html5指南-6.如何创建离线web应用程序实现离线访问
Jan 07 HTML / CSS
HTML5之SVG 2D入门10—滤镜的定义及使用
Jan 30 HTML / CSS
html5使用canvas实现跟随光标跳动的火焰效果
Jan 07 HTML / CSS
html5适合移动应用开发的12大特性
Mar 19 HTML / CSS
极简的HTML5模版
Jul 09 HTML / CSS
详解HTML5中download属性的应用
Aug 06 HTML / CSS
HTML5画渐变背景图片并自动下载实现步骤
Nov 18 #HTML / CSS
HTML5在IE10、火狐下中文乱码问题的解决方法
Nov 18 #HTML / CSS
HTML5 UTF-8 中文乱码的解决方法
Nov 18 #HTML / CSS
HTML5语音识别标签写法附图
Nov 18 #HTML / CSS
html5 video标签屏蔽右键视频另存为的js代码
Nov 12 #HTML / CSS
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
Nov 07 #HTML / CSS
html5跨域通讯之postMessage的用法总结
Nov 07 #HTML / CSS
You might like
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
PHP关联数组的10个操作技巧
2013/01/21 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
浅析js封装和作用域
2013/07/09 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
简介JavaScript中strike()方法的使用
2015/06/08 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
2016/07/22 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
JavaScript实现预览本地上传图片功能完整示例
2019/03/08 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
Python实现线程池代码分享
2015/06/21 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
python设置环境变量的作用整理
2020/02/17 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
2020/09/25 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
Parfumdreams英国:香水和化妆品
2019/05/10 全球购物
建筑工程专业毕业生自荐信
2013/10/19 职场文书
物流仓储计划书
2014/01/10 职场文书
毕业证丢失证明
2014/01/15 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
市场营销策划方案
2014/06/11 职场文书
文明城市标语
2014/06/16 职场文书
消防志愿者活动方案
2014/08/23 职场文书
春风化雨观后感
2015/06/11 职场文书
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS