[Android] - 소리 재생하기(MediaPlayer 와 SoundPool)

명준쓰·2023년 6월 16일
0
post-thumbnail

안녕하세요 이번 포스팅은 안드로이드에서 소리를 재생하는 방법중 대표적인 방법인 Mediaplayer와 SoundPool에 대해 포스팅 하겠습니다.

MediaPlayer

MediaPlayer는 Android에서 미디어 파일을 재생하는 데 사용되는 가장 일반적인 클래스입니다. 이 클래스는 오디오 및 비디오 파일을 스트리밍할 수 있으며, 많은 양의 데이터를 처리할 수 있습니다. 따라서 MediaPlayer는 상대적으로 긴 음악 파일이나 동영상 파일을 재생할 때 사용됩니다.

MediaPlayer의 단점으로는 메모리 및 CPU 사용량이 높은 편이며, 간혹 응답 시간이 느릴 수 있다는 점입니다. 따라서 효율성과 속도보다는 기능성과 범용성을 중시할 때 많이 사용됩니다.

SoundPool

SoundPool은 작고 짧은 사운드 클립을 빠르게 재생하는 데 사용되는 클래스입니다. 이 클래스는 여러 사운드 클립을 동시에 재생할 수 있으며, 사운드의 볼륨과 우선 순위를 조절하는 기능도 제공합니다. 보통 게임이나 사용자 인터페이스의 사운드 효과 등을 제어할 때 주로 사용됩니다.

SoundPool은 MediaPlayer보다 효율성과 속도에 중점을 두고 있지만, 재생할 수 있는 사운드 클립의 크기나 길이에 제한이 있고 스트리밍 기능을 제공하지 않으므로 모든 사운드 클립을 미리 로드해야 합니다. 제 경험상 8~9초 정도 길이의 사운드 부터는 MediaPlayer를 사용해야 했습니다.

비교

SoundPoolMediaPool
짧은 사운드 재생에 효과적(최대 10초)긴 사운드 재생에 효과적
사운드 연타 기능 구현 가능(게임, UI사운드 효과)음악 재생, 동영상 재생
메모리 사용량 낮음메모리 사용량 높음
CPU 사용량 낮음CPU 사용량 높음
동시 재생 가능동시 재생 불가

간단한 비교이니 더 자세한 기능은
https://developer.android.com/reference/android/media/SoundPool
https://developer.android.com/guide/topics/media/mediaplayer?hl=ko

에서 찾아보시면 더욱 자세하게 알 수 있습니다.


profile
개린이

0개의 댓글