0
私はラジオストリーミングアプリをやっています。私はストリームが始まる前に、フレームアニメーションでローディングバーフレームを表示しようとしています。アニメーションはストリームを再生した後に開始されます。ストリームが読み込まれる前にアニメーションを表示するにはどうすればいいですか?ここに私のコードスニペットがあります。ヘルプAndroidがストリーミング中にアニメーションが前面に表示されない理由
bhajan_play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo Info = conMan.getActiveNetworkInfo();
if (Info == null) {
Toast.makeText(BhajanStream.this, "POOR SIGNALS ",
Toast.LENGTH_LONG).show();
// startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
}
else {
loadanim.setBackgroundResource(R.drawable.loader_1);
loadanim.setBackgroundResource(R.anim.loadanim);
loadanimation = (AnimationDrawable) loadanim
.getBackground();
loadanimation.isVisible();
effectanim.setBackgroundResource(R.drawable.effect_1);
effectanim.setBackgroundResource(R.anim.musiceffect);
effectanimation = (AnimationDrawable) effectanim
.getBackground();
bhajan_play.setBackgroundResource(R.drawable.bhajan_start);
bhajan_play.setVisibility(View.GONE);
bhajan_stop.setVisibility(View.VISIBLE);
loadanim.setVisibility(View.VISIBLE);
effectanim.setVisibility(View.VISIBLE);
}
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(rs_bhajan_uri);
} 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();
}
try {
mediaPlayer.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mediaPlayer.start();
}
});
}
protected void onPreExecute() {
// UI work allowed here
loadanimation.start();
}
@DAVEをI prepareAsync()を使用しましたが、オーディオは再生されていません。どうして? –
prepareAsyncを使用すると、別のスレッドでプレーヤが準備されます。準備中であっても、即座に戻ります。 OnPreparedListenerをプレーヤーに設定し、そのonPrepared()メソッドが呼び出されたときに再生を開始する必要があります。 – Jave
@Daveは私のスニペットを上記のように編集することができます –