미디어 앱을 Android TV로 확장

Android는 대규모 기기에서 실행되는 앱에 최적화된 풍부한 사용자 환경을 제공합니다. 화면 장치(예: 고화질 텔레비전)가 포함됩니다. 앱의 Android TV에 맞게 개발했습니다. 이 문서에서는 효과적으로 할 수 있습니다.

TV 앱 빌드

TV 앱은 스마트폰 및 태블릿 앱과 동일한 구조를 사용합니다. 이 접근 방식 빌드에 대해 이미 알고 있는 지식을 바탕으로 새로운 TV 앱을 만들 수 있음을 의미합니다. TV 기기에서도 실행되도록 기존 앱을 확장할 수 있습니다.

하지만 TV의 사용자 상호작용 모델은 전화기와 상당히 다릅니다. 태블릿 기기입니다. TV 기기에서 앱을 성공적으로 사용하려면 다음 요건을 충족해야 합니다. 3m 거리에서도 명확히 이해할 수 있는 새로운 레이아웃을 디자인하고, 방향 패드와 선택 버튼만으로 작동하는 탐색 기능을 제공합니다.

TV 하드웨어 처리 방법과 같은 고려사항에 관한 자세한 내용은 TV 레이아웃 만들기, TV 탐색 만들기에 대해 자세히 알아보려면 TV 앱을 빌드합니다.

Media3 ExoPlayer 사용

Jetpack Media3은 다음과 같은 기본 기능을 정의하는 플레이어 인터페이스를 제공합니다. 트랙 정보 재생, 일시중지, 탐색, 표시 기능 ExoPlayer는 Media3에서 이 인터페이스의 기본 구현입니다.

Android의 MediaPlayer API에 비해 다음과 같은 추가 편의성이 추가되었습니다. 다중 스트리밍 프로토콜, 기본 오디오 및 동영상 렌더기, 미디어 버퍼링을 처리하는 구성 요소가 포함됩니다.

ExoPlayer를 맞춤설정하고 확장할 수 있으며 Play 스토어를 통해 업데이트할 수 있습니다. 애플리케이션 업데이트에 포함할 수 있습니다 자세한 내용은 Media3 ExoPlayer를 참고하세요.

Media3 MediaSession 사용

미디어 세션은 시스템이 사용자와 상호작용할 수 있는 보편적인 방법을 제공합니다. 오디오 또는 동영상 플레이어입니다. 데이터 레이크의 주요 특징 중 하나는 Media3과 이전 미디어 API의 차이점은 더 이상 구성 요소 간 커넥터의 역할을 합니다.

MediaSession 클래스는 플레이어를 구현하는 모든 클래스를 사용합니다. 인터페이스에 추가되었습니다. ExoPlayer와 MediaController는 모두 이를 구현하는 클래스임 인터페이스에 추가되었습니다. 이렇게 하면 구성요소 간의 상호작용이 훨씬 간단해집니다. 자세한 내용은 플레이어 인터페이스를 참고하세요.

미디어 재생 앱 만들기에 관한 자세한 내용은 다음을 참조하세요. ExoPlayer를 사용하여 기본 미디어 플레이어를 만듭니다.

미디어 앱의 최종 사용자를 위한 최상의 환경을 만들려면 다음 작업을 수행해야 합니다. MediaSession를 구현합니다. 이렇게 하려면 Player를 초기화하고 다음에 제공합니다. MediaSession.Builder에 다음과 같이 표시됩니다.

Kotlin

val player = ExoPlayer.Builder(context).build()
val mediaSession = MediaSession.Builder(context, player).build()

자바

ExoPlayer player = new ExoPlayer.Builder(context).build();
MediaSession mediaSession = new MediaSession.Builder(context, player).build();

자동 상태 처리

Media3 라이브러리는 플레이어의 있습니다. 따라서 플레이어에서 세션입니다. 이렇게 하면 사용자가 항상 최신 정보를 볼 수 있습니다. (Now Playing 카드 등에서) 재생 중인 미디어에서 재생될 수 있습니다.

재생 제어 및 광고

Media3에서 기본 플레이어는 ExoPlayer 클래스로, 플레이어 인터페이스 미디어 세션을 플레이어에 연결하면 앱에서 다음 작업을 할 수 있습니다. 미디어 재생을 외부로 광고하고 외부 소스. 미디어 세션은 이러한 명령어를 미디어에 위임합니다. 있습니다.

미디어 세션은 재생 제어의 핵심입니다. 이를 통해 플레이어에 전송하는 명령어를 있습니다. 외부 클라이언트가 미디어 컨트롤러를 사용하여 재생 명령을 실행할 수 있습니다. 추가할 수 있습니다. 이러한 미디어 세션은 미디어 세션에서 수신되며, 미디어 플레이어에 명령을 위임합니다.

