HTML5 Video/Audio播放本地文件示例介紹
這段時(shí)間經(jīng)常看到開發(fā)者在反復(fù)詢問(wèn)同一個(gè)問(wèn)題,為什么通過(guò)設(shè)置src屬性,不能播放本地的媒體文件?例如video.src=”D:\test.mp4”。
這是因?yàn)闉g覽器中的JavaScript不能直接直接訪問(wèn)本地資源(例如文件系統(tǒng),攝像頭,麥克風(fēng)等),除非事先得到了用戶的允許。瀏覽器之所以進(jìn)行該限制也是很有必要的,試想一下,如果JavaScript能夠肆無(wú)忌憚的訪問(wèn)本地的文件系統(tǒng),那么竊取用戶隱私數(shù)據(jù)就變得輕而易舉了,當(dāng)用戶訪問(wèn)網(wǎng)絡(luò)上的某個(gè)網(wǎng)頁(yè)時(shí),不知不覺中自己機(jī)器上保存的信用卡卡號(hào),密碼,公司的秘密文件等隱私文件或許已經(jīng)被惡意的JavaScript程序上傳到了遠(yuǎn)方的服務(wù)器上,這對(duì)用戶來(lái)說(shuō)是不可容忍的。
在得到用戶允許后我們還是可以播放本地文件的,下面介紹一種方法。
在頁(yè)面中插入一個(gè)input節(jié)點(diǎn)并指定type為file,如果需要播放多個(gè)文件,可以添加屬性multiple。注冊(cè)文件節(jié)點(diǎn)被更新時(shí)的回調(diào)函數(shù),在回調(diào)函數(shù)中調(diào)用URL.createObjectURL函數(shù)來(lái)獲取剛選擇文件的url,然后把該url設(shè)置為audio或video的src值即可。
代碼實(shí)例如下:
<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上測(cè)試通過(guò),在IE上應(yīng)該存在一定的兼容性問(wèn)題(據(jù)我所知IE8及以前的版本肯定是不能工作的),因?yàn)镮E對(duì)HTML5的支持不好,不知道IE10有沒有實(shí)現(xiàn)相關(guān)的API。
相關(guān)文章

HTML5 video 上傳預(yù)覽圖片視頻如何設(shè)置、預(yù)覽視頻某秒的海報(bào)幀
這篇文章主要介紹了HTML5 video 上傳預(yù)覽圖片視頻如何設(shè)置、預(yù)覽視頻某秒的海報(bào)幀問(wèn)題,需要的朋友可以參考下2018-08-28- 這篇文章主要介紹了HTML5 video視頻字幕的使用和制作,HTML5允許我們使用元素為視頻指定字幕,需要的朋友可以參考下2018-05-03
- 這篇文章主要介紹了淺談html5 video 移動(dòng)端填坑記,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-15
HTML5的Video標(biāo)簽有部分MP4無(wú)法播放的問(wèn)題解析(多圖)
這篇文章主要介紹了HTML5的Video標(biāo)簽有部分MP4無(wú)法播放的問(wèn)題。通過(guò)代碼展示了設(shè)置的過(guò)程,具體操作步驟大家可查看下文的詳細(xì)講解,感興趣的小伙伴們可以參考一下。2017-08-18解決html5中video標(biāo)簽無(wú)法播放mp4問(wèn)題的辦法
這篇文章主要給大家介紹了關(guān)于解決html5中video標(biāo)簽無(wú)法播放mp4問(wèn)題的辦法,文中介紹的非常詳細(xì),相信會(huì)對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)2017-05-07HTML5的video標(biāo)簽的瀏覽器兼容性增強(qiáng)方案分享
使用HTML5時(shí)就應(yīng)該考慮包括桌面以及移動(dòng)端的瀏覽器兼容問(wèn)題,特別是視頻方面瀏覽器對(duì)解碼的支持會(huì)有所不同,所以下面就來(lái)分享一個(gè)HTML5的video標(biāo)簽的瀏覽器兼容性增強(qiáng)方案分2016-05-19使用HTML5在網(wǎng)頁(yè)中嵌入音頻和視頻播放的基本方法
這篇文章主要介紹了使用HTML5在網(wǎng)頁(yè)中嵌入音頻和視頻播放的基本方法,2016-02-22HTML5 video播放器全屏(fullScreen)方法實(shí)例
這篇文章主要介紹了HTML5 video播放器全屏(fullScreen)方法實(shí)例,本文直接給出一個(gè)完整代碼實(shí)例,需要的朋友可以參考下2015-04-24HTML5 Video標(biāo)簽的屬性、方法和事件匯總介紹
這篇文章主要介紹了HTML5 Video標(biāo)簽的屬性、方法和事件匯總介紹,本文講解了2015-04-24- 使用 onloadedmetadata 事件獲取視頻的時(shí)間長(zhǎng)度,使用 ontimeupdate 事件獲取視頻當(dāng)前播放的進(jìn)度,示例代碼如下2014-09-11


