본문 바로가기
어플 개발

안드로이드 스튜디오 미디어 플레이어 일시 정지 및 다시 재생 사용 방법과 볼륨 설정 방법 in kotlin section 2

by MinervaG 2020. 4. 24.

Section1에서 음원 재생에 대해서 확인하였고, 이번 section 2에서는 음악 재생 중 일시 정지 방법과 재생을 멈추는 방법에 대해서 소개하고, 마지막에 볼륨 설정 방법에 대해서 공유하겠습니다. 음악 play, pause, stop으로 버튼을 3layout에서 먼저 작성을 아래 그림처럼 하였습니다.

 

 

Section1에서 사용한 코드에 이어서 pausestop 버튼에 대해서 코드를 다음과 같이 삽입하였습니다.

 

button.setOnClickListener {

wowh.start()

}

button_pause.setOnClickListener {

wowh.pause()

}

button_stop.setOnClickListener {

wowh.stop()

wowh = MediaPlayer.create(this, R.raw.wowsound8)

}

 

음악 재생을 위해서는 .start()로 재생을 하였기 때문에, 일시 정지를 위해서는 .pause()를 사용하면 됩니다. .pause를 누른 시점에서 다시 start 버튼을 누르면 자동으로 해당 시점에서 음원이 다시 재생이 됩니다. 그리고, 음원을 종료하고자 할 경우 .stop()을 사용하면 됩니다. 하지만, 위의 코드에서 조금 특이한 부분이 있습니다. .stop() 명령어 이후에, onCreate 아래에 이미 작성되었던 MediaPlayer.create가 또 한 번 쓰여진 것을 확인할 수 있습니다. 해당 함수를 꼭 다시 한번 써 줘야만 stop이후 다시 음악 재생이 가능합니다.

 

혹시 궁금하신 분은 해당 코드를 삭제하고 stop 버튼을 누른 후 다시 재생 버튼을 눌러보시면 음악이 재생이 안된다는 것을 아실 수 있겠습니다. 정확한 원인은 모르겠으나, 안드로이드 스튜디오의 코틀린 언어에서는 stop 명령이 MediaPlayer.create를 초기화 시켜 버리는 듯합니다. 그래서 .stop()이후 다시 선언을 해 줘야 정상 작동함을 확인했습니다.

 

Section 1에서 loop에 대한 반복 재생에 대해서도 설명을 드렸었는데, isLooping문을 .start()앞에 넣어야 stop 버튼 누른 이후 다시 재생 버튼을 눌렀을 때 지속 반복이 됩니다. 아래 코드를 한번 참고해 보시면 알 수 있습니다.

 

button.setOnClickListener {

wowh.isLooping= true

wowh.start()

}

button_pause.setOnClickListener {

wowh.pause()

}

button_stop.setOnClickListener {

wowh.stop()

wowh = MediaPlayer.create(this, R.raw.wowsound8)

}

 

isLooping 문이 start 버튼 안에 들어가 있고, .start()문 앞에 작성이 됨에 따라 stop을 눌러 음악을 멈춘 후에도 다시 start 버튼을 누르면 음악이 반복 재생될 수 있도록 코드를 작성 한 부분입니다. 당연히 pause를 누를 후 재생 버튼을 누르면, 일시 정지된 부분부터 다시 재생되며, 이어서 반복 재생도 함께 진행이 됩니다.

 

다음은 개발자가 원하는 초기 음원 소리 설정에 대한 내용입니다. 사용자가 소리를 끄고 진행할 수도 있지만, 개발자의 의도가 소리를 발생시키기를 원한다면 볼륨을 특정 크기로 조절하여 초기에 소리가 들릴 수 있도록 할 수 있습니다. 해당 코드는 아래와 같습니다.

 

override fun onCreate(savedInstanceState: Bundle?) {

val audio = this.getSystemService(Context.AUDIO_SERVICE) as AudioManager

audio.setStreamVolume(AudioManager.STREAM_MUSIC, 15, 0)

 

onCreate 아래에 2줄 코드를 추가하는 것입니다. AudioManager를 불러와서 해당 볼륨을 설정하는 부분입니다. 15라고 적혀진 부분의 숫자를 변경하여 소리 크기를 조절할 수 있습니다. 숫자가 커질수록 소리가 증가하게 됩니다. 10, 15, 20, 30 이렇게 숫자를 키워가면서 테스트해 보시면 소리가 점차 증가하는 것을 확인하실 수 있습니다. 가장 적절하다고 생각하는 수치를 파악하셔서 개발하시는 프로그램에 적용하시면 좋을 것 같습니다.

 

Sction1, 2에 거쳐 음악 재생 방법에 대해서 코드 설명을 진행하였습니다. 의외로 단순한 코드임에도 너무 어렵게 설명된 자료가 많았고, 특히 stop이후 다시 재생하기 위해 설명된 자료가 없어 찾는데 의외로 힘들었던 부분들이 많았기에 해당 포스팅을 작성하게 되었습니다. 도움이 되었으면 좋겠네요.

반응형

댓글


TOP