【问题标题】:Keep Chromecast CAF receiver alive after sender disconnect发送者断开连接后保持 Chromecast CAF 接收器活动
【发布时间】:2018-10-29 02:02:42
【问题描述】:
我有一个自定义投射接收器,可以在屏幕上显示一些文本。我希望接收者即使在发送者断开连接后仍保持活动状态(例如,演员由 Chrome 浏览器启动,然后用户关闭浏览器)。现在发生的情况是接收器保持活动状态大约 15 秒,然后关闭。
我尝试通过以下方式使用 setInactivityTimeout,但它似乎没有做任何事情。
cast.framework.CastReceiverContext.getInstance().setInactivityTimeout(Number.MAX_VALUE);
【问题讨论】:
标签:
javascript
google-chrome
chromecast
google-cast
【解决方案1】:
发送者和接收者之间有心跳消息。如果该消息超时,则接收方通常会自行关闭。
【解决方案2】:
不幸的是,一旦发送方断开连接,默认行为是关闭接收方应用程序。
我不确定这是否会有所帮助,但是当我遇到这个问题时,我发现接收器媒体状态会切换到 idle,这会导致接收器默认超时,无法通过setInactivityTimeout 上面的电话(我想可能会有第二个无法更改的超时调用?)。
作为 hack-y 解决方法,尝试在接收器上加载不存在的媒体,例如:
window.setInterval(() => {
const message = new cast.framework.messages.LoadRequestData();
message.media.contentId = 'https://example.com/fake/z00123.pic-o-me.jpg';
playerManager.load(message)
.then(() => {
}).catch((err) => {
return;
});
}, 90000);
超时通常在我看到的最后一次更改后约 5 分钟后发生,但我在那个时间范围内遇到了问题,所以我将我的时间缩短到 1 1/2 分钟(如上所示)。
希望这会有所帮助!