2015-10-21 84 views
9

Sto utilizzando la funzione ScanHardware per ottenere l'elenco aggiornato delle telecamere. Se si collega una fotocamera al mio Mac mini, la durata della telecamera viene aggiornata. Se estrai la fotocamera La mia app si chiude bruscamente.Funzione as3 scanHardware() che causa il crash della mia app

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

Se uso Camera.names dopo si scollega qualsiasi Camera, La mia applicazione si blocca.

Come risolvere il problema?

+1

Il tuo codice funziona bene per me in Windows 10. Provalo su altre macchine, se funziona così forse hai qualche problema nel tuo computer (versione AIR, driver cam, ...) ... – akmozo

+0

Funziona bene su Windows, l'ho provato. Ma non funziona su Mac. – Vishnu

risposta

2

Gli errori di Actionscript non devono causare l'arresto anomalo dell'app. Quando un'app si arresta in modo anomalo, di solito perché ha tentato un'operazione illegale a livello nativo come scrivere su una memoria riservata/non valida. Vorrei iniziare cercando un problema con la fotocamera o USB. Se è possibile riprodurre il problema utilizzando una diversa marca di webcam, è possibile escludere il driver della videocamera &. Se è possibile riprodurre il problema su un altro Mac, probabilmente non è l'USB.