#javascript #html
#javascript #HTML
Вопрос:
В настоящее время я запускаю 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="amp;#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>
Ответ №1:
Последняя сборка opera desktop поддерживает getUserMedia() Смотрите здесь:http://labs.opera.com/news/2011/10/19
Это просто игра в ожидании, пока другие браузеры реализуют это. Теперь, когда у opera есть поддержка, вскоре должна последовать другая.
Ответ №2:
Со вчерашнего вечера (3 мая 2012) getUserMedia() в Chrome Canary принимает объект, а не строку.
Чтобы попробовать это, вы можете запустить следующий код из консоли на любой странице (например, этой) с элементом video:
navigator.webkitGetUserMedia(
{"video": true, "audio": true},
function(s){
document.querySelector('video').src =
window.webkitURL.createObjectURL(s);
},
function(e){console.log(e);}
);
Ответ №3:
Я думаю, что в последней версии chrome (12.0.742.16) есть метод заглушки, но я не могу заставить его что-либо делать в 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, но он еще не реализован.
Ответ №4:
Канал разработчиков Chrome ТОЛЬКО что добавил поддержку WebRTC, так что теперь то, о чем вы здесь спрашиваете, действительно становится правдоподобным. Смотрите: https://groups.google.com/forum /#!тема / обсудить-webrtc/LuY7zYLA8sA
В принципе, вы должны использовать префикс webkit: webkitGetUserMedia() хотя документации по этому методу мало, в настоящее время я пытаюсь собрать его рабочую демонстрацию.
Комментарии:
1. miernicki.com/cam.html если вам интересно посмотреть демонстрационную версию в действии…