[Android] ExoPlayer를 사용할 때 초간단 오디오 포커스 처리하기
ExoPlayer를 사용할 때 초간단 오디오 포커스 처리하기 - 너무 간단해서 당황쓰..🥊
방법
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
를 통해 비슷하게 구현할 수 있다.
Comments