ブラウザネイティブの録音APIのサポート状況の調査
仕事でWebブラウザの録音機能を使うことになり、サポート状況を調査しました。
録音した音声データを取り出すには、MediaDevices または navigator.getUserMedia と Worker, Blob を組み合わせる必要があるため、各APIのサポート時期を調べて纏めます。
変わり種として同様に録音機能を提供する MediaRecorder なる別の API があったようです。こちらは詳しく見れていません。
| ブラウザ | サポートするバージョン |
|---|---|
| IE | 12 |
| Opera | ? |
| Firefox | 23 |
| Chrome | 21 |
| Safari | 11 |
| iOS | 11(WebView では不可) |
| Android ブラウザ | 5 |
| Android Chrome | ? |
| Android Firefox | ? |
| Android Opera | ? |
| ブラウザ | Web Audio | getUserMedia (MediaDevices) | createObjectURL(*2) (worker) | Worker | Blob | MediaRecorder |
|---|---|---|---|---|---|---|
| IE | 12 | 12(12) | 10(11) | 10 | 10 | |
| Opera | 15 | 12(*1),18 | 15(15) | 11.5 | 12.1 | |
| Firefox | 23(25)(4-27 *4) | 17(36) | 4(21) | 3.5 | 6 | 25 |
| Chrome | 10(14) | 21 | 8(10) | 4 | 8 | 47 |
| Safari | 6 | 11 | 6(6) | 4 | 6 | |
| iOS | 6.1 | 11(*3) | 6(6) | 5.1 | 6.1 | |
| Android ブラウザ | 5 | 5 | 4 | 2.1, 4.4+ | 3 | |
| Android Chrome | 28(29) | 61? | 18(18) | 61? | 61? | 47 |
| Android Firefox | 23(25) | ?(36) | 14(14) | 56? | 56? | 25 |
| Android Opera | 15(15) | 12.1 |
- WebRTCのgetUserMediaでビデオ出力
Opera 12では映像のみ出力され、音声は出力されませんでした。
URL.revokeObjectURL()を忘れずに。- iOS の WebView では使えないので注意。つまり、iOS 版 Chrome 等でも使えません。
- Firefox 4-27 では Audio Element 拡張が使えました。