1

こんにちは、ここに私のコードがあります:

   final ImageView imageView = (ImageView) findViewById(R.id.Image7);
   imageView.setImageResource(mFullSizeIds[position]);
   imageView.setOnClickListener(new View.OnClickListener() {

@Override
         public void onClick(View v) {
    MediaPlayer mp = MediaPlayer.create(Audio.this,mAudio[position]);  
    mp.start();

}

  });

このコードは、ユーザーが画像をタップしたときにオーディオを再生するために正常に機能しますが、このアクティビティを終了して別のアクティビティに移動したい場合、ホームキーを押してもオーディオがまだ再生されています。 . どうすればこれを防ぐことができますか? ユーザーが画像をもう一度タップするか、戻る/ホームボタンを押したときにトラックの再生を停止する方法はありますか?

4

3 に答える 3

3

追加

   @Override
    public void onBackPressed ()
    {
      if (mp != null)
        mp.stop();
      super.onBackPressed();
    }

@Override
public void onPause ()
{
  if (mp != null)
  {
    mp.pause();
    mp.stop();
  }
  super.onPause();
}
于 2013-07-30T18:06:34.400 に答える
1

アクティビティで onStop を作成し、mp をクラス変数にしますが、私は常にこの種のメディア プレーヤー ヘルパー クラスを作成/優先します。次に、onStop で mp.stop()/pause を呼び出します。

private MediaPlayer mp = null;

@Override
public void onStop() {
    super.onStop();

    if (mp != null) {
        mp.stop();
    }
}

次に、mp の前に MediaPlayer を削除して作成します。

mp = MediaPlayer.create(Audio.this,mAudio[position]);
于 2013-07-30T18:05:09.500 に答える