MediaRecorder.requestData()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

MediaRecorder.requestData() メソッド(MediaStream 収録 API の一部)は、 dataavailable イベントを発生させるために使用します。これは、このメソッドを呼び出した時点での、キャプチャされたメディアの Blob オブジェクトを含みます。その後、これを入手して操作することができます。

requestData() メソッドを呼び出すと、ブラウザーは次の手順を実行するタスクをキューに入れます。

  1. MediaRecorder.state が "inactive" であった場合は、DOM の InvalidState エラーを発生させ、これらの手順を終了します。 MediaRecorder.state が "inactive" でなかった場合は、次の手順に進みます。
  2. dataavailable イベントを発生させます。これは現在キャプチャされているデータの Blob を含む (Blob はイベントの data 属性で利用可能です)。
  3. 新しい Blob を作成し、その後にキャプチャしたデータをそこに配置します。

構文

js
requestData()

引数

なし。

返値

なし (undefined)。

エラー

MediaRecorder オブジェクトの MediaRecorder.state"recording" でないときに requestData() メソッドが呼び出されると、InvalidState エラーが発生します — 記録が行われていないと、メディアをキャプチャできません。

js
captureMedia.onclick = () => {
  mediaRecorder.requestData();
  // これまでのデータのスナップショットを
  // 使用可能にする ondataavailable が発生し、
  // それから、キャプチャは新しい Blob で続行されます
};

仕様書

Specification
MediaStream Recording
# dom-mediarecorder-requestdata

ブラウザーの互換性

関連情報