0

按下开始按钮时它开始播放 mp3 文件,但按下停止按钮时它不会停止,我已经通过几个例子但找不到确切的解决方案

public Button play;
public Button stop;
 MediaPlayer mp;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    play = (Button)findViewById(R.id.played);
    stop = (Button)findViewById(R.id.stopped);
    play.setOnClickListener(this);
    stop.setOnClickListener(this);
}

public void onClick(View v) </br>
{
    mp = MediaPlayer.create(this,R.raw.you);
    if(v==play && !mp.isPlaying()){
        mp.start();
    }
//below part of code executes but doesn't stop the player
    else if (v==stop){
        mp.stop();
        mp.release();               
    }
}
4

2 回答 2

0
   mp = MediaPlayer.create(this,R.raw.you);

每次调用 create 时都会返回一个新实例。因此,您正在调用与您调用stop()的实例mp不同的实例start()onCreate例如,您应该调用一次 create

于 2013-08-26T08:56:28.633 回答
0

这样做:

public void onClick(View v) {

        switch (v.getId()) {
        case  R.id.played:
            if(mp==null || !mp.isPlaying()){
                mp = MediaPlayer.create(this,R.raw.you);
                mp.start();
            }
            break;
        case R.id.stopped:
            if(mp!=null && mp.isPlaying()){
                mp.stop();  
                mp.release(); 
            }
            break
        default:
            break;
        }
    }
于 2013-08-26T09:02:32.457 回答