基于HTML5的音頻技術(shù)-創(chuàng)新互聯(lián)

作者,蘇州思必馳信息科技有限公司,mdifar

傳統(tǒng)情況下,需要在網(wǎng)頁(yè)中播放一段音頻,通常有兩種方案:
1. 基于Flash插件的音頻播放器。
2. 基于瀏覽器插件的音頻播放。

使用Flash播放器,一個(gè)顯而易見(jiàn)的好處是基本上兼容所有的PC瀏覽器,瀏覽器上只需要安裝Flash插件即可,兼容性問(wèn)題Adobe公司已經(jīng)幫我們很好的解決了。而基于瀏覽器音頻插件,不同瀏覽器都需要特別定制,甚至同一個(gè)瀏覽器的不同版本也需要不同的實(shí)現(xiàn),這在使用上造成了一定的困難。

隨著移動(dòng)設(shè)備的發(fā)展,基于Flash插件的音頻播放器越來(lái)越不能滿足需要:從Flash插件的性能、安全等方面問(wèn)題考慮,蘋(píng)果移動(dòng)設(shè)備也都是不支持Flash的。因此,越來(lái)越需要一套規(guī)范來(lái)使開(kāi)發(fā)者能更方便的在網(wǎng)頁(yè)中嵌入多媒體技術(shù)。

HTML5的產(chǎn)生,為音頻的播放提供了一套標(biāo)準(zhǔn)。在這之前,要想在頁(yè)面中播放一段音頻,通常是很麻煩的。比較通用的做法是寫(xiě)一個(gè)flash音頻播放器,并提供一套接口,以便在各個(gè)瀏覽器中都兼容;或者直接寫(xiě)embed標(biāo)簽,但這就需要相關(guān)插件的支持。而現(xiàn)在,我們只需要在HTML頁(yè)面中嵌入一段audio標(biāo)簽,就能在多款主流瀏覽器下播放音頻了。

下表是截止到2011年7月,各款主流瀏覽器對(duì)音頻格式的支持情況??梢?jiàn),具備OGG+MP3兩種格式的音頻,就能兼容所有現(xiàn)代瀏覽器。

創(chuàng)新互聯(lián)是一家專(zhuān)注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作與策劃設(shè)計(jì),久治網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:久治等地區(qū)。久治做網(wǎng)站價(jià)格咨詢:028-86922220

基于HTML5的音頻技術(shù)
* 注意:為了節(jié)省帶寬,移動(dòng)設(shè)備并不會(huì)自動(dòng)加載和播放音頻,需要用戶交互操作。iPhone 和 iPad 僅能同時(shí)播放一首音樂(lè),并且不允許動(dòng)態(tài)改變音量。iPad在處理同一頁(yè)面中的多個(gè)音樂(lè)時(shí)存在一些問(wèn)題。

我們知道了瀏覽器支持的音頻格式,實(shí)際上還有一點(diǎn)也不能忽略,就是響應(yīng)header的Content-Type。必須為正確的格式設(shè)置正確的Content-Type,瀏覽器的audio標(biāo)簽才能正常加載和播放音頻。

基于HTML5技術(shù),buzz庫(kù)對(duì)音頻這方面提供了很好的封裝,其中最重要的是sound類(lèi)。

下面列出buzz的sound類(lèi)方法:load,

播放控制play, pause, togglePlay, isPaused, stop, isEnded, loop, unloop

音量控制 mute, unmute, toggleMute, isMuted, setVolume, getVolume, increaseVolume, decreaseVolume, fadeIn, fadeout, fadeTo, fadeWith

事件綁定 bind, bindOnce, unbind, trigger

設(shè)置和獲取 setTime, getTime, setPercent, getPercent, getDuration, setSpeed, getSpeed, set, get

時(shí)間范圍 getPlayed, getBuffered, getSeekable

錯(cuò)誤和狀態(tài) getErrorCode, getErrorMessage, getStateCode, getStateMessage, getNetworkStateCode, getNetworkStateMessage

buzz的事件:abort, canplay, canplaythrough, dataunavailable, durationchange, emptied, empty, ended, error, loadeddata, loadedmetadata, loadstart, pause, play, playing, progress, ratechange, seeked, seeking, suspend, timeupdate, volumechange, waiting

通過(guò)這些方法,我們不難看出,其中的接口設(shè)計(jì)比較冗余,有很多接口的功能實(shí)際上是好幾個(gè)簡(jiǎn)單接口的組合。并且buzz庫(kù)只是對(duì)HTML5的音頻接口進(jìn)行了封裝,并沒(méi)有提供一套多瀏覽器兼容的解決方案。而jQuery的jPlayer就做得不錯(cuò),基于HTML5技術(shù)和Flash技術(shù)提供了一套通用的音頻和視頻解決方案,值得我們借鑒。如果還能加上rtmp協(xié)議的支持,那就可以說(shuō)是完美了。

參考資料:

l W3C: The audio element
http://dev.w3.org/html5/spec/Overview.html#the-audio-element

l Buzz! A Javascript HTML5 Audio library
http://buzz.jaysalvat.com/

l jPlayer
http://jplayer.org/

來(lái)源:蘇州思必馳信息就有限公司,blog.aispeech.com

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享名稱:基于HTML5的音頻技術(shù)-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://muchs.cn/article20/dhgcco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、移動(dòng)網(wǎng)站建設(shè)、云服務(wù)器、網(wǎng)站改版、App設(shè)計(jì)、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)