2011-02-01 20 views
8

¿Hay alguna manera de reproducir un video de una secuencia de bytes en Android? Estoy utilizando un middleware de comunicaciones específico, así que no puedo pasar el enlace http/rtsp al objeto MediaPlayer.Reproducir video en Android desde una secuencia de bytes

Me preguntaba si puedo envolver mi transmisión con un enlace http/rtsp local para poder reproducir la transmisión en lugar de esperar hasta que el archivo se descargue para reproducirlo.

Mi middleware funciona sobre TCP, así que también he pensado que puedo ajustar mis datagramas rtsp con un datagrama tcp e interpretarlos en el cliente de alguna manera, después de eliminar los encabezados TCP.

Estoy realmente sorprendido de que no puedo simplemente pasar una secuencia de bytes al MediaPlayer. Gracias de antemano.

+0

Este es un tema interesante ... Lo mejor que puedo pensar es crear archivos temporales en el directorio de la aplicación, como una forma de implementar algún tipo de buffer. – mdelolmo

+4

Simplemente no puede pasar algunos bytes a un decodificador y hacer que descodifique la imagen ... a menos que sea una transmisión MPEG4 ... de lo que puede hacer que algo funcione. ¿Puedes decirme qué tipo de transmisión de video es? Si es h264, ¿qué nivel de perfil es? ¿Tienes SDP de eso? – Cipi

+0

Lo estaba intentando con archivos de 3gp grabados con el teléfono. Primero, traté de copiar el buffer en un archivo una vez que obtuve un mínimo (alrededor de 2000 KB), y luego creé un MediaPlayer con eso, pero prepare() se bloquea al hacer eso. No sé cómo crear una sesión de SPD. La verdad es que no sé mucho sobre decodificación. Los enlaces para tutoriales serán apreciados. Gracias por responder – Pedriyoo

Respuesta

1

La transmisión personalizada en Android no es tan fácil como pensaba. Logré hacerlo pero solo con videos muy específicos. Los videos MPEG4 que están mal intercalados parecen ser transmisibles. El farest que he recibido es el streaming de este video:

http://www.pocketjourney.com/downloads/pj/video/famous.3gp

Como me respondió Cipi, la mayoría de los formatos pueden no sólo ser empacados en un buffer de bytes y lo pasan a MediaPlayer. Necesitan algunos encabezados, colas, etc. No estoy seguro de qué formato está contenido en el archivo mencionado anteriormente, pero supongo que es MPEG4.

+10

¿Podría mostrar algún código? También estoy tratando de hacer lo mismo. –

+0

@Pedriyoo sí, ¿puedes compartir cómo lo hiciste? – AFgone

+0

16kbps no se pueden reproducir a través de la clase de pagador multimedia en Android –

Cuestiones relacionadas