오디오 기기

오디오 기기용 Google Cast는 오디오 재생만 지원합니다. 이 가이드에서는 오디오 전용 기기에 맞게 Cast 애플리케이션을 최적화하고 메모리, CPU, 네트워크 대역폭 사용률 감소를 활용하는 방법을 설명합니다.

오디오용 Google Cast를 지원하는 앱은 다음 사항을 고려해야 합니다.

  • 오디오 기기용 Google Cast는 동영상이나 그래픽을 표시하지 않습니다. 그러나 많은 오디오 기기에는 재생 상태 (재생 중 또는 일시중지됨) 및 진행률과 같은 메타데이터를 표시하는 디스플레이가 있습니다. 애플리케이션에서는 이러한 중요한 사용자 정보를 수신기에만 표시해서는 안 됩니다. 중요한 정보와 대부분의 사용자 인터페이스가 발신자에게 표시되어야 합니다.
  • 웹 수신기 애플리케이션을 올바르게 실행하려면 오디오 기기용 Google Cast에서 그래픽이 표시되지 않더라도 계속 렌더링해야 합니다. 기기에서 하드웨어 가속 그래픽 작업을 지원하지 않을 수 있으므로 수신기 애플리케이션에서는 그래픽을 많이 사용하는 작업(예: 색상 그라디언트, 회전, 알파 블렌딩, 진행률 표시줄과 같은 큰 객체 다시 그리기 등)을 초당 2회 이상 다시 그리는 것을 피해야 합니다.
  • 오디오 기기용 Google Cast는 DRM (디지털 권한 관리)으로 보호된 Widevine 콘텐츠만 지원합니다.
  • 대부분의 오디오용 Google Cast 기기의 경우 발신기 애플리케이션은 Chromecast 기기에서와 같이 TV에 들어가는 오디오 소스 입력의 볼륨뿐만 아니라 기기 (예: 스피커)의 전체 볼륨 범위를 제어합니다.
  • 전송 기기 (예: 휴대전화)로 재생을 제어하는 것 외에도 앱은 리모컨이나 기기 내 버튼 또는 외부 원격 애플리케이션과 같은 기기의 자체 컨트롤러로 재생을 제어할 수 있도록 해야 할 수도 있습니다.
  • 오디오 기기용 Google Cast는 특정 기기 UI에 따라 소형 LCD 화면, HDMI 출력 (사운드바 또는 오디오-동영상 수신기용) 또는 외부 원격 애플리케이션으로 콘텐츠 메타데이터를 표시할 수 있습니다.

개발

오디오용 Google Cast를 지원하는 Cast 애플리케이션을 개발하는 첫 번째 단계는 오디오-동영상용 Cast 애플리케이션을 개발하고 Chromecast에서 실행되는지 확인하는 것입니다. 이 문서에서는 개발자가 이러한 앱을 개발하고 테스트했다고 가정합니다.

앱은 오디오-동영상 및 오디오 전용 기기를 모두 지원할 수 있습니다. 이때 어느 하나로 전송되는지 파악하고, 주어진 시나리오에서 최상의 사용자 환경을 보장하기 위한 조치를 취해야 합니다.

예를 들어 듀얼 동영상 및 오디오 앱 (예: 로컬/NAS 파일 재생 애플리케이션)은 오디오 파일 재생을 지원하기 위해 오디오 전용 기기로의 전송을 사용 설정해야 하지만, 앱에서 사용자가 동영상 파일을 오디오 전용 기기로 전송하는 것을 허용해서는 안 됩니다. 앱은 아래 설명된 발신자용 기기 기능 API를 사용하여 기기에 적합한 콘텐츠를 확인할 수 있습니다.

오디오용 Google Cast를 지원하려면 앱에서 다음을 실행해야 합니다.

  • 오디오 전용 지원: 음악, 오디오 파일, 라디오 등 스트리밍. 웹 수신기 앱에 스트리밍된 미디어는 동영상 스트림이 아니어야 합니다. 또한 애플리케이션 실행 시간과 메모리 사용량을 개선하려면 그래픽 및 이미지를 스트리밍하지 마세요. 아래의 메모리 사용 가이드라인을 참고하세요.

  • 오디오용 Cast 기기 및 일반 Chromecast에서 예상대로 실행됩니다.

기기 기능

앱은 기기 자체에서 사용할 수 있거나 발신기나 수신기 API를 통해 사용할 수 있는 기기 기능 API를 통해 오디오 전용 기기에서 실행 중인지 알 수 있습니다.

기기 HTTP 헤더

애플리케이션 실행 중에 Cast 기기에서 제공하는 CAST-DEVICE-CAPABILITIES HTTP 헤더는 기기의 기능을 설명합니다. 기기는 이 헤더가 있는 요청을 웹 수신기 앱을 호스팅하는 서버로 전송합니다. 오디오 전용 기기의 헤더는 CAST-DEVICE-CAPABILITIES: {"display_supported":false}로 기기 기능을 설명합니다.

서버가 기기로부터 요청을 수신하면 이 헤더의 정보를 사용하여 오디오 기기에 최적화된 웹 수신기 앱으로 요청을 리디렉션할 수 있습니다.

웹 수신기 API

웹 수신기 앱이 로드될 때 CastReceiverManager.getDeviceCapabilities()를 호출하여 동일한 기기 기능 객체를 가져올 수 있습니다.

자세한 내용은 기기 기능을 참고하세요.

Sender API

