gpt4 book ai didi

javascript - 如何避免播放正在录制的声音

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:44:11 26 4
gpt4 key购买 nike

我说的是反馈——当你制作一个简单的 javascript 应用程序打开来自用户的流并读取频率分析(或其他任何东西)时,它会将所有接收到的数据传回 Google Chrome 和 Opera 中的耳机. Firefox 大部分时间都是静默的,并且会随机产生不稳定反馈的巨大困惑——它还会在几秒钟后关闭流。一般来说,这个东西还不能在 Firefox 中运行。

我创建了一个 fiddle .如果您的浏览器不支持它,我假设您只会在控制台中收到错误消息。

代码的关键部分是当用户接受麦克风访问请求时调用的函数:

        //Not sure why do I do this
var inputPoint = context.createGain();

// Create an AudioNode from the stream.
var source = context.createMediaStreamSource(stream);
source.connect(inputPoint);

//Analyser - this converts raw data into spectral analysis
window.analyser = context.createAnalyser();
//Mores stuff I know nothing about
analyser.fftSize = 2048;
//Sounds much like connecting nodes in MatLab, doesn't it?
inputPoint.connect(analyser);
analyser.connect(context.destination);
///THIS should probably make the sound silent (gain:0) but it doesn't
var zeroGain = context.createGain();
zeroGain.gain.value = 0.0;
//More connecting... are you already lost which node is which? Because I am.
inputPoint.connect(zeroGain);
zeroGain.connect(context.destination);

零增益想法不是我的,我从简单的sound recorder demo偷来的.但对他们有用的东西对我不起作用。该演示在 Firefox 中也没有问题,就像我一样。

最佳答案

在函数 mediaGranted(stream) {...

注释掉..Fiddle line #46://analyser.connect(context.destination);..

更多信息 https://mdn.mozillademos.org/files/5081/WebAudioBasics.png不错的演示:http://mdn.github.io/voice-change-o-matic/

关于javascript - 如何避免播放正在录制的声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23791276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com