我目前正在运行 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="📷" 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>
最佳答案
最新的 Opera 桌面版本支持 getUserMedia() 看这里:http://labs.opera.com/news/2011/10/19/
这只是等待其他浏览器实现这一点的等待游戏。现在歌剧有了支持, 另一个应该很快跟进。
关于javascript - 我如何访问 navigator.getUserMedia()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5845306/