SDK ตัวรับเว็บมี CastDebugLogger API สําหรับนักพัฒนาซอฟต์แวร์ เพื่อให้แก้ไขข้อบกพร่องของแอปตัวรับเว็บได้โดยง่าย และเครื่องมือ Command และ Control (CaC) ที่ใช้ร่วมกันก็ได้เพื่อเก็บบันทึก
การเริ่มต้น
หากต้องการใช้ CastDebugLogger API ให้ใส่สคริปต์ต่อไปนี้ในแอป 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>
สร้างออบเจ็กต์ 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();
}
});