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
イベントを発生させようとします。
構文
start()
start(timeslice)
引数
timeslice
省略可-
各
Blob
に収録するミリ秒数。 この引数が含まれていない場合は、requestData()
メソッドが呼び出されてBlob
が取得され、メディアの収録を継続する新しいBlob
の作成のきっかけがない限り、メディア期間全体が単一のBlob
に収録されます。
返値
なし (undefined
)。
例外
すぐに検出できるエラーは DOM 例外としてスローされます。 他のすべてのエラーは、MediaRecorder
オブジェクトに送られた error
イベントを通じて報告されます。 onerror
イベントハンドラーを実装することで、これらのエラーに対応することができます。
InvalidModificationError
DOMException
-
収録中のストリームのトラック数が変更された場合に発生します。メディアの収録中にトラックを追加したり削除したりすることはできません。
InvalidStateError
DOMException
-
MediaRecorder
がinactive
状態ではない場合に発生します。すでに収録中の場合は、メディアの収録を開始することはできません。state
プロパティを参照してください。 NotSupportedError
DOMException
-
収録しようとしているメディアストリームが非アクティブであるか、ストリームの 1 つ以上のトラックが現在の設定を使用して収録できない形式である場合に発生します。
SecurityError
DOMException
-
MediaStream
が収録を禁止するように設定されている場合に発生します。 これは、例えば、ユーザーが入力機器を使用する許可を拒否したときにgetUserMedia()
を使用して取得されたソースの場合などです。この例外は、収録開始後にソースメディアのセキュリティオプションが変更された場合にもerror
イベントとして配信される可能性があります。 UnknownError
DOMException
-
収録処理中に何か他の問題が発生した場合に発生します。
例
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()