You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何让Chromecast CAF接收器在发送端断开后保持活跃

解决自定义Cast接收器发送端断开后自动关闭的问题

嘿,我之前也碰到过类似的Cast接收器超时难题,咱们一步步来搞定它!

你用Number.MAX_VALUE设置超时没起作用,大概率是因为Cast SDK对超时值有合理范围限制——这个数值太大了,SDK内部可能直接忽略或者做了溢出处理,根本不会生效。

给你两个关键的修复点:

1. 改用合理的超大超时值

Number.MAX_VALUE换成一个实际的大数值,比如设置成86400秒(也就是一天),这个数值在SDK的允许范围内,既能满足“保持活跃”的需求,又不会触发SDK的无效值判断。

示例代码:

// 初始化接收器上下文
const castReceiverContext = cast.framework.CastReceiverContext.getInstance();

// 设置超时为1天(86400秒),你也可以根据需求改成一周(604800秒)
castReceiverContext.setInactivityTimeout(86400);

// 配置接收器选项(如果有自定义需求的话)
const receiverOptions = new cast.framework.CastReceiverOptions();
// 这里可以添加你的自定义配置,比如命名空间、样式等

// 启动接收器
castReceiverContext.start(receiverOptions);

2. 确保调用时机正确

一定要在castReceiverContext.start()之前调用setInactivityTimeout,如果调用顺序反了,设置的超时值也不会生效。

另外,建议你检查一下当前使用的Cast Receiver SDK版本,尽量升级到最新稳定版——旧版本可能存在API兼容问题,导致超时设置不生效。

如果还是有问题,你可以监听senderDisconnected事件,在发送端断开时手动重置超时(不过上面的方法基本就能解决问题了):

castReceiverContext.addEventListener(cast.framework.system.EventType.SENDER_DISCONNECTED, () => {
    // 重新设置超时,确保接收器保持活跃
    castReceiverContext.setInactivityTimeout(86400);
});

这样调整之后,你的接收器应该就能在发送端断开后一直保持活跃状态了!

内容的提问来源于stack exchange,提问作者user2719094

火山引擎 最新活动