콘텐츠 녹화 지원

TV 입력 서비스를 사용하면 사용자가 입력 장치를 사용하여 채널 재생을 타임 시프팅 API를 사용하는 것이 좋습니다. 타임 시프팅에서 Android 7.0 확장 여러 개의 녹화된 세션을 저장할 수 있습니다.

사용자는 미리 녹화를 예약하거나 시청하면서 녹화를 시작할 수 있음 프로그램을 만드는 것입니다. 시스템에서 녹음 파일을 저장하면 사용자는 기록을 탐색, 관리, 시스템 TV 앱을 사용하여 녹화 파일을 재생합니다.

TV 입력 서비스에 녹화 기능을 제공하려면 앱에서 녹화를 지원한다는 것을 시스템에 명시해야 합니다. 프로그램을 녹화하고 발생하는 모든 오류를 처리 및 전달하는 능력 및 녹화된 세션을 관리할 수 있습니다.

녹화 지원 알리기

TV 입력 서비스가 녹화를 지원한다고 시스템에 알리려면 서비스 메타데이터 XML 파일의 android:canRecord 속성 true에게 다음과 같이 합니다.

<tv-input xmlns:android="http://schemas.android.com/apk/res/android"
  android:canRecord="true"
  android:setupActivity="com.example.sampletvinput.SampleTvInputSetupActivity" />

서비스 메타데이터 파일에 대한 자세한 내용은 TV 입력 선언 서비스에 대한 액세스를 제공합니다.

또는 다음을 사용하여 코드에 녹화 지원을 표시할 수 있습니다. 다음 단계를 따르세요.

  1. TV 입력 서비스 onCreate()에서 메서드를 사용하여 새 TvInputInfo 객체를 만듭니다. TvInputInfo.Builder 클래스.
  2. TvInputInfo 객체를 만들 때 다음을 호출합니다. 통화 전 setCanRecord(true) build(): 녹화를 지원합니다.
  3. 다음을 호출하여 TvInputInfo 객체를 시스템에 등록합니다. TvInputManager.updateTvInputInfo()입니다.

세션 녹화

TV 입력 서비스가 녹화를 지원한다고 등록한 후 기능을 사용하면 시스템에서 TvInputService.onCreateRecordingSession() 메서드(액세스가 필요한 경우) 앱의 녹음 구현을 고려해야 합니다. 자체 구현 TvInputService.RecordingSession 서브클래스를 가져오고 반환 onCreateRecordingSession() 콜백이 실행될 때 이 서브클래스는 올바른 채널 데이터로 전환하고, 요청된 데이터를 녹화하고, 시스템에 기록 상태 및 오류를 전달해야 합니다.

시스템에서 RecordingSession.onTune(): 채널 URI를 전달하고 채널에 맞춥니다. 지정할 수 있습니다. 앱이 원하는 채널을 notifyTuned()를 호출하거나, 앱이 적절한 채널에 맞출 수 없는 경우 다음을 호출합니다. notifyError()입니다.

그런 다음 시스템은 RecordingSession.onStartRecording() 콜백입니다. 앱에서 녹화를 시작해야 합니다. 즉시 삭제할 수 있습니다 시스템은 이 콜백을 호출할 때 녹화될 프로그램에 대한 정보가 들어 있습니다. 녹화가 완료되면 이 데이터를 RecordedPrograms 데이터 표입니다.

마지막으로 시스템은 RecordingSession.onStopRecording() 이 시점에서 앱이 중지되고 즉시 녹화됩니다. 또한 RecordedPrograms RecordedPrograms.COLUMN_RECORDING_DATA_URI 열 및 모든 프로그램 첫 호출에서 시스템이 제공한 정보 onStartRecording()입니다.

자세한 내용은 RecordedPrograms 테이블, 녹화된 세션 관리 섹션을 참고하세요.

녹화 오류 처리

녹화 중에 오류가 발생하여 녹화된 데이터를 사용할 수 없게 되는 경우 다음을 호출하여 시스템에 알립니다. notifyError() 또는 녹화 세션이 생성된 후 notifyError()로 설정하여 시스템에 알립니다. 더 이상 세션을 녹화할 수 없습니다.

녹화 중에 오류가 발생했지만 사용자에게 재생하거나 통화하기 위해 부분 녹음 파일을 notifyRecordingStopped(): 시스템에서 다음 작업을 할 수 있도록 합니다. 부분 세션을 사용합니다.

녹화된 세션 관리

시스템은 모든 활동에서 기록된 모든 세션에 대해 녹화 가능한 채널 앱을 RecordedPrograms 콘텐츠 제공자 테이블에만 포함됩니다. 이 정보는 RecordedPrograms 콘텐츠 녹화 URI입니다. 콘텐츠 제공업체 API 사용 이 테이블의 항목을 읽고 추가하고 삭제할 수 있습니다.

콘텐츠 제공자 데이터 사용에 대한 자세한 내용은 다음을 참조하세요. <ph type="x-smartling-placeholder"></ph> 콘텐츠 제공자 기본사항

권장사항

TV 기기는 저장용량이 제한될 수 있으므로 신중하게 판단하세요. 녹화된 세션을 저장하기 위해 저장소를 할당하는 중입니다. 사용 RecordingCallback.onError(RECORDING_ERROR_INSUFFICIENT_SPACE)인 경우 공간이 부족해 녹화된 세션을 저장할 수 없습니다.

사용자가 녹화를 시작하면 바로 데이터 녹화가 시작됩니다. 할 수 있습니다. 이를 용이하게 하려면 시간이 많이 소요되는 작업을 초기에 완료하거나 저장공간 액세스 및 할당과 같은 작업이 포함됩니다. onCreateRecordingSession() 콜백입니다. 이렇게 하면 즉시 onStartRecording() 콜백이 실행됩니다.