第一百二十三章
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";
}
}