Tôi gặp vấn đề lạ. Tôi sử dụng phương pháp preparAsync với MediaPlayer
, nhưng người nghe mà tôi tuyên bố không bao giờ bị sa thải. Tôi cố gắng phát trực tiếp nguồn cấp dữ liệu .mp3
trực tiếp từ Internet (đài phát thanh). Tôi sử dụng một phương pháp nội tuyến cho người nghe, nhưng tôi cũng đã thử triển khai giao diện mà không thành công. Dưới đây là một phần của mã của tôi:AndroId MediaPlayer phương pháp chuẩn bịPhương pháp đồng bộ
Trong phần thành viên:
String url = "http://<my_url>.mp3";
MediaPlayer mediaPlayer = new MediaPlayer();
Trong Hoạt động onCreate()
:
ToggleButton playButton = (ToggleButton) findViewById(R.id.playToggleButton);
playButton.setOnClickListener(this);
playButton.clearFocus();
playButton.setClickable(false);
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
ToggleButton playButton = (ToggleButton) findViewById(R.id.playToggleButton);
playButton.setClickable(true);
mp.start();
}
});
preparePlayer();
Sau đó, đây là preparePlayer()
phương pháp:
private void preparePlayer() {
if (mediaPlayer == null) {
mediaPlayer = new MediaPlayer();
}
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(url);
mediaPlayer.prepareAsync();
} catch (IllegalArgumentException e) {
Toast.makeText(
MyStreamActivity.this,
getResources().getString(R.string.erreurIllegalArgument),
Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (IllegalStateException e) {
Toast.makeText(
MyStreamActivity.this,
getResources().getString(R.string.erreurIllegalState),
Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (IOException e) {
Toast.makeText(
MyStreamActivity.this,
getResources().getString(R.string.erreurIO),
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
Và (chỉ cho các hồ sơ), các onDetroy()
nơi tôi làm sạch:
private void releaseMediaPlayer() {
if (mediaPlayer != null) {
if(mediaPlayer.isPlaying()) {
mediaPlayer.stop();
}
mediaPlayer.release();
mediaPlayer = null;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
releaseMediaPlayer();
}
nhật ký có nói gì về những gì xảy ra hoặc có lỗi không? Bạn có được phép internets? – zapl