Android – No se pueden reproducir videos (mp4 / mov / 3gp / etc.)?

Tengo muchas dificultades para conseguir que mi aplicación de Android reproduzca videos de la tarjeta SD. No importa qué tamaño, bitrate, formato video, o cualquier otro ajuste que pueda pensar, ni el emulador ni mi G1 jugarán cualquier cosa que intento codificar. También he probado una serie de videos de la web (varios formatos de vídeo, bitrates, con y sin pistas de audio, etc), y ninguno de los que trabajan.

Todo lo que sigo recibiendo es un cuadro de diálogo que dice:

"No se puede reproducir el vídeo"

"Lo sentimos, este vídeo no puede ser reproducido."

Hay errores informados en LogCat, pero no los entiendo y he intentado buscar en la Internet más explicaciones sin ninguna suerte. Vea abajo:

03-30 05:34:26.807: ERROR/QCOmxcore(51): OMXCORE API : Free Handle 390d4 03-30 05:34:26.817: ERROR/QCOmxcore(51): Unloading the dynamic library for OMX.qcom.video.decoder.avc 03-30 05:34:26.817: ERROR/PlayerDriver(51): Command PLAYER_PREPARE completed with an error or info PVMFErrNoResources 03-30 05:34:26.857: ERROR/MediaPlayer(14744): error (1, -15)03-30 05:34:26.867: ERROR/MediaPlayer(14744): Error (1,-15) 

A veces también tengo esto:

 03-30 05:49:49.267: ERROR/PlayerDriver(51): Command PLAYER_INIT completed with an error or info PVMFErrResource 03-30 05:49:49.267: ERROR/MediaPlayer(19049): error (1, -17) 03-30 05:49:49.347: ERROR/MediaPlayer(19049): Error (1,-17) 

Aquí está el código que estoy usando (en mi método onCreate ()):

 this.setContentView(R.layout.main); //just a simple VideoView loading files from the SD card VideoView myIntroView = (VideoView) this.findViewById(R.id.VideoView01); MediaController mc = new MediaController(this); myIntroView.setMediaController(mc); myIntroView.setVideoPath("/sdcard/test.mp4"); myIntroView.requestFocus(); myIntroView.start(); 

¡Por favor ayuda!

Bueno, aquí va. El vídeo en el que he estado trabajando en Adobe Premiere se supone que es 480×800 (WxH), pero tengo el Adobe Media Encoder salida de la secuencia como un "Microsoft sin comprimir AVI" utilizando el codec de vídeo "UYVY", 24fps frame rate, progressive , Píxeles cuadrados, y las dimensiones: 720×800 (WxH). Esto genera un archivo bastante grande con bordes negros de 120px a cada lado del contenido de vídeo. Luego tomo el video en Handbrake 0.9.4 y uso los siguientes ajustes (empecé con el preset Regular-> Normal):

 Container: MP4 File Large file size: [un-Checked] Web-optimized: [un-Checked] iPod 5G support: [un-Checked] Width: 320 (this is key, any higher than 320 and it won't work) Height: 528 Keep Aspect Ratio: [Checked] Anamorphic: None Crop Left: 120 Crop Right: 120 Everything under the "Video Filter" tab set to "Off" Video Codec: H.264(x264) Framerate: same as source 2-Pass Encoding: [Checked] Turbo first pass: [un-Checked] Avg Bitrate: 384 Create chapter markers: [un-Checked] Reference Frames: 2 Mixed References: [un-Checked] B-Frames: 0 Motion Estimation Method: Uneven Multi-Hexagon Sub-pixel Motion Estimation: 9 Motion Estimation Range: 16 Analysis: Default 8x8 DCT: [un-Checked] CABAC Entropy Coding: [un-Checked] No Fast-P-Skip: [un-Checked] No DCT-Decimate: [un-Checked] Deblocking: Default, Default Psychovisual Rate Distortion: [MAX] 

Mi principal problema era que estaba tratando de salida de un archivo mp4 con 480×800 (WxH) dimensiones. Después de cambiar el ancho a 320 (valores más altos no funcionaron), pero manteniendo la relación de aspecto adecuada, el vídeo de salida se reproduce ahora sin errores. Espero que esto ayude a alguien con un problema similar.

Nota de lado: Deseo que las restricciones de video de Android estuvieran mejor documentadas.

He tenido un montón de problemas para obtener muchos videos diferentes para jugar en mi teléfono (héroe de HTC). Standard 512K mp4 de juego (ejemplo: http://www.archive.org/details/more_animation ), consulte con ellos primero para asegurarse de que no es su código.

Aquí está mi código, de onCreate () en una subactividad que sólo reproduce el archivo de vídeo:

 protected VideoView mine; protected boolean done = false; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.videoshow); mine = (VideoView) findViewById(R.id.video); // Save the VideoView for touch event processing try { String myURI = "/sdcard/" + path + "/v/" + currentItem.getFile() + "." + currentItem.getFileType(); Uri video = Uri.parse(myURI); mine.setVideoURI(video); mine.start(); mine.setOnCompletionListener(new OnCompletionListener() { public void onCompletion(MediaPlayer mp) { result.putExtra("com.ejf.convincer01.Finished", true); done = true; } }); } catch (Exception ex) { Log.d(DEBUG_TAG, "Video failed: '" + ex + "'" ); } 

Estaba enfrentando este problema hasta que descubrí que el problema estaba en el directorio de mi video. He guardado mis videos en un directorio que no se puede acceder a la vista de vídeo. Así que cada vez que intento reproducir un video me da un mensaje de error dice: "No se puede abrir el video" o algo así. Prueba y guarda tu video en este directorio que también será visible en la galería de teléfonos.

 String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/" + "your app name "; 
  • VideoView en un fondo de pantalla en vivo?
  • Android :: VideoView dentro de un ScrollView
  • Mostrando la imagen de Gif animado en android usando VideoView
  • Xamarin Android Player - No se puede reproducir este vídeo
  • ¿Hay una manera de hacer una barra de progreso de VideoView personalizada sin la construcción de un MediaPlayer desde cero?
  • Error al eliminar el fragmento que contiene videoView en 4.0.4
  • Posicionamiento de MediaController
  • Visibilidad del botón en VideoView después de usar videoView.setZOrderOnTop (true); Androide
  • Cómo obtener el porcentaje de búfer de VideoView en Android
  • VideoView dentro de DialogFragment
  • Comportamiento extraño - Fragmento de VideoViewer no funciona con MediaController
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.