Mam plik mp3 z aplikacją Android i odtwarzam ten plik w odtwarzaczu, , ale problemem jest mediaPlayer.prepare(); wziąć długi bufor czasu i aplikacja zamrozić , więc próbowałem użyć prepareAsync(); // ale z tej funkcji nie mogę zrobić GRACZ następny plikStrumień multimediów z Androidem w Internecie plik mp3
tylko pojedynczy plik online muszę grać inny plik i powinien zamknąć działalność restartu kiedy
zabaw nie zakończył grać obok to mój kod
i przepraszam za mój zły język angielski
to jest mój kod jakiejkolwiek pomocy proszę
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();
}}
dziękuję to praca idealna ze mną, zapomnij sprawdzić, czy mediaPlayer.isPlaying :) onPrepared –
to dla strumieniowego URL (RTSP (RTP, SDP) HTTP/HTTPS progresywny strumieniowe) czy mogę użyć tego do każdej mp3 download adres URL? mówię, że mam bezpośredni adres do pobrania _http: //blabla.com/przykład.mp3_ (jeśli umieścimy ten adres w firefox zostanie pobrany) –
Mam mały problem z tym kodem. MediaPlayer odtwarza tylko pierwszy plik w mojej tablicy ArrayList. Po odtworzeniu pierwszego pliku onCompletionListener jest wywoływany wiele razy (nieskończenie) – artouiros