2012-05-04 31 views
0

我试图在Android上制作类似钢琴的东西,但是当我使用android.media.MediaPlayerandroid.view.View.OnClickListener时,它的工作速度太慢。太慢动作音乐按钮

当我按下一个按键时,快速声音每秒只能运行约两次,当我点击更快时,有什么想法?

谢谢。

回答

0

也许你应该检查mediaplayer是否正在播放,并停止它开始新的声音?

if (!mp.isPlaying()) { 
    mp.start(); 
} else { 
    mp.stop(); 
    mp.start(); 
} 

确定。上面的代码不起作用。也许你应该使用SoundPool,我刚刚在搜索其他东西时发现了这个: http://www.vogella.com/articles/AndroidMedia/article.html#tutorial_soundpool

+0

现在是新的问题,当我点击按钮时,一切都很好,但是当音乐结束之前再次点击时,按钮停止工作。 –

+0

我发现了一些新的SoundPool,我将它添加到了我的答案中。 –

+0

谢谢,现在它工作,但如果我使用android.media.SoundPool.OnLoadCompleteListener;它只适用于API 8或更高版本,我该如何解决这个问题? –

0

尝试onTouchListener()。

btn2.setOnTouchListener(new View.OnTouchListener() { 
    public boolean onTouch(View view, MotionEvent event) { 
     if (!mp.isPlaying()) { 
      mp.start(); 
      } else { 
      mp.stop(); 
      mp.start(); 
     } 

     return false; 
    }}); 
+0

如果按钮停止工作,这根本不起作用。而且他并没有要求使用按钮的方法。 –

0

不要使用MediaPlayer,而要使用SoundPool。 您可以将每个声音加载到内存中以实现低延迟播放。

+0

好吧,谢谢你,与soudpool它工作得很好;)但如果我使用android.media.SoundPool.OnLoadCompleteListener;它只适用于API 8或更高版本,我该如何解决这个问题? 我在Se_bastiaan发送的页面中做了它。 –