如何开始&用按钮停止声音?

时间:2013-01-10 11:02:28

标签: android media-player

我的项目中有一个Button。 我想要点击按钮>>>>发出声音 再次点击按钮>>>停止声音...... 我使用此代码但无法停止声音并一次又一次地启动它... 我怎样才能做到这一点? 谢谢。

Button  btritm1 =  (Button) findViewById(R.id.button9991);
btritm1.setOnTouchListener(new View.OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        final MediaPlayer mp1_1 = MediaPlayer.create(MainActivity.this, R.raw.ritm1);
        if (event.getAction() == MotionEvent.ACTION_DOWN  ) 
        {
            if(mp1_1 != null && mp1_1.isPlaying() ) 
            {
                mp1_1.stop();
            }        
            else {      
                //  xritm1 = 1;
                //  snd.stop_s_ritm1(); 
                mp1_1.setLooping(true);
                mp1_1.start(); 
            }
        }  // end of if
        return false;
    }
});  // end of ontouch listener/* 

2 个答案:

答案 0 :(得分:1)

if(sound.isPlaying()){
sound.stop();
}else{
sound.reset();
sound.setDataSource(yourURL);//or InputStream etc.
    sound.prepare();
sound.start();
}

答案 1 :(得分:1)

要使用良好实践,请将MediaPlayer对象声明为类变量,并在onCreate()方法中初始化它。您的问题是每次触摸控件时都会创建一个新的播放器对象。 如上所述,行

  final MediaPlayer mp1_1 = MediaPlayer.create(MainActivity.this, R.raw.ritm1);

应该在听众之外。