사운드 SoundPool 예제

프로그래밍/Android (Java)|2018. 12. 24. 11:09
반응형

1. 사운드 파일 준비하여 res 폴더 및에 별도의 폴더 만들어서 위치 : 예제에서는 raw 폴더를 만들어서 넣습니다.  (일반적으로 폴더에 리소스 파일을 넣는 방법은  '복사' 한다음에 해당 폴더에 '붙여넣기' 하는 방법이 가장 무난 합니다.

2. SoundPool 객체 생성
3. SoundPool.load() 로 사운드 리소스 파일 id 준비
4. SoundPool.play() 로 재생시작

 

MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class MainActivity extends ActionBarActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Button b = (Button)findViewById(R.id.button1);
 
        final SoundPool sp = new SoundPool(1,         // 최대 음악파일의 개수
                AudioManager.STREAM_MUSIC, // 스트림 타입
                0);        // 음질 - 기본값:0
 
        // 각각의 재생하고자하는 음악을 미리 준비한다
        final int soundID = sp.load(this// 현재 화면의 제어권자
                R.raw.gun,    // 음악 파일
                1);        // 우선순위
 
        b.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sp.play(soundID, // 준비한 soundID
                        1,         // 왼쪽 볼륨 float 0.0(작은소리)~1.0(큰소리)
                        1,         // 오른쪽볼륨 float
                        0,         // 우선순위 int
                        0,     // 반복회수 int -1:무한반복, 0:반복안함
                        0.5f);    // 재생속도 float 0.5(절반속도)~2.0(2배속)
                // 음악 재생
            }
        });
    } // end of onCreate
}
cs

 

실행화면]

 [시작]버튼을 누르면 미디어 연주가 시작됩니다.



출처: http://bitsoul.tistory.com/31 [Happy Programmer~]



반응형

댓글()