안드로이드스튜디오

[안드로이드] MediaPlayer 사용해서 fragment에서 mp3 재생하기

eunda_coding 2024. 9. 26. 14:41

화면 전환 시 각 화면의 음성안내를 해 줄 mp3를 재생해야 하는 작업을 했었다.

 

안드로이드에서 제공하는 MediaPlayer를 이용해서 쉽게 mp3파일을 재생할 수 있다.

1. mediaPlayer 변수 셋팅 및 초기화
  private var mediaPlayer : MediaPlayer? = null
  mediaPlayer = MediaPlayer.create(context, R.raw.a001)
  mediaPlayer?.start()

 

mediaPlayer 변수 생성하고 MediaPlayer.create(context, 파일명) 을 작성하고 start() 해주면 해당 화면에서 파일이 재생된다.

 

2. 파일 재생 완료 후 작업 실행

 

파일 재생 완료 후 시점에 액션을 넣어주려면 setOnCompletionListener를 사용하면 간단하다.

나같은 경우는 파일 재생 완료 후 3초 뒤에 다른 프레그먼트로 화면 전환을 시켜주었다. 

    mediaPlayer?.setOnCompletionListener {
        viewLifecycleOwner.lifecycleScope.launch {
            delay(3000)
            findNavController().navigate(XXDirections.actionXXFragmentToXXFragment())
        }
    }

 

3. MediaPlayer 해제

 

MediaPlayer 경우에는 시스템 리소스를 많이 잡아먹기 때문에 사용 완료 후 반드시 해지를 해주어야한다.

    override fun onDestroyView() {
        super.onDestroyView()
        _binding = null
        mediaPlayer?.release()
        mediaPlayer = null
    }