Я использую MediaPlayer
экземпляр Android, который просто инициализируется:Как правильно изменить текущий трек для экземпляра Android MediaPlayer?
mediaPlayer = MediaPlayer.create(this,R.raw.conrnfield);
Я также получил эту Thread
обновление SeekBar
по трассе играет прогресс.
updateTime = new Runnable() {
@Override
public void run() {
int currentPosition = 0;
int total = mediaPlayer.getDuration();
seekBar.setMax(total);
while (mediaPlayer != null && currentPosition < total) {
try {
Thread.sleep(500);
currentPosition = mediaPlayer.getCurrentPosition();
}
catch (InterruptedException ex) {return;}
catch (Exception e) {return;}
seekBar.setProgress(currentPosition);
}
}
};
Я получил метод для изменения текущего трека:
public void changeSong(View view) {
mediaPlayer.reset();
mediaPlayer.start();
mediaPlayer.selectTrack(2);
}
Однако, когда я вызвать этот метод, он вызывает приложение к краху. Я вижу сначала в журнале a
java.lang.IllegalStateException: Could not execute method of the activity
сообщение об ошибке в stacktrace.
Я даже не знаю, ошибочен ли мой подход. Это целые log
Имея другие медиафайлы в исходной папке, как я могу правильно получить путь к файлу для любого из них? – diegoaguilar
Добавлен пример ответа. – Simon
Могу ли я использовать URI.Builder? – diegoaguilar