MediaRecorder.requestData()
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 |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- MediaStream 収録 API の使用
- ウェブディクタフォン: MediaRecorder + getUserMedia + Web Audio API 可視化デモ、Chris Mills 著(GitHub のソース)。(英語)
- simpl.info の MediaStream 収録のデモ、Sam Dutton 著。(英語)
Navigator.getUserMedia