Web Receiver SDK มี CastDebugLogger API สำหรับนักพัฒนาซอฟต์แวร์ แก้ไขข้อบกพร่องของแอป Web Receiver และโฆษณาที่แสดงร่วม เครื่องมือ Command and Control (CaC) เพื่อบันทึก บันทึก
การเริ่มต้น
หากต้องการใช้ CastDebugLogger API ให้ใส่สคริปต์ต่อไปนี้ไว้ใน แอป Web Receiver อยู่หลังสคริปต์ SDK ของ Web Receiver:
<!-- 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
เพื่อบันทึกเหตุการณ์ของผู้เล่นที่จะเริ่มทำงานโดย
Web Receiver SDK และใช้ระดับตัวบันทึกที่ต่างกันในการบันทึกข้อมูลเหตุการณ์
การกำหนดค่า 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
}
บันทึกข้อความที่กำหนดเองด้วยแท็กที่กำหนดเอง
CastDebugLogger API ช่วยให้คุณสร้างข้อความบันทึกที่ปรากฏใน การวางซ้อนการแก้ไขข้อบกพร่องของตัวรับเว็บซึ่งมีสีต่างกัน โปรดใช้เมธอดบันทึกต่อไปนี้ แสดงเรียงตามลำดับความสำคัญสูงสุดไปยังต่ำสุด
castDebugLogger.error(custom_tag, message);
castDebugLogger.warn(custom_tag, message);
castDebugLogger.info(custom_tag, message);
castDebugLogger.debug(custom_tag, message);
สำหรับวิธีบันทึกแต่ละวิธี พารามิเตอร์แรกควรเป็นแท็กที่กำหนดเอง และ พารามิเตอร์ที่ 2 คือข้อความบันทึก แท็กอาจเป็นสตริงใดก็ได้ที่คุณคิดว่ามีประโยชน์
ต่อไปนี้เป็นตัวอย่างวิธีใช้ตัวบันทึกการแก้ไขข้อบกพร่องในตัวสกัดกั้น 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
การวางซ้อนการแก้ไขข้อบกพร่อง
ตัวบันทึกการแก้ไขข้อบกพร่องของแคสต์จะแสดงการวางซ้อนการแก้ไขข้อบกพร่องบนตัวรับสัญญาณเว็บเพื่อแสดง
ข้อความบันทึกที่กำหนดเอง ใช้ 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();
}
});