MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

これは実験段階の機能です。
この機能は複数のブラウザで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザの将来のバージョンで変更になる可能性があることに注意してください。

MediaDevices インターフェイスは、カメラやマイク、同様に画面共有のような接続されたメディア入力デバイスへのアクセスを提供します。

プロパティ

なし。

メソッド

MediaDevices.getUserMedia()
ユーザの許可を元に、システム上のカメラや画面共有機能、マイクを起動して、入力と共にビデオトラックやオーディオトラックを含む MediaStream を提供します。
MediaDevices.enumerateDevices()
システム上で使用できる入出力メディアデバイスについての情報を持つ配列を取得します。

'use strict';

// Put variables in global scope to make them available to the browser console.
var video = document.querySelector('video');
var constraints = window.constraints = {
  audio: false,
  video: true
};
var errorElement = document.querySelector('#errorMsg');

navigator.mediaDevices.getUserMedia(constraints)
.then(function(stream) {
  var videoTracks = stream.getVideoTracks();
  console.log('Got stream with constraints:', constraints);
  console.log('Using video device: ' + videoTracks[0].label);
  stream.onended = function() {
    console.log('Stream ended');
  };
  window.stream = stream; // make variable available to browser console
  video.srcObject = stream;
})
.catch(function(error) {
  if (error.name === 'ConstraintNotSatisfiedError') {
    errorMsg('The resolution ' + constraints.video.width.exact + 'x' +
        constraints.video.width.exact + ' px is not supported by your device.');
  } else if (error.name === 'PermissionDeniedError') {
    errorMsg('Permissions have not been granted to use your camera and ' +
      'microphone, you need to allow the page access to your devices in ' +
      'order for the demo to work.');
  }
  errorMsg('getUserMedia error: ' + error.name, error);
});

function errorMsg(msg, error) {
  errorElement.innerHTML += '<p>' + msg + '</p>';
  if (typeof error !== 'undefined') {
    console.error(error);
  }
}

仕様

仕様 ステータス コメント
Media Capture and Streams
MediaDevices の定義
勧告改訂案 初回定義。

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 未サポート 36.0 (36.0) 未サポート 未サポート 未サポート
enumerateDevices() 45.0[1] ? 未サポート 未サポート 未サポート
Feature Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
基本サポート 未サポート 未サポート 36.0 (36.0) 2.2 未サポート 未サポート 未サポート 未サポート
enumerateDevices() 未サポート 未サポート ? ? 未サポート 未サポート 未サポート 未サポート

[1] Behind a flag.

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: dskmori, YuichiNukiyama, teoli
 最終更新者: dskmori,