16

我搜索了很多关于 getUserMedia 的 DEMO 和示例,但大多数只是相机捕捉,而不是麦克风。

所以我下载了一些例子并在我自己的电脑上尝试,相机捕捉是工作,但是当我改变了

navigator.webkitGetUserMedia({video : true},gotStream);

navigator.webkitGetUserMedia({audio : true},gotStream);

浏览器要求我先允许麦克风访问,然后它失败了

document.getElementById("audio").src = window.webkitURL.createObjectURL(stream); 

消息是:

GET blob:http%3A//localhost/a5077b7e-097a-4281-b444-8c1d3e327eb4 404 (Not Found)

这是我的代码:getUserMedia_simple_audio_test

我做错什么了吗?或者现在只有 getUserMedia 可以用于相机?

4

4 回答 4

10

它目前在 Google Chrome 中不可用。请参阅问题 112367

你可以在演示中看到,它总是会抛出一个错误说

GET blob:http%3A//whatever.it.is/b0058260-9579-419b-b409-18024ef7c6da 404(未找到)

而且你也不能听麦克风

{
    video: true,
    audio: true
}
于 2012-05-29T00:24:09.983 回答
5

Chrome Canary 目前支持它。您需要在地址栏中输入 about:flags,然后启用 Web 音频输入。

以下代码将音频输入连接到扬声器。注意反馈!

<script>
// this is to store a reference to the input so we can kill it later 
var liveSource;
// creates an audiocontext and hooks up the audio input
function connectAudioInToSpeakers(){
  var context = new webkitAudioContext();  
  navigator.webkitGetUserMedia({audio: true}, function(stream) {
    console.log("Connected live audio input");
    liveSource = context.createMediaStreamSource(stream);
    liveSource.connect(context.destination);
  });
 }
// disconnects the audio input
function makeItStop(){
   console.log("killing audio!");
   liveSource.disconnect();
 }
// run this when the page loads
connectAudioInToSpeakers();
</script>
<input type="button" value="please make it stop!" onclick="makeItStop()"/>
于 2012-10-29T13:17:29.470 回答
1

(对不起,我忘记登录了,所以用我正确的用户名发帖...)

Chrome Canary 目前支持它。您需要about:flags在地址栏中输入内容,然后启用 Web 音频输入。

以下代码将音频输入连接到扬声器。注意反馈!

http://jsfiddle.net/2mLtM/

<script>
// this is to store a reference to the input so we can kill it later 
var liveSource;
// creates an audiocontext and hooks up the audio input
function connectAudioInToSpeakers(){
  var context = new webkitAudioContext();  
  navigator.webkitGetUserMedia({audio: true}, function(stream) {
    console.log("Connected live audio input");
    liveSource = context.createMediaStreamSource(stream);
    liveSource.connect(context.destination);
  });
 }
// disconnects the audio input
function makeItStop(){
   console.log("killing audio!");
   liveSource.disconnect();
 }
// run this when the page loads
connectAudioInToSpeakers();
</script>
<input type="button" value="please make it stop!" onclick="makeItStop()"/>
于 2012-10-29T13:25:34.833 回答
0

它的工作,你只需要在toString之后添加参数audio : true

检查这篇文章 -链接

于 2012-07-22T19:45:00.857 回答