DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> HTML基礎知識 >> HTML5詳解 >> HTML5 Video/Audio播放本地文件示例介紹
HTML5 Video/Audio播放本地文件示例介紹
編輯:HTML5詳解     

這段時間經常看到開發者在反復詢問同一個問題,為什麼通過設置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。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved