HTML5 如何从默认麦克风捕获音频

8

有没有人能帮我用HTML5从默认麦克风中捕获音频?虽然有许多示例可用,但似乎没有一个有效。我尝试过使用HTML5捕获音频,但它只在启用标志的Chrome浏览器中工作,而且出现了NavigatorUserMediaError错误。地址栏上的视频图标有一个红色的叉号,并且其提示说“此页面已被阻止访问您的摄像头和麦克风”。

3个回答

9

HTML5 Rocks 网站上有一些很棒的文章。这是我挑选的其中一篇。 http://updates.html5rocks.com/2012/09/Live-Web-Audio-Input-Enabled

// success callback when requesting audio input stream
function successCallback(stream) {
    var audioContext = new (window.webkitAudioContext)();

    // Create an AudioNode from the stream.
    var mediaStreamSource = audioContext.createMediaStreamSource( stream );

    // Connect it to the destination to hear yourself (or any other node for processing!)
    mediaStreamSource.connect( audioContext.destination );
}

function errorCallback() {
    console.log("The following error occurred: " + err);
}

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

1
谢谢您的回复。我也尝试了这个方法,但好像不起作用。从链接中我们可以得到两个示例实时演示。一个,但都没有起作用。两者都要求我允许使用麦克风,但之后什么也没有发生。唯一的变化是标题图标上有一个红色球缓慢闪烁。我的Chrome浏览器是最新版本,并且我已经启用了“Web音频输入”。有人能提供一个可行的示例吗? - abduIntegral
1
HTML5 Rocks在Web Audio API刚出现时创建了一些网络音频演示,但随着API的发展,他们从未更新这些演示。遗憾的是,他们的一些网络音频演示已经无法正常工作了。 - Raphael Serota
我刚刚更新了这个,现在有两个回调函数用于成功和错误,你可以将{audio: true}作为第一个参数传递,如果用户允许访问麦克风,它将作为流返回到successCallback中。然后,您可以创建媒体流并对其进行任何操作。 - Cameron

3

请确保您从Web服务器启动演示 - 简单地复制/粘贴并从文件系统启动将无法工作 - 在Chrome中,您永远无法以这种方式访问麦克风。


2
最近(具体时间不确定),Chrome增加了要求必须通过SSL访问页面才能启用getUserMedia功能。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接