Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Body.arrayBuffer()

この記事は編集レビューを必要としています。ぜひご協力ください

これは実験段階の機能です。
この機能は複数のブラウザで開発中の状態にあります。各ブラウザで用いるために、適切なベンダー接頭辞が必要な場合があります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザの将来のバージョンで変更になる可能性があることに注意してください。

Body ミックスインの arrayBuffer() メソッドは、Response ストリームを取得して、完全に読み取ります。その上で、ArrayBuffer で解決される promise を返します。

構文

response.arrayBuffer().then(function(buffer) {
  // buffer を使用した何らかの処理
)};

パラメーター

なし。

戻り値

ArrayBuffer で解決される promise。

fetch array buffer examplefetch 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]
29

未サポート
機能 Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
基本サポート 未サポート 未サポート 未サポート 未サポート 未サポート 未サポート 未サポート

[1] Chrome 42 と Firefox 34 、Opera 28 の arrayBuffer() サポートは設定で有効にする必要があります。

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama
 最終更新者: YuichiNukiyama,