YouTubePlayer 가 존재 하는 레이아웃 에서 YouTubePlayer 상위에 뷰가 존재 하면 플레이어가 멈춘다.
로그캣에 출력된 경고 로그는 아래와 같다
W/YouTubeAndroidPlayerAPI: YouTube video playback stopped due to unauthorized overlay on top of player. The YouTubePlayerView is obscured by android.view.View{26787c47 V.ED.... ........ 0,0-1280,50 #102002f android:id/statusBarBackground}. The view is inside the YouTubePlayerView, with the distance in px between each edge of the obscuring view and the YouTubePlayerView being: left: 0, top: 0, right: 0, bottom: 670..
유투브 플레이어 위에 허가되지 않은 오버레이가 있어서 플레이가 멈췄다.
android:id/statusBarBackground 뷰가 유투브플레이어를 가렸다.
android:id/statusBarBackground 뷰가 유투브플레이어 안에 존재하며 위치는 주저리 주저리...
위 로그는 아래에 설명할 상황2 에서 만났던 오류 이며, 상황1 에서도
YouTube video playback stopped due to unauthorized overlay on top of player.
로그는 보게 될 것이다.
상황1
YouTubePlayer(Fragment) + 리스트타입 뷰(Fragment) + ProgressBar
위와 같은 상/하 구조에 정중앙 위치에 나타나는 ProgressBar 를 위치시켰더니 오류 발생
해결1
ProgressBar 는 리스트타입 뷰 에 효과를 위해 존재한다. 따라서,
ProgressBar 의 부모가 되는 레이아웃을 Activity 의 레이아웃으로 지정하지 않고
리스트타입 뷰 가 있는 Fragment 의 최상위 레이아웃으로 지정하여 YouTubePlayer 뷰에
오버레이 되지 않도록 처리해서 오류를 피할 수 있었다.
상황2
상황1 에서 YouTubePlayer 가 FullScreen 모드로 진입했을 때 오류 발생
FULLSCREEN_FLAG_CUSTOM_LAYOUT 플래그를 사용하였기 때문에
풀스크린 과 이전 사이즈 변환 에 대한 UI를 개발자가 직접 컨트롤 해야 하는 상황
풀스크린 과 이전 사이즈 변환은 JAVA 코드로 직접 처리 하였으나
시스템UI 에 해당하는 상태바 와 네비게이션바 가 나타나면서 오류 발생으로 플레이어 멈춤
해결2
안드로이드 윈도우 레이아웃을 풀스크린으로 변경해 줘야지 오류 없이 처리됨.
아래는 참고 URL
http://stackoverflow.com/questions/31638871/video-pausing-with-error-unauthorized-overlay
풀스크린 요청시 : getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
이전사이즈 요청시 : getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
위와 같은 오류를 만나게 되면 자신이 생성한 뷰가 유투브플레이어 뷰와의 계층관계 에서 상위에 있는지,
풀스크린 모드 직접 컨트롤 시 안드로이드 윈도우 레이아웃 변경을 하였는지 확인하면 될듯 함.
삽질 삽질 개삽질 끝에 알아낸 내용 ㅡㅡ;
'Development > Android' 카테고리의 다른 글
풀스크린 + Status Bar 숨기기 (0) | 2017.12.14 |
---|---|
FCM (Firebase Cloud Messaging) (0) | 2017.03.17 |
[Material Design] 머티리얼 디자인 무료 리소스 (0) | 2017.01.10 |
[Widget] MaterialProgressBar (0) | 2016.12.20 |
[Drawable] Android Drawables (0) | 2016.12.19 |