У меня есть приложение, которое использует mp3-файлы. В первой версии файлы были включены в apk-файл. Сейчас я работаю над версией, в которой есть mp3-файлы в URL-ресурсе.
Я изменил код и почти все работает нормально.
Проблема в том, что кнопки для остановки, паузы и воспроизведения теперь не работают.
Вот код, который запускает потоковую передачу (работает нормально):
private void playAudio(String media) {
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(media);
mediaPlayer.prepare(); // might take long! (for buffering, etc)
mediaPlayer.start();
} catch (Exception e) {
Log.e(TAG, "error: " + e.getMessage(), e);
}
mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer arg0) {
finish();
}
});
}
И это те функции, которые я использую для остановки и т. Д. Хорошо работал с локальным файлом (raw-resources), но теперь он не работает:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
Intent intent = new Intent(SpelaSaga.this, VisaIngressSaga.class);
Bundle bundle = new Bundle();
bundle.putString("Titel", titel);
bundle.putInt("Position", position);
intent.putExtras(bundle);
SpelaSaga.this.startActivity(intent);
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
private OnClickListener button_1Listener = new OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.stop();
Intent intent = new Intent(SpelaSaga.this, VisaIngressSaga.class);
Bundle bundle = new Bundle();
bundle.putString("Titel", titel);
bundle.putInt("Position", position);
intent.putExtras(bundle);
SpelaSaga.this.startActivity(intent);
finish();
}
};
private OnClickListener button_2Listener = new OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.pause();
}
};
Я осмотрелся и нашел только старые версии потоковых обучающих программ, которые требуют гораздо большего кодирования. Надеюсь, у кого-то есть хорошее представление о том, как управлять потоковой передачей.