as3 função scanHardware () fazendo meu aplicativo falhar

9

Estou usando a função ScanHardware para obter a lista de câmeras atualizada. Se conectar uma câmera ao meu Mac mini, o comprimento da câmera está sendo atualizado. Se eu desligar a câmera, meu aplicativo fecha abruptamente.

<?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 eu usar Camera.names depois que eu desconectar qualquer Camera , meu aplicativo está falhando.

Como resolver o problema?

    
por Vishnu 21.10.2015 в 08:05
fonte

1 resposta

2

Os erros do ActionScript não devem causar falhas no aplicativo. Quando um aplicativo trava, geralmente porque ele tentou uma operação ilegal no nível nativo, como gravar em memória reservada / inválida. Eu começaria procurando por um problema com a câmera ou USB. Se você conseguir reproduzir o problema usando uma marca diferente de webcam, poderá descartar o hardware da câmera & amp; motorista. Se você conseguir reproduzir o problema em outro mac, provavelmente não é o USB.

    
por duggulous 26.10.2015 / 20:24
fonte