首頁  >  文章  >  web前端  >  HTML5 Video/Audio播放本機文件

HTML5 Video/Audio播放本機文件

不言
不言原創
2018-06-05 10:55:127606瀏覽

這篇文章主要介紹了關於HTML5 Video/Audio播放本地文件,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

在得到用戶允許後我們還是可以播放本地文件的,在頁面中插入一個input節點並指定type為file,然後把該url設置為audio或video的src值即可

這段時間經常看到開發者在反复詢問同一個問題,為什麼透過設定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&#39;t support HTML5 Audio</audio>  
<script>  
function onInputFileChange() {  
   var file = document.getElementById(&#39;file&#39;).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中的e8e496c15ba93d81f6ea4fe5f55a2244標籤的使用詳解

以上是HTML5 Video/Audio播放本機文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn