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:
- Video en línea no se reproduce
- ¿Cuál es la diferencia entre MediaPlayer y VideoView en Android
- Android: carga el video desde la carpeta privada de la aplicación
- Posicionamiento de MediaController: vincular a VideoView
- VideoView no se procesa correctamente después de desaparecer el teclado de Dialog
"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!
- Android Video View en otro hilo y problema con android 2.1
- ¿Por qué el tamaño de la vista de video cambió automáticamente dependiendo del tamaño del video?
- Reproductor de video nativo de Android con subtítulos
- Android Video no se ajusta a la anchura en el retrato de la videovista y no ocupa la pantalla completa en el paisaje
- Android no muestra el formato m3u8 en videoview, solo sonido
- MediaPlayer error (1, -1004) ¿Por qué?
- El teléfono giratorio reinicia el video en android
- Error de VideoView getCurrentPosition () en Acer Iconia A200
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 ";
- ¿Por qué mi página no se muestra en el tamaño correcto en un Android incluso con Viewport / consultas de medios?
- Buscador de Roman Nurik – cómo acceder a los datos recopilados?