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