Android MediaPlayer выбрасывает «Подготовка не удалась. Status = 0x1» на 2.1, работает на 2.2 - PullRequest
30 голосов
/ 21 сентября 2010

Я действительно ударился головой о стол, пытаясь заставить класс 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.

Тот же код работает отличново Фройо (2.2).Сами видео хорошо воспроизводятся в приложении видеоплеера.У кого-нибудь есть, возможно, полезный совет, который может помочь решить эту проблему?

Редактировать : Все еще нет решения - действительно очень неприятная проблема.Тем не менее, я обнаружил, что путем создания VideoView и установки URI для необработанного видео работает.Это очень озадачивает, поскольку отправка точно такого же URI через класс MediaPlayer приведет к ошибке.

Ответы [ 14 ]

1 голос
/ 30 января 2017

Я нашел лучшее и ясное решение для этой ошибки: java.io.IOException: Prepare failed.: status=0x1

Примечание

если вы хотите прочитать с вашей SD-карты и получили эту ошибку, вы не установлены
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> в вашем манифесте.

Примечание 2

если вы хотите воспроизвести с URL-адреса и получили эту ошибку, может быть, вы настроили setDataSource так: https://www.android.com просто удалите S из http вот так http://www.android.com

1 голос
/ 07 апреля 2011

Во-первых, спасибо за ваш код, мне помог мой открытый ресурс с открытым исходным кодом.

Извините, у меня нет четкого ответа на вашу проблему, но на основании примера API Api в SDK и моего медиаплеера в моем проекте я бы посоветовал проверить, что файл открывается правильно.

В противном случае, может быть, вам нужно настроить дисплей перед тем, как подготовить так:

mMediaPlayer = new MediaPlayer();
            mMediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(), fileDescriptor.getDeclaredLength());
            mMediaPlayer.setDisplay(holder);
            mMediaPlayer.prepare();

это единственные идеи, которые у меня есть

надеюсь, что это поможет

Jason

0 голосов
/ 14 октября 2018

проигрывание mp3 файлов вместо wmva это исправило.Очевидно, это не проблема для API 19

0 голосов
/ 09 августа 2015

Для воспроизведения видео или аудио файла, расположенного в папке raw , используйте:

mMediaPlayer = MediaPlayer.create(this, R.raw.a_video_or_audio_file);
mMediaPlayer.start(); 

нет необходимости вызывать prepare () при использовании MediaPlayer.create (Context, R.raw.some_resource_file)

...