2012-05-04 3 views
0

Android에서 피아노 같은 것을 만들려고했지만 android.media.MediaPlayerandroid.view.View.OnClickListener을 사용할 때 너무 느립니다.음악 버튼이 너무 천천히 작동합니다.

한 번의 키를 누를 때 빠른 사운드는 한 번에 두 번씩 초당 약 두 번만 실행됩니다.

감사합니다.

답변

0

아마도 미디어 플레이어가 재생 중인지 확인하고 새로운 사운드를 시작하려면 중지해야할까요?

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

좋아. 위의 코드는 작동하지 않습니다. 어쩌면 SoundPool을 사용해야하는데 다른 것을 검색하는 동안 방금 찾았습니다. onTouchListener()를 시도해보십시오 : http://www.vogella.com/articles/AndroidMedia/article.html#tutorial_soundpool

+0

이제 버튼을 클릭하면 모든 것이 좋지만 음악이 끝나기 전에 다시 클릭하면 버튼이 작동하지 않습니다. –

+0

뭔가 새로운 것을 발견했습니다, SoundPool, 제 답변에 추가했습니다. –

+0

고마워, 이제 작동하지만, android.media.SoundPool.OnLoadCompleteListener를 사용하면; API 8 이상에서만 작동합니다. 어떻게이 문제를 해결할 수 있습니까? –

0

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 이상에서만 작동합니다. 어떻게이 문제를 해결할 수 있습니까? 세 바스 티아 난이 보낸 페이지에서 좋아했습니다. –

관련 문제