我想使用Chromecast显示网页。当前页面非常简单(只是“ Hello World!”),但是我希望使其更加复杂,并可能与第二个屏幕进行交互。但是,我发现如果不创建媒体管理器(new cast.receiver.MediaManager(window.mediaElement)),则该会话将立即在我的发送者上过期(称为function sessionUpdateListener(false))。该页面仍然显示,但是我无法再与它进行交互,包括停止应用程序。

我想知道这是设计使然,还是一个错误,还是我做错了什么?

这是我的自定义接收器的代码...

<html>
<head>
    <title>Hello World Chromecast App</title>
    <style type="text/css">
        *
        {
            color: white;
        }
    </style>
</head>
<body>
    <div>Hello World!</div>

    <script src="//www.gstatic.com/cast/sdk/libs/receiver/2.0.0/cast_receiver.js"></script>
    <script type="text/javascript">
        window.onload = function () {
            window.castReceiverManager = cast.receiver.CastReceiverManager.getInstance();
            window.castReceiverManager.start();
        }
    </script>
</body>
</html>

最佳答案

诀窍是您需要在创建消息总线后调用start。完成后,会话将在发送者上保持活动状态。

<script type="text/javascript">
    (function () {
        var mgr;
        var bus;

        window.onload = function () {
            mgr = cast.receiver.CastReceiverManager.getInstance();
            bus = mgr.getCastMessageBus('urn:x-cast:com.sample.hello');
            mgr.start();
        }
    })();
</script>

10-08 14:09