iOS सेंडर ऐप्लिकेशन को Cast SDK v2 से Cast ऐप्लिकेशन फ़्रेमवर्क (CAF) में माइग्रेट करना

नीचे दिए गए तरीके की मदद से, iOS डिवाइस से डेटा भेजने वाले ऐप्लिकेशन को Cast SDK टूल से बदला जा सकता है v2 को सीएएफ़ भेजने वाले के लिए बनाया गया है, जो GCKCastContext सिंगलटन.

परिचय

  • CAF भेजने वाले को अब भी इस ईमेल पते पर भेजा जाता है Google Cast डेवलपर वेबसाइट और CocoaPods, जैसे कि v2.
  • ऐसी नई क्लास जोड़ी गई हैं जो इन दिशा-निर्देशों का पालन करने की ज़िम्मेदारी लेती हैं Google Cast डिज़ाइन चेकलिस्ट.
  • CAF सेंडर ऐसे विजेट उपलब्ध कराता है जो Cast UX से जुड़ी ज़रूरी शर्तों का पालन करते हैं; v2 कोई यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट नहीं दिया गया है. साथ ही, इसे लागू करने के लिए ये विजेट.
  • CAF भेजने वाले का डिज़ाइन, Cast Android SDK के डिज़ाइन के मुताबिक है.
  • CAF भेजने वाला टूल, v2 जैसे बिटकोड का इस्तेमाल करता है.
  • सीएएफ़ में सबटाइटल की सुविधा, वर्शन 2 की तरह है.

डिपेंडेंसी

CAF भेजने वाला, iOS वर्शन 8 और उसके बाद वाले वर्शन का समर्थन करता है.

डेटा लेयर में इवेंट बनाने की प्रोसेस

सीएएफ़ में, कास्ट फ़्रेमवर्क के लिए साफ़ तौर पर शुरू करने का चरण ज़रूरी है. यह में मैन्युअल तौर पर GCKCastContext सिंगलटन, सही का इस्तेमाल करके GCKCastOptions वेब प्राप्तकर्ता ऐप्लिकेशन आईडी और किसी अन्य वैश्विक के विकल्प. आम तौर पर, ऐसा AppDelegate में किया जाता है -[application:didFinishLaunchingWithOptions:] तरीका:

GCKCastOptions *options = [[GCKCastOptions alloc]
    initWithReceiverApplicationID:applicationID];
[GCKCastContext setSharedInstanceWithOptions:options];

वर्शन 2 में यह चरण ज़रूरी नहीं था.

कास्ट की सुविधा वाले डिवाइस खोजना

सीएएफ़ में, डिस्कवरी की प्रोसेस अपने-आप शुरू और बंद हो जाती है फ़्रेमवर्क के मुताबिक, जब ऐप्लिकेशन फ़ोरग्राउंड में आता है और बैकग्राउंड में जाता है, क्रम से. v2 की GCKDeviceScanner और GCKFilterCriteria क्लास इसका इस्तेमाल नहीं किया जाना चाहिए.

'कास्ट करें' बटन और 'कास्ट करें' डायलॉग

सीएएफ़ में, 'कास्ट करें' बटन और डायलॉग, फ़्रेमवर्क से मिलते हैं. द कास्ट बटन को इंस्टैंशिएट करके नेविगेशन बार में इस तरह जोड़ा जा सकता है:

GCKUICastButton *castButton =
    [[GCKUICastButton alloc] initWithFrame:CGRectMake(0, 0, 24, 24)];
castButton.tintColor = [UIColor whiteColor];
self.navigationItem.rightBarButtonItem =
    [[UIBarButtonItem alloc] initWithCustomView:castButton];

स्टोरीबोर्ड में कास्ट बटन भी जोड़ा जा सकता है.

जब कोई व्यक्ति बटन पर टैप करता है, तो कास्ट करें डायलॉग अपने-आप दिखने लगता है.

डिवाइस नियंत्रण

सीएएफ़ में, डिवाइस कंट्रोल को काफ़ी हद तक फ़्रेमवर्क की मदद से मैनेज किया जाता है. भेजने वाला ऐप्लिकेशन को डिवाइस से कनेक्ट करने और वेब रिसीवर ऐप्लिकेशन. v2 क्लास GCKDeviceManager के इस्तेमाल पर रोक लगा दी गई है और इसे इस्तेमाल नहीं किया जाना चाहिए. भेजने वाले और वेब पाने वाले के बीच होने वाली बातचीत को अब "सेशन". सीएएफ़ GCKSessionManager क्लास, सेशन का लाइफ़साइकल मैनेज करती है और उपयोगकर्ता के जेस्चर इस्तेमाल करने पर, सेशन अपने-आप शुरू और बंद हो जाते हैं: एक सेशन तब शुरू होता है, जब उपयोगकर्ता 'कास्ट करें' डायलॉग में किसी कास्ट डिवाइस को चुनता है और खत्म हो जाता है जब उपयोगकर्ता "कास्ट करना रोकें" पर टैप करता है बटन पर क्लिक करें या जब भेजने वाला ऐप्लिकेशन अपने-आप बंद हो जाता है. भेजने वाले के ऐप्लिकेशन को सेशन के बारे में सूचना दी जा सकती है लाइफ़साइकल इवेंट को रजिस्टर करके GCKSessionManagerListener के साथ GCKSessionManager. कॉन्टेंट बनाने GCKSessionManagerListener प्रोटोकॉल सभी सेशन के लाइफ़साइकल इवेंट के लिए कॉलबैक मेथड के बारे में बताता है.

