试图弄清楚为什么需要将setloopback设置为true才能检测到麦克风活动。

问题是使用内置麦克风的macbook时的回声反馈。

如果有人对此有任何想法,请告诉我。

现在我正在尝试切换增益,取决于模拟回声减少的活动。 虽然不是最佳的。

@lessfame

#1楼 票数:13

我正在寻找类似的解决方案,然后我发现你可以对麦克风应用声音变换来控制麦克风输入的输出音量。

所以它可以很容易地完成:

var st:SoundTransform = new SoundTransform(0);
mic.soundTransform = st;

我知道你差不多一年前就问过这个问题了,但我想我会为任何寻找答案的人提出这个问题。
干杯,

#2楼 票数:4

我知道这是一个老问题,但刚刚遇到了问题。

如下所示,SPEEX编解码器存在一个错误: Microphone soundTransform和SPEEX编解码器错误

这个bug基本上说使用SPEEX编解码器会忽略声音转换。 为解决这个问题,我设置了一个切换功能,可以在将音频附加到NetStream之前切换麦克风的设置以显示活动,并解决该问题。

注意:Microphone对象仅在应用程序监视麦克风时调度Activity事件。 因此,如果不调用setLoopBack(true),为示例数据事件添加侦听器,或将麦克风附加到NetStream对象,则不会调度任何活动事件。 AS3文件

设置麦克风:(m是实例变量)

m = Microphone.getMicrophone();
m.setSilenceLevel(0);
m.gain = 75;
m.setUseEchoSuppression(true);
m.rate = 16;    //rate only applies to NELLYMOSER Codec - but 16 kHz matches SPEEX default setting
m.setLoopBack(true);    //necessary to get activity
m.codec = SoundCodec.NELLYMOSER;    //this is default
m.soundTransform = new SoundTransform(0);    //mute so you don't get crazy echo!

切换“离线”和“在线”活动监控

protected function audioMeterToggle(switch:String) {
    if(switch == "offline") {
        m.setLoopBack(true);
        m.soundTransform.volume = 0;
        m.codec = SoundCodec.NELLYMOSER;
    } else {
        m.setLoopBack(false);
        m.soundTransform.volume = 1;
        m.codec = SoundCodec.SPEEX;
    }
}

切换编解码器有助于减少带宽。

希望这有助于节省一些时间。

  ask by Franky translate from so

未解决问题?本站智能推荐:

2回复

AS3中具有麦克风输入数据的快速傅立叶变换

是否可以获取adobes flash.media.SoundMixer类的源? 如果是,我在哪里可以找到/获得它? 我打算“克隆” .computeSpectrum()函数,以将来自麦克风输入的原始声波(byteArray)转换为频谱。 我发现了几个这样的示例-> http:/
1回复

AS3。麦克风录制的持续时间少于原始声音

在我的as3应用程序中,我使用Microphone类捕获声音输入。 但是我遇到了问题。 我的录音时间少于原始声音。 如果将麦克风设备放在扬声器附近,则很容易重现该问题。 我开始使用Sound类播放本地mp3并将麦克风样本放入字节数组。 之后,我将带有麦克风样本的字节数组保存到本地文
1回复

Actionscript3.0麦克风分贝

HY, 如何从ActionScript 3.0的Microphone类获取分贝值。 提前致谢!
1回复

使用ActionScript3录制保存声音到文件,而不是通过麦克风

我正在尝试创建一个Flash应用程序(更像一个游戏),用户可以在其中向时间线添加声音,然后播放生成的“歌曲”。 这样做并非难事,并且可以在我的应用程序中保存并播放生成的轨道,但是问题是我想将创建的轨道导出为.wav(或.mp3)。 我知道可以使用MicRecorder从麦克风进行录制,然后可
2回复

仅当使用setLoopBack()时,as3中的getMicrophone()才能工作

我想用闪光灯(as3)监视麦克风音频输入。 这只是我的代码的一小部分,但实际上问题出在这里。 如果我按原样使用代码,则可以跟踪activityLevel并实际上可以看到一些值。(我认为这是数量?) 好吧,唯一的问题是,音频也被输出到扬声器,这是我不想要的...( mic.setLoo
2回复

如何过滤闪光灯(10.1)中来自麦克风的声音?

我觉得麦克风传来一些声音。 我需要为其添加声音过滤器,然后将其播放给与该麦克风通话的人。 怎么做这样的事情?
1回复

动作脚本:通过扬声器(通过缓冲器)以恒定延迟从麦克风播放声音

我正在寻找一个代码示例,它从麦克风采样信号并在扬声器上播放。 我需要一个在不同平台(PC,android,iphone)上具有合理恒定延迟的解决方案。 延迟大约1-2秒对我来说是可以的,我不介意它是否每次应用程序启动时都会有所不同。 我尝试在Sound和Microphpne classe
1回复

ActionScriptUSB麦克风口吃

USB麦克风输入有问题。 使用笔记本电脑的内置麦克风时,以下录制的缓冲区可以正常播放: 但是,当我选择USB麦克风时,声音会发硬,就像在缓冲区之间增加静音一样。 顺便说一句,如果我使用Audacity之类的程序来录制USB麦克风,则一切正常。