טראקים

טראקים של אודיו

כדי לבחור טראק של אודיו, ה-SDK של WebReceiver מספק AudioTracksManager מפשט ומפשט את בחירת המסלולים, ומספק לך שליטה רבה יותר וגישה טובה יותר למאפיינים כמו שם, כתובת URL ושפה. הכיתה הזו הכי טוב להשתמש בו במטפל באירועים cast.framework.events.EventType.PLAYER_LOAD_COMPLETE אירוע.

ה-API מספק דרכים שונות לשלוח שאילתות ולבחור את הטראקים הפעילים של האודיו. כאן דוגמה לאופן שבו בוחרים טראק שיהיה פעיל על ידי ציון המזהה שלו:

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. ניתן להציג קודי שפה במינוחים של 2 תווים (למשל 'es', 'en' או 'de', או מינוח באורך 4 תווים (למשל 'en-us', 'es-es' או 'fr-ca').

אם מניפסט המדיה עומד בתקן אחר של קוד שפה, האפליקציה המקבלת צריכה להמיר אותה לקוד שפה תואם ל-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 של WebReceiver מספק את TextTracksManager מפשט ומפשט את בחירת המסלולים, ומספק לך שליטה רבה יותר וגישה טובה יותר למאפיינים כמו שם, כתובת URL ושפה.

המחלקה TextTracksManager מתאימה במיוחד במטפל באירועים של cast.framework.events.EventType.PLAYER_LOAD_COMPLETE אירוע.

בחירת הכתוביות ב-Web Gettingr SDK קלה ופשוטה עם חלקים אחרים של ה-SDK.

ה-API תומך בשליטה ב-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. ניתן להציג קודי שפה במינוחים של 2 תווים (למשל 'es', 'en' או 'de'), או מינוח באורך 4 תווים (למשל 'en-us', 'es-es' או 'fr-ca').

אם מניפסט המדיה עומד בתקן אחר של קוד שפה, האפליקציה המקבלת צריכה להמיר את כל הבקשות הנכנסות לסטנדרט הזה. האלה בקשות, כמו פקודות קוליות, משתמשות בקודי שפה של RFC 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();

ה-API מאפשר למפתחים להוסיף באופן דינמי טראקים חדשים של כתוביות. עבור שפות שונות וטראקים מחוץ למסגרת, ולאחר מכן לבחור טראק יהיה הטראק הפעיל החדש:

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();

בעת הפעלה דרך הפסקות למודעות, כל טראק טקסט שנבחר, למשל שפה, לפני ההפסקה, יישמרו אחרי ההפסקה לאותו תוכן, גם אם המודעות הן בשפה אחרת.

כתוביות מאולצות

כיתובים מאולצים או נרטיב מאולץ הם שכבת-על של טקסט שמוצגת כך הצופים יכולים להבין מתי משתמשים בשפה חלופית או כדי להבהיר את האודיו. שלא כמו בכתוביות, הצופים לא צריכים להפעיל את הכתוביות. נבחרות באופן אוטומטי בהתאם להעדפות האודיו של הצופה.

כדי להוסיף כתוביות מאולצות לאפליקציית Cast, צריך לכלול אותן בתור חלק מהמניפסט. במניפסט, מגדירים את התפקיד של הטראק forced-subtitle כש-Cask SDK יזהה את המסלולים האלה, הוא יזהה אותן ככתוביות מאולצות. לא נדרשת עבודת שולח כי ה-Cast SDK להפריד בין כתוביות מאולצות. המשמעות היא שהצופה נוכל לבחור כיתוב מאולץ.

כשהכתוביות מופעלות, הן מושבתות כדי למנוע שאין חפיפה בין הכתוביות. מתי הכתוביות מושבתות ואם הכתוביות מאולצות ניתנות במניפסט, ואז מוצגות כתוביות מאולצות העדפות שפת האודיו של הצופה.