Я вижу проблему с MediaPlayer, пытаясь выполнить следующую последовательность start() -> stop() -> start() для файлов MIDI, дает мне ошибку.MediaPlayer start-> stop-> start для файлов MIDI
Глядя на MediaPlayer state diagram, последовательность должна работать со следующим кодом:
void experiment() throws IllegalArgumentException, SecurityException, IllegalStateException, IOException {
Context context = this;
int resid = R.raw.teddybear;
String packageName = getResources().getResourcePackageName(resid);
Uri uri = Uri.parse("android.resource://" + packageName + "/" + resid);
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(context, uri);
mp.prepare();
mp.start();
mp.stop();
mp.prepare();
mp.start();
}
Вот ошибка получить от вызова к второму подготовить:
java.io.IOException: Подготовить failed: status = 0xFFFFFFFD
Эта проблема не существует для других звуковых файлов.
Неужели кто-нибудь испытывает это также? Я делаю что-то неправильно?
Я не пытаюсь найти ходить вокруг - есть много :)
Вещи пробовали:
удаление стоп и стоп & & подготовить старт позволяет этот поток будет играть.
Я слышал, что MediaPlayer не сразу обновляется для своего состояния, поэтому я добавил спать между методами - все та же проблема.
Изменение типа файла решило проблему.
Простой несколько файлов MIDI дает тот же результат.
регистрируя OnError тоже не работал - он не был назван
Может быть, это ошибка? Спасибо.