2015-10-21 24 views
9

Używam funkcji ScanHardware, aby uzyskać zaktualizowaną listę kamer. Jeśli podłączasz kamerę do mojego komputera Mac mini, długość kamery jest aktualizowana. Jeśli wyłączyłem kamerę Moja aplikacja nagle się zamyka.as3 funkcja scanHardware() powodująca awarię mojej aplikacji

<?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> 

Jeśli używam Camera.names po odłączeniu jakiegokolwiek Camera, Moja aplikacja jest upaść.

Jak rozwiązać problem?

+1

Twój kod działa dobrze dla mnie w Windows 10. Spróbuj go na innych komputerach, jeśli działa, więc może masz problem z urządzeniem (wersja AIR, sterownik kamery, ...) ... – akmozo

+0

To działa dobrze w systemie Windows próbowałem tego. Ale nie działa na Macu. – Vishnu

Odpowiedz

2

Błędy Actionscript nie powinny powodować awarii aplikacji. Gdy aplikacja się zawiesza, zazwyczaj dlatego, że podjęła próbę nielegalnej operacji na poziomie macierzystym, na przykład zapisywania w pamięci zarezerwowanej/nieważnej. Zacznę od znalezienia problemu z aparatem lub USB. Jeśli możesz odtworzyć problem za pomocą innej marki kamery internetowej, możesz wykluczyć sterownik sprzętowy kamery &. Jeśli możesz odtworzyć problem na innym macu, to prawdopodobnie nie jest to USB.

Powiązane problemy