OS/Android

Android :: Sound Pool & Media Player

VallistA2014. 6. 12. 23:58


0. 개요


이번에 프로젝트를 진행하면서 Android Sound Pool에 대해서 접근을 하게 되었는데, 굉장히 흥미로운 사실이 많아서 블로그에 올립니다.


Android 에서 Sound 관련해서는 SoundPool과 MediaPlayer 가 있습니다.


먼저. SoundPool 입니다.


1. 소스 및 사용법


■ SoundPool(int maxStreams, int streamType, int srcQuality)


□ 첫번째 인자 :: int maxStreams


최대 스트림 수 입니다. 

최대 음악을 중첩해서 몇개를 출력할지 나타냅니다. API 12버전 이하는 10개 이하였는데, 최근 API 에서는 10개 넘어가도 실행 잘 됩니다. (최대 몇개인지는 ..)


□ 두번째 인자 :: int streamType


오디오 스트림 입니다. 보통 STREAM_MUSIC 을 대중적으로 사용합니다.


□ 세번째 인자 :: int srcQuality


샘플링 품질입니다. 

1로 갈수록 점점 음질이 안좋아지며, 5로 갈수록 음질이 좋아집니다.

보통 5를 사용합니다.


□ Get Method


SoundPool soundpool  = new SoundPool(최대 스트림 갯수 , 오디오스트림타입 , 샘플링 품질);


먼저 객체를 생성합니다.


□ Load Method


int load(Context context, int resId , int priority)

int load(String path , int priority)


사용법


1. int sound = soundpool.load(컨텍스트 , 리소스 아이디 , 우선권);

2. int sound = soundpool.load(리소스 이름 , 우선권);


load 메소드를 통해 객체를 로드합니다.

보통 첫번째 방법을 많이 사용합니다.


첫번째 매개변수는 액티비티 값을 넣어주면 됩니다. 

두번째 리소스 아이디 에는 로드할 사운드를 넣어주시면 됩니다.

세번째 우선권에는 1을 평균적으로 넣습니다.

우선권을 사용하게 되면 우선적으로 출력하게 됩니다. (최대 스트림 갯수가 넘어갈때 우선권이 적은 것을 먼저 삭제하고 넣습니다.)


□ Play Method


int play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)


사용법


soundpool.play(실행할 사운드 아이디 , 좌측 볼륨 , 오른쪽 볼륨 , 재생 우선 순위 , 반복여부 , 속도);


play를 통해 사운드를 재생합니다.


첫번째 매개변수에는 로드시 반환하는 ID를 넣어줍니다.

두번째와 세번째에는 자기 마음대로 넣으시면 됩니다.

0.5 , 0.5 는 양쪽 다 평이하게 들립니다. 

네번째에는 0을 넣어주시면 되고, 

나머지 인자는 알아서 하시면 되겠습니다.


□ 어느때에 사용을 많이 하는가?


보통 SoundPool의 경우에는 이펙트에 많이 쓰입니다.

SoundPool은 최대 출력할 Sound Channel을 지정할 수 있기 때문에 여러가지 음악을 한번에 출력이 가능하여 이펙트로 많이 쓰입니다.


■ Media Player


□ Create Method


Media Player는 Sound Pool과 동일하게 Create를 통해 만들어 주어야 합니다. (생성과정은 다 필요하죠.)


MediaPlayer sound; 선언


생성자나 , onCreate 단에 이렇게 적어줍시다.


sound = MediaPlayer.create(context , R.raw.불러올 이미지 파일);


□ Play Method


MediaPlayer는 SoundPool과 같이 복잡하지 않습니다. 만들어주고, 바로 재생을 하면 됩니다.


sound.start();


간단하죠?


□ Playing ? Stop ?


sound.isPlaying();


이 메소드는 지금 현재 실행중인지 아닌지를 판단시켜주는 구문입니다.


유용하게 사용하면 되겠죠?


□ 어느때에 사용을 많이 하는가?


보통 MediaPlayer는 배경음악을 출력하는게 많이 사용하게 됩니다.

다중 음악출력 기능이 있는 SoundPool과 달리, MediaPlayer는 음악이 한개만 실행이 되며, 이후 다른 음악을 mediaPlayer로 실행을 하면 기존 음악이 씹히고,

나중에 불러온 음악이 실행이 됩니다.



3. 끝마치며


이제 Android 사운드에 관해서 대략적으로 알았습니다.

다음은 활용을 통해서 자신의 앱, 디바이스에서 음악을 출력시키는 일만 남았습니다 ^^


즐거운 코딩 되시기 바랍니다

'OS > Android' 카테고리의 다른 글

Android :: findViewById  (0) 2014.07.27

댓글

VallistA

병특이 끝나서 게임에서 웹으로 스위칭한 프로그래머.
프로그래밍 정보등을 공유합니다.
현재는 이 블로그를 운영하지 않습니다.
vallista.kr 로 와주시면 감사하겠습니다!

자고 싶습니다. ㅠㅠ

Github      :: 링크

궁금한점 문의 주시면 답변드리도록 하겠습니다

VISITED

Today :

Total :

SNS

  • 페이스북아이콘
  • 카카오톡아이콘
  • 트위터아이콘

Lately Post

Lately Comment