如何在javascript中捕获音频?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在javascript中捕获音频?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1887字,纯文字阅读大概需要3分钟。
内容图文
![如何在javascript中捕获音频?](/upload/InfoBanner/zyjiaocheng/706/efbf58a947bd4d3ba78e521aee7d9236.jpg)
我目前正在使用getUserMedia(),它只适用于Firefox和Chrome,但它已被弃用,仅适用于https(在Chrome中).有没有其他/更好的方法来获得适用于所有平台的javascript中的语音输入?
例如. web.whatsapp.com app等网站如何录制音频? getUserMedia()提示第一次用户允许录音,而Whatsapp应用程序不需要用户的许可.
我目前使用的getUserMedia()如下所示:
navigator.getUserMedia(
{
"audio": {
"mandatory": {
"googEchoCancellation": "false",
"googAutoGainControl": "false",
"googNoiseSuppression": "false",
"googHighpassFilter": "false"
},
"optional": []
},
}, gotStream, function(e) {
console.log(e);
});
解决方法:
Chrome 60执行require using https,因为getUserMedia是一个功能强大的feature.API访问不应该在非安全域中工作,因为该API访问可能会流向非安全的actor.不过,Firefox仍支持getUserMedia over http.
我一直在使用RecorderJS,它很好地满足了我的目的.
这是一个代码示例. (source)
function RecordAudio(stream, cfg) {
var config = cfg || {};
var bufferLen = config.bufferLen || 4096;
var numChannels = config.numChannels || 2;
this.context = stream.context;
var recordBuffers = [];
var recording = false;
this.node = (this.context.createScriptProcessor ||
this.context.createJavaScriptNode).call(this.context,
bufferLen, numChannels, numChannels);
stream.connect(this.node);
this.node.connect(this.context.destination);
this.node.onaudioprocess = function(e) {
if (!recording) return;
for (var i = 0; i < numChannels; i++) {
if (!recordBuffers[i]) recordBuffers[i] = [];
recordBuffers[i].push.apply(recordBuffers[i], e.inputBuffer.getChannelData(i));
}
}
this.getData = function() {
var tmp = recordBuffers;
recordBuffers = [];
return tmp; // returns an array of array containing data from various channels
};
this.start() = function() {
recording = true;
};
this.stop() = function() {
recording = false;
};
}
用法很简单:
var recorder = new RecordAudio(userMedia);
recorder.start();
recorder.stop();
var recordedData = recorder.getData()
编辑:如果没有任何效果,您可能还想检查此answer.
内容总结
以上是互联网集市为您收集整理的如何在javascript中捕获音频?全部内容,希望文章能够帮你解决如何在javascript中捕获音频?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。