MP3Extractor (34): Невозможно выполнить повторную синхронизацию. Сигнализация окончания потока

1

Я получаю ошибку при попытке воспроизвести файл mp ** 3 из моей папки ресурсов ** в приложении Android

я создал сырую папку в папке res, это пример кода, через который я играю

MediaPlayer mediaPlayer = MediaPlayer.create(getBaseContext(), R.raw.b);
mediaPlayer.start();

ЖУРНАЛ :

09-02 10:44:07.854: INFO/AndroidRuntime(441): NOTE: attach of thread 'Binder Thread #3' failed
09-02 10:44:08.003: DEBUG/AudioSink(34): bufferCount (4) is too small and increased to 12
09-02 10:44:08.224: WARN/AudioFlinger(34): write blocked for 117 msecs, 44 delayed writes, thread 0xb3f0
09-02 10:44:08.283: INFO/ActivityManager(59): Displayed activity com.soundtest/.SoundTestActivity: 511 ms (total 511 ms)
09-02 10:44:13.052: ERROR/MP3Extractor(34): Unable to resync. Signalling end of stream.

я что-то упустил или что?

Теги:
android-mediaplayer

3 ответа

2

Ошибка исчезла после того, как я решил копировать mp3 файлы из активов в SD. Он отлично работает, когда мой источник данных установлен с uri SD-хранилища, а не с активами.

1

ты можешь попробовать:

AssetFileDescriptor afd = ctx.getResources().openRawResourceFd(params[0]);

try
{   
    //final MediaPlayer mediaPlayer = new MediaPlayer();
    mediaPlayer.reset();
    mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
    mediaPlayer.prepare();
    mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
        public void onPrepared(MediaPlayer arg0) {
            mediaPlayer.seekTo(0);
            mediaPlayer.start();
        });
    }
});
afd.close();
  • 0
    это выдает мне то же сообщение об ошибке, что и мой код, меняя некоторые mp3-файлы, я смог запустить приложение без ошибок. поэтому искал точную проблему и решение .. я нашел преобразование того старого mp3 файла в wav, который не работал, работает отлично.
0

конвертировать mp3 в ogg, и ошибка исчезнет. Я протестировал два файла. ogg не играет так гладко, как mp3, но в журнале ничего не отображается.


эй, после того, как я проведу предупреждение следующим образом: WARN/AudioFlinger (33): запись заблокирована за 76 мс, 7773 задержка записи, поток 0xb3f0

Я снова тестирую mp3 файл, и ошибка не появляется.

Я считаю, что это разрешение, которое вызывает ошибку, а не формат файла.

в моем понимании, prepare() сделал бы образ музыкального файла, чтобы игрок мог играть снова и снова, синхронно. но если мы не установили разрешение, напишите заблокированным, и чтение (воспроизведение снова) и запись станут несинхронными. поэтому "Невозможно выполнить повторную синхронизацию".

но я не понимаю, почему он пишет снова и снова при каждом воспроизведении музыки. я неправильно понимаю?

en, что касается файла ogg, я не знаю, почему он также мог избежать ошибки.

но неважно, я верю, что получил правильный ответ. это добавляет эти разрешения:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню