2011-08-15 65 views
1

我有两个按钮,一个非常简单的应用程序,这是我的代码点击要么这些按钮的时候:的Android,滞后于音乐播放时按下按钮

public void button_clicked1(View v) 
    { 
     text1.setText("1"+width); 

     mp = MediaPlayer.create(GameScreen.this, R.raw.piano_a); 
      try { 
        mp .prepare(); 
       } catch (IllegalStateException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
     mp.start(); 



     } 


    public void button_clicked2(View v) 
    { 
     text1.setText("2"+height);  
     mp = MediaPlayer.create(GameScreen.this, R.raw.piano_b); 
     /* 
      try { 
       mp .prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      }*/ 
    mp.start(); 
     } 

每个那些原始钢琴音符的是约20秒......但是当我按下其中一个按钮时,我希望它立即播放文件...但是我发现有一个延迟(并且延迟不断变大),有时如果我同时按下两个按钮快速几个时间...它迫使退出:(

回答

0

根据文档,当加载原始音频文件(正确编码),你不需要拨打准备,只是:

MediaPlayer mediaPlayer = MediaPlayer.create(GameScreen.this, R.raw.piano_a); 
mediaPlayer.start(); 

这应该这样做。

+0

这样做是否......并且在一段时间后强制退出如果我按下按钮太多:( – Ryan

+0

什么显示在logcat上时出现错误? –

+0

好吧,从mediaplayer更改为soundpool,一切都很好; )感谢您的帮助,因为我不再有问题将选择您的答案 – Ryan

相关问题