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()
メソッドを呼び出すと、ブラウザーは次の手順を実行するタスクをキューに入れます。
MediaRecorder.state
が "inactive" であった場合は、DOM のInvalidState
エラーを発生させ、これらの手順を終了します。MediaRecorder.state
が "inactive" でなかった場合は、次の手順に進みます。dataavailable
イベントを発生させます。これは現在キャプチャされているデータのBlob
を含む (Blob はイベントのdata
属性で利用可能です)。- 新しい Blob を作成し、その後にキャプチャしたデータをそこに配置します。
構文
js
requestData()
引数
なし。
返値
なし (undefined
)。
エラー
MediaRecorder
オブジェクトの MediaRecorder.state
が "recording"
でないときに requestData()
メソッドが呼び出されると、InvalidState
エラーが発生します — 記録が行われていないと、メディアをキャプチャできません。
例
js
captureMedia.onclick = () => {
mediaRecorder.requestData();
// これまでのデータのスナップショットを
// 使用可能にする ondataavailable が発生し、
// それから、キャプチャは新しい Blob で続行されます
};
仕様書
Specification |
---|
MediaStream Recording # dom-mediarecorder-requestdata |
ブラウザーの互換性
関連情報
- MediaStream 収録 API の使用
- ウェブディクタフォン: MediaRecorder + getUserMedia + Web Audio API 可視化デモ、Chris Mills 著(GitHub のソース)。(英語)
- simpl.info の MediaStream 収録のデモ、Sam Dutton 著。(英語)
Navigator.getUserMedia