Warning:
This wiki has been archived and is now read-only.
音頻 API
From HTML5 Chinese Interest Group Wiki
雖然 HTML5 核心的音頻元素 <audio>
具有 play()
、
seek()
,甚至是可以任意調整的
audio.currentPosition
等等播放音頻用的 API,但是並不具有
讀取音頻內容資訊,操作、產生新音頻的機能。這對於以
<canvas>
建立的 WebApp ,特別是以 HTML5 製作遊戲上特別重要。
Mozilla 社群以及 Google 分別提出了以下兩個不同的 API,試圖解決這些需求:
- Audio Data API — 以取樣存取為主的簡單 API
- Web Audio API — 操作音頻處理部件的工作流程(音頻路由圖)的 API,如此章節的圖。
Web Audio API 內建的音頻處理部件包括:
- 放大器(AudioGainNode)
- 延遲效果(DelayNode)
- 空間效果(AudioPannerNode) — 三度空間的音頻消散計算,包括聲音方位、都普勒效應的計算等等
- 摺積效果(ConvolverNode) — 模擬環境
- 及時分析 — 快速傅立葉轉換以用於視覺化視頻
Contents
Flash 辦得到但是音頻 API 尚未辦到的事
針對 Audio Data API
針對 Web Audio API
演示
中文世界開發者做出的演示
其他演示
- 線上版 Gameboy — 製作者為 Grant Galitz,以下是可以試玩的 ROM 的 URL:
Audio Data API
目前只支援 Firefox 4
- 吉他譜播放器 — 讀 MusicXML,用 SVG 畫譜及用 Audio Data API 播放
- 其他 Mozilla wiki 上列出來的演示
Web Audio API
目前只支援 Chrome 11 MacOSX 版
工具
一些兼容工具
- XAudioJS — Grant Galitz 做的 Audio Data API 的兼容層。支援 Web Audio API,若不支援則用
<audio>
及 data URL 播放 MIDI。 - dynamicaudio.js — Ben Firshman 做的 Audio Data API 的兼容層。不支援 Audio Data API 的使用 Flash 替代。
- audiolib.js — jussi kalliokoski 做的 Web Audio API 的兼容層。使用 Audio Data API 的低階 API 達到了接近所有 Web Audio API 的功能。