반응형
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만 추가한 상태였다.
반응형
'[# 2]…My DevelopStory' 카테고리의 다른 글
Android Log Lib ~ Timber Lib (0) | 2022.06.29 |
---|---|
Android Force Update Check ~ Google InApp update lib (1) | 2022.06.24 |
Android TextView String resource bold / textView set html (0) | 2022.06.23 |
Android TabLayout, Viewpager2 selected tab text bold (0) | 2022.06.21 |
안드로이드 adjustNothing 키보드 높이 구하기 - Android adjustNothing get keyboard height (0) | 2021.09.08 |