2011-04-25 14 views
8

Estoy utilizando Flex Hero Prelanzamiento 4.5 y esta es una aplicación Flex Mobile para Android.Girar CÁMARA SIN PROCESAR (no solo el video) en el aire para Android

Tengo una situación en la que la cámara cruda se muestra en la pantalla y se transmite en una corriente netstream. Aparentemente ahora en AIR para Android si solo estás usando la cámara cruda en el retrato, en realidad no dispara a la cámara con el retrato ... es de 90 grados en la dirección incorrecta. Entonces, aquí hay un fragmento de código donde giré el video y se ve muy bien en el teléfono. sin embargo, necesito conectar la cámara a una corriente netstream y enviarla ... pero envía un video hacia los lados, y no quiero ajustarlo en el otro extremo. y no puedo adjuntar un video a una corriente netstream ... ¿Alguien tiene alguna idea de lo que podría hacer en lugar de simplemente esperar una actualización de AIR para esto?

//i know i have width and height mixed up, its because im rotating it in a second and i dont want it to be stretched 
           nearVideo = new Video(near_video.height,near_video.width); 

var m:Matrix = new Matrix(); 
//rotate here 
m.rotate(Math.PI/2); 
this.nearVideo.transform.matrix = m; 
//repositioning it so it looks like its fitting in the container correctly 
nearVideo.x=near_video.width; 
nearVideo.y=(near_video.height-near_video.height); 

if (Camera.isSupported) 
{ 
nearCam = Camera.getCamera(); 
} 

nearCam.setMode(near_video.height,near_video.width,10); 
nearVideo.attachCamera(nearCam); 
near_video.addChild(nearVideo); 

//now its all great on screen...but when this comes up 

sendStream.attachCamera(nearCam); 

//i’m sending sideways video... 

editar: Sé que podría decirle al otro extremo que simplemente gire el objeto de video que está utilizando para mostrar la cámara lateral. pero por muchas razones esa no es la solución que quiero aceptar. Con suerte, Adobe arreglará esto pronto. Pero hasta entonces estoy curioso si alguien sabe cómo puedo rotar la cámara y conectarla a la corriente netstream.

+0

que se debería hacer esto en el sitio de prelanzamiento –

+0

Obviamente lo hice. ninguna respuesta. entonces, estoy tratando de extenderme y ver si puedo contactar a alguien que pueda tener alguna idea sobre el tema. También creo que el problema está presente en la vista previa de burrito que también está abierta al público. – brybam

Respuesta

2

Bueno, para mí parece que la única solución real que no sea rotar el video en el otro extremo es conseguir Adobe para arreglar la cámara. Por lo tanto, si has encontrado esta página porque estaba frustrado con la cámara en Android no ser capaz de girar correctamente en el retrato favor votar hasta el fallo aquí y deja para conseguir que se arreglan:

http://bugs.adobe.com/jira/browse/SDK-30317

+0

No es cierto en absoluto. Mira mi respuesta. Puedo garantizar que es posible, pero no de fábrica. –

1

Lamentablemente, no se puede interceptar la secuencia de la cámara para modificarlo antes de enviarlo al servidor, este es un error que con suerte adobe se solucionará en la próxima versión de Air. Si hay no tickets open para él, debe abrir uno.

Sin embargo, no todo está perdido. Lo que hace la clase de cámara con NetStream es básicamente enviar los bytes de video que captura la cámara y, por supuesto, hay un algoritmo de calidad que cambia según el ancho de banda. Podría intentar hacer lo mismo, sin embargo, el algoritmo de cambio de calidad sería un poco más difícil de implementar, pero no imposible.

Básicamente, dado que está mostrando el video de la cámara en algún lugar (¿clase de video quizás?), Podría tomar ese mapa de bits, convertirlo a ByteArray y enviarlo a través de NetStream usando send. Por supuesto, el servidor (u otro cliente) necesitaría saber qué hacer con él.

No hay garantías si esto funcionaría bien, ya que nunca lo he intentado, pero esto es lo que haría. Otra forma de hacerlo sería 'decirle' al servidor de medios (supongo que está usando uno) que está actualmente en modo horizontal (solo tiene un indicador booleano) y luego el servidor puede hacer la transformación por usted y envíalo a la otra persona.

De cualquier manera, no será fácil. Buena suerte.

Cuestiones relacionadas