تسجيل محتوى الدعم

تتيح خدمات إدخال التلفزيون للمستخدم إيقاف تشغيل القناة مؤقتًا واستئناف تشغيلها باستخدام واجهات برمجة تطبيقات التحكّم بالبثّ. يتوسع Android 7.0 في عمليات التسجيل على وسيط عن طريق السماح للمستخدم بحفظ عدة جلسات مسجلة.

يمكن للمستخدمين جدولة التسجيلات مسبقًا أو بدء التسجيل أثناء المشاهدة. البرنامج. بمجرد أن يحفظ النظام التسجيل، يمكن للمستخدم تصفحه وإدارته وتشغيل التسجيل باستخدام تطبيق نظام التلفزيون.

إذا كنت تريد توفير وظيفة التسجيل لخدمة إدخال التلفزيون، يجب أن توضِّح للنظام أنّ تطبيقك يتيح التسجيل القدرة على تسجيل البرامج والتعامل مع أي أخطاء تحدث والإبلاغ عنها أثناء التسجيل وإدارة جلساتك المسجّلة.

الإشارة إلى إتاحة التسجيل

لإبلاغ النظام بأنّ خدمة إدخال التلفزيون تتيح التسجيل، اضبط السمة android:canRecord في ملف XML الخاص بالبيانات الوصفية لخدمتك إلى true:

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

لمزيد من المعلومات عن ملف البيانات الوصفية للخدمة، يُرجى الاطّلاع على توضيح إدخال التلفزيون في البيان.

بدلاً من ذلك، يمكنك الإشارة إلى إتاحة التسجيل في الرمز باستخدام الخطوات التالية:

  1. في خدمة إدخال التلفزيون onCreate() عليك، إنشاء كائن TvInputInfo جديد باستخدام صف واحد (TvInputInfo.Builder).
  2. عند إنشاء كائن TvInputInfo جديد، يمكنك طلب setCanRecord(true) قبل الاتصال build() للإشارة إلى أن ميزة التسجيل الصوتي.
  3. يمكنك تسجيل عنصر TvInputInfo في النظام من خلال الاتصال. TvInputManager.updateTvInputInfo()

تسجيل جلسة

بعد أن تسجِّل خدمة إدخال التلفزيون أنّها تتيح التسجيل وظيفته، يستدعي النظام استخدام طريقة TvInputService.onCreateRecordingSession() عند الحاجة إلى الوصول لتسجيل تطبيقك تنفيذ شريحتك الخاصة الفئة الفرعية TvInputService.RecordingSession وإرجاعها عند تنشيط معاودة الاتصال onCreateRecordingSession(). هذه الفئة الفرعية مسؤولة للتبديل إلى بيانات القناة الصحيحة وتسجيل البيانات المطلوبة وإبلاغ النظام بحالة التسجيل والأخطاء.

عندما يستدعي النظام RecordingSession.onTune()، إدخال عنوان URI للقناة، ضبط القناة الذي يحدده عنوان URI. أبلِغ النظام بأنّ تطبيقك قد تم ضبطه على القناة المطلوبة عن طريق طلب notifyTuned() أو إذا تعذَّر على تطبيقك ضبط القناة المناسبة، يُرجى الاتصال notifyError()

يستدعي النظام بعد ذلك معاودة الاتصال "RecordingSession.onStartRecording()" يجب أن يبدأ التطبيق التسجيل فورًا. عندما يستدعي النظام معاودة الاتصال هذه، قد يتم توفير معرّف موارد منتظم (URI) يحتوي على معلومات عن البرنامج الذي سيتم تسجيله. عند انتهاء التسجيل، انسخ هذه البيانات إلى RecordedPrograms جدول البيانات.

وأخيرًا، يستدعي النظام RecordingSession.onStopRecording() في هذه المرحلة، يجب أن يتوقف تطبيقك التسجيل على الفور. يجب أيضًا إنشاء إدخال في RecordedPrograms يتضمن معرف الموارد المنتظم (URI) لبيانات الجلسات المسجلة في عمود RecordedPrograms.COLUMN_RECORDING_DATA_URI وأي برنامج المعلومات التي قدمها النظام في الاتصال الأولي onStartRecording()

لمزيد من التفاصيل حول كيفية الوصول إلى جدول RecordedPrograms، راجِع قسم إدارة الجلسات المسجّلة.

التعامل مع أخطاء التسجيل

في حال حدوث خطأ أثناء التسجيل، نتج عنه بيانات مسجّلة غير قابلة للاستخدام، إخطار النظام عن طريق استدعاء notifyError() يمكنك أيضًا الاتصال notifyError() بعد إنشاء جلسة تسجيل لإعلام النظام بذلك لأنّ تطبيقك لم يعد بإمكانه تسجيل الجلسات.

في حال حدوث خطأ أثناء التسجيل، ولكنك تريد تقديم تسجيل جزئي للمستخدمين للتشغيل، أو الاتصال notifyRecordingStopped() لتمكين النظام من استخدام الجلسة الجزئية.

إدارة الجلسات المسجَّلة

يحتفظ النظام بمعلومات عن جميع الجلسات المسجلة من جميع تطبيقات القناة التي تتيح التسجيل في RecordedPrograms جدول موفّر المحتوى يمكن الوصول إلى هذه المعلومات من خلال RecordedPrograms معرفات الموارد المنتظمة (URI) الخاصة بتسجيل المحتوى. استخدم واجهات برمجة التطبيقات لموفّر المحتوى من أجل قراءة الإدخالات وإضافتها وحذفها من هذا الجدول.

لمزيد من المعلومات حول استخدام بيانات موفّر المحتوى، يُرجى الاطّلاع على أساسيات موفّر المحتوى

أفضل الممارسات

قد تكون مساحة التخزين محدودة على أجهزة التلفزيون، لذا استخدِم أفضل تقدير لك تخصيص مساحة تخزين لحفظ الجلسات المسجّلة. استخدام RecordingCallback.onError(RECORDING_ERROR_INSUFFICIENT_SPACE) متى لا تتوفّر مساحة كافية لحفظ جلسة مسجَّلة.

عندما يبدأ المستخدم التسجيل، يمكنك بدء تسجيل البيانات في أقرب وقت ممكن. قدر الإمكان. لتسهيل ذلك، أكمل أي مهام تستغرق وقتًا طويلاً، مثل الوصول إلى مساحة التخزين وتخصيصها، عندما يستدعي النظام معاودة الاتصال "onCreateRecordingSession()" القيام بذلك يتيح لك بدء التسجيل على الفور عندما عدد مرّات تنشيط معاودة الاتصال: onStartRecording().