--- title: MediaRecorder API slug: Web/API/MediaRecorder_API translation_of: Web/API/MediaStream_Recording_API translation_of_original: Web/API/MediaRecorder_API ---
MediaRecorder API (MediaStream Recording) はインプットデバイスからのメディアストリームを記録するための API です。記録したストリームは PCM データのエンコードと言った操作をせずに利用できます。 {{ domxref("Navigator.getUserMedia()") }} を単体で利用する際の利用が想定されています。
MediaRecorder を {{ domxref("Navigator.getUserMedia()") }} とともに利用することで、メディアデータを記録できます。単純には、 {{ domxref("MediaRecorder.start()") }} メソッドを呼ぶことで記録を開始できます。MediaStream の終了、もしくは {{ domxref("MediaRecorder.stop()") }} や{{ domxref("MediaRecorder.requestData()") }} の呼び出しによって記録用のデータが準備できた際には、dataavailable イベントが発生します。現在のところ、データはプラットホームの標準でエンコードされ、 dataavailableの data 属性に {{ domxref("Blob") }} として配置されます。
アプリは利用可能なエンコード方式を問い合わせ、その中から利用するものを選択することも可能です。またデータをより小さなバッファとして一定間隔で受け取ることもできます。間隔は {{ domxref("MediaRecorder.start()") }} を呼ぶ際に指定できます。
注意: MediaRecorder API の基本的な利用方法については MediaRecorder API の利用 をご覧ください。
MediaRecorder() コンストラクタによって作成される。if (navigator.getUserMedia) {
console.log('getUserMedia supported.');
navigator.getUserMedia (
// constraints - only audio needed for this app
{
audio: true
},
// Success callback
function(stream) {
var mediaRecorder = new MediaRecorder(stream);
record.onclick = function() {
mediaRecorder.start();
console.log("recorder started");
}
stop.onclick = function() {
mediaRecorder.stop();
console.log("recorder stopped");
}
mediaRecorder.ondataavailable = function(e) {
console.log("data available after MediaRecorder.stop() called.");
var audio = document.createElement('audio');
audio.setAttribute('controls', '');
var audioURL = window.URL.createObjectURL(e.data);
audio.src = audioURL;
}
},
// Error callback
function(err) {
console.log('The following gUM error occured: ' + err);
}
);
} else {
console.log('getUserMedia not supported on your browser!');
}
注意: このサンプルコードはWeb Dictaphoneのデモを参考にしています。コードを簡単にする為にいくつかの行は省略されています。完全なコードは 元ソース を参照して下さい。
{{ CompatibilityTable() }}
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Basic support |
{{ CompatChrome(47.0) }} |
{{ CompatGeckoDesktop("25.0") }} | {{ CompatNo() }} | {{ CompatNo() }} | {{ CompatNo() }} |
| Feature | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | {{ CompatChrome(47.0) }} | {{ CompatGeckoDesktop("25.0") }} | 1.3 | {{ CompatNo() }} | {{ CompatNo() }} | {{ CompatNo() }} |
[1] The initial Firefox OS implementation only supported audio recording.
[2] To use {{domxref("MediaRecorder")}} in Chrome 47 and 48, enable experimental Web Platform features from the chrome://flags page.
[3] Audio recording works in Chrome 49 and above; Chrome 47 and 48 only support video recording.
| Specification | Status | Comment |
|---|---|---|
| {{SpecName('MediaStream Recording', '#MediaRecorderAPI')}} | {{Spec2('MediaStream Recording')}} |