从 JavaScript 访问麦克风输入

Posted

技术标签:

【中文标题】从 JavaScript 访问麦克风输入【英文标题】:Access microphone input from JavaScript 【发布时间】:2014-01-21 19:47:23 【问题描述】:

我想使用navigator.getUserMedia() 访问麦克风输入,但不确定如何继续。

我可以很好地启动音频,但我不知道之后该怎么处理。

if (!navigator.getUserMedia) 
    navigator.getUserMedia = navigator.getUserMedia 
                           || navigator.webkitGetUserMedia 
                           || navigator.mozGetUserMedia 
                           || navigator.msGetUserMedia;    


if (navigator.getUserMedia) 
    navigator.getUserMedia(audio: true, function (e) 
        // what goes here?
    , function (e) 
        alert('Error capturing audio.');
    );
 else 
    alert('getUserMedia not supported in this browser.');

我想以流的形式访问它。我什至不需要立体声,只是一种获取数据的方法。

编辑:我想使用 websockets 将数据发送回服务器,以创建一种对讲系统。在这里,我需要能够访问一个简单的音频流,在某些事件上停止和启动它。

【问题讨论】:

github.com/mattdiamond/Recorderjs 我不是这方面的专家,但我一直在阅读有关 Web 实时通信项目的信息。 webrtc.org 我发现这篇博文很有帮助:html5rocks.com/en/tutorials/getusermedia/intro @HarveyA.Ramer 我看到了 html5rocks 的帖子,但它主要是关于视频的。 确切地知道你想做什么会很有帮助。您是否尝试添加效果?录制音频?分析一下? @KevinEnnis 我想使用 websockets 将它发送回服务器,以创建一种对讲机。 【参考方案1】:

如果您的意思是要访问正在进行的音频流的原始样本,请在 Web Audio (http://webaudio.github.io/web-audio-api/#ScriptProcessorNode) 中使用 ScriptProcessorNode。上面提到的 RecordJS 将帮助您展示如何做到这一点。

【讨论】:

以上是关于从 JavaScript 访问麦克风输入的主要内容,如果未能解决你的问题,请参考以下文章

使用 JavaScript 进行麦克风输入

管理对麦克风输入和系统音量的访问

从浏览器中的麦克风获取音频输入并提取特征

Java:从 2 个不同的麦克风输入中独立捕获音频

通过 JavaScript 连接电脑音源

HTML/JavaScript - 为文本框输入激活键盘麦克风