html5中文学习网

您的位置: 首页 > html5教程 > 入门教程 » 正文

HTML5 Video/Audio播放本地文件示例介绍_html5教程技巧

[ ] 已经帮助:人解决问题
点评:在得到用户允许后我们还是可以播放本地文件的,在页面中插入一个input节点并指定type为file,然后把该url设置为audio或video的src值即可

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

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

在得到用户允许后我们还是可以播放本地文件的,下面介绍一种方法。d3fHTML5中文学习网 - HTML5先行者学习网

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

代码实例如下:d3fHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
d3fHTML5中文学习网 - HTML5先行者学习网
<html> d3fHTML5中文学习网 - HTML5先行者学习网
<body> d3fHTML5中文学习网 - HTML5先行者学习网
<input type="file" id="file" onchange="onInputFileChange()"> d3fHTML5中文学习网 - HTML5先行者学习网
<audio id="audio_id" controls autoplay loop>Your browser can't support HTML5 Audio</audio> d3fHTML5中文学习网 - HTML5先行者学习网
<script> d3fHTML5中文学习网 - HTML5先行者学习网
function onInputFileChange() { d3fHTML5中文学习网 - HTML5先行者学习网
var file = document.getElementById('file').files[0]; d3fHTML5中文学习网 - HTML5先行者学习网
var url = URL.createObjectURL(file); d3fHTML5中文学习网 - HTML5先行者学习网
console.log(url); d3fHTML5中文学习网 - HTML5先行者学习网
document.getElementById("audio_id").src = url; d3fHTML5中文学习网 - HTML5先行者学习网
} d3fHTML5中文学习网 - HTML5先行者学习网
</script> d3fHTML5中文学习网 - HTML5先行者学习网
</body> d3fHTML5中文学习网 - HTML5先行者学习网
</html>d3fHTML5中文学习网 - HTML5先行者学习网
d3fHTML5中文学习网 - HTML5先行者学习网
该代码在Chrome 30和Firefox 24上测试通过,在IE上应该存在一定的兼容性问题(据我所知IE8及以前的版本肯定是不能工作的),因为IE对HTML5的支持不好,不知道IE10有没有实现相关的API。d3fHTML5中文学习网 - HTML5先行者学习网

d3fHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助