2015-02-24 160 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

相关问题