【问题标题】:Initial chromecast setup初始 chromecast 设置
【发布时间】:2013-10-12 17:48:36
【问题描述】:

很高兴终于有时间尝试在我的 chromecast 上进行开发,但可惜……似乎无法开始。

我填写了白名单请求,收到了周五确认的电子邮件(正好赶上周末!),然后我开始查看样本,并根据我发现的一些样本让 hello world 正常工作。

  1. 将 chrome cast 配置为通过 Mac chromecast 应用将序列发送到 google
  2. 将开发者菜单中的网址列入白名单
  3. 已验证接收方代码实际上与注册说明的 URL 相同(从确认电子邮件中粘贴的副本,并且有效)。

发生的情况是我从我的服务器或本地主机打开我的发件人 HTML,但我似乎无法显示 chromecast(是的,我在同一个网络上)。

我在代码中添加了日志以验证是否收到了事件消息,但没有收到,所以我猜这是扩展程序无法验证应用 ID 的问题。

是否有我可以查看的扩展程序的日志?

这里是发件人代码:

    <!DOCTYPE html>
<html data-cast-api-enabled="true">
<head>
<title>Hello sender!</title>
</head>
<body>
    <div class="receiver-div">
                <h3>Choose A Receiver</h3>
                <ul class="receiver-list">
                    <li>Looking for receivers...</li>
                </ul>
            </div>
    <button class="kill" disabled>Kill the Connection</button>
</body>
<script src="http://underscorejs.org/underscore-min.js"></script>
<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>

<script>
        var cast_api,
            cv_activity,
            receiverList,
            $killSwitch = $('.kill');
            console.log("initializing script");

        window.addEventListener('message', function(event) {
            console.log('Message received of type'+event.data.event);
            if (event.source === window && event.data &&
                    event.data.source === 'CastApi' &&
                    event.data.event === 'Hello') {
                initializeApi();
            }
        });

        initializeApi = function() {
                console.log('Initialize API called');
            if (!cast_api) {
                console.log("no cast api yet")
                cast_api = new cast.Api();
                cast_api.addReceiverListener('myidstring here', onReceiverList);
            }
        };

        onReceiverList = function(list) {
            console.log('on receiverlist called');
            if (list.length > 0) {
                receiverList = list;
                $('.receiver-list').empty();
                receiverList.forEach(function(receiver) {
                    $listItem = $('<li><a href="#" data-id="' + receiver.id + '">' + receiver.name + '</a></li>');
                    $listItem.on('click', receiverClicked);
                    $('.receiver-list').append($listItem);
                });
            }
        };

        receiverClicked = function(e) {
            e.preventDefault();

            var $target = $(e.target),
                receiver = _.find(receiverList, function(receiver) {
                    return receiver.id === $target.data('id');
                });

            doLaunch(receiver);
        };

        doLaunch = function(receiver) {
            if (!cv_activity) {
                var request = new cast.LaunchRequest('still my id string here', receiver);

                $killSwitch.prop('disabled', false);

                cast_api.launch(request, onLaunch);
            }
        };

        onLaunch = function(activity) {
            if (activity.status === 'running') {
                cv_activity = activity;

                cast_api.sendMessage(cv_activity.activityId, 'charz', {type: 'HelloWorld'});
            }
        };

        $killSwitch.on('click', function() {
            cast_api.stopActivity(cv_activity.activityId, function(){
                cv_activity = null;

                $killSwitch.prop('disabled', true);
            });
        });
    </script>
</html>

唯一被记录的是“初始化脚本”行。

提前谢谢你,

CR.

编辑: 我会将 Ali 的答案标记为答案,因为他让我走上了修复它的道路: 调试意味着白名单已经完成,让我看看我这边的配置:

  1. file:// 网址不起作用
  2. 当我在本地设置自己的 Web 服务器时,使用 localhost/sender.html 可以立即运行。
  3. 白名单必须准确且不包括协议(显然)。我已将我的网址列入白名单:http://myserver/mypath/sender.html,但它不起作用,最后添加 myserver/mypath/sender.html 使其完美运行。

也许可以更新文档以反映这一点??

【问题讨论】:

    标签: chromecast


    【解决方案1】:

    尝试访问http://&lt;chromecast-ip&gt;:9222 以查看您的设备是否正确列入白名单。您应该会看到一个带有简单链接的页面,该链接将为您的接收器打开 chrome 调试器。

    【讨论】:

    • 是的,这是可行的,因此本质上该设备已被列入白名单。但它不会触发“消息”事件。
    • 感谢您的帮助,Ali 随时通过电子邮件提供了很多帮助!
    • 我遇到了同样的问题,按照您的方式设置 URL,但没有帮助。找到我的设备 IP,它处于开发模式。我在开发人员菜单中看不到任何将 URL 列入白名单的地方……这就是我所缺少的吗?
    • HTTPS 仅在您发布应用时需要。至于您的问题,您能否更具体一点:(1)您可以访问 http://:9222 吗?
    • 好吧,我最初是通过恢复出厂设置并重新启动来让它工作的。几天前它的铸造很好。现在我没有更改任何与演员表相关的代码,而且我再次得到“接收者列表为空”。我可以访问 chromecastIP:9222。尝试了恢复出厂设置的相同过程,但这次没有运气。在同一网络,同一台计算机上。我又被难住了!该选项卡可以看到它,但是当我尝试连接它时,它只会无限期地显示“Casting to...”消息。
    猜你喜欢
    • 2015-02-08
    • 2016-02-15
    • 2020-05-01
    • 2019-01-23
    • 2011-04-03
    • 2012-11-05
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多