2011-06-08 13 views
5

En mi aplicación necesito proporcionar al usuario una vista previa de una descarga progresiva (archivo de video).VideoView y descarga progresiva

Para lograr esto, estoy usando el componente VideoView para mostrar el contenido del video (.mp4, .3gpp) que se está descargando.

El problema es que no puedo acceder a los medios de comunicación a distancia a través http:// o rtsp:// protocolo, por lo que me veo obligado a utilizar para jugar VideoView.setVideoPath copia local del vídeo mientras se descargan.

Desgraciadamente parece que en los dispositivos Android que no pueden utilizar StageFright marco (por lo OpenCoreTegra2-based y algunos dispositivos en mi experiencia), la VideoView no puede manejar correctamente la descarga progresiva: se puede jugar sólo la parte del video reconocido durante la inicialización del componente.

Para que quede claro: si el usuario presiona "reproducir" cuando solo se descargó el 5% del video, VideoView solo mostrará ese 5% de video, sin importar si se ha descargado más contenido de video mientras tanto.

En mi experiencia, este problema no afecta a los dispositivos que utilizan el marco StageFright (por ejemplo, Nexus One 2.2, Nexus One 2.3.4).

Puede alguien que me señale una posible solución? Gracias de antemano

+0

Hola, ¿Encontró la manera de corregir este error? Yo tenía el mismo error. Y ahora mismo, estoy atascado. –

+0

Finalmente descubrimos el motivo como la solución. [Aquí] (http://stackoverflow.com/questions/19587880/sorry-this-video-is-not-valid-for-streaming-to-this-device-in-http-streaming-an) Gracias, –

Respuesta

1

VideoView es una clase lista para usar en Android Application Framework para uso de reproducción de video. Internamente utiliza la clase MediaPlayer para lograr la reproducción. MediaPlayer utiliza marcos de medios disponibles internamente en base a ciertos criterios como formato de archivo, el origen del contenido, etc.

Así es la limitación del marco subyacente y no VideoView. Si todavía sospecha de VideoView, escriba su propia actividad de reproductor de video usando el reproductor multimedia. Verás el mismo resultado.

Además, no todas las versiones de Android (que se lee stagefright) apoyar la descarga progresiva.

puede ser usted puede utilizar la clase DownloadManager para descargar contenido desde un servidor HTTP y proporcionar la ruta a los medios de vista del reproductor/vídeo para una vista previa rápida.

Shash316

+0

Sí, el problema afecta a los diferentes marcos de medios bajo 'MediaPlayer' (y bajo' VideoView'). Descargar el video a través de un 'DownloadManager' no puede hacer el truco (ya lo uso), porque el problema está relacionado con la manera en que el marco de medios subyacente maneja el buffer de video. Gracias de cualquier manera. –

2

Si está intentando reproducir .h264, tiene que mover los átomos MOV a la parte delantera del archivo. Estos le dicen al códec la duración de la película, entre otras cosas.

tratar qtfaststart

http://ffmpeg.zeranoe.com/builds/

+0

Hola, ¿has encontrado la manera de solucionar este error? Yo tenía el mismo error. Y ahora mismo, estoy atascado. ¿Te gustaría darme algunas formas de terminar esta tarea, transmitir video con descarga progresiva?p/s: puedo codificar el video en .h264, subirlo al sitio web, y creo que mi código también está bien. Dispositivo: Samsung Galaxy 7 "2.2.1 –

Cuestiones relacionadas