Ich versuche, eine stream Musik App für die ich benutze den Code unter, der funktioniert, aber ich möchte progress bar
während Streaming-Musik geladen wird. aus irgendeinem Grund, wenn ich verwende mediaPlayer.prepare();
statt mediaPlayer.prepareAsync();
arbeitet die progressbar
erscheint, während die Musikzeigen Fortschrittsbalken beim Laden streamen Musik
mediaPlayer = new MediaPlayer();
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
AudioAttributes attribs = new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_MEDIA).setContentType(AudioAttributes.CONTENT_TYPE_MUSIC).build();
mediaPlayer.setAudioAttributes(attribs);
} else {
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
}
new PlayerTask().execute(stream);
@SuppressLint("StaticFieldLeak")
public class PlayerTask extends AsyncTask<String, Void, Boolean> {
ProgressBar loadingRL = findViewById(R.id.progressBar);
@Override
protected void onPreExecute() {
super.onPreExecute();
loadingRL.setVisibility(View.VISIBLE);
beforradio.start();
}
@Override
protected Boolean doInBackground(String... strings) {
try {
mediaPlayer.setDataSource(strings[0]);
mediaPlayer.prepareAsync();
prepared = true;
} catch (IOException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
}
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
return prepared;
}
@Override
protected void onPostExecute(Boolean aBoolean) {
super.onPostExecute(aBoolean);
MusicButton.setVisibility(View.VISIBLE);
MusicButton.setChecked(true);
loadingRL.setVisibility(View.GONE);
Rlsong.setVisibility(View.VISIBLE);
}
Codierung Glücklich benötigt Was eigentliches Problem ist, ? .by Ihr Code sieht gut aus –
@ankitpatidar die 'progressbar' erscheint nicht während Musik geladen wird –
Ihre R.id.progressbar was es macht. –