Langsung ke konten

Paling sering dikunjungi

Terakhir dikunjungi

navigation

Perekaman TV

Layanan masukan TV memungkinkan pengguna menghentikan sementara dan melanjutkan pemutaran saluran melalui API perekaman. Android N telah berkembang hingga ke perekaman dengan memungkinkan pengguna menyimpan beberapa sesi rekaman.

Pengguna bisa menjadwalkan rekaman terlebih dahulu, atau memulai rekaman sambil menonton suatu acara. Setelah sistem menyimpan rekaman, pengguna bisa menjelajah, menata, dan memutar kembali rekaman tersebut menggunakan aplikasi TV di sistem.

Jika Anda ingin menyediakan fungsi perekaman untuk layanan masukan TV, Anda harus menunjukkan pada sistem bahwa aplikasi Anda mendukung perekaman, mengimplementasikan kemampuan merekam program, menangani dan mengomunikasikan kesalahan yang muncul selama perekaman, dan mengelola sesi perekaman Anda.

Catatan: Aplikasi Live Channels belum menyediakan cara bagi pengguna untuk membuat atau mengakses perekaman. Hingga dibuat perubahan di aplikasi Live Channels, mungkin sulit menguji sepenuhnya pengalaman perekaman untuk layanan masukan TV Anda.

Menunjukkan Dukungan untuk Perekaman

Untuk memberi tahu sistem bahwa layanan masukan TV Anda mendukung perekaman, setel atribut android:canRecord di file XML metadata layanan Anda ke true:

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

Untuk informasi selengkapnya mengenai layanan file metadata, lihat Mendeklarasikan Layanan Masukan TV Anda di Manifes.

Atau, Anda bisa menunjukkan dukungan perekaman dalam kode Anda menggunakan langkah-langkah ini:

  1. Dalam metode TvInputService.onCreate() Anda, buat objek TvInputInfo baru menggunakan kelas TvInputInfo.Builder.
  2. Saat membuat objek TvInputInfo baru, panggil setCanRecord(true) sebelum memanggil build() untuk menunjukkan layanan Anda mendukung perekaman.
  3. Daftarkan objek TvInputInfo Anda pada sistem dengan memanggil TvInputManager.updateTvInputInfo().

Merekam Sesi

Setelah layanan masukan TV Anda mendaftar bahwa mendukung fungsionalitas perekaman, sistem akan memanggil TvInputService.onCreateRecordingSession() bila perlu untuk mengakses implementasi perekaman aplikasi Anda. Implementasikan subkelas TvInputService.RecordingSession Anda sendiri dan kembalikan bila callback onCreateRecordingSession() dipicu. Subkelas ini bertanggung jawab mengalihkan ke saluran data yang benar, merekam data yang diminta, dan memberitahukan status perekaman serta kesalahan ke sistem.

Bila sistem memanggil RecordingSession.onTune(), dengan meneruskan URI saluran, setel ke saluran yang ditetapkan URI. Beri tahu sistem bahwa aplikasi Anda telah disetel ke saluran yang diinginkan dengan memanggil notifyTuned(), atau, jika aplikasi Anda tidak bisa disetel ke saluran yang tepat, panggil notifyError().

Sistem berikutnya akan memanggil callback RecordingSession.onStartRecording(). Aplikasi Anda harus segera mulai merekam. Bila sistem memanggil callback ini, sistem mungkin akan memberikan URI yang berisi informasi tentang program yang akan direkam. Bila perekaman selesai, Anda perlu menyalin data ini ke tabel data RecordedPrograms.

Terakhir, sistem akan memanggil RecordingSession.onStopRecording(). Pada tahap ini, aplikasi Anda harus segera berhenti merekam. Anda juga perlu membuat entri dalam tabel RecordedPrograms. Entri ini harus menyertakan URI data sesi yang direkam dalam kolom RecordedPrograms.COLUMN_RECORDING_DATA_URI, dan informasi program yang diberikan sistem dalam panggilan awal ke onStartRecording().

Untuk detail selengkapnya tentang cara mengakses tabel RecordedPrograms lihat Mengelola Sesi yang Direkam.

Menangani Kesalahan Perekaman

Jika terjadi kesalahan selama perekaman, yang menghasilkan data terekam yang tidak bisa digunakan, beri tahu sistem dengan memanggil RecordingSession.notifyError(). Begitu juga, Anda bisa memanggil notifyError() setelah sesi rekaman dibuat agar sistem mengetahui bahwa aplikasi Anda tidak bisa lagi merekam sesi.

Jika terjadi kesalahan selama perekaman, namun Anda ingin menyediakan rekaman parsial yang bisa digunakan pengguna untuk pemutaran, panggil RecordingSession.notifyRecordingStopped() untuk memungkinkan sistem menggunakan sesi parsial.

Mengelola Sesi yang Direkam

Sistem menyimpan informasi untuk semua sesi yang direkam dari semua aplikasi saluran yang mampu merekam dalam tabel penyedia materi TvContract.RecordedPrograms. Informasi ini bisa diakses lewat URI materi RecordedPrograms.Uri. Gunakan API penyedia materi untuk membaca, menambahkan, dan menghapus entri dari tabel ini.

Untuk informasi selengkapnya tentang menangani data penyedia materi, lihat Dasar-Dasar Penyedia Materi.

Praktik Terbaik

Perangkat TV mungkin memiliki penyimpanan terbatas, jadi pertimbangkan sebaik mungkin saat mengalokasikan penyimpanan untuk menyimpan sesi rekaman. Gunakan RecordingCallback.onError(RECORDING_ERROR_INSUFFICIENT_SPACE) bila tidak cukup ruang untuk menyimpan sesi rekaman.

Bila pengguna memulai perekaman, Anda harus memulai perekaman data secepatnya. Untuk memfasilitasinya, selesaikan setiap tugas yang memakan waktu di awal, seperti mengakses dan mengalokasikan ruang penyimpanan, saat sistem memanggil callback onCreateRecordingSession(). Hal ini akan memungkinkan Anda memulai perekaman dengan segera bila callback onStartRecording() dipicu.

Situs ini menggunakan cookies untuk menyimpan preferensi Anda tentang bahasa di situs tertentu dan opsi tampilan.

Dapatkan berita dan tips terbaru dari developer Android yang akan membantu Anda mencapai kesuksesan di Google Play.

* Wajib Diisi

Hore!

Ikuti Google Developers di WeChat

Buka situs ini dalam bahasa ?

Anda meminta halaman dalam bahasa , namun preferensi bahasa untuk situs ini adalah .

Ingin mengubah preferensi bahasa dan mengakses situs ini dalam bahasa ? Jika nanti Anda ingin mengubah preferensi bahasa, gunakan menu bahasa di bagian bawah setiap halaman.

Kelas ini memerlukan tingkat API atau yang lebih tinggi

Dokumen ini tersembunyi karena level API yang Anda pilih untuk dokumentasi ini adalah . Anda dapat mengubah level API dokumentasi dengan pemilih di atas menu navigasi sebelah kiri.

Untuk informasi lebih lanjut tentang menentukan level API yang diperlukan aplikasi Anda, baca Mendukung Versi Platform Yang Berbeda.

Take a short survey?
Help us improve the Android developer experience. (April 2018 — Developer Survey)