我该如何只调用一次mediaplayer?

时间:2015-02-03 05:28:56

标签: android android-mediaplayer

在android中,我在详细屏幕上有一个媒体播放器,当我选择另一个屏幕然后播放另一个细节时,它会重复,导致声音文件同时播放。我该如何解决这个问题?我想只播放最新的选定媒体。

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_feeddetail);

        tc_recDurat = (TextView)findViewById(R.id.recDetDurat);
        tc_recDuratBack = (TextView)findViewById(R.id.recDetDuratBack);
        TextView tc_recPath = (TextView)findViewById(R.id.recDetPath);

        recPath = (String) intent.getSerializableExtra("INTENT_PATH");
        tc_recPath.setText(recPath);


        mediaPlayer = new MediaPlayer();

        try {
            mediaPlayer.setDataSource(recPath);
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            Toast.makeText(getApplicationContext(), e1.getLocalizedMessage(), Toast.LENGTH_LONG);
        }

        ImageButton mClickButton1 = (ImageButton)findViewById(R.id.btnPlay);
        mClickButton1.setOnClickListener( new OnClickListener() {
             @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                 if (mediaPlayer !=null){
                        try {
                            mediaPlayer
                            mediaPlayer.prepare();
                            seekBar.setMax(mediaPlayer.getDuration());
                            mediaPlayer.start();

                            seekUpdate();
                            isPlaying = true;
                        } catch (IllegalStateException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }

                }
             }
       });

        ImageButton mClickButton2 = (ImageButton)findViewById(R.id.btnStop);
        mClickButton2.setOnClickListener( new OnClickListener() {
             @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                 mediaPlayer.stop();
                 isPlaying = false;
             }

       });

1 个答案:

答案 0 :(得分:1)

我不确定你的问题是什么,但我相信你试图说当你通过不同的活动改变时,声音文件不会停止播放 在这种情况下,您可以执行以下操作

在活动中 您可以覆盖onPause方法并将mediaPlayer.stop()放入其中

@Override
public void onPause() {
    super.onPause();
    mediaPlayer.stop();
}