Lo sentimos, este video no se puede reproducir – streaming mp4 a android

He buscado por todas partes una solución a esto (incluyendo SO), sin embargo todavía no han encontrado una solución.

Necesito tener una reproducción de vídeo simple en mi aplicación. Es un poco menos sencillo que una simple ventana con un video. Simplificado, tengo dos diseños en mi pantalla, uno que contiene algunas otras cosas y el otro es tener la ventana de vídeo. También hay un botón para cambiar entre los dos. Todo esto funciona muy bien, después de que me di cuenta de que la videoview no puede estar presente en una vista con visibilidad 'ido' – por lo tanto estoy agregando / eliminando a / desde la disposición del contenedor cuando sea necesario.

Sin embargo, tengo el problema con la reproducción de vídeo real. Cuando trato de activarlo, recibo el temido error Sorry, this video cannot be played. Una de las preguntas aquí en SO es discutir los formatos de vídeo ( Android – No se puede reproducir videos (mp4 / mov / 3gp / etc)? ) – Sin embargo ya tengo lo que parece ser el formato correcto, con 320px de ancho y todo lo demas. Una de las respuestas en ese hilo menciona que los vídeos de aquí "definitivamente funcionan". He intentado un par de allí – pero tengo otra bestia común: Sorry, this video is not valid for streaming to this device.

Tenga en cuenta que estoy probando en un dispositivo real, ya que la reproducción de vídeo no funciona en el emulador. También tenga en cuenta que la solución debe funcionar en Android 1.6 o superior (requisito del cliente). El dispositivo que estoy probando es LG GT540 Optimus con Android 2.1 (en la actualidad no tengo ningún otro dispositivo disponible).

De lo que descubrí, si no uso qt-faststart en los videos, obtengo un error Sorry, this video is not valid for streaming to this device. Si utilizo qt-faststart , entonces lo Sorry, this video cannot be played.

Aquí está mi código para la reproducción:

 VideoViewer videoPlayer = new VideoViewer(this); MediaController mediaController = new MediaController(this); mediaController.setAnchorView(videoPlayer); videoPlayer.setMediaController(mediaController); videoPlayer.setVideoURI(Uri.parse(object.getVideoURL())); LinearLayout container = (LinearLayout)ObjectInfo.this.findViewById(R.id.VideoContainer); container.setVisibility(VISIBLE); container.addView(videoPlayer, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); videoPlayer.requestFocus(); videoPlayer.start(); 

Ahora, el video que estoy intentando reproducir es ser descargado progresivamente desde HTTP: object.getVideoURL() devuelve http://www.ooklnet.com/files/381/381489/video.mp4

¿Puede alguien por favor ayudarme a solucionar esto? Esta es la última cosa que necesito completar antes de que toda la aplicación esté lista.

¡Muchas gracias!

Edit: He intentado usar MediaPlayer – pero obtuvo resultados aún peores que con VideoView, así que volvió a VideoView. Ahora, en el simulador, consigo una pantalla negra con los controles que se ciernen sobre él y el sonido del vídeo está jugando muy bien, también el progreso está ajustando mientras que la reproducción continúa. Sin embargo, en mi dispositivo actual, sigo recibiendo Sorry, this video cannot be played. error

Resultó que el problema era con el formato de los videos (específicamente, los parámetros que usé con ffmpeg para crear los videos MP4). Me aseguré de que los videos son de baseline H.264 – y todo funcionó correctamente. Vea esta pregunta para más detalles.

Tal vez necesite cambiar la forma en que configura su MediaPlayer. Acabo de conectar la url de su video de ejemplo en el ejemplo apidemos y funcionó muy bien.

Consulte: http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html

Espero que ayude.

  • Creación de codificador OMXCodec en modo HW
  • Cómo escalar de manera eficiente el marco de vídeo usando NDK
  • Android de vídeo cuadrado y concat
  • Interceptar solicitud de fuente de video HTML5 en Android WebView
  • Android VideoView - Detecta el punto del tiempo en el video
  • ThumbnailUtils.createVideoThumbnail devuelve NULL al capturar un nuevo video
  • ¿Cómo obtener una lista de marcos clave (sincronización de marcos) sellos de tiempo para un archivo de vídeo en Android?
  • ¿Puedo mostrar el canal de TV actual en una aplicación de pantalla completa de googleTV?
  • ¿Cómo fusionar un archivo de audio con una imagen o un archivo de vídeo en android?
  • Cómo implementar recorte de video en android como instagram o WhatsApp?
  • Android MediaStore.ACTION_VIDEO_CAPTURE, ruta externa?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.