--- title: Web Audio API slug: Web/API/Web_Audio_API translation_of: Web/API/Web_Audio_API ---
{{SeeCompatTable}}
Web Audio API 可於 Web App 或網頁上操作並播放音訊檔案。
Web Audio API 是根據模組化路由 (Modular routing) 的概念所設計。所謂的模組化路由,即是以「音訊節點 (Audio nodes)」執行基本的音訊作業,節點又互相連接而構成「音訊路由圖 (Audio routing graphs)」。在同一環境 (Audio context) 內,又可支援數個音源與多樣的聲道配置。此模組化設計可提供更高的靈活度,並能建立複雜的音訊函式與動態效果。
音訊節點均透過其輸出與輸入而相互連結。各個輸入/輸出均具備數個聲道 (Channel),以構成特定的音訊配置。但目前已可支援單聲道、立體聲、四聲道、5.1 聲道等配置,並支援其他的離散配置。
音訊有多種來源。可能由特定的音訊節點 (如震盪器、自訂函式,甚或簡易的資料陣列) 直接在 JavaScript 中產生。音源除了可連至 HTML 媒體元素 (如 <video>
或 <audio>
),亦可能來自於 WebRTC 的 MediaStream
(本端裝置的相機或遠方電腦)。
特定音訊事件發生的時間點,均達到極高的精確度與極低的潛時,因此亦可用以詳細定義鼓類機器或音序器 (Sequencer) 所需的事件。
Web Audio API 亦可控制音訊的空間定位 (Spatialized) 作業:透過 source-listener 模型架構的系統,進而控制所要使用的左右相位 (Panning,聲音放置於左右喇叭之間形成的立體音場中,以產生出空間感) 模型,進而自動處理因距離遠近所產生的衰減,或是由於音源/聽者移動所發生的都卜勒移頻 (Doppler shift)。
Specification | Status | Comment |
---|---|---|
{{SpecName('Web Audio API')}} | {{Spec2('Web Audio API')}} |
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 14 {{property_prefix("webkit")}} | 23 | {{CompatNo}} | 15 {{property_prefix("webkit")}} | 6 {{property_prefix("webkit")}} |
Feature | Android | Chrome | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{CompatNo}} | 28 {{property_prefix("webkit")}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | 6 {{property_prefix("webkit")}} |