第一百二十三章(1 / 1)

第一百二十三章

var mictimer:Timer = new Timer();

mictimer.addEventListener(TimerEvent.TIMER, onMicCheck);

mictimer.addEventListner(TimerEvent.TIMERCOMPLETE, onMicCheckComplete)

function onMicCheck(e:TimerEvent)

{

if(miccheckcount > 0)

{

//If cam can work properly.

if(mic.currentFPS > 0)

{

micfpsfailedcount++;

}

else

{

if(prevMicActivity==curMicActivity)

{

micactivityfailedcount++;

}

prevMicActivity = curMicActivity;

}

miccheckcount--;

}

else

{

mictimer.Stop();

}

}

function onMicCheckComplete(e:TimerEvent)

{

if(micfpsfailedcount > 0)

{

micStatus = "Failed to acquire control of Camera. Check if another program is using it or current cam driver is proper or if the cam is correctly connected to computer. ";

return;

}

if(micactivityfailedcount > 0)

{

micStatus = "Failed to acquire image of Camera. Check if something is blocking it. ";

return;

}

errorLabel.text = micStatus;

}

DataProvider micdp = new DataProvider(Microphone.names);

micList.dataProvider = micdp;

micList.addEventListener(Event.CHANGE,micFun);

function micFun (e:Event) : void {

try

{

micStatus = " ";

mictimer.Stop();

micfpsfailedcount = 0;

curMicActivity = 0;

prevMicActivity = curMicActivity;

micactivityfailedcount = 0;

miccheckcount = 5;

FindMicrophone(micList.seletctedIndex);

mictimer.Start();

}

catch(e:Error)

{

if(e.Message == "No Drivers Found")

{

micStatus = "Failed to find driver. ";

}

else

{

micStatus = "Unknown Error";

}

}