본문 바로가기
Android 개발/Audio&MediaPlayer

Android에서 MediaPlayer 로 음악 재생하기

by Developer88 2017. 2. 4.
반응형

앱을 만들면서 소리를 재생하도록 해야하는 경우가 상당히 많은데요.

이럴때 사용하는 MedaiPlayer 클래스에 대해서 정리해보겠습니다.


MediaPlayer는 사실 오디오뿐만이 아니라, 이미지, 비디오 파일과 스트림을 플레이할수 있는 다재다능한 Class 인데요.

앱의 리소스를 저장하는 raw나 Assets폴더에 저장해놓고 사용하거나, 특정위치에 파일을 생성해서 음악을 재생할 수도 있구요,

외부 URL을 통해서 스트리밍을 재생할수도 있습니다.


지원하는 media format은 아래 링크에서 확인하실수 있습니다. (mp3나 img파일들, h.264타입의 비디오도 포함되어 있네요.)

>>> 미디어 포맷 링크 <<<


이번 글에서는 앱에 mp3를 넣어놓고 재생하는 방법에 대해서 정리해보겠습니다.

video나 stream에 대해서는 차후에 정리해 보도록 하겠습니다.


1. Raw폴더 생성


res디렉토리에서 new를 해주고, resourse directory를 먼저 선택해줍니다.




resource type을 raw로 선택해주고 ok를 해주면, 아래와 같이 raw폴더가 생성됩니다.




파일을 선택해서 복사한다음, raw폴더를 선택후에 복사해주면,

아래와 같이 파일이 디렉토리내로 복사되어집니다.




2. UI만들기


버튼을 누르면, 음악이 재생되는 버튼을 생성해 보겠습니다.

레이아웃 파일은 아래와 같이 간단하게 구성해보았습니다.




위와 같은 UI로 만들고, 재생 혹은 정지 시에 버튼의 텍스트가 바뀌도록 하겠습니다.

물론, 앱을 실제로 만들경우에는 이미지로 하는 경우가 많을 것 같습니다.




3. 음악재생 코드


제일먼저 해야하는 것은 mediaPlayer의 객체를 얻어오는 것입니다.

편리하게도(?) Convenience method가 준비되어 있는데요.

 바로 create()메소드입니다.




이제 play버튼을 클릭하면 start()해서 플레이시켜주구요, 버튼의 텍스트도 바꿔줍니다.

stop버튼을 클릭하면 stop()을 해줄 수 있도록 하면됩니다.

토글버튼으로 만드는 것이므로, 현재 실행중인지 알 수 있는 isPlaying()메소드를 사용해서,

조건에 따라 시작할지 아니면 정지시킬지 선택해주어야 합니다.


이제 드디어 앱을 실행시키고, play버튼을 누르면 재생이 됩니다~.



4. Release


MediaPlayer객체는 시스템의 리소스를 잡아먹으므로,

destory시에도 release를 해주는 것이 좋은데요.

아래와 같이 release메소드를 이용해서 리소스를 release해주구요.

변수에도 null값을 넣어주었습니다.



이렇게 해서 MP3 파일을 앱에 넣어서 재생할 수 있도록 해보았구요.

다음글에서 ContetResolver를 이용해서, 스마트폰 사용자의 음악파일들을 재생하는 방법에 대해서 정리해 보겠습니다. 

728x90

댓글