मीडिया ट्रैक इस्तेमाल करना

मीडिया ट्रैक, कोई ऑडियो या वीडियो स्ट्रीम ऑब्जेक्ट या कोई टेक्स्ट ऑब्जेक्ट (सबटाइटल) हो सकता है या कैप्शन).

GCKMediaTrack ऑब्जेक्ट किसी ट्रैक को दिखाता है. इसमें यूनीक नंबर वाला आइडेंटिफ़ायर और एट्रिब्यूट, जैसे कि Content ID और टाइटल. GCKMediaTrack इंस्टेंस इस प्रकार बनाया गया:

Swiftमकसद-सी
let captionsTrack = GCKMediaTrack.init(identifier: 1,
                                       contentIdentifier
: "https://some-url/caption_en.vtt",
                                       contentType
: "text/vtt",
                                       type
: GCKMediaTrackType.text,
                                       textSubtype
: GCKMediaTextTrackSubtype.captions,
                                       name
: "English Captions",
                                       languageCode
: "en",
                                       customData
: nil)
GCKMediaTrack *captionsTrack =
     
[[GCKMediaTrack alloc] initWithIdentifier:1
                              contentIdentifier
:@"https://some-url/caption_en.vtt"
                                    contentType
:@"text/vtt"
                                           type
:GCKMediaTrackTypeText
                                    textSubtype
:GCKMediaTextTrackSubtypeCaptions
                                           name
:@"English Captions"
                                   languageCode
:@"en"
                                     customData
:nil];

एक मीडिया आइटम में एक से ज़्यादा ट्रैक हो सकते हैं; उदाहरण के लिए, उसमें कई सबटाइटल (हर भाषा के लिए अलग भाषा में) या अलग-अलग ऑडियो स्ट्रीम के विकल्प (अलग-अलग भाषाओं के लिए). GCKMediaInformation मीडिया आइटम को दिखाने वाली क्लास है. आपके कलेक्शन को जोड़ने के लिए GCKMediaTrack ऑब्जेक्ट मीडिया आइटम के साथ होता है, तो आपका ऐप्लिकेशन mediaTracks प्रॉपर्टी. आपके ऐप्लिकेशन के लोड होने से पहले, उसे यह असोसिएशन बनाना ज़रूरी है मीडिया को रिसीवर को भेजना, जैसा कि नीचे दिया गया है:

Swiftमकसद-सी
let tracks = [captionsTrack]

let url = URL.init(string: "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4")
guard
let mediaURL = url else {
  print
("invalid mediaURL")
 
return
}

let mediaInfoBuilder = GCKMediaInformationBuilder.init(contentURL: mediaURL)
mediaInfoBuilder
.streamType = GCKMediaStreamType.none;
mediaInfoBuilder
.contentType = "video/mp4"
mediaInfoBuilder
.metadata = metadata;
mediaInfoBuilder
.mediaTracks = tracks;
mediaInformation
= mediaInfoBuilder.build()
NSArray *tracks = @[captionsTrack];

GCKMediaInformationBuilder *mediaInfoBuilder =
 
[[GCKMediaInformationBuilder alloc] initWithContentURL:
   
[NSURL URLWithString:@"https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"]];
mediaInfoBuilder
.streamType = GCKMediaStreamTypeNone;
mediaInfoBuilder
.contentType = @"video/mp4";
mediaInfoBuilder
.metadata = metadata;
mediaInfoBuilder
.mediaTracks = tracks;
self.mediaInformation = [mediaInfoBuilder build];

मीडिया आइटम से जुड़े हुए एक या एक से ज़्यादा ट्रैक चालू करें (इसके बाद मीडिया लोड है) -[setActiveTrackIDs:] को कॉल करके GCKRemoteMediaClient और सक्रिय किए जाने के लिए ट्रैक की आईडी पास करना. उदाहरण के लिए, निम्न कोड ऊपर बनाए गए कैप्शन ट्रैक को चालू करता है.

Swiftमकसद-सी
sessionManager.currentSession?.remoteMediaClient?.setActiveTrackIDs([1])
[self.sessionManager.currentSession.remoteMediaClient setActiveTrackIDs:@[@1]];

वर्तमान मीडिया आइटम पर किसी ट्रैक को निष्क्रिय करने के लिए, कॉल करें -[setActiveTrackIDs:] का मैंडेट चालू है GCKRemoteMediaClient का इस्तेमाल करें. नीचे दिया गया कोड कैप्शन ट्रैक को बंद कर देता है.

Swiftमकसद-सी
sessionManager.currentSession?.remoteMediaClient?.setActiveTrackIDs([])
[self.sessionManager.currentSession.remoteMediaClient setActiveTrackIDs:@[]];

टेक्स्ट ट्रैक की स्टाइल