재생 명령어를 맞춤설정하는 방법 등 재생에 관한 자세한 내용 MediaSession을 사용하여 재생 제어 및 광고를 참고하세요.

앱 중단 방지하기

MediaSession를 사용하면 다음과 같은 불필요한 중단을 방지할 수 있습니다.

  • TV 전원을 끄거나 전환할 때 예상치 못한 지속적인 재생 발생 TV 입력 이로 인해 TV 하드웨어의 에너지 소비도 증가합니다. 다음으로 바꿉니다. MediaSession: 앱이 미디어를 재생하고 있음을 플랫폼에 알릴 수 있습니다. 플랫폼은 재생이 중지될 수 있음을 앱에 알릴 수 있습니다.

  • 앱을 종료하면 음악 재생이 예기치 않게 중지됨 TV 디스플레이를 끌 수 있습니다. MediaSession API를 사용하면 백그라운드 서비스에서 재생할 수 없습니다

  • 사용자의 제어를 방해하는 콘텐츠와의 제한된 상호작용 있습니다. 예를 들어, 앱에서 음악을 재생 중인 경우 백그라운드 또는 지원되는 음성 명령이 없습니다. 앱에서 MediaSession를 사용하면 사용자는 음성 명령을 사용하여 찾고 건너뛸 수 있습니다. 노래 또는 에피소드

추가 고려사항

미디어 앱을 TV용 Android로 확장할 때는 다음 사항을 고려해야 합니다. 참여를 유도하는 방법, 사용자가 직접 광고와 콘텐츠를 찾도록 지원하는 방법 콘텐츠뿐 아니라 게임 및 TV 입력 서비스를 빌드하는 방법도 배울 수 있습니다.

TV 접근성

보조 기술은 저시력 사용자에게 도움이 될 수 있지만 이는 TV 앱의 콘텐츠 탐색 여정에서 접근성을 지원하는 데 중요합니다.

예를 들어 내비게이션 안내를 제공하는 데 특히 주의를 기울이고 TV 앱이 접근성과 잘 호환되도록 합니다. 기능을 사용할 수 있습니다. 이 단계를 따르면 사용자 경험을 크게 개선할 수 있습니다. 을 제공하고 있습니다.

접근성 개선을 위한 첫 번째 단계는 인식입니다. 자세한 내용은 자세한 내용은 접근성 리소스와 동일합니다.

Google TV에서 참여를 유도하기 위한 권장사항

Android TV용으로 제작된 모든 앱은 Google TV를 실행하는 기기에서 작동합니다. 이때 최상의 사용자 환경을 제공하려면 권장사항을 살펴보겠습니다

MediaSession를 사용하여 범용 상호작용 방법을 제공해야 합니다. 오디오 또는 동영상 플레이어입니다. 구현 방법에 관한 자세한 내용은 Media3 MediaSession을 사용합니다.

기본적으로 앱은 Google Cast를 지원해야 합니다. 이를 통해 Android, iOS, Chrome 앱을 통해 Android TV로 오디오 및 동영상 스트리밍 지원 Chromecast 기기와 어시스턴트 기기도 포함됩니다. 자세한 내용은 Google Cast 문서를 참조하세요.

또한 사용자에게 다음과 같은 도움을 줄 수도 있습니다.

  • 미디어 작업 피드를 제공하여 표시 경로 전반에서 콘텐츠 탐색 다음 볼만한 동영상을 통합했습니다.

  • 계정 연결을 지원하여 음성 및 참여를 활용하세요. 사용 권한 동기화를 제공하고 음성 전송을 제공하며 Cast Connect를 사용 설정할 수 있습니다.

  • Google Play 결제를 통합하고 다음 기능을 제공하여 더 쉽게 결제하세요. 마찰 없는 정기 결제를 수행할 수 있습니다

TV 입력 프레임워크 빌드

라이브 TV 프로그램 및 기타 연속적인 채널 기반 콘텐츠 시청이 큰 비중을 차지합니다. 경험할 수 있게 해 줍니다. 사용자는 TV 프로그램을 선택하고 시청하는 데 익숙하며 채널별 TV 탐색 TV 입력 프레임워크는 게시용 채널 생성 동영상 또는 음악 콘텐츠가 포함됩니다.

TV 입력 프레임워크는 수신 및 재생에 통합된 방법을 제공합니다. 라이브 동영상 콘텐츠를 스트리밍하는 데 사용되기도 합니다. 내장 튜너, 소프트웨어 소스(예: 인터넷을 통해 스트리밍되는 동영상)가 포함됩니다. 자세한 내용은 TV 입력 서비스 빌드를 참고하세요.