작성일: 2020.03.02
방법
ExoPlayer를 초기화할 때 handleAudioFocus 플래그 값을 true로 주면 된다.
exoPlayer.setAudioAttributes(new AudioAttributes.Builder()
.setContentType(C.CONTENT_TYPE_MUSIC)
.setUsage(C.USAGE_MEDIA)
.build(), /*handleAudioFocus = */ true);
-끝-
Note
ExoPlayer와 MediaSessionConnector를 함께 쓸 때, MediaSessionConnector 내부에서 별도로 MediaSession.Callback을 정의하여 사용하고 있다. 그래서 Service 안에서 MediaSession에 Callback을 추가하더라도 해당 코드는 호출되지 않는다. MediaSessionConnector.mediaSession.setCallback(...)과 같이 MediaSessionConnector의 MediaSession 참조를 직접 얻어 Callback을 추가하면 호출되기는 한다. 하지만 이렇게 되면 MediaSessionConnector가 제공하는 동작들을 모두 사용할 수 없게 된다(MediaSessionConnector의 Callback이 불리지 않게 되기 때문에).
Android Developers 가이드에 나온대로 MediaSession.Callback의 onPlay, onPause 등 시점에 따라 동작을 해야한다면, MediaController의 Callback인 onPlaybackStateChanged를 통해 비슷하게 구현할 수 있다.
'개발 > Android' 카테고리의 다른 글
[Android Studio] Wi-Fi 환경에서 유선 연결없이 디버깅하기 (0) | 2021.04.09 |
---|---|
[Android] Dependency Injection Part 3. Dagger basics (0) | 2021.04.09 |
[Android] MediaBrowser.connect() 아무 반응이 없을 때 (0) | 2021.04.09 |
[Android] java.lang.UnsupportedOperationException: This session doesn't support queue management operations (0) | 2021.04.09 |
Android 10 변경 사항 : Scoped Storage (0) | 2021.04.09 |