יומן ניפוי באגים של העברה (cast)

ה-WebReceiver SDK מספקת למפתחים את CastDebugLogger API, קל יותר לנפות באגים באפליקציה 'מקלט אינטרנט' ובאפליקציה נלווית כלי Command and Control (CaC) כדי לצלם יומנים.

אתחול

כדי להשתמש ב-CastDebugLogger API, צריך לכלול את הסקריפט הבא ב- האפליקציה של המקבל ישירות אחרי הסקריפט של WebReceiver SDK:

<!-- Web Receiver SDK -->
<script src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<!-- Cast Debug Logger -->
<script src="//www.gstatic.com/cast/sdk/libs/devtools/debug_layer/caf_receiver_logger.js"></script>

יוצרים את האובייקט CastDebugLogger ומפעילים את היומן:

const castDebugLogger = cast.debug.CastDebugLogger.getInstance();

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

context.addEventListener(cast.framework.system.EventType.READY, () => {
  if (!castDebugLogger.debugOverlayElement_) {
      // Enable debug logger and show a 'DEBUG MODE' overlay at top left corner.
      castDebugLogger.setEnabled(true);
  }
});

כשיומן ניפוי הבאגים מופעל, שכבת-על שמציגה את מצב ניפוי באגים מוצג במקלט.

רישום אירועים של הנגן

באמצעות CastDebugLogger אפשר לרשום בקלות אירועי שחקן שהופעלו על ידי את ה-SDK של ה-Web זוג (מקלט) ולהשתמש ברמות שונות של רישום ביומן כדי לתעד את נתוני האירועים. ההגדרה של loggerLevelByEvents מתייחסת ל-cast.framework.events.EventType ו-cast.framework.events.category כדי לציין את האירועים שיירשמו ביומן.

לדוגמה, אם אתם רוצים לדעת מתי מופעלים אירועי CORE של השחקן או משודר שינוי ב-mediaStatus, צריך להשתמש בהגדרה הבאה כדי לרשום את אירועים:

castDebugLogger.loggerLevelByEvents = {
  'cast.framework.events.category.CORE': cast.framework.LoggerLevel.INFO,
  'cast.framework.events.EventType.MEDIA_STATUS': cast.framework.LoggerLevel.DEBUG
}

רישום הודעות בהתאמה אישית ביומן באמצעות תגים בהתאמה אישית

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

  • castDebugLogger.error(custom_tag, message);
  • castDebugLogger.warn(custom_tag, message);
  • castDebugLogger.info(custom_tag, message);
  • castDebugLogger.debug(custom_tag, message);

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

הנה דוגמה לאופן השימוש ביומן ניפוי הבאגים במיירט LOAD.

const LOG_TAG = 'MyReceiverApp';

playerManager.setMessageInterceptor(
    cast.framework.messages.MessageType.LOAD,
    request => {
        castDebugLogger.debug(LOG_TAG, 'Intercepting LOAD request');

        return new Promise((resolve, reject) => {
            fetchMediaAsset(request.media.contentId).then(
                data => {
                    let item = data[request.media.contentId];
                    if (!item) {
                        castDebugLogger.error(LOG_TAG, 'Content not found');

                        reject();
                    } else {
                        request.media.contentUrl = item.stream.hls;
                        castDebugLogger.info(LOG_TAG,
                            'Playable URL:', request.media.contentUrl);

                        resolve(request);
                    }
                }
            );
        });
    }
);

אפשר לקבוע אילו הודעות יופיעו בשכבת-העל של ניפוי הבאגים על ידי הגדרת היומן ברמה loggerLevelByTags לכל תג מותאם אישית. לדוגמה, הפעלת יוצג תג מותאם אישית ברמת היומן cast.framework.LoggerLevel.DEBUG כל ההודעות שנוספו עם הודעות שגיאה, אזהרה, מידע וניפוי באגים ביומן. עוד לדוגמה, הפעלת תג מותאם אישית ברמת WARNING תציג רק הודעות שגיאה או אזהרה ביומן.

ההגדרה של loggerLevelByTags היא אופציונלית. אם לא הוגדר תג מותאם אישית ברמת יומן הרישום, כל הודעות היומן יוצגו בשכבת-העל של ניפוי הבאגים.

const LOG_TAG1 = 'Tag1';
const LOG_TAG2 = 'Tag2';

// Set verbosity level for custom tags
castDebugLogger.loggerLevelByTags = {
    [LOG_TAG1]: cast.framework.LoggerLevel.WARNING,
    [LOG_TAG2]: cast.framework.LoggerLevel.DEBUG,
};
castDebugLogger.debug(LOG_TAG1, 'debug log from tag1');
castDebugLogger.info(LOG_TAG1, 'info log from tag1');
castDebugLogger.warn(LOG_TAG1, 'warn log from tag1');
castDebugLogger.error(LOG_TAG1, 'error log from tag1');

castDebugLogger.debug(LOG_TAG2, 'debug log from tag2');
castDebugLogger.info(LOG_TAG2, 'info log from tag2');
castDebugLogger.warn(LOG_TAG2, 'warn log from tag2');
castDebugLogger.error(LOG_TAG2, 'error log from tag2');

// example outputs:
// [Tag1] [WARN] warn log from tag1
// [Tag1] [ERROR] error log from tag1
// [Tag2] [DEBUG] debug log from tag2
// [Tag2] [INFO] info log from tag2
// [Tag2] [WARN] warn log from tag2
// [Tag2] [ERROR] error log from tag2

שכבת-על של ניפוי באגים

יומן ניפוי הבאגים של הפעלת Cast מספק שכבת-על של ניפוי באגים במקלט האינטרנט כדי להציג את ההודעות המותאמות אישית ביומן. הצגה או הסתרה של שכבת-העל לניפוי באגים באמצעות showDebugLogs ו-clearDebugLogs כדי לנקות את הודעות היומן שבשכבת-העל.

תזכורת: יש להשתמש ב-showDebugLogs וב-clearDebugLogs אחרי שה-castDebugLogger הוא מופעל.

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

context.addEventListener(cast.framework.system.EventType.READY, () => {
  if (!castDebugLogger.debugOverlayElement_) {
      // Enable debug logger and show a 'DEBUG MODE' overlay at top left corner.
      castDebugLogger.setEnabled(true);
      // Show debug overlay
      castDebugLogger.showDebugLogs(true);
      // Clear log messages on debug overlay
      castDebugLogger.clearDebugLogs();
  }
});