Próbuję dowiedzieć się, jak wyświetlić pasek postępu z komunikatem "Ładowanie. Proszę czekać ...", podczas gdy mój odtwarzacz multimedialny przygotowuje plik przesyłania strumieniowego. Teraz pojawia się informacja, że utwór jest gotowy. jak mogę to naprawić?Pasek postępu podczas przygotowywania odtwarzacza multimedialnego
mediaPlayerLoadingBar =ProgressDialog.show(PlaylistActivity.this, "", "Loading. Please wait...", true);
/*dubstep stream*/
try {
dubstepMediaPlayer.setDataSource(dubstepPlaylistString[0]);
dubstepMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
dubstepMediaPlayer.prepare();
} 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();
}
dubstepMediaPlayer.start();
if(dubstepMediaPlayer.isPlaying()){
mediaPlayerLoadingBar.dismiss();
}`
EDIT: Jest to kod mam teraz:
`przełącznik (pSelection) { case 1:
new AsyncTask<Void, Void, Void>(){
@Override
protected void onPreExecute(){
mediaPlayerLoadingBar =ProgressDialog.show(PlaylistActivity.this, "", "Loading. Please wait...", true);
try {
dubstepMediaPlayer.setDataSource(dubstepPlaylistString[0]);
} catch (IllegalArgumentException 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();
}
dubstepMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
//mediaPlayerLoadingBar =ProgressDialog.show(PlaylistActivity.this, "", "Loading. Please wait...", true);
return null;
}
protected void onPostExecute(Void result){
//mediaPlayerLoadingBar =ProgressDialog.show(PlaylistActivity.this, "", "Loading. Please wait...", true)
dubstepMediaPlayer.prepareAsync();
dubstepMediaPlayer.start();
mediaPlayerLoadingBar.dismiss();
}
}.execute();`
ok wydaje mi się zrozumieć, a przynajmniej myślę, że robię to, co mówisz. Więc gdzie powinienem stworzyć tę klasę? Ponieważ ten kod znajduje się wewnątrz 'onKliknij". czy to rozszerza 'AsyncTask' lub moją główną klasę? – Splitusa
Mam zaktualizowaną moją odpowiedź z kilkoma dodatkowymi wskazówkami ... –
więc wewnątrz mojego kliknięcia wystarczy napisać 'MediaPlayerAsync onPreExecute' itd.? – Splitusa