2015-02-24 123 views
-1

基本上我試圖創建一個音樂應用程序,其中每個按鈕都會觸發特定的聲音/循環。目前我已經創建了3個按鈕,每個按鈕都可以播放特定的聲音。現在我面臨的問題是,如何在每次點擊同一個按鈕時重新啓動/重播聲音?唯一可行的功能是我必須等待整個聲音/循環結束才能再次播放。我不想再添加一個按鈕來停止/重置聲音。玩起來會更麻煩。Android Studio - 每次單擊按鈕時如何重播聲音?

這裏是我的源代碼:

public class Menu extends Activity { 
    MediaPlayer bvbtn; 
    MediaPlayer mloop; 
    MediaPlayer ploop; 

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

     bvbtn = MediaPlayer.create(Menu.this, R.raw.bv); 
     Button bassverse = (Button) findViewById(R.id.bv); 
     bassverse.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       bvbtn.start(); 
      } 
     }); 

     mloop = MediaPlayer.create(Menu.this, R.raw.mloop); 
     Button melodyloop = (Button) findViewById(R.id.mloop); 
     melodyloop.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mloop.start(); 
      } 
     }); 

     ploop = MediaPlayer.create(Menu.this, R.raw.ploop); 
     Button padloop = (Button) findViewById(R.id.ploop); 
     padloop.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       ploop.start(); 
      } 
     }); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     bvbtn.release(); 
     mloop.release(); 
     ploop.release(); 
    } 
} 

回答

0

我不知道如果我理解正確這一點,但什麼樣的東西,如:

public void onClick(View v) { 
     if mloopexists{ 
      mloop.release(); 
      mloop.start(); 
     } 
     else{ 
       mloop.start(); 
     } 
} 

希望幫助

+0

您好,可以你更多地解釋mloopexists? – RazoRBlazE 2015-02-25 09:37:19

+0

我不知道java,我很抱歉,但是必須有一種方法來查看聲音的循環是否已經在運行 – Dave 2015-02-25 09:44:24

+0

可能是像bvbtn.exists(); – Dave 2015-02-25 09:45:39

相關問題