Я получаю ошибку при попытке воспроизвести файл 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.
я что-то упустил или что?
Ошибка исчезла после того, как я решил копировать mp3 файлы из активов в SD. Он отлично работает, когда мой источник данных установлен с uri SD-хранилища, а не с активами.
ты можешь попробовать:
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();
конвертировать 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"/>