문제발생
Epoxy로 무한 반복되는 배너 캐러셀에 동영상을 적용시키는 중에, 간혹 동영상이 재생될때 검은 화면만뜨고 재생이 안되거나 깜빡이는 문제가 있었다.
*하나의 ExoPlayer를 RecyclerView.Adapter에서 재활용해가면서 쓰는 사례다.
정신차리고 setPlayer()
Document를 자세히 읽어보니... Player를 다른 View에 붙일때 switchTargetView()
를 쓰는걸 추천한다고 되어있다. 하지만 setPlayer()
를 직접 쓰고자 할 경우 이전 View에서 Player를 분리하기 위해 setPlayer(null)
을 호출하기 이전에 새로운 View에 Player를 연결시켜야 한다.
*switchTargetView를 직접 써보려고 했으나, 지원하지 않는 메소드였다.
해결방법
순서의 문제다.
정리를해보자면 A, B 총 2개의 PlayerView가 있을때
A에는 setPlayer(player)
가 되어있는 상태이고, 동일한 Player를 B에다가 붙이려 한다.
이때 A에서 Player를 떼버리기 전에 B에 Player를 세팅하고 A에서 떼면된다.
'프로그래밍 > Android' 카테고리의 다른 글
[안드로이드] 특정 시간 내 중복 Request를 막는 OkHTTP Interceptor 구현하기 (0) | 2023.03.28 |
---|---|
[안드로이드] Push할 때마다 Auto-Formatting적용하기 : GitHook으로 코딩 스타일 맞추기 (0) | 2023.02.04 |
[안드로이드] java.lang.IllegalStateException: An instance of OnFlingListener already set 해결 (0) | 2023.01.26 |
[CI/CD] Firebase Test Labs UI Test 자동화하기 (0) | 2022.09.30 |
Android Studio 이전 릴리즈 다운받는 방법 (3) | 2022.09.29 |