Я действительно ударился головой о стол, пытаясь заставить класс MediaPlayer попытаться воспроизвести h.264-кодированные видео на Android 2.1. Мой код довольно прост:
AssetFileDescriptor fileDescriptor = getResources().openRawResourceFd(R.raw.my_movie);
introMoviePlayer = new MediaPlayer();
introMoviePlayer.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(), fileDescriptor.getDeclaredLength());
introMoviePlayer.prepare();
Это всегда вызывает исключение в prepare()
, с текстом java.io.IOException: Prepare failed.: status=0x1
. Я получил немного больше информации, используя MediaPlayer.create()
с URI, который также бросает на prepare()
, который фактически вызывается MediaPlayer.create()
, с сообщением Command PLAYER_PREPARE completed with an error or info PVMFErrResourceConfiguration
.
Тот же код отлично работает в Froyo (2.2). Сами видео отлично воспроизводятся в приложении для видеоплеера. Есть ли у кого-нибудь полезный намек, который может помочь решить эту проблему?
Изменить. По-прежнему нет решения - очень неприятная проблема. Однако я обнаружил, что создав VideoView
и установив URI для необработанного видео. Это очень озадачивает, так как отправка этого же URI через класс MediaPlayer будет бросаться.