कॉन्टेंट बनाने GCKMediaTextTrackStyle क्लास में टेक्स्ट ट्रैक की स्टाइल की जानकारी शामिल होती है. ट्रैक की स्टाइल कॉल करके वर्तमान में चल रहे मीडिया आइटम पर लागू किया जाता है -[GCKRemoteMediaClient setTextTrackStyle]. नीचे दिए गए कोड में बनाई गई ट्रैक शैली, टेक्स्ट को 50% अपारदर्शिता पर लाल (FF) में बदल देती है (80) सेरिफ़ फ़ॉन्ट सेट करता है.

Swiftमकसद-सी
let textTrackStyle = GCKMediaTextTrackStyle.createDefault()
textTrackStyle
.foregroundColor = GCKColor.init(cssString: "#FF000080")
textTrackStyle
.fontFamily = "serif"
styleChangeRequest
= sessionManager.currentSession?.remoteMediaClient?.setTextTrackStyle(textTrackStyle)
styleChangeRequest
?.delegate = self
GCKMediaTextTrackStyle *textTrackStyle = [GCKMediaTextTrackStyle createDefault];
[textTrackStyle setForegroundColor:[[GCKColor alloc] initWithCSSString:@"#FF000080"]];
[textTrackStyle setFontFamily:@"serif"];
self.styleChangeRequest = [self.sessionManager.currentSession.remoteMediaClient setTextTrackStyle:textTrackStyle];
self.styleChangeRequest.delegate = self;

आप लौटाए गए सामान का इस्तेमाल कर सकते हैं GCKRequest के लिए ऑब्जेक्ट हम इस अनुरोध को ट्रैक कर रहे हैं.

Swiftमकसद-सी
// MARK: - GCKRequestDelegate

func requestDidComplete(_ request: GCKRequest) {
 
if request == styleChangeRequest {
    print
("Style update completed.")
    styleChangeRequest
= nil
 
}
}
#pragma mark - GCKRequestDelegate

- (void)requestDidComplete:(GCKRequest *)request {
 
if (request == self.styleChangeRequest) {
   
NSLog(@"Style update completed.");
   
self.styleChangeRequest = nil;
 
}
}

स्थिति के बारे में अपडेट देखें ज़्यादा जानकारी के लिए नीचे दी गई जानकारी देखें. ऐप्लिकेशन को उपयोगकर्ताओं को लेख की शैली अपडेट करने की अनुमति देनी चाहिए सिस्टम या ऐप्लिकेशन से मिली सेटिंग का इस्तेमाल करके ट्रैक को ट्रैक करना. यह (iOS 7 और उसके बाद वाले वर्शन में) एक डिफ़ॉल्ट स्टाइल दी गई है, जिसे वापस पाया जा सकता है स्टैटिक तरीके +[GCKMediaTextTrackStyle createDefault] का इस्तेमाल करके. टेक्स्ट ट्रैक की स्टाइल के ये एलिमेंट बदले जा सकते हैं:

  • फ़ोरग्राउंड (टेक्स्ट) का रंग और अपारदर्शिता
  • बैकग्राउंड का रंग और अपारदर्शिता
  • किनारे का प्रकार
  • किनारे का रंग
  • फ़ॉन्ट स्केल
  • फ़ॉन्ट परिवार
  • फ़ॉन्ट स्टाइल

स्टेटस के बारे में अपडेट पाएं

जब एक से ज़्यादा ईमेल भेजने वाले एक ही रिसीवर से जुड़े हों, तब यह ज़रूरी होता है प्राप्तकर्ता पर बदलावों के बारे में सजग रहने के लिए, भले ही वे अन्य ईमेल भेजने वालों ने बदलाव किए हैं.

यह पक्का करने के लिए कि आपके भेजने वाले को मैसेज पाने वाले से स्थिति के अपडेट मिलें, आपके ऐप्लिकेशन को रजिस्टर करो GCKRemoteMediaClientListener. अगर GCKMediaTextTrackStyle अभी मीडिया में बदलाव कर रहे हैं, तो इससे जुड़े हुए सभी ईमेल भेजने वालों को सूचना दी जाएगी दोनों को -[remoteMediaClient:didUpdateMediaMetadata:] और -[remoteMediaClient:didUpdateMediaStatus:] कॉलबैक. इस मामले में, पाने वाले का SDK टूल, इस बात की पुष्टि नहीं करता कि नई स्टाइल, और ईमेल भेजने वाले सभी लोगों को इसकी सूचना देता है. हालांकि, अगर चालू ट्रैक की सूची अपडेट की जाती है, सिर्फ़ कनेक्ट किए गए ईमेल पतों में से -[remoteMediaClient:didUpdateMediaStatus:] शामिल होंगे सूचना दी गई.

सीओआरएस से जुड़ी ज़रूरी शर्तें पूरी करें

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