博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML5 Video/Audio播放本地文件
阅读量:5024 次
发布时间:2019-06-12

本文共 1039 字,大约阅读时间需要 3 分钟。

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

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

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

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

代码实例如下:

  1. <html>  
  2. <body>  
  3. <input type="file" id="file" onchange="onInputFileChange()">  
  4. <audio id="audio_id" controls autoplay loop>Your browser can't support HTML5 Audio</audio>  
  5. <script>  
  6. function onInputFileChange() {  
  7.    var file = document.getElementById('file').files[0];  
  8.    var url = URL.createObjectURL(file);  
  9.    console.log(url);  
  10.    document.getElementById("audio_id").src = url;  
  11. }  
  12. </script>  
  13. </body>  
  14. </html>  

  

 

该代码在Chrome 30和Firefox 24上测试通过,在IE上应该存在一定的兼容性问题(据我所知IE8及以前的版本肯定是不能工作的),因为IE对HTML5的支持不好,不知道IE10有没有实现相关的API。

转载于:https://www.cnblogs.com/web100/p/HTML5-Video-Audio.html

你可能感兴趣的文章
java实现文件上传下载至ftp服务器
查看>>
配置SSH框架的心得
查看>>
7.6
查看>>
20.Bulk Write Operations-官方文档摘录
查看>>
【经典数据结构】并查集
查看>>
对象拷贝类PropertyUtils,BeanUtils,BeanCopier的技术沉淀
查看>>
Winserver-默认以管理员运行程序
查看>>
PHP 使用get_class_methods()和array_diff() 兩個相同的類中方法差集
查看>>
delegate 中的BeginInvoke和EndInvoke方法
查看>>
[IOI2011]Race 点分治
查看>>
[Codevs1519]过路费解题报告|最小生成树|LCA
查看>>
JS原型与原型链终极详解
查看>>
csharp:FTP Client Library using FtpWebRequest or Sockets
查看>>
jQuery:SP.NET Autocomplete Textbox Using jQuery, JSON and AJAX
查看>>
css:Media Queries: How to target desktop, tablet and mobile?
查看>>
复杂性研究相关论文
查看>>
大数运算(1)—— 加法篇
查看>>
Swift--错误集:couldn’t be opened because you don’t have permission to view it
查看>>
javascript引擎执行的过程的理解--语法分析和预编译阶段
查看>>
Java_基础—递归
查看>>