कॉन्टेंट बनाने GCKCastSession क्लास, कास्ट डिवाइस वाले सेशन को दिखाती है. क्लास इसमें डिवाइस की आवाज़ और म्यूट की स्थिति को कंट्रोल करने के तरीके मौजूद हैं. यह तरीका पहले वर्शन 2 में इन तरीकों का इस्तेमाल करके किया गया था GCKDeviceManager.

वर्शन 2 में, GCKDeviceManagerDelegate प्रोटोकॉल से मिलने वाले बदलावों की सूचनाएं से लेकर डिवाइस की स्थिति तक. इसमें आवाज़, म्यूट की स्थिति, स्टैंडबाय स्थिति वगैरह शामिल हैं. सीएएफ़ में, आवाज़/म्यूट होने की स्थिति में बदलाव की सूचनाएं कॉलबैक से दी जाती हैं तरीका हो सकता है GCKSessionManagerListener प्रोटोकॉल; ये लिसनर GCKSessionManager. डिवाइस की स्थिति की बाकी सभी सूचनाएं के ज़रिए डिलीवर किया गया GCKCastDeviceStatusListener प्रोटोकॉल; ये लिसनर GCKCastSession.

रीकनेक्शन लॉजिक

वर्शन 2 की तरह सीएएफ़, ऐसे नेटवर्क कनेक्शन फिर से लाने की कोशिश करता है जो वे अस्थायी रूप से वाई-फ़ाई सिग्नल खो जाने या नेटवर्क की अन्य गड़बड़ियों के चलते खो जाते हैं. यह अब है सेशन लेवल पर किया गया हो; सेशन के दौरान "निलंबित" किया जा सकता है बताएं कि कनेक्शन टूट जाता है और वापस "कनेक्ट हो गया" पर सेट हो जाता है बताएं कि कनेक्टिविटी पहले जैसी कर दी जाती है. यह फ़्रेमवर्क इस प्रोसेस के हिस्से के तौर पर, वेब रिसीवर ऐप्लिकेशन और किसी भी कास्ट चैनल को फिर से कनेक्ट करना.

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

कस्टम चैनल रजिस्ट्रेशन

वर्शन 2 में, GCKCastChannel सब-क्लास या GCKGenericChannel और प्रतिनिधि) को GCKDeviceManager. सीएएफ़ में, कस्टम चैनल इसके साथ रजिस्टर होते हैं: GCKCastSession इंस्टेंस. रजिस्ट्रेशन यहां किया जा सकता है: GCKSessionManagerListener -[sessionManager:didStartCastSession:] कॉलबैक का तरीका. मीडिया ऐप्लिकेशन के लिए, अब साफ़ तौर पर रजिस्टर करें GCKMediaControlChannel; ज़्यादा जानकारी के लिए, यहां मौजूद सेक्शन देखें.

मीडिया नियंत्रण

v2 क्लास GCKMediaControlChannel के इस्तेमाल पर रोक लगा दी गई है और इसका इस्तेमाल नहीं किया जाना चाहिए. सीएएफ़ में इसकी जगह GCKRemoteMediaClient क्लास का इस्तेमाल करती है, जो ज़्यादा आसान एपीआई में एक जैसी सुविधाएं देती है. इस ऑब्जेक्ट को साफ़ तौर पर शुरू या रजिस्टर करना ज़रूरी नहीं है; यह फ़्रेमवर्क अपने-आप ऑब्जेक्ट को इंस्टैंशिएट करेगा और बुनियादी अगर वेब रिसीवर ऐप्लिकेशन कनेक्ट किया जा रहा है, तो सेशन शुरू होने के समय मीडिया चैनल मीडिया नेमस्पेस के साथ काम करता है.

कॉन्टेंट बनाने GCKRemoteMediaClient को इनसे ऐक्सेस किया जा सकता है: -[remoteMediaClient] प्रॉपर्टी GCKCastSession ऑब्जेक्ट है.

वर्शन 2 में, GCKMediaControlChannel नतीजे के तौर पर, अंकों वाला अनुरोध आईडी दिखाएगा. साथ ही, GCKMediaControlChannelDelegate अनुरोध पूरा होने के बारे में सूचना भेजते समय यह आईडी देगा या अपलोड नहीं किया जा सका.

