MediaRecorder.start()

MediaRecorderstart() メソッドは MediaStream 収録 API の一部であり、1 つ以上の Blob オブジェクトへのメディアの収録を開始します。

メディアの全期間を単一の Blob に(または requestData() を呼び出すまで)収録することも、一度に収録するミリ秒数を指定することもできます。 その後、その量のメディアが収録されるたびに、収録されたメディアに対応できるようにイベントが配信され、その間に、メディアの次のスライスを収録するための新しい Blob が作成されます。

MediaRecorderstateinactive であると仮定すると、start()staterecording に設定してから、入力ストリームからメディアのキャプチャを開始します。 タイムスライス期間が経過するか、ソースメディアが終了するまで、Blob が作成され、そこにデータが収集されます。 Blob がその時点まで満たされるたびに(タイムスライス期間または、スライス期間が指定されていない場合はメディアの終わり)、dataavailable イベントが収録されたデータとともに MediaRecorder に送られます。 ソースがまだ再生中の場合は、新しい Blob が作成され、そこに収録が続きます。

ソースストリームが終了すると、stateinactive に設定され、データ収集は停止します。 最後の dataavailable イベントが MediaRecorder に送られ、その後に stop イベントが続きます。

メモ: ブラウザーが収録を開始または収録を続行できない場合は、DOMError イベントを発生させ、続いて収集した Blob を含む dataavailable イベントと stop イベントを発生させようとします。

構文

js
start()
start(timeslice)

引数

timeslice 省略可

Blob に収録するミリ秒数。 この引数が含まれていない場合は、requestData() メソッドが呼び出されて Blob が取得され、メディアの収録を継続する新しい Blob の作成のきっかけがない限り、メディア期間全体が単一の Blob に収録されます。

返値

なし (undefined)。

例外

すぐに検出できるエラーは DOM 例外としてスローされます。 他のすべてのエラーは、MediaRecorder オブジェクトに送られた error イベントを通じて報告されます。 onerror イベントハンドラーを実装することで、これらのエラーに対応することができます。

InvalidModificationError DOMException

収録中のストリームのトラック数が変更された場合に発生します。メディアの収録中にトラックを追加したり削除したりすることはできません。

InvalidStateError DOMException

MediaRecorderinactive 状態ではない場合に発生します。すでに収録中の場合は、メディアの収録を開始することはできません。 state プロパティを参照してください。

NotSupportedError DOMException

収録しようとしているメディアストリームが非アクティブであるか、ストリームの 1 つ以上のトラックが現在の設定を使用して収録できない形式である場合に発生します。

SecurityError DOMException

MediaStream が収録を禁止するように設定されている場合に発生します。 これは、例えば、ユーザーが入力機器を使用する許可を拒否したときに getUserMedia() を使用して取得されたソースの場合などです。この例外は、収録開始後にソースメディアのセキュリティオプションが変更された場合にも error イベントとして配信される可能性があります。

UnknownError DOMException

収録処理中に何か他の問題が発生した場合に発生します。

js
record.onclick = () => {
  mediaRecorder.start();
  console.log("収録を開始しました。");
};

仕様書

Specification
MediaStream Recording
# dom-mediarecorder-start

ブラウザーの互換性

BCD tables only load in the browser

関連情報