HTML5中關于音頻處理和播放的API有兩個,即WebAudio和audio元素,很多人會把它們混為一團,其實它們是分别為不同的目的而設計的。下面分别給予簡要介紹。
WebAudio主要是用來對音頻資料添加音效,例如過濾掉音頻資料中的雜音讓聲音聽起來更加圓潤,也可以動态設定傾聽者相對于音源的位置,讓每個位置聽起來的效果不一樣,這在遊戲中是經常需要的,就像我們在打反恐精英遊戲中,在不同的位置聽到敵人的腳步聲都是不一樣的。是以WebAudio一般應用在遊戲和音頻處理軟體中,由于需要應用在遊戲中,是以對實時性的要求就很高。除此之外,WebAudio提供了與其他元素的互操作性,例如可以把audio元素中的輸出的音頻資料導入到WebAudio中,進行細粒度的處理然後再播放出來。WebAudio也可以對WebRTC中的音頻進行處理,WebRTC是讓兩個或多個使用者進行端對端的視訊通信的API,設想一下如果WebAudio能對使用者進行麥克風抓取的資料進行一些處理,例如把聲音變得深沉有磁性然後再發送給另外一端,是不是一件非常酷的事情呢?現在WebAudio已經提供了該功能。
audio元素是為了解決讓浏覽器不需要安裝插件就能直接播放音頻檔案而設計的,在audio元素添加到浏覽器之前,播放音頻檔案需要安裝額外的插件,這及其不友善,并且插件讓使用者感覺到安全隐患。現在引入HTML5的audio元素之後,開發者直接在網頁中添加一個audio元素,指定音頻檔案的源位址,通過play函數就可以播放檔案,通過pause函數就可以暫停播放,通過stop函數來停止播放,也可以設定loop屬性為true讓音頻檔案循環播放。當然了開發者也可以動态的改變audio元素的音頻檔案源位址選擇其他檔案進行播放。通過audio元素開發者就可以很容易的實作一個Web版的音樂播放器。