일일 회고
연휴가 거의 끝나고, 다시 시작할 시간이 되었다.
연휴 간 내가 맡은 부분은 완료를 하였다. MVVM을 해보는 것도 중요하지만 프로젝트의 완성을 위해 안된 부분을 같이 해보기로 하였다.
같이 해보면서 이번 프로젝트도 잘 마무리해 보자
오늘의 키워드
- 지금까지 내가 한 작업 간 트러블 슈팅 정리
- 원인 - 동영상 재생에 관련된 id를 찾지 못함
- 해결과정 - 동영상 id를 찾고 ExoPlayer를 이용한 방법을 찾음
- 원인 - media3 - exoplayer에서는 “https://www.youtube.com/watch?v=1ID6pfTViXo” 이런 형식의 videoId를 가진 url을 재생시킬 수 없음 **출처: https://developer.android.com/guide/topics/media/exoplayer/troubleshooting#can-i-play-youtube-videos-directly-with-exoplayer**
- 해결과정: 오픈 소스인 android-youtube-player 사용 (단, webview형식의 플레이어이므로 렉이 좀 있음)
- 원인 -youtubePlayerView.initialize()의 여러 번 호출로 인한 오류 발생 https://github.com/PierfrancescoSoffritti/android-youtube-player/issues/557에 따르면 youtubePlayerView는 한 번만 초기화해주면 된다고 했음
- 해결과정: youtubePlayerView.initialize()을 ViewHolder의 init {} 에만 한 번 선언함으로써 해결
- 리사이클러뷰에서 youtubePlayerView 사용 시, ViewHolder의 bind메서드에서 youtubePlayerView.initialize() 메서드를 호출했을 때, java.lang.IllegalStateException: This YouTubePlayerView has already been initialized. 오류가 생김
init {
val tracker = YouTubePlayerTracker()
var duration: Float?
val customUi =
binding.shortsPageVideoView.inflateCustomPlayerUi(R.layout.shorts_custom_view)
val youtubePlayerListener = object : AbstractYouTubePlayerListener() {
override fun onReady(youTubePlayer: YouTubePlayer) {
val customPlayerUiController = CustomPlayerUiController(customUi)
youTubePlayer.run {
addListener(tracker)
addListener(customPlayerUiController)
}
}
override fun onCurrentSecond(youTubePlayer: YouTubePlayer, second: Float) {
super.onCurrentSecond(youTubePlayer, second)
Handler(Looper.getMainLooper()).postDelayed({
duration = tracker.videoDuration
duration?.let {
updateProgressBar(it, binding.progressBar, tracker)
}
}, 500)
}
}
val iFramePlayerOptions = IFramePlayerOptions.Builder().apply {
controls(0)
rel(0)
ivLoadPolicy(3)
ccLoadPolicy(1)
fullscreen(0)
}.build()
binding.shortsPageVideoView.initialize(youtubePlayerListener, false, iFramePlayerOptions)
}
MVVM 적용
-- 우선 팀원들의 기능 완성을 위해 후순위로 미룸
'내일배움캠프 7기 > TIL' 카테고리의 다른 글
내일배움캠프 7기 Android TIL 56일차 (2023.10.05) (0) | 2023.10.05 |
---|---|
내일배움캠프 7기 Android TIL 55일차 (2023.10.04) (1) | 2023.10.04 |
내일배움캠프 7기 Android TIL 53일차 (2023.09.27) (0) | 2023.09.27 |
내일배움캠프 7기 Android TIL 52일차 (2023.09.26) (0) | 2023.09.26 |
내일배움캠프 7기 Android TIL 51일차 (2023.09.25) (1) | 2023.09.25 |