각 Cast 발신기 API에는 기기 기능 정보도 있습니다. 이를 통해 발신기 앱에서 수신자에게 전송할 미디어의 종류를 결정할 수 있습니다. 앱이 오디오와 동영상을 모두 지원하면 동영상 콘텐츠를 오디오 전용 기기로 보내는 것을 방지할 수 있습니다. 또한 앱은 디자인 체크리스트에 설명된 대로 기기에 가장 적합한 방법으로 볼륨을 제어할 수 있습니다. 발신자에 관한 다음 기기 기능 API를 참고하세요.

메모리 사용량 가이드라인

오디오 기기에서 실행되는 웹 수신기 앱은 다음과 같이 메모리 사용량을 관리해야 합니다.

  • 이미지 또는 그래픽 애셋을 다운로드하거나 사용하지 않도록 하여 메모리 사용량을 줄이고 재생이 시작될 때까지 시간을 단축합니다.
  • 미디어 소스 확장 프로그램 (MSE)을 사용하는 경우 애플리케이션은 스트림 버퍼를 2MB로 제한해야 합니다. 미디어 플레이어 라이브러리 (MPL)를 사용하는 경우 애플리케이션의 스트림 버퍼 크기가 이미 MPL에 의해 정의되어 있습니다.
  • HTMLMediaElement를 사용하는 경우 Chrome에서 스트리밍 속도에 따라 애플리케이션의 스트림 버퍼 크기를 정의합니다. 오디오 비트 전송률을 초당 2메가비트로 제한합니다. 그러면 지원되는 미디어에 설명된 모든 코덱 (최대 48KHz/16비트)을 지원합니다.

볼륨 컨트롤

대부분의 오디오용 Google Cast 기기의 경우 발신기 애플리케이션은 Chromecast 기기와 마찬가지로 오디오 소스 입력 볼륨뿐만 아니라 기기의 전체 볼륨 범위를 제어합니다. 즉, 오디오 전용 애플리케이션의 경우 볼륨 변경 증분이 더 작아야 합니다. 앱에서 볼륨 컨트롤을 제공하는 방법에 관한 가이드라인은 다음 문서를 참고하세요.

기기 제어

오디오 기기용 Google Cast 기기에는 자체 재생 컨트롤 (예: 버튼, 리모컨)이 있을 수 있습니다. 이는 미디어 재생 메시지에 설명된 대로 urn:x-cast:com.google.cast.media 네임스페이스에 정의된 미디어 재생 메시지를 사용하여 수신기 애플리케이션에서 재생을 제어합니다. 수신기 애플리케이션은 이러한 미디어 재생 메시지를 지원하여 기기의 재생 컨트롤을 지원해야 합니다.

또한 발신기 앱은 수신자에서 발신자로 메시지 전송을 지원해야 합니다. 그래야 사용자가 기기 컨트롤을 사용하여 미디어 상태를 변경하면 발신자 앱이 수신자로부터 상태 메시지를 수신하고 그에 따라 UI를 업데이트할 수 있습니다.

기기 디스플레이

오디오 기기용 Google Cast에는 기기 LCD 화면이나 미디어 메타데이터를 표시하는 기기별 제어 애플리케이션이 있을 수 있습니다. 수신기 앱은 모든 오디오 트랙에 이 메타데이터를 제공하고 현재 재생 중인 콘텐츠와 동기화되도록 하여 메타데이터가 디스플레이에 적절하게 표시되도록 해야 합니다. 애플리케이션에서 맞춤 메타데이터를 사용하는 경우 아래의 각 플랫폼에 설명된 대로 표준 오디오 메타데이터 (트랙 이름, 아티스트 이름, 앨범 제목 등)도 제공해야 합니다.

수신자는 미디어를 로드할 때 발신자로부터 메타데이터를 가져옵니다. 발신기 앱에서 수신기에 미디어를 로드하는 명령어를 사용하여 메타데이터가 오디오 기기용 Google Cast에 표시되도록 아래에 설명된 필드를 지정해야 합니다. 다음 API를 사용합니다.

Cast 앱이 수신기나 클라우드에서 미디어 큐를 관리하는 경우 웹 수신기는 모든 전송자가 동기화되도록 urn:x-cast:com.google.cast.media 네임스페이스를 사용하여 모든 미디어 상태 업데이트를 브로드캐스트해야 합니다.

등록

테스트를 위해 오디오 기기용 Google Cast를 등록하고 Google Cast SDK 개발자 콘솔을 사용하여 오디오 기기용 Google Cast를 지원하도록 앱을 등록해야 합니다.

  • 기기 등록에 관한 자세한 내용은 기기를 참고하세요.
  • 앱이 오디오 기기용 Google Cast를 검색할 수 있도록 하려면 애플리케이션을 등록할 때 오디오 전용 기기로 전송 지원 체크박스를 선택해야 합니다. 애플리케이션 등록을 참조하세요.

테스트에 사용되는 앱과 같이 게시되지 않은 앱의 경우 앱이 오디오 전용 기기를 검색할 수 있도록 오디오 전용 기기를 지원하는 옵션도 선택해야 합니다.

Google Cast 오디오 2.0

Google Cast for Audio (GC4A) 2.0은 콘텐츠를 스트리밍할 수 있는 기기의 생태계를 확장하기 위해 메모리 용량이 낮은 기기를 타겟팅하도록 설계된 차세대 Cast 오디오 플랫폼입니다.

오디오 앱 개발자가 GC4A 2.0에서 앱을 테스트하는 것이 중요합니다. 프로덕션 Bose 스피커 (예: Bose 스마트 스피커 500)에서 GC4A 2.0용 Cast 앱을 테스트할 수 있습니다.

테스트 설정에 도움이 필요하거나 Bose 스피커를 사용할 수 없는 경우 gc4a-support-external@google.com으로 문의하세요. 앱을 디버그하려면 전송 디버그 로거를 사용하는 것이 좋습니다.