ट्रैक

ऑडियो ट्रैक

ऑडियो ट्रैक चुनने के लिए, वेब रिसीवर SDK टूल AudioTracksManager क्लास उपलब्ध कराता है, जो ट्रैक चुनने को आसान और आसान बनाती है. साथ ही, आपको नाम, यूआरएल, और भाषा जैसी प्रॉपर्टी तक ज़्यादा कंट्रोल और बेहतर ऐक्सेस देती है. इस क्लास का इस्तेमाल cast.framework.events.EventType.PLAYER_LOAD_COMPLETE इवेंट के लिए इवेंट हैंडलर में सबसे किया जाता है.

एपीआई, ऑडियो ट्रैक चलाने और उन्हें चुनने के कई तरीके उपलब्ध कराता है. यहां दिए गए उदाहरण में किसी ट्रैक को सक्रिय करने के लिए उसका आईडी बताने का तरीका बताया गया है:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();

playerManager.addEventListener(
  cast.framework.events.EventType.PLAYER_LOAD_COMPLETE, () => {
    const audioTracksManager = playerManager.getAudioTracksManager();

    // Get all audio tracks
    const tracks = audioTracksManager.getTracks();

    // Choose the first audio track to be active by specifying its ID
    audioTracksManager.setActiveById(tracks[0].trackId);
  });
context.start();

AudioTracksManager क्लास में एक तरीका भी दिया गया है getActiveTrack().

यहां किसी भाषा के लिए पहला ऑडियो ट्रैक चुनने का तरीका बताया गया है. इस मामले में अंग्रेज़ी:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();

playerManager.addEventListener(
  cast.framework.events.EventType.PLAYER_LOAD_COMPLETE, () => {
    const audioTracksManager = playerManager.getAudioTracksManager();

    // Set the first matching language audio track to be active
    audioTracksManager.setActiveByLanguage('en');
  });
context.start();

AudioTracksManager क्लास यह तरीका भी दिखाता है getTracksByLanguage(language) जो किसी खास भाषा के सभी ट्रैक दिखाता है.

ऑडियो की भाषा का कोड, मीडिया मेनिफ़ेस्ट से लिया गया है और वह RFC 5646 के मुताबिक होना चाहिए. भाषा कोड को दो वर्णों के नाम (जैसे कि "es", "en" या "de") के साथ या चार वर्ण वाले नाम (जैसे कि "en-us", "es-es" या "fr-ca") में दिखाया जा सकता है.

अगर मीडिया मेनिफ़ेस्ट किसी दूसरे भाषा कोड स्टैंडर्ड का पालन करता है, तो Web कॉन्टेंट पाने वाले ऐप्लिकेशन को उसे RFC 5646 के मुताबिक भाषा कोड में बदलना होगा. वेब पाने वाला SDK टूल, एक इंटरसेप्टर EDIT_AUDIO_TRACKS उपलब्ध कराता है, ताकि बदलाव किए जा सकें:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
// Intercept the EDIT_AUDIO_TRACKS request
playerManager.setMessageInterceptor(cast.framework.messages.MessageType.EDIT_AUDIO_TRACKS, request => {
  // write logic to convert language codes here
});
context.start();

विज्ञापन के लिए ब्रेक की अवधि खत्म होने के बाद, ब्रेक लेने से पहले चुनी गई भाषा, जैसे कि ऑडियो ट्रैक, उसी कॉन्टेंट के लिए ब्रेक के बाद बनी रहेगी, भले ही विज्ञापन किसी दूसरी भाषा में हों.

सबटाइटल (सबटाइटल)

सबटाइटल वाले ट्रैक के चुने जाने के लिए, वेब रिसीवर SDK टूल TextTracksManager क्लास की मदद से, ट्रैक चुनने का तरीका आसान और आसान बना देता है. इससे आपको नाम, यूआरएल, और भाषा जैसी प्रॉपर्टी को बेहतर कंट्रोल और ऐक्सेस मिलता है.

TextTracksManager क्लास का सबसे ज़्यादा इस्तेमाल, इवेंट हैंडलर में cast.framework.events.EventType.PLAYER_LOAD_COMPLETE इवेंट के लिए किया जाता है.

वेब रिसीवर SDK में सबटाइटल चुनने की सुविधा को, SDK टूल के दूसरे हिस्सों के साथ आसान बनाया गया है.

यह एपीआई, WebVTT, TTML, और CEA-608 को कंट्रोल करने की सुविधा देता है.

TextTracksManager कक्षा में, क्वेरी करने के अलग-अलग तरीके उपलब्ध होते हैं. साथ ही, सबटाइटल की सुविधा चालू करने के लिए, किसी ट्रैक को चुना जाता है. यहां उदाहरण के तौर पर, एक आईडी चुनने के लिए पहला ट्रैक चुनने का तरीका बताया गया है:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();

