कॉन्टेंट रिकॉर्ड करने की सुविधा

टीवी इनपुट सेवाएं उपयोगकर्ता को चैनल प्लेबैक का उपयोग करने से रोकने और फिर से शुरू करने देती हैं टाइम-शिफ़्टिंग एपीआई. टाइम शिफ़्टिंग के दौरान Android 7.0 की सुविधा जोड़ी गई इससे उपयोगकर्ता को रिकॉर्ड किए गए कई सेशन सेव करने की सुविधा मिलती है.

लोग रिकॉर्डिंग को पहले से शेड्यूल कर सकते हैं या वीडियो देखते समय रिकॉर्डिंग शुरू कर सकते हैं कोई प्रोग्राम. जब सिस्टम किसी रिकॉर्डिंग को सेव कर लेता है, तब उपयोगकर्ता किसी रिकॉर्डिंग को ब्राउज़, मैनेज, और सिस्टम टीवी ऐप्लिकेशन का इस्तेमाल करके रिकॉर्डिंग को फिर से चलाएं.

अगर आपको अपनी टीवी इनपुट सेवा के लिए रिकॉर्डिंग की सुविधा उपलब्ध करानी है, तो आपको सिस्टम को सूचित करना होगा कि आपके ऐप्लिकेशन में रिकॉर्डिंग की सुविधा है, प्रोग्राम रिकॉर्ड करने, कोई भी गड़बड़ी होने पर, उसे हैंडल करने, और सही जानकारी देने की सुविधा और अपने रिकॉर्ड किए गए सेशन को मैनेज करने के लिए किया जा सकता है.

यह पता चलता है कि रिकॉर्डिंग की सुविधा उपलब्ध है या नहीं

सिस्टम को यह बताने के लिए कि आपकी टीवी इनपुट सेवा, रिकॉर्डिंग का समर्थन करती है, आपकी सेवा के मेटाडेटा की एक्सएमएल फ़ाइल में, android:canRecord एट्रिब्यूट 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(), चैनल यूआरआई में पास हो रहा है और चैनल के लिए ट्यून करें तय करता है. सिस्टम को सूचित करें कि आपके ऐप्लिकेशन ने कॉल करके मनचाहे चैनल पर notifyTuned() या अगर आपका ऐप्लिकेशन सही चैनल पर ट्यून नहीं हो पा रहा है, तो कॉल करें notifyError().

सिस्टम अगली बार RecordingSession.onStartRecording() कॉलबैक. आपके ऐप्लिकेशन को रिकॉर्डिंग शुरू करनी होगी तुरंत. जब सिस्टम इस कॉलबैक को शुरू करता है, तो यह यूआरआई दे सकता है जिसमें रिकॉर्ड किए जाने वाले प्रोग्राम की जानकारी हो. रिकॉर्डिंग हो जाने पर, इस डेटा को RecordedPrograms अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है डेटा तालिका.

आखिर में, सिस्टम RecordingSession.onStopRecording(). इसके बाद, आपका ऐप्लिकेशन बंद हो जाना चाहिए तुरंत रिकॉर्ड कर पाएंगे. आपको इसमें भी एक एंट्री बनानी होगी RecordedPrograms अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है वह टेबल जिसमें रिकॉर्ड किए गए सेशन का डेटा यूआरआई शामिल है RecordedPrograms.COLUMN_RECORDING_DATA_URI कॉलम और सभी प्रोग्राम वह जानकारी जो सिस्टम ने onStartRecording().

ऐक्सेस करने के तरीके RecordedPrograms टेबल, रिकॉर्ड किए गए सेशन मैनेज करना सेक्शन देखें.

रिकॉर्डिंग से जुड़ी गड़बड़ियां ठीक करना

अगर रिकॉर्डिंग के दौरान कोई गड़बड़ी होती है, जिसकी वजह से रिकॉर्ड किया गया डेटा काम का नहीं रहता, कॉल करके सिस्टम को सूचना दें notifyError(). कॉल भी किया जा सकता है रिकॉर्डिंग सेशन शुरू होने के बाद, सिस्टम को इसकी जानकारी देने के लिए notifyError() यह तय किया गया है कि आपका ऐप्लिकेशन अब सेशन रिकॉर्ड नहीं कर सकता.

अगर रिकॉर्डिंग के दौरान कोई गड़बड़ी होती है, लेकिन आपको प्लेबैक, कॉल के लिए उपयोगकर्ताओं के लिए आंशिक रिकॉर्डिंग सिस्टम को इन कामों के लिए चालू करने के लिए notifyRecordingStopped() पार्शियल सेशन का इस्तेमाल करता है.

रिकॉर्ड किए गए सेशन मैनेज करना

सिस्टम सभी रिकॉर्ड किए गए सभी सेशन की जानकारी संभालकर रखता है चैनल ऐप में रिकॉर्डिंग की सुविधा RecordedPrograms अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कॉन्टेंट देने वाले की टेबल. इस जानकारी को RecordedPrograms अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कॉन्टेंट रिकॉर्डिंग यूआरआई. कॉन्टेंट देने वाले एपीआई का इस्तेमाल इन कामों के लिए करें इस तालिका से प्रविष्टियां पढ़ें, जोड़ें, और हटाएं.

कॉन्टेंट देने वाले के डेटा के साथ काम करने के बारे में ज़्यादा जानकारी के लिए, देखें कॉन्टेंट देने वाले के बारे में बुनियादी बातें.

सबसे सही तरीके

टीवी डिवाइसों में कम स्टोरेज हो सकता है. इसलिए, सोच-समझकर फ़ैसला तब ही लें, जब रिकॉर्ड किए गए सेशन को सेव करने के लिए, स्टोरेज असाइन किया जा रहा है. इस्तेमाल की जाने वाली चीज़ें RecordingCallback.onError(RECORDING_ERROR_INSUFFICIENT_SPACE) जब रिकॉर्ड किए गए सत्र को सहेजने के लिए पर्याप्त स्थान नहीं है.

जब उपयोगकर्ता रिकॉर्डिंग शुरू करता है, तो जल्द से जल्द डेटा रिकॉर्ड करना शुरू करें किया जा सकता है. यह सुविधा उपलब्ध कराने के लिए, पहले से किए जाने वाले टास्क पूरे करें. जैसे कि जब सिस्टम किसी onCreateRecordingSession() कॉलबैक. ऐसा करने से आपको शुरुआत करने में मदद मिलती है तुरंत रिकॉर्ड हो जाएगा, onStartRecording() कॉलबैक ट्रिगर हुआ.