Как мне получить доступ к navigator.getUserMedia ()? - PullRequest
16 голосов
/ 01 мая 2011

В настоящее время я использую Chrome 11 и пытаюсь получить доступ к getUserMedia для поддержки собственных потоков аудио и видео HTML5, но получаю сообщение об ошибке, в котором говорится, что navigator.getUserMedia не определено.Если он не поддерживается, как мне получить к нему доступ или нужно подождать, пока Chrome его включит?

Это код, который я использовал для проверки getUserMedia, который я нашел

 <h1>Snapshot Kiosk</h1>
 <section id="splash">
  <p id="errorMessage">Loading...</p>
 </section>
 <section id="app" hidden>
  <p><video id="monitor" autoplay></video> <canvas id="photo"></canvas>
  <p><input type=button value="&#x1F4F7;" onclick="snapshot()">
 </section>
 <script>
  navigator.getUserMedia('video user', gotStream, noStream);
  var video = document.getElementById('monitor');
  var canvas = document.getElementById('photo');
  function gotStream(stream) {
    video.src = URL.getObjectURL(stream);
    video.onerror = function () {
      stream.stop();
      noStream();
    }
    video.onloadedmetadata = function () {
      canvas.width = video.videoWidth;
      canvas.height = video.videoHeight;
      document.getElementById('splash').hidden = true;
      document.getElementById('app').hidden = false;
    }
  }
  function noStream() {
    document.getElementById('errorMessage').textContent = 'No camera available.';
  }
  function snapshot() {
    canvas.getContext('2d').drawImage(video, 0, 0);
  }
 </script>

Ответы [ 5 ]

6 голосов
/ 21 октября 2011
4 голосов
/ 04 мая 2012

С прошлой ночи (3 мая 2012 г.) функция getUserMedia () в Chrome Canary получает объект, а не строку.

Чтобы попробовать, вы можете запустить следующий код из консоли на любой странице (например, this ) с элементом video:

navigator.webkitGetUserMedia(
  {"video": true, "audio": true}, 
  function(s){
    document.querySelector('video').src = 
      window.webkitURL.createObjectURL(s);
  }, 
  function(e){console.log(e);}
);
4 голосов
/ 20 октября 2011

В последней сборке рабочего стола Opera есть поддержка getUserMedia () Смотрите здесь: http://labs.opera.com/news/2011/10/19/

Это просто игра ожидания для других браузеров, чтобы реализовать это. Теперь эта опера имеет поддержку, скоро должен последовать другой.

3 голосов
/ 19 января 2012

Chrome Dev Channel ПРОСТО добавила поддержку WebRTC, поэтому СЕЙЧАС то, что вы спрашиваете здесь, становится правдоподобным.См .: https://groups.google.com/forum/#!topic/discuss-webrtc/LuY7zYLA8sA

По сути, вы должны использовать префикс webkit: webkitGetUserMedia (), хотя документации по этому методу недостаточно, в настоящее время я пытаюсь собрать рабочую демонстрацию этого.

3 голосов
/ 04 мая 2011

Я думаю, что в последней версии Chrome Dev есть метод заглушки (12.0.742.16 dev), но я не могу заставить его что-либо делать на Mac OSX. По крайней мере, я думал, что видел это. Я только что проверил, и метод, кажется, больше не существует. Вот отчет об ошибке webkit для реализации getUserMedia: https://bugs.webkit.org/show_bug.cgi?id=56586

Я думаю, что единственной работающей реализацией на данный момент является Opera для Android. http://my.opera.com/core/blog/2011/03/23/webcam-orientation-preview

Метод chrome / webkit - это webkitGetUserMedia, но он еще не реализован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...