Rejestrator debugowania Cast

SDK Web Receiver zapewnia interfejs API CastDebugLogger, dzięki któremu programiści mogą łatwo debugować aplikację Web Receiver oraz aplikację towarzyszącą Narzędzie Command and Control (CaC) do przechwytywania dzienników.

Zdarzenie inicjujące

Aby używać interfejsu CastDebugLogger API, umieść w raporcie poniższy skrypt: Aplikacja Web Receiver zaraz po skrypcie z pakietu Web Receiver 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>

Utwórz obiekt CastDebugLogger i włącz rejestrator:

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

Gdy rejestrator debugowania jest włączony, nakładka z informacją TRYB DEBUGOWANIA co widać na odbiorniku.

Zdarzenia odtwarzacza logów

Za pomocą narzędzia CastDebugLogger można łatwo rejestrować zdarzenia odtwarzacza wywoływane przez za pomocą pakietu SDK Web Receiver i używać różnych poziomów rejestrowania do rejestrowania danych zdarzeń. Konfiguracja loggerLevelByEvents zajmuje cast.framework.events.EventType i cast.framework.events.category aby określić zdarzenia, które mają być rejestrowane.

Jeśli na przykład chcesz wiedzieć, kiedy wywoływane są zdarzenia odtwarzacza CORE lub gdy zostanie rozgłaszana zmiana mediaStatus, użyj następującej konfiguracji, aby zapisać wydarzenia:

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

Rejestruj komunikaty niestandardowe za pomocą tagów niestandardowych

Interfejs CastDebugLogger API pozwala tworzyć komunikaty logu, które wyświetlają się z nakładką debugowania odbiornika internetowego w różnych kolorach. Użyj tych metod logowania: uporządkowane w kolejności od najwyższego do najniższego priorytetu:

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

W przypadku każdej metody logu pierwszym parametrem powinien być tag niestandardowy i a drugi to komunikat logu. Może to być dowolny ciąg znaków, który Ci się przyda.

Oto przykład użycia dziennika debugowania w mechanizmie przechwytującym 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);
                    }
                }
            );
        });
    }
);

Możesz określić, które komunikaty mają być wyświetlane na nakładce debugowania, ustawiając dziennik dla każdego tagu niestandardowego w loggerLevelByTags. Na przykład włączenie tag niestandardowy o poziomie logowania cast.framework.LoggerLevel.DEBUG wyświetliłby wszystkie dodane komunikaty z komunikatami o błędach, ostrzeżeniami, informacjami i dziennika debugowania. Inny jest to, że włączenie niestandardowego tagu na poziomie WARNING spowoduje wyświetlenie tylko komunikatów błędów i ostrzeżeń.

Konfiguracja loggerLevelByTags jest opcjonalna. Jeśli tag niestandardowy nie jest skonfigurowany dla poziomu rejestrowania, wszystkie komunikaty dziennika będą wyświetlane na nakładce debugowania.

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

Nakładka debugowania

Rejestrator Cast Debug Logger udostępnia nakładkę debugowania na odbiorniku internetowym, aby pokazać i niestandardowe komunikaty dziennika. Użyj klawisza showDebugLogs, aby przełączyć nakładkę debugowania i clearDebugLogs, aby usunąć komunikaty dziennika z nakładki.

Przypomnienie: użyj metod showDebugLogs i clearDebugLogs po tym, jak castDebugLogger jest .

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