He estado realmente golpeando mi cabeza contra la mesa tratando de conseguir que la clase MediaPlayer intente reproducir videos codificados con h.264 en Android 2.1. Mi código es bastante simple:Android MediaPlayer arrojando "Prepare failed .: status = 0x1" en 2.1, funciona en 2.2
AssetFileDescriptor fileDescriptor = getResources().openRawResourceFd(R.raw.my_movie);
introMoviePlayer = new MediaPlayer();
introMoviePlayer.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(), fileDescriptor.getDeclaredLength());
introMoviePlayer.prepare();
Esto siempre produce una excepción en prepare()
, con el texto java.io.IOException: Prepare failed.: status=0x1
. Obtuve un poco más de información usando MediaPlayer.create()
con un URI, que también arroja al prepare()
, que en realidad se llama por MediaPlayer.create()
, con el mensaje Command PLAYER_PREPARE completed with an error or info PVMFErrResourceConfiguration
.
El mismo código funciona perfectamente en Froyo (2.2). Los videos en sí juegan bien en la aplicación de reproductor de video. ¿Alguien tiene quizás una sugerencia útil que podría ayudar a resolver este problema?
Editar: Todavía no hay solución - problema muy frustrante de hecho. Sin embargo, he encontrado que al crear un VideoView
y configurar el URI para el video en bruto funciona. Esto es muy desconcertante, ya que lanzará exactamente el mismo URI a través de una clase de MediaPlayer.
¿Has probado ese código si almacenas tu archivo en la tarjeta SD y pasas por su propio camino? – Pedriyoo
es demasiado tarde, pero supongo que el constructor de mediaplayer tiene una sobrecarga que requiere resourceId – Samuel