2011-05-13 2 views
0

보기를 클릭하면 멜로디를 연주하고 싶습니다. 문제는 내가 매우 빨리 클릭하면 멜로디가 처음부터 시작되어 마지막까지 재생되기를 원할 때 화면이 클릭에 반응하지 않아야한다는 것입니다. 왜냐하면 멜로디가 10 번 재생되는 것을 원하지 않기 때문입니다. 나는 매우 빨리 10 번을 클릭했다.) I는 다음과 같이 썼다 :클릭시 멜로디 연주

MediaPlayer mp = MediaPlayer.create(MyActivity.this, R.raw.cow_moo); mp.start(); if(mp.isPlaying()) { img1.setClickable(false); } img1.setClickable(true);

그러나 한 번의 클릭 후 화면이 ... 더 이상 클릭이 나를 좀 도와주세요에 반응하지 않습니다.

답변

1
//Init your MediaPlayer when Activity is created, for instance: 
MediaPlayer mp = MediaPlayer.create(MyActivity.this, R.raw.cow_moo); 
//**************************// 

//onClickListener goes here: 

if(mp.isPlaying()){ 
    //do nothing 
}else{ 
    mp.start(); 
} 

//onClickListener ends here: 
+0

믿을 수 없다! 그런 간단한 해결책 및 그것은 다만 중대한 일한다! 고맙습니다! – lomza

1

android developers guide을 읽고, 그것을 클릭 이벤트시

+0

나는이 모든 자료를 읽을 시간이 없으며 내 문제를 해결하는 데 어떻게 도움이 될지 모르겠습니다. – lomza

+0

나는 기사의 가장 중요한 부분을 이미 언급했다. 다시 무언가를하려면 start()를 다시 호출하기 전에 reset() 및 prepare()를 호출해야한다. 사용자가 버튼을 클릭 할 때마다 새로운 MediaPlayer를 만들고 싶지 않으면 자원 낭비가 될 것입니다. – THelper

+0

좋습니다, 먼저 모든 코드를 리펙토링하고이를 시도합니다. 내가 나중에 무슨 짓을했는지에 대해 쓸 것이다) 내가 쓴 – lomza

0

를 "나중에 미디어를 재생하려면, 당신은 (재설정해야합니다) 다시) (시작를 호출하기 전에)합니다 (MediaPlayer를 객체를 준비"라는 미디어 플레이어의 재생이 끝났는지 확인하십시오. 없으면 아무 것도하지 않고, 그렇다면 다시 재생하십시오. isPlaying() 당신은이를 확인 할 수 있습니다

: http://developer.android.com/reference/android/media/MediaPlayer.html

당신이 그것을 쉽게 찾아 낸다

아래의 완료를 사용하는 경우이 방법을 확인하십시오. :)