No tengo idea de por qué pero hace unas semanas atras me surgió la duda sobre cuántas cámaras se pueden conectar en una misma aplicación Flex. Sobran los artículos sobre conexión de webcams remotas; de hecho, hace un tiempo atras hice algunas pruebas de streaming de video de una webcam mediante Red5, pero realmente no recuerdo haberme cruzado con algún código que conectara varias camaras a la vez de manera local.
Así que para no quedarme con la duda, comencé a codificar mis intentos y el resultado lo comparto aquí con ustedes, esperando, como siempre, que pueda ser de ayuda para alguien. Lo interesante de este ejemplo se encuentra en la línea 86 del código, ya que al invocar el método getCamera, podemos pasar el número específico de la cámara que queremos encender como parámetro, pero debe indicarse como String y no como un entero:
80 81 82 83 84 85 86 87 88 89 90 91 92 | /** * Carga la camara correspondiente al indice indicado y la agrega a la lista de camaras * listas. **/ private function cargarCamara( indice : uint ):void { var camara : Camera = Camera.getCamera( String( indice ) ); if ( camara != null ) { camara.addEventListener( ActivityEvent.ACTIVITY, camaraActivityEventHandler, false, 0, true ); camarasListas.push( camara ); } } |
Ignoro si conectar varias camaras a la vez pueda servir para algo. El único uso útil que se me ocurrió para esto fue hacer una aplicación AIR que grabara videos desde distintos ángulos (¿?). Al don rafaelochoa se le ocurrió que podría servir para hacer una aplicación de vigilancia, tipo circuito cerrado. Queda de parte de ustedes intentar desarrollar algo útil. Me gustaría leer en los comentarios qué se les ocurre, así como cualquier duda que tengan.
Nota: Obviamente, no tiene sentido probar el ejemplo si no se dispone de, al menos, 2 camaras.
Infinitas cámaras en Flex
Código