TV giriş hizmetleri, kullanıcının Zaman kaydırma API'leri hakkında daha fazla bilgi edinin. Android 7.0 zaman kaydırmanın kapsamını genişletiyor kullanıcının kayıtlı birden fazla oturumu kaydetmesine olanak tanıyarak.
Kullanıcılar kayıtları önceden programlayabilir veya izlerken kayıt başlatabilirler çok önemli. Sistem bir kaydı kaydettikten sonra, kullanıcı videoya göz atabilir, ve sistem TV uygulamasını kullanarak kaydı oynatın.
TV giriş hizmetiniz için kayıt işlevi sağlamak istiyorsanız uygulamanızın kayıt özelliğini desteklediğini sisteme belirtmeniz, programları kaydetme, oluşan hataları işleme ve iletme becerisi kullanabilir ve kayıtlı oturumlarınızı yönetebilirsiniz.
Kayıt için desteği belirtin
Sisteme TV giriş hizmetinizin kaydı desteklediğini bildirmek için şunu ayarlayın:
hizmet meta verileri XML dosyanızdaki android:canRecord
özelliği
- true
:
<tv-input xmlns:android="http://schemas.android.com/apk/res/android" android:canRecord="true" android:setupActivity="com.example.sampletvinput.SampleTvInputSetupActivity" />
Hizmet meta verileri dosyası hakkında daha fazla bilgi edinmek için TV girişinizi beyan edin hizmetine bakın.
Alternatif olarak, kodunuzda kayıt desteğini belirtmek için şu adımları uygulayın:
- TV giriş hizmetiniz
onCreate()
yöntemini kullanarak yeni birTvInputInfo
nesnesi oluşturunTvInputInfo.Builder
sınıf. - Yeni
TvInputInfo
nesnesini oluştururken şunu çağırın: Aramadan öncesetCanRecord(true)
belirtmek içinbuild()
kaydı destekler. - Şu çağrıyı yaparak
TvInputInfo
nesnenizi sisteme kaydedin:TvInputManager.updateTvInputInfo()
.
Oturum kaydetme
TV giriş hizmetiniz kaydı desteklediğini kaydettikten sonra
çalışırsa sistem,
Erişim gerektiğinde TvInputService.onCreateRecordingSession()
yöntemi
en iyi uygulamaları paylaşacağız. Kendi
TvInputService.RecordingSession
alt sınıf ve şunu döndür:
onCreateRecordingSession()
geri çağırması tetiklendiğinde. Bu alt sınıf,
doğru kanal verilerine geçiş yapmak, istenen verileri kaydetmek,
kayıt durumunu ve hataları sisteme iletir.
Sistem sizi aradığında
RecordingSession.onTune()
, kanal URI'sini iletme, kanalı ayarlama
kullanabilirsiniz. Uygulamanızın şuna ayarladığını sisteme bildirin:
numaralı telefonu arayarak
notifyTuned()
veya uygulamanız doğru kanala ayarlayamazsa
notifyError()
.
Sistem daha sonra
RecordingSession.onStartRecording()
geri arama. Uygulamanız kaydetmeye başlamalıdır
hemen teslim edebilirsiniz. Sistem bu geri çağırmayı gerçekleştirdiğinde bir URI sağlayabilir.
program hakkında bilgi içeren bir dosya oluşturmanız gerekir.
Kayıt tamamlandığında bu verileri şuraya kopyalayın:
RecordedPrograms
.
veri tablosuna bakalım.
Son olarak sistem,
RecordingSession.onStopRecording()
Uygulamanız bu noktada durmalıdır
kaydediyor olabilirsiniz. Ayrıca,
RecordedPrograms
.
kaydedilen oturum verileri URI'sini içeren tablo
RecordedPrograms.COLUMN_RECORDING_DATA_URI
sütunu ve herhangi bir program
yapılan ilk çağrıda sistemin sağladığı
onStartRecording()
.
Daha fazla bilgi için
RecordedPrograms
tablo,
Kayıtlı oturumları yönetme bölümüne bakın.
Kayıt hatalarını işleme
Kayıt sırasında bir hata oluşur ve bu da kayıtlı verilerin kullanılamaz hale gelmesine neden olursa
şunu arayarak sistemi bilgilendir:
notifyError()
Ayrıca şu numarayı da arayabilirsiniz:
Sisteme bunu bildirmek için bir kayıt oturumu oluşturulduktan sonra notifyError()
uygulamanız artık oturumları kaydedemiyor.
Kayıt sırasında bir hata oluşursa, ancak
oynatma, arama için kullanıcılara kısmi kayıt
Sistemin şunları yapmasına izin vermek için notifyRecordingStopped()
:
ve kısmi oturumu kullanın.
Kayıtlı oturumları yönetme
Sistem, 30 günlük tüm oturumlardan kaydedilen tüm oturumlara ait bilgileri
kayıt özelliği olan kanal uygulamalarından
RecordedPrograms
.
içerik sağlayıcı tablosu. Bu bilgilere
RecordedPrograms
.
daha fazla bilgi edinin. İçerik sağlayıcı API'lerini kullanarak
bu tablodaki girişleri okuyabilir, ekleyebilir ve silebilirsiniz.
İçerik sağlayıcı verileriyle çalışma hakkında daha fazla bilgi için bkz. İçerik sağlayıcıyla ilgili temel bilgiler.
En iyi uygulamalar
TV cihazlarının depolama alanı sınırlı olabilir. Bu nedenle, lütfen en iyi şekilde değerlendirin
kaydedilen oturumları kaydetmek için depolama alanı ayrılıyor. Tekliflerinizi otomatikleştirmek ve optimize etmek için
Şu durumlarda RecordingCallback.onError(RECORDING_ERROR_INSUFFICIENT_SPACE)
:
kayıtlı bir oturumu kaydetmek için yeterli alan yok.
Kullanıcı kaydı başlattığı anda veri kaydetmeye başlayın
yardımcı olabilirsiniz. Bunu kolaylaştırmak için, önceden yapılması gereken tüm zaman alıcı görevleri,
depolama alanına erişmek ve tahsis etmek gibi işlemler için sistem
onCreateRecordingSession()
geri arama. Bu sayede
otomatik olarak kayıt işleminden sonra
onStartRecording()
geri arama etkinleşti.