Sé que esta es una pregunta anterior, pero acaba de encontrar el problema.
Hay un error con el códec SPEEX como se ha señalado aquí: Microphone soundTransform and SPEEX codec bug
Este error básicamente dice que el uso del códec SPEEX ignora transformar el sonido. Como solución alternativa para esto, configuré una función de alternar para cambiar la configuración del micrófono para que muestre la actividad antes de conectar el audio a un NetStream y evitar el error.
Nota: Un objeto de micrófono solo distribuye eventos de actividad cuando la aplicación está monitoreando el micrófono. Por lo tanto, si no llama a setLoopBack (verdadero), agregue un oyente para eventos de datos de muestra, o conecte el micrófono a un objeto NetStream, entonces no se envían eventos de actividad. AS3 Docs
de configuración del micrófono: (m es una variable de instancia)
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!
Toggle para 'offline' y la actividad 'en línea' monitoreo
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;
}
}
códecs de conmutación ayuda a reducir el ancho de banda.
Espero que esto ayude a alguien a ahorrar algo de tiempo.
Tengo el mismo problema. Necesito mostrar la actividad del micrófono sin enviar el audio a los altavoces. El eco hace que la grabación de audio Flash sea inútil ... –