Estoy haciendo pruebas con el micro y tengo un problema.
Si ejecuto el código que pongo más abajo, que lo he sacado directamente de la ayuda de flash, me funciona todo bien.
Pero si quito lo de: mic.setLoopBack(true);
Porque no quiero escucharme a mi mismo... ya no me sale la ventana que me pide permiso para usar el micro y no pasa nada. No salta el evento ACTIVITY ni nada.
Según he leído en la ayuda nada más hacer Microphone.getMicrophone(); debería saltar la ventana que pide permiso, pero a mi no me salta y supongo que por eso después el micro no va.
¿Alguien sabe como hacerlo sin el LoopBack?
He probado también hacer:
mic.setLoopBack(true);
mic.setLoopBack(false);
Se queda desactivado en cuanto pongo el LooBack a false.
También lo he probado poner a false la primera vez que recibe algún sonido y lo que hace es que ya se queda siempre activo.
código del ejemplo:
import flash,events.ActivityEvent;
import flash,events.StatusEvent;
import flash.media.Microphone;
var deviceArray:Array = Microphone.names;
trace("Available sound input devices:");
for (var i:int = 0; i < deviceArray.length; i++)
{
trace(" " + deviceArray);
}
var mic:Microphone = Microphone.getMicrophone();
mic.gain = 60;
mic.rate = 11;
mic.setUseEchoSuppression(true);
mic.setLoopBack(true);
mic.setSilenceLevel(5, 1000);
mic.addEventListener(ActivityEvent.ACTIVITY, this.onMicActivity);
mic.addEventListener(StatusEvent.STATUS, this.onMicStatus);
var micDetails:String = "Sound input device name: " + mic.name + '\n';
micDetails += "Gain: " + mic.gain + '\n';
micDetails += "Rate: " + mic.rate + " kHz" + '\n';
micDetails += "Muted: " + mic.muted + '\n';
micDetails += "Silence level: " + mic.silenceLevel + '\n';
micDetails += "Silence timeout: " + mic.silenceTimeout + '\n';
micDetails += "Echo suppression: " + mic.useEchoSuppression + '\n';
trace(micDetails);
function onMicActivity(event:ActivityEvent):void
{
trace("activating=" + event.activating + ", activityLevel=" +
mic.activityLevel);
}
function onMicStatus(event:StatusEvent):void
{
trace("status: level=" + event.level + ", code=" + event.code);
}