Wiem, że to stare pytanie, ale właśnie natknąłem się na problem.
Jest to błąd z kodekiem SPEEX jak wspomniano tutaj: Microphone soundTransform and SPEEX codec bug
Ten błąd w zasadzie mówi, że przy użyciu kodeka SPEEX ignoruje dźwięk przekształcać. W ramach tej pracy ustawiam funkcję przełączania, aby zmienić ustawienia mikrofonu, aby wyświetlać aktywność, zanim dźwięk zostanie dołączony do NetStream i obejść problem.
Uwaga: Obiekt Mikrofon wysyła tylko zdarzenia aktywności, gdy aplikacja monitoruje mikrofon. Jeśli więc nie wywołasz funkcji setLoopBack (true), dodaj detektor zdarzeń przykładowych danych lub podłącz mikrofon do obiektu NetStream, a następnie nie zostaną wysłane żadne zdarzenia działań. AS3 Docs
Konfiguracja Mic: (m jest zmienną instancji)
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!
Przełącz do trybu offline 'i' działalności 'on-line' Monitorowanie
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;
}
}
kodeki Przełączanie pomaga zmniejszyć przepustowość.
Mam nadzieję, że pomoże to komuś zaoszczędzić trochę czasu.
Mam ten sam problem. Muszę wyświetlić aktywność mikrofonu bez wysyłania dźwięku do głośników. Echo renderuje nagrywanie dźwięku Flash bezużyteczne ... –