안드로이드 스튜디오를 활용하여 미디어 플레이어를 만들기 위한 간단한 예제는 많이 있지만, 최대한 심플하게, 버튼을 눌렀을 때 특정 소리가 나오도록 하는 방법에 대해서 공유하고자 합니다.
음악 재생을 위해 필요한 코드는 딱 3줄입니다. 재생을 위한 가장 최소 코드를 아래와 같이 나타내었습니다.
class MainActivity : AppCompatActivity() {
private lateinit var wowh: MediaPlayer
override fun onCreate(savedInstanceState: Bundle?) {
wowh = MediaPlayer.create(this, R.raw.wowsound8)
button.setOnClickListener {
wowh.start()
}
빨간색으로 표기한 코드가 반드시 필요한 코드입니다. Wow라는 효과음을 사용하기 위해 class 바로 아래에 private lateinit var wowh: MediaPlayer로 선언하였고, wowh라는 variable을 MediaPlayer로 사용하겠다는 것을 표기하였습니다. 그리고, 아래에 wowh에 대해서 어떤 미디어 파일을 가져올 것인지 정해야 하기 때문에, raw 폴더에 는 wowsound8 이라는 파일을 불러오도록 wowh = MediaPlayer.create(this, R.raw.wowsound8)와 같이 작성하였습니다.
이 코드 덕분에 wowh는 raw 폴더 안에 있는 wowsound8 이라는 파일을 읽어 오도록 설정이 됩니다. raw 폴더 안에 다양한 음원 파일을 넣어 두고, 위의 코드처럼 각각 선언을 해서 사용하면 다양한 음원을 컨트롤할 수 있게 됩니다. 마지막으로 button이 눌리면 wowh.start()로써 wowh를 실행하라는 의미로 코드를 작성하였습니다. .start()가 바로 음악을 실행하라는 명령어가 됩니다.
다음은 raw 폴더에 대한 작성 방법입니다. res에서 마우스로 우클릭하여 New – Android Resource Directory를 눌러서 폴더를 만들어 줍니다. 이때 Directory name은 raw로 해 주시고, resource type도 raw로 설정 후 OK를 누르시면 됩니다. 그리고, 이후 raw 폴더 안에 mp3 파일을 복사 붙이기로 넣어 주시면 됩니다.
음악 재생을 위해서 딱 3줄 코드만 있으면 되는데, 너무 복잡하게 설명이 된 자료가 많은 것 같아 가볍게 작성을 해 보았습니다.
만약 해당 음원이 아니라 앱 내에서 게임과 같은 동작이 아닌 back ground music BGM처럼 계속 흘러나오게 하고 싶을 경우에는 for나 while문처럼 루프 동작을 시키면 됩니다. 하지만 이때 for나 while문을 사용하는 것이 아니라, 단순하게 코드 한 줄로 지속 반복될 수 있도록 할 수 있습니다.
wowh.isLooping= false
위에 작성한 isLooping이 바로 반복 명령어입니다. 여기서 wowh라는 음원이 한번 실행되면 이후 계속 반복되도록 하고 싶을 경우 아래처럼 false를 true로 변경해 주시면 됩니다.
wowh.isLooping= true
해당 코드의 삽입 위치는 wowh.start() 전에만 삽입해 주시면 됩니다. 기본적으로 isLooping에 대해서는 false가 default입니다. 즉 한 번만 재생하고, 반드시 종료가 되는 것이 기본입니다. 따라서 true를 표기함으로써 지속적으로 BGM 효과를 유지하실 수 있게 됩니다.
음원을 재생했다면, 멈추는 방법이 필요로 하게 됩니다. 일시 정지 방법과 음악을 멈추는 방법에 대해서 다음 포스팅에서 설명을 진행하겠습니다. 간혹 음악 정시 명령 후 다시 재생을 하고 싶음에도 재생이 안 되는 경우가 있는데, 해당 해결책도 함께 소개하겠습니다. 또한 음원의 볼륨을 사전에 개발자가 원하는 크기로 설정하는 방법이 있기 때문에, 해당 방법도 함께 다음 포스팅에서 설명하도록 하겠습니다.
'어플 개발' 카테고리의 다른 글
로또 번호 예측 앱의 기초가 되는 랜덤 숫자 발생 방법. 안드로이드 스튜디오 랜덤 숫자 발생 방법. random number generator in kotlin. 로또 번호 예측 앱의 기초가 되는 랜덤 숫자 발생 방법 (4) | 2020.05.09 |
---|---|
안드로이드 스튜디오 미디어 플레이어 일시 정지 및 다시 재생 사용 방법과 볼륨 설정 방법 in kotlin section 2 (1) | 2020.04.24 |
안드로이드 스튜디오 타이머 및 delay 함수 사용 방법 (0) | 2020.04.11 |
안드로이드 스튜디오 x, y축 그림 이동 방법 kotlin (0) | 2020.04.04 |
안드로이드 스튜디오 애니메이션 적용 방법 kotlin (2) | 2020.03.31 |
댓글