안드로이드 어플리케이션 개발 시 YoutubeStandAlonePlayer 를 쓸 일이 있었서 사용했는데 예상치 못한 버그가 발생하더군요. 그 현상과 해결방법을 정리합니다.

1 현상

안드로이드 앱 개살시 메인 어플리케이션을 Portrait 전용으로 개발중이였습니다.

Intent intent = YouTubeStandalonePlayer.createVideoIntent(context,
                    DEVELOP_KEY, youtubeCode);
                context.startActivity(intent);

와 같은 식으로 유튜브 플레이어를 띄우니 띄운 액티비티(Activity) 와 그 스택에 쌓여있던 액티비티 들의 onResume 이 호출되는 현상이 있습니다. 그래서 플레이중에 멋대로 호출된 Activity 로 튕깁니다. 게다가 어찌 어찌 플레이되더라도 플레이중에 백키를 누르면 호출된 액티비티로 가는게 아니라 앱이 종료됩니다.

2 원인

아마도 Landscape 전용인 YouTubeStandalonePlayer 와 Portrait 로 만들어진 메인 앱과의 차이점 때문인 것 같다고 판단하여 해결법을 찾았습니다.

3 해결

YouTubeStandalonePlayer 를 호출하는 Activity 와 그 스택에 쌓여 있는 Activity 들의 AndroidManifest 안에 android:configChanges="orientation|screenSize|keyboardHidden" 와 같은 내용을 추가해주면 해결됩니다.

<activity
    android:name=".scene.IntroActivity"
    android:configChanges="orientation|screenSize|keyboardHidden"
    android:screenOrientation="sensorPortrait" />
<activity

와 같은 식입니다.

+ Recent posts