सीएएफ़ में, सभी मीडिया अनुरोध GCKRemoteMediaClient वापस करेगा GCKRequest ऑब्जेक्ट; इस ऑब्जेक्ट से एक असोसिएटेड है GCKRequestDelegate प्रोटोकॉल इसका इस्तेमाल, अनुरोध की प्रोग्रेस और आखिरी नतीजे को ट्रैक करने के लिए किया जा सकता है.

वर्शन 2 GCKMediaControlChannel; वेब पाने वाले पर मीडिया प्लेयर की स्थिति में होने वाले बदलावों के बारे में सूचनाएं भेजेगा के ज़रिए GCKMediaControlChannelDelegate. सीएएफ़ में, GCKRemoteMediaClient इसके ज़रिए समान कॉलबैक देता है GCKRemoteMediaClientListener प्रोटोकॉल का इस्तेमाल करना चाहिए. कितने भी लोग, इस ईमेल पते पर रजिस्टर किए जा सकते हैं GCKRemoteMediaClient, जो भेजने वाले के एक से ज़्यादा कॉम्पोनेंट को सेशन से जुड़ा हुआ GCKRemoteMediaClient का सिंगल इंस्टेंस.

वर्शन 2 में, ईमेल भेजने वाले के ऐप्लिकेशन को उपयोगकर्ता को बनाए रखने का बोझ उठाना पड़ता था ऐसा इंटरफ़ेस जो वेब रिसीवर पर मीडिया प्लेयर की स्थिति के साथ सिंक होता है. सीएएफ़ में, क्लास GCKUIMediaController वह ज़िम्मेदारी पूरी तरह से निभाता है; देखें कोडलैब ट्यूटोरियल इस कॉम्पोनेंट का इस्तेमाल करने के तरीके के बारे में जानने के लिए, दस्तावेज़ देखें.

शुरुआती ओवरले

वर्शन 2, शुरुआती ओवरले का यूज़र इंटरफ़ेस (यूआई).

सीएएफ़ ने क्लास जोड़ी है GCKCastContext तरीके का इस्तेमाल करें -[presentCastInstructionsViewControllerOnce] इसका इस्तेमाल, पहली बार 'कास्ट करें' बटन को हाइलाइट करने के लिए किया जा सकता है उपयोगकर्ताओं को प्राथमिकता देनी चाहिए.

मिनी कंट्रोलर

वर्शन 2 में, आपको भेजने वाला ऐप्लिकेशन.

सीएएफ़ में, फ़्रेमवर्क एक कंट्रोल बार उपलब्ध कराता है. GCKUIMiniMediaControlsViewController इसे उन सीन में जोड़ा जा सकता है जहां आपको स्थायी नियंत्रण. भेजने वाले ऐप्लिकेशन में मिनी कंट्रोलर जोड़ने के दो तरीके हैं:

  • कास्ट फ़्रेमवर्क को रैप करके, मिनी कंट्रोलर का लेआउट मैनेज करने देता है आपका मौजूदा व्यू कंट्रोलर, GCKUICastContainerViewController और खाते के GCKUIMiniMediaControlsViewController नोट करें.

  • मिनी कंट्रोलर को सीधे अपने मौजूदा व्यू कंट्रोलर में जोड़ें -[createMiniMediaControlsViewController] अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है बनाने के लिए GCKUIMiniMediaControlsViewController जोड़ना होगा और फिर उसे कंटेनर व्यू कंट्रोलर में सबव्यू के तौर पर जोड़ना होगा.

बड़ा किया गया कंट्रोलर

वर्शन 2 में, आपको भेजने वाले ऐप्लिकेशन का इस्तेमाल करने के लिए किया जा सकता है.

सीएएफ़ ने जोड़ा GCKUIMediaController ज़्यादा आसानी से बड़े किए गए कंट्रोलर को लागू करने के लिए, इसका इस्तेमाल किया जा सकता है.

सीएएफ़, पहले से बने बड़े किए गए कंट्रोलर विजेट को जोड़ता है GCKUIExpandedMediaControlsViewController इसे ऐप्लिकेशन में आसानी से जोड़ा जा सकता है. अब आपको अपने हिसाब से बड़ी की गई रेंज लागू करने की ज़रूरत नहीं है GCKUIMediaController का इस्तेमाल करके कंट्रोलर बनाना.

डीबग लॉगिंग

कॉन्टेंट बनाने GCKLogger और GCKLoggerDelegate v2 वाली क्लास सीएएफ़ में ले जाई जाती हैं. इनमें कुछ बदलाव और सुधार किए जाते हैं.

कॉन्टेंट बनाने GCKLoggerDelegate -[logFromFunction:message:] तरीके में के पक्ष में बहिष्कृत कर दिया गया है -[logMessage:fromFunction:].

फ़्रेमवर्क लॉग मैसेज को, अब GCKLoggerFilter और इसे -[filter] प्रॉपर्टी GCKLogger सिंगलटन.

सैंपल ऐप्लिकेशन

हमारा सुझाव है कि कोडलैब और सीएएफ़ के लिए लिखे गए ऐप्लिकेशन के सैंपल.