[# 2]…My DevelopStory
Android exoplayer get play state
Mader
2022. 6. 23. 10:23
반응형
Android exoplayer get play state
안드로이드에서 동영상 재생을 위한 라이브러리는 감히 exoplayer가 가장 유명하지 않을까?
안드로이드 프레임워크에 포함되어 있지 않은 별도로 import를 해야하는 오픈소스 프로젝트지만, 구글에서 만든 라이브러리로 믿고 쓸 수 있다
이 exoplayer을 사용하던 중, 플레이에 대한 여러 state를 잡을 수 있는데, 예를 들어 동영상 종료후에 다른 동작을 하게 하던가 등등 state를 잡아서 코드를 작성할 수 있다.
이 state도 물론 제공을 해줘서 간단하게 구현을 할 수 있다.
simplePlayer?.apply {
if (isPlaying) {
stop()
}
binding.player.player = this
setMediaItem(MediaItem.fromUri(File(context.filesDir, fileName).toString()))
prepare()
play()
playerListener()
}
위는 간단한 exoplayer를 set하는 코드인데 마지막에 playerListener()을 따로 만들어 두었다.
이 함수에서 exoplayer의 동작을 받을 수 있는 리스너를 추가 하였다.
private fun playerListener() {
simplePlayer?.addListener(object : Player.Listener {
override fun onPlaybackStateChanged(state: Int) {
when(state) {
Player.STATE_ENDED -> onFinished()
Player.STATE_BUFFERING -> {}
Player.STATE_IDLE -> {}
Player.STATE_READY -> {}
else -> { }
}
}
})
}
이 처럼 동작을 잡을 수 있고 그에 해당하는 동작을 넣으면 된다.
나는 영상이 종료된 시점만 알면 되어서 Player.STATE_ENDED만 추가한 상태였다.
반응형