안드로이드) 버튼을 누를때마다 사운드가 랜덤으로 출현

북마크 추가

import android.media.AudioManager;

import android.media.SoundPool;

 

public class StartActivity extends Activity {

 

    public int no1;

    public int btn = 1;

    SoundPool sound;

    int soundId1;

    int soundId2;

    int soundId3;

    int soundId4;

    int soundId5;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_start);

 

        ImageButton btn = (ImageButton) findViewById(R.id.btn);

 

        sound = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);

        soundId = sound.load(this, R.raw.sound1, 1);

        soundId2 = sound.load(this, R.raw.sound2, 1);

        soundId3 = sound.load(this, R.raw.sound3,1);

        soundId4 = sound.load(this, R.raw.sound4,1);

        soundId5 = sound.load(this, R.raw.sound5,1);

 

        Button button = (Button) findViewById(R.id.button);

 

        button.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

 

                rand r = new rand();

 

                if(btn == 1){

                    no1 = r.num;

                    if(no1 == 1)

                    {

                        sound.play(soundId1, 1f, 1f, 0, 0, 1f);

                        btn += 1;

                    }

                    else if(no1 ==2)

                    {

                        sound.play(soundId2, 1f, 1f, 0, 0, 1f);

                        btn += 1;

                    }

                }

                else if(btn == 2)

                {

                    no1 = r.num;

                    if(no1 == 1)

                    {

                        sound.play(soundId3, 1f, 1f, 0, 0, 1f);

                        btn += 1;

                    }

                    else if(no1 == 2)

                    {

                        sound.play(soundId5, 1f, 1f, 0, 0, 1f);

                        btn += 1;

                    }

 

                }

                else if(btn == 3)

                {

                    sound.play(soundId4, 1f, 1f, 0, 0, 1f);

                    btn = 1;

                }

            }

 

        });

}

 

 

AD
개*****
2015-04-30 14:27
SHARE
댓글

예제파일은 현재 가지고있는게 없구요.  예제파일을 드린다 하여도 실제 프로젝트에 맞는 xml이 설정되어있어야 하는데 그건 직접 해보시는게 나을듯 싶습니다.
김**

액티비티 안에 입력하는 겁니다. 
onCreate는 액티비티가 생성되는 시점을 의미하며 아래에 버튼이며 onClickListener 같은 메소드를 활성화 시켜주죠
코드에 보시면 SoundPool이라는 클래스를 객체화 시키며 soundid1~5까지를  정의해줍니다. 즉, 각각의  soundid에 원하시는 사운드를 넣는것이죠.

버튼을 r.id.button으로 만들어주고 onClickListener를 오버라이딩 시켜줍니다.(이건 안드로이드 라이브러리 자체 내장이라 안드로이드 스튜디오를 쓰시면 자동으로 가져올수 있습니다.)
이 코드의 경우는 첫번째 클릭했을떄, 두번째 클릭했을떄, 세번째 클릭했을때 사운드를 내는 기능이며 
코드에 btn+=1 로 첫번째 클릭인지 두번째 클릭인지 확인이 가능합니다.
세번째 클릭은 무조건 하나의 소리만 나오도록 되어있구요.
김**

죄송하지만 어디에 입력해야하는지 뭐가 뭔지 이해가 안됩니다ㅠㅠㅠ gkshffltm@gmail.com 으로 예제파일이라도 좀 보내주실 수 있나요? 보내주시기를 부탁드리겠습니다^^
g********