2015-10-21 21 views
9

Ich benutze ScanHardware Funktion, um die aktualisierte Kameraliste zu bekommen. Wenn eine Kamera an meinen Mac mini angeschlossen wird, wird die Kameralänge aktualisiert. Wenn ich die Kamera ausschließe, wird meine App abrupt geschlossen.as3 scanHardware() Funktion macht meine App zum Absturz

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         height="280" 
         width="280" 
         creationComplete="test1()"> 
    <fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 
    <fx:Script> 
     <![CDATA[ 

      import mx.controls.Alert; 
      public var hardwareTimer:Timer; 
      public function test1():void{ 
       hardwareTimer = new Timer(5000); 
       hardwareTimer.addEventListener(TimerEvent.TIMER,refreshHardware); 
       hardwareTimer.start(); 
      } 
      public function refreshHardware(ev:TimerEvent):void{ 

       flash.media.scanHardware(); 
       Alert.show(Camera.names.length.toString()); 
      } 
     ]]> 
    </fx:Script> 
</s:WindowedApplication> 

Wenn ich Camera.names verwenden, nachdem ich eine Camera ziehen, ist meine App abstürzt.

Wie löst man das Problem?

+1

Ihr Code funktioniert gut für mich in Windows 10. Versuchen Sie es in anderen Maschinen, wenn es funktioniert, vielleicht haben Sie ein Problem in Ihrem Gerät (AIR-Version, Cam-Treiber, ...) ... – akmozo

+0

Es funktioniert gut Unter Windows habe ich das ausprobiert. Aber es funktioniert nicht auf Mac. – Vishnu

Antwort

2

Actionscript-Fehler sollten nicht zum Absturz der App führen. Wenn eine App abstürzt, liegt das meist daran, dass sie versucht hat, eine unzulässige Operation auf der nativen Ebene auszuführen, wie das Schreiben in reservierten/ungültigen Speicher. Ich würde anfangen, nach einem Problem mit der Kamera oder USB zu suchen. Wenn Sie das Problem mit einer anderen Webcam reproduzieren können, können Sie die Kamera Hardware & Treiber ausschließen. Wenn Sie das Problem auf einem anderen Mac reproduzieren können, dann ist es wahrscheinlich nicht der USB.