この記事は編集レビューを必要としています。ぜひご協力ください。
これは実験段階の機能です。
この機能は複数のブラウザで開発中の状態にあります。各ブラウザで用いるために、適切なベンダー接頭辞が必要な場合があります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザの将来のバージョンで変更になる可能性があることに注意してください。
Body
ミックスインの arrayBuffer()
メソッドは、
Response
ストリームを取得して、完全に読み取ります。その上で、ArrayBuffer
で解決される promise を返します。
構文
response.arrayBuffer().then(function(buffer) { // buffer を使用した何らかの処理 )};
パラメーター
なし。
戻り値
ArrayBuffer
で解決される promise。
例
fetch array buffer example(fetch array buffer live を実行してみてください)では、Play ボタンを配置しています。ボタンがプレスされると、 getData()
関数が実行されます。
getData()
関数内では、Request.Request
コンストラクターを使用して新しいリクエストオブジェクトを生成してから、OGG ミュージックトラックを取得しようとします。オーディオバッファーソースを生成するために、AudioContext.createBufferSource
も使用しています。取得が成功した場合、arrayBuffer()
を使用してレスポンスの ArrayBuffer
を読み取り、AudioContext.decodeAudioData
を使用してオーディオデータをデコードした上で、オーディオバッファソースのバッファ(source.buffer)に設定しています。その後、
AudioContext.destination
にソースを接続します。
getData()
の実行が完了すると、start(0) で
オーディオソースの再生を開始した後、実行中に再度再生ボタンをクリックできないようにするために(これはしばしばエラーの原因になります)ボタンを無効化しています。
function getData() { source = audioCtx.createBufferSource(); var myRequest = new Request('viper.ogg'); fetch(myRequest).then(function(response) { response.arrayBuffer().then(function(buffer) { audioCtx.decodeAudioData(buffer, function(decodedData) { source.buffer = decodedData; source.connect(audioCtx.destination); }); }); }); }; // wire up buttons to stop and play audio play.onclick = function() { getData(); source.start(0); play.setAttribute('disabled', 'disabled'); }
仕様
仕様 | 状態 | コメント |
---|---|---|
Fetch The definition of 'arrayBuffer()' in that specification. |
Living Standard |
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
基本サポート | 41[1] 42 |
34[1] 39 (39) |
未サポート |
28[1] |
未サポート |
機能 | Android | Firefox Mobile (Gecko) | Firefox OS (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
基本サポート | 未サポート | 未サポート | 未サポート | 未サポート | 未サポート | 未サポート | 未サポート |
[1] Chrome 42 と Firefox 34 、Opera 28 の arrayBuffer()
サポートは設定で有効にする必要があります。