6월 3일의 ⁠#Android11: 베타 버전 출시 행사에 참여하세요.

백그라운드 재생 사용

TV 기기로 콘텐츠를 시청하는 사용자는 언제든지 TV 런처로 전환할 수 있습니다. 사용자가 TV 재생 앱을 사용하는 중에 런처로 전환하면 기본적으로 앱이 일시중지됩니다. 사용자가 명시적으로 TV 재생을 일시중지하도록 요청한 것이 아니기 때문에 이러한 기본 동작이 갑작스럽고 예상치 못한 것으로 보일 수 있습니다. 이 과정에서는 더 나은 사용자 환경을 제공하기 위해 앱에서 백그라운드 재생을 사용하는 방법을 설명합니다.

requestVisibleBehind() 메서드는 API 레벨 26에서 지원 중단되었습니다.
이 메서드는 이후 릴리스에서 제거될 예정입니다. 이 페이지에서 설명하는 기능은 Android 버전 8.0 이상에서 지원되지 않습니다.

백그라운드 재생 요청

일반적으로 사용자가 을 클릭하여 TV 런처를 표시하면 활동이 일시중지됩니다. 그러나 앱에서 백그라운드 재생을 요청하면 TV 런처 뒤에서 활동이 계속 재생됩니다.

백그라운드 재생을 요청하려면 requestVisibleBehind()를 호출합니다. 활동이 표시되지 않으면 미디어 리소스를 삭제해야 합니다. 예를 들어 요청이 실패하여 requestVisibleBehind()false를 반환하거나 시스템이 onVisibleBehindCanceled()의 재정의를 호출하면 미디어 리소스를 해제해야 합니다.

Kotlin

    override fun onPause() {
        super.onPause()
        if (videoView?.isPlaying == true) {
            // Argument equals true to notify the system that the activity
            // wishes to be visible behind other translucent activities
            if (!requestVisibleBehind(true)) {
                // App-specific method to stop playback and release resources
                // because call to requestVisibleBehind(true) failed
                stopPlayback()
            }
        } else {
            // Argument equals false because the activity is not playing
            requestVisibleBehind(false)
        }
    }

    override fun onVisibleBehindCanceled() {
        // App-specific method to stop playback and release resources
        stopPlayback()
        super.onVisibleBehindCanceled()
    }
    

자바

    @Override
    public void onPause() {
      super.onPause();
      if (videoView.isPlaying()) {
        // Argument equals true to notify the system that the activity
        // wishes to be visible behind other translucent activities
        if (! requestVisibleBehind(true)) {
          // App-specific method to stop playback and release resources
          // because call to requestVisibleBehind(true) failed
          stopPlayback();
        }
      } else {
        // Argument equals false because the activity is not playing
        requestVisibleBehind(false);
      }
    }

    @Override
    public void onVisibleBehindCanceled() {
      // App-specific method to stop playback and release resources
      stopPlayback();
      super.onVisibleBehindCanceled();
    }