2011-06-27 99 views
1

当我点击按钮,首先声音开始,然后我再次单击按钮第一声停止和第二声音开始。我能怎么做?我怎样才能停止声音

public void onClick(View v) { 
      final MediaPlayer mp = MediaPlayer.create(getBaseContext(), R.raw.random); 
      final MediaPlayer mp2 = MediaPlayer.create(getBaseContext(), R.raw.stop); 
      if(!mStarted) { 
       // Start          
       mp2.stop();    

       mp.start();  

       Toast.makeText(finish.this, "Started!", Toast.LENGTH_SHORT).show(); 
       mStarted = true; 
       mInterval = MIN_INTERVAL; 
       mHandler.removeMessages(MESSAGE_RANDOM);    
       mHandler.sendEmptyMessage(MESSAGE_RANDOM); 


      } else { 
       // Stop 
       generate.setEnabled(false); 
       mp.stop();       
       mp2.start();  

       mStarted = false; 
       Toast.makeText(finish.this, "Stoping...", Toast.LENGTH_SHORT).show();        
      }  
     }  
    }; 

回答

-1

代替mp2.start();使用mp2.stop();

+0

哪行可以停止mp.stop();第二次按下按钮后 – user814154

0

mp2.stop()
是代码停止MediaPlayer的一般。但是你需要停下来开始还是这样做?

+0

第一次按下按钮时,我想先启动声音。然后按第二次按第一次声音停止和第二次声音开始 – user814154

1

mp2.start()之前只需在mp.start()mp.stop()之前加mp2.stop()即可。不要忘记检查MediaPlayers是否已初始化并通过呼叫

if (mp != null && mp.isPlaying()) 

对每个MediaPlayer实例进行播放。

希望这会有所帮助。

+0

无法在mp2.start()之前的mp.start()和mp.stop()之前添加mp2.stop()。因为有一些错误 – user814154

+0

@ user814154你添加了我上面描述的检查吗? – Egor

+0

是的,我已经添加了它,但有错误 – user814154