tôi có tệp ứng dụng android stream mp3 và phát tệp này trong trình phát, nhưng vấn đề là mediaPlayer.prepare(); mất thời gian dài đệm và ứng dụng đóng băng vì vậy tôi đã cố gắng sử dụng preparAsync(); // nhưng với chức năng này tôi không thể làm cho máy nghe nhạc chơi tập tiếp theoandroid mediaplayer stream trực tuyến mp3 file
tập tin chỉ đơn trực tuyến nếu tôi cần phải chơi một file tôi nên đóng hoạt động khởi động lại khi
chơi end không chơi tiếp theo đây là mã của tôi
và tôi xin lỗi vì tôi xấu tiếng anh
đây là mã của tôi bất cứ sự giúp đỡ xin vui lòng
public void playMp3(String _link)
{
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
if(!mediaPlayer.isPlaying()){
mediaPlayer.start();
Progressbar.setVisibility(View.INVISIBLE);
play.setVisibility(View.GONE);
stop.setVisibility(View.VISIBLE);
songProgressBar.setProgress(0);
songProgressBar.setMax(100);
}
updateProgressBar();
}
});
mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
mediaPlayer.reset();
songProgressBar.setProgress(0);
songProgressBar.setSecondaryProgress(0);
play.setVisibility(View.VISIBLE);
stop.setVisibility(View.GONE);
link = "http://server11.mp3quran.net/hawashi/002.mp3";
playMp3(link);
}
});
mediaPlayer.setOnBufferingUpdateListener(new OnBufferingUpdateListener() {
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) {
// Toast.makeText(getApplicationContext(), "n" + percent, Toast.LENGTH_LONG).show();
songProgressBar.setSecondaryProgress(percent);
if(percent==100)
{
Progressbar.setVisibility(View.INVISIBLE);
}else if(percent > songProgressBar.getProgress())
{
Progressbar.setVisibility(View.INVISIBLE);
}else
{
Progressbar.setVisibility(View.VISIBLE);
}
}
});
mediaPlayer.reset();
Progressbar.setVisibility(View.VISIBLE);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(_link);
//mediaPlayer.prepare(); // might take long! (for buffering, etc) //@@
mediaPlayer.prepareAsync();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block///
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
cảm ơn công việc này hoàn hảo với tôi, tôi quên kiểm tra xem mediaPlayer.isPlaying :) onPrepared –
điều này cho streaming url (RTSP (RTP, SDP) HTTP/HTTPS progressive streaming) hoặc tôi có thể sử dụng nó cho bất kỳ mp3 tải xuống url? nói rằng tôi có url tải xuống trực tiếp _http: //blabla.com/example.mp3_ (nếu chúng tôi đặt url này vào firefox thì nó sẽ tải xuống) –
Tôi gặp vấn đề với mã này. mediaPlayer chỉ phát tệp đầu tiên trong ArrayList của tôi. Sau khi tập tin đầu tiên được phát, onCompletionListener được gọi nhiều lần (vô tận) – artouiros