溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何克服 iOS HTML5音頻的局限

發(fā)布時(shí)間:2021-03-02 11:36:50 來源:億速云 閱讀:168 作者:小新 欄目:web開發(fā)

這篇文章主要介紹如何克服 iOS HTML5音頻的局限,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

      簡(jiǎn)介

      過去幾年,開發(fā)人員一直都在制造完善的交互體驗(yàn),努力使其可以在瀏覽器中正確運(yùn)行。這樣的站點(diǎn)通常需要使用瀏覽器插件 (Flash)。隨著智能手機(jī)和平板電腦的推出,交互體驗(yàn)看似與新的小部件能夠完美匹配。但是,由于移動(dòng)設(shè)備的處理能力有限,瀏覽器插件不再是一種可行的開發(fā)平臺(tái)。

      HTML5 已經(jīng)添加了大量無需額外插件的使用的工具。W3C 的 HTML5 規(guī)范仍在開發(fā)之中,但是在規(guī)范開發(fā)過程中,瀏覽器已經(jīng)開始提供支持。

      HTML5 音頻是一個(gè)巨大的進(jìn)步,它允許在瀏覽器中嵌入聲音,尤其是在移動(dòng)設(shè)備中,比如 iOS 的移動(dòng)版 Safari 瀏覽器上。盡管 HTML5 音頻是一個(gè)新特性,但已提供了 iOS 支持。根據(jù)流行的移動(dòng)應(yīng)用程序 Instapaper 的開發(fā)人員報(bào)導(dǎo),2011 年 11 月,其 iOS 用戶中有 98.8% 都在使用 iOS 4 或更高版本(請(qǐng)參閱 參考資料)。由于 HTML5 音頻是在 iOS 3 中引入到移動(dòng)版 Safari 中的,所以您可以放心,iOS 平臺(tái)為 HTML5 音頻提供了廣泛的支持。

      在文本中,您將了解 HTML5 在桌面上和移動(dòng)版 Safari 內(nèi)的局限性,并嘗試采用一些解決方案來創(chuàng)建交互的聲音效果。本文涵蓋的其他內(nèi)容包括:不受支持的事件、audio sprite 以及如何使用 directCanvas 和 multiSound 加速 HTML5 游戲性能。

      有一點(diǎn)非常值得關(guān)注:對(duì)于 iOS 6,Apple 已經(jīng)添加了對(duì) Web Audio API(討論如下)的支持,因此不再需要使用本文中所討論的許多變通方法。不過,iOS 6 剛剛面世不到幾周時(shí)間,所以 iOS 5 仍然是市場(chǎng)的主流。本文中所討論的問題以及所提供的變通方式仍有效,應(yīng)該在為移動(dòng)版 Safari 開發(fā)聲頻時(shí)考慮使用它們。

      HTML5 音頻的局限性

      在討論移動(dòng)版 Safari 中的局限性之前,有必要理解 HTML 音頻在桌面上的局限性。HTML5 音頻雖然很健壯,但有其局限性,這主要取決于它的實(shí)現(xiàn)。對(duì)于音樂播放器(點(diǎn)唱機(jī)播放器)或簡(jiǎn)單的聲音效果,它很有效,但是對(duì)于聲音密集的應(yīng)用程序如游戲,它的表現(xiàn)不是很理想。

      格式支持

      不幸的是,并不是所有瀏覽器都支持相同的視頻文件格式。如表 1 所示,目前有四種主要格式:MP3、OGG、WAV 和 AAC。

      為了涵蓋所有瀏覽器,最好是讓所有的視頻流都具有 Ogg Vorbis 和 AAC 兩種格式。

      為什么沒有包括 MP3?MP3 在進(jìn)行商業(yè)傳播時(shí)需要支付繁重的版稅。MP3 的授權(quán)要求對(duì)于所有超過 $100K 的數(shù)據(jù)收取 2% 的傳播費(fèi)。出于這個(gè)原因,我更傾向于使用 AAC 而非 MP3。AAC 也并非完全免版稅的,但它對(duì)于免費(fèi)傳播的許可沒有那么嚴(yán)格。AAC 還提供了更好的壓縮,文件可以更小,它是 Web 領(lǐng)域的福音。

      Ogg Vorbis 之所以壓倒性地獲得了我的喜愛是因?yàn)樗情_源的、無專利費(fèi)并且免版稅的。不過,只有 Firefox 支持它。

      清單 1 顯示了跨瀏覽器兼容 HTML 標(biāo)記。

      清單 1. 音頻元素的 HTML 標(biāo)記

      處理和效果

      在處理音頻時(shí),一個(gè)強(qiáng)大的特性是處理聲音的能力。無論動(dòng)態(tài)合成聲音、處理聲音效果、應(yīng)用環(huán)境效果,還是進(jìn)行基本的立體聲平移,HTML5 音頻缺乏所有這些處理能力。您加載的視頻就是將要播放的視頻。

      Web Audio API (Chrome) 和 Audio Data API (Firefox) 無需任何瀏覽器插件即可進(jìn)行合成和動(dòng)態(tài)處理音頻的能力幫助您解決了特性缺失的問題。這兩種 API 均在開發(fā)當(dāng)中,僅在 Chrome 14+ 和 Firefox 4+ 中受支持。不幸的是,在實(shí)現(xiàn)方面這二者差異很大。目前有一些表現(xiàn)不錯(cuò)的庫(kù)可用來使支持正規(guī)化,比如 audiolibjs(請(qǐng)參閱 參考資料)。Chrome 的 Web Audio API 就是通過 W3C 推廣的標(biāo)準(zhǔn)。

      單音頻層(多音的)

      要重復(fù)播放聲音本身,必須實(shí)例化此聲音的一個(gè)單獨(dú)的音頻對(duì)象。在標(biāo)記和能夠播放的音頻之間存在 1:1 的對(duì)應(yīng)。對(duì)于當(dāng)前狀態(tài)的 HTML5 音頻,是無法分層的。其他平臺(tái),比如 Flash,可以分出一個(gè)單獨(dú)的音頻對(duì)象,無需創(chuàng)建一個(gè)新的音頻對(duì)象。

以上是“如何克服 iOS HTML5音頻的局限”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI