MediaRecorder.start()
MediaRecorder の start() メソッドは MediaStream 収録 API の一部であり、1 つ以上の Blob オブジェクトへのメディアの収録を開始します。
メディアの全期間を単一の Blob に(または requestData() を呼び出すまで)収録することも、一度に収録するミリ秒数を指定することもできます。 その後、その量のメディアが収録されるたびに、収録されたメディアに対応できるようにイベントが配信され、その間に、メディアの次のスライスを収録するための新しい Blob が作成されます。
MediaRecorder の state が inactive であると仮定すると、start() は state を recording に設定してから、入力ストリームからメディアのキャプチャを開始します。 タイムスライス期間が経過するか、ソースメディアが終了するまで、Blob が作成され、そこにデータが収集されます。 Blob がその時点まで満たされるたびに(タイムスライス期間または、スライス期間が指定されていない場合はメディアの終わり)、dataavailable イベントが収録されたデータとともに MediaRecorder に送られます。 ソースがまだ再生中の場合は、新しい Blob が作成され、そこに収録が続きます。
ソースストリームが終了すると、state は inactive に設定され、データ収集は停止します。 最後の dataavailable イベントが MediaRecorder に送られ、その後に stop イベントが続きます。
メモ: ブラウザーが収録を開始または収録を続行できない場合は、DOMError イベントを発生させ、続いて収集した Blob を含む dataavailable イベントと stop イベントを発生させようとします。
構文
js
start()
start(timeslice)
引数
timeslice省略可-
各
Blobに収録するミリ秒数。 この引数が含まれていない場合は、requestData()メソッドが呼び出されてBlobが取得され、メディアの収録を継続する新しいBlobの作成のきっかけがない限り、メディア期間全体が単一のBlobに収録されます。
返値
なし (undefined)。
例外
すぐに検出できるエラーは DOM 例外としてスローされます。 他のすべてのエラーは、MediaRecorder オブジェクトに送られた error イベントを通じて報告されます。 onerror イベントハンドラーを実装することで、これらのエラーに対応することができます。
InvalidModificationErrorDOMException-
収録中のストリームのトラック数が変更された場合に発生します。メディアの収録中にトラックを追加したり削除したりすることはできません。
InvalidStateErrorDOMException-
MediaRecorderがinactive状態ではない場合に発生します。すでに収録中の場合は、メディアの収録を開始することはできません。stateプロパティを参照してください。 NotSupportedErrorDOMException-
収録しようとしているメディアストリームが非アクティブであるか、ストリームの 1 つ以上のトラックが現在の設定を使用して収録できない形式である場合に発生します。
SecurityErrorDOMException-
MediaStreamが収録を禁止するように設定されている場合に発生します。 これは、例えば、ユーザーが入力機器を使用する許可を拒否したときにgetUserMedia()を使用して取得されたソースの場合などです。この例外は、収録開始後にソースメディアのセキュリティオプションが変更された場合にもerrorイベントとして配信される可能性があります。 UnknownErrorDOMException-
収録処理中に何か他の問題が発生した場合に発生します。
例
js
record.onclick = () => {
mediaRecorder.start();
console.log("収録を開始しました。");
}
仕様書
| Specification |
|---|
| MediaStream Recording # dom-mediarecorder-start |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- MediaStream 収録 API の使用
- ウェブディクタフォン: MediaRecorder + getUserMedia + Web Audio API 可視化デモ、Chris Mills 著(GitHub のソース)。(英語)
- simpl.info の MediaStream 収録のデモ、Sam Dutton 著。(英語)
getUserMedia()