在得到用戶允許后我們還是可以播放本地文件的,在頁面中插入一個input節(jié)點(diǎn)并指定type為file,然后把該url設(shè)置為audio或video的src值即可
這段時間經(jīng)常看到開發(fā)者在反復(fù)詢問同一個問題,為什么通過設(shè)置src屬性,不能播放本地的媒體文件?例如video.src=”D:/test.mp4”。
這是因?yàn)?a href='http://www.survivalescaperooms.com/tag/liulanqi_7527_1.html' target='_blank'>瀏覽器中的JavaScript不能直接直接訪問本地資源(例如文件系統(tǒng),攝像頭,麥克風(fēng)等),除非事先得到了用戶的允許。瀏覽器之所以進(jìn)行該限制也是很有必要的,試想一下,如果JavaScript能夠肆無忌憚的訪問本地的文件系統(tǒng),那么竊取用戶隱私數(shù)據(jù)就變得輕而易舉了,當(dāng)用戶訪問網(wǎng)絡(luò)上的某個網(wǎng)頁時,不知不覺中自己機(jī)器上保存的信用卡卡號,密碼,公司的秘密文件等隱私文件或許已經(jīng)被惡意的JavaScript程序上傳到了遠(yuǎn)方的服務(wù)器上,這對用戶來說是不可容忍的。
在得到用戶允許后我們還是可以播放本地文件的,下面介紹一種方法。
在頁面中插入一個input節(jié)點(diǎn)并指定type為file,如果需要播放多個文件,可以添加屬性multiple。注冊文件節(jié)點(diǎn)被更新時的回調(diào)函數(shù),在回調(diào)函數(shù)中調(diào)用URL.createObjectURL函數(shù)來獲取剛選擇文件的url,然后把該url設(shè)置為audio或video的src值即可。
代碼實(shí)例如下:
復(fù)制代碼
代碼如下:
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上應(yīng)該存在一定的兼容性問題(據(jù)我所知IE8及以前的版本肯定是不能工作的),因?yàn)镮E對HTML5的支持不好,不知道IE10有沒有實(shí)現(xiàn)相關(guān)的API。
相關(guān)推薦:
HTML中的 meta 標(biāo)簽的使用詳解
以上就是HTML5 Video/Audio播放本地文件的詳細(xì)內(nèi)容,其它編程語言
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。
|
新聞熱點(diǎn)
疑難解答
圖片精選