playerManager.addEventListener(
  cast.framework.events.EventType.PLAYER_LOAD_COMPLETE, () => {
    const textTracksManager = playerManager.getTextTracksManager();

    // Get all text tracks
    const tracks = textTracksManager.getTracks();

    // Choose the first text track to be active by its ID
    textTracksManager.setActiveByIds([tracks[0].trackId]);
  });
context.start();

TextTracksManager क्लास में एक तरीका भी दिया गया है getActiveTracks().

किसी खास भाषा के लिए पहला टेक्स्ट ट्रैक चुनने के तरीके का एक उदाहरण यहां दिया गया है:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();

playerManager.addEventListener(
  cast.framework.events.EventType.PLAYER_LOAD_COMPLETE, () => {
    const textTracksManager = playerManager.getTextTracksManager();

    // Set the first matching language text track to be active
    textTracksManager.setActiveByLanguage('en');
  });
context.start();

TextTracksManager क्लास यह तरीका भी दिखाता है getTracksByLanguage(language) जो किसी खास भाषा के सभी ट्रैक दिखाता है.

टेक्स्ट की भाषा का कोड, मीडिया मेनिफ़ेस्ट से लिया गया है और वह RFC 5646 के मुताबिक होना चाहिए. भाषा कोड को दो वर्णों के नाम (जैसे कि "es", "en" या "de") या चार वर्णों वाले नाम (जैसे कि "en-us", "es-es" या "fr-ca") में दिखाया जा सकता है.

अगर मीडिया मेनिफ़ेस्ट किसी दूसरे भाषा कोड स्टैंडर्ड पर काम करता है, तो वेब पाने वाले ऐप्लिकेशन को आने वाले किसी भी अनुरोध को उस स्टैंडर्ड में बदलना होगा. इनमें, बोलकर दिए जाने वाले निर्देशों जैसे अनुरोध के लिए, आरएफ़सी 5646 का इस्तेमाल किया जाता है. वेब रिसीवर SDK टूल, एक इंटरसेप्टर EDIT_TRACKS_INFO उपलब्ध कराता है, ताकि आपके बदलावों को स्टैंडर्ड के मुताबिक बनाया जा सके:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
// intercept the EDIT_TRACKS_INFO request
playerManager.setMessageInterceptor(cast.framework.messages.MessageType.EDIT_TRACKS_INFO, request => {
  // write logic to convert language codes here
});
context.start();

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

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();

playerManager.addEventListener(
  cast.framework.events.EventType.PLAYER_LOAD_COMPLETE, () => {

    // Create text tracks object
    const textTracksManager = playerManager.getTextTracksManager();

    // Create track 1 for English text
    const track1 = textTracksManager.createTrack();
    track1.trackContentType = 'text/vtt';
    track1.trackContentId = 'http://example.com/en.vtt';
    track1.language = 'en';

    // Create track 2 for Spanish text
    const track2 = textTracksManager.createTrack();
    const track2Id = track2.trackId;
    track2.trackContentType = 'text/vtt';
    track2.trackContentId = 'http://example.com/spa.vtt';
    track2.language = 'spa';

    // Add tracks
    textTracksManager.addTracks([track1, track2]);

    // Set the first matching language text track to be active
    textTracksManager.setActiveByLanguage('en');
  });
context.start();

विज्ञापन के लिए ब्रेक की सुविधा इस्तेमाल करते समय, ब्रेक लेने से पहले चुने गए टेक्स्ट ट्रैक, जैसे कि भाषा, उसी कॉन्टेंट के लिए ब्रेक के बाद बने रहेंगे. भले ही, वे किसी दूसरी भाषा में हों.

फ़ोर्स्ड कैप्शन

वीडियो में ज़बरदस्ती कैप्शन इस्तेमाल करना या कहानी को ज़बरदस्ती दिखाना, टेक्स्ट ओवरले होता है. इससे, दर्शक यह समझ पाते हैं कि किसी अन्य भाषा का इस्तेमाल कब किया गया या उन्होंने ऑडियो के बारे में कैसे बताया. सबटाइटल की तरह, दर्शकों को वीडियो के लिए सबटाइटल की सुविधा को चालू करने की ज़रूरत नहीं होती, क्योंकि वे ऑडियो की सेटिंग के हिसाब से अपने-आप चुने जाते हैं.

अपने कास्ट ऐप्लिकेशन में ज़बरदस्ती कैप्शन जोड़ने के लिए, आपको उसे अपने मेनिफ़ेस्ट के हिस्से के रूप में शामिल करना होगा. अपने मेनिफ़ेस्ट में, ट्रैक की भूमिका forced-subtitle पर सेट करें. जब कैस्क SDK इन ट्रैक को पिक अप करता है, तो यह उन्हें ज़बरदस्ती कैप्शन के रूप में पहचान लेता है. भेजने वाले को कुछ भी करने की ज़रूरत नहीं होती, क्योंकि कास्ट SDK टूल ज़बरदस्ती कैप्शन को अलग कर देता है. इसका मतलब है कि दर्शक ज़बरदस्ती कैप्शन नहीं चुन पाएंगे.

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