私のプロジェクトでは、シャウトキャストストリームを再生するメディアプレーヤーを作成しようとしています。デバイス上に戻るボタンが押されるまで、すべてがうまくいくように見えました。これは、アクティビティを停止し、再び起動したときにデバイスがそのアクティビティを再現させると思います。問題は、活動が再現されたときに、メディアプレイヤーのコントロールが失われ、新しいメディアプレイヤーが作成されることです。アクティビティが再作成されたときにメディアプレーヤーのコントロールが失われる
その時点でメディアプレーヤーのコントロールを元に戻す必要があります。どのように可能ですか?
コードのこの部分は、コードのこの部分は機能playOnReady(に属する
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button);
if (mediaPlayer == null){
mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(getString(R.string.yayin));
} catch (Exception e) {
e.printStackTrace();
}
mediaPlayer.prepareAsync();
}
if(!isPlaying){
btn.setBackgroundResource(R.drawable.oynat);
}
else{
btn.setBackgroundResource(R.drawable.durdur);
}
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!isPlaying){
playOnReady();
isPlaying = true;
btn.setBackgroundResource(R.drawable.durdur);
}
else{
mediaPlayer.reset();
isPlaying = false;
btn.setBackgroundResource(R.drawable.oynat);
}
}
});
をOnCreate関数に属する)
private void playOnReady(){
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
}
このようにMediaPlayerの1つのインスタンスを使用します。 http://stackoverflow.com/questions/14135459/create-only-one-object-for-a-class-and-reuse-same-objectだからあなたはアプリ内のどこでも同じインスタンスを持つでしょう。 –
サービスを使用して問題を解決しました!とにかくありがとう! –