启动自定义 chromecast 接收器有时会超时

Posted

技术标签:

【中文标题】启动自定义 chromecast 接收器有时会超时【英文标题】:Launching custom chromecast receiver sometimes times out 【发布时间】:2014-02-21 16:18:42 【问题描述】:

我有一个自定义 Chromecast 接收器,当用户从 Cast 按钮选择其 Chromecast 设备时,我会从 android 应用程序启动它。我发现我经常在初始连接上超时,但第二次它工作正常。这个问题很可能是我的网络服务器响应速度不够快,还是有其他可能导致超时的因素?

我在 onApplicationConnectionFailed() 中得到 CastStatusCodes.TIMEOUT。

我要启动的代码 (编辑包括launchApplication)

Builder builder = new GoogleApiClient.Builder(mContext);
builder.addApi(Cast.API, apiOptionsBuilder.build());
builder.addConnectionCallbacks(this);
builder.addOnConnectionFailedListener(this);
mApiClient = builder.build();

if (mApiClient == null) return;
mApiClient.connect();

...

Cast.CastApi.launchApplication(mApiClient, mApplicationId)
 .setResultCallback(new ResultCallback<Cast.ApplicationConnectionResult>() 

    @Override
    public void onResult(ApplicationConnectionResult result) 
        if (result.getStatus().isSuccess()) 
            onApplicationConnected(
                result.getApplicationMetadata(),
                result.getApplicationStatus(),
                result.getSessionId(),
                result.getWasLaunched());
         else 
                onApplicationConnectionFailed(result.getStatus().getStatusCode());
        
    
);   

【问题讨论】:

【参考方案1】:

您发布的代码是在加载应用程序之前发布的,因此如果您在 onApplicationConnectionFailed 中遇到超时,那么它在您的代码中更靠后,而不是您在此处发布的部分。如果是您的应用程序加载失败,您需要检查您的网络和 Web 服务器等。

【讨论】:

您对调用launchApplication() 后接收方应用成功 启动但result.getStatus() 返回超时(而不是成功)的情况有任何想法吗?然后接收者应用程序在一段时间后关闭(由于没有发送者连接到它)。 如果receiver收到launch消息,就会启动launch过程,然后响应sender;但是,如果响应没有及时发送给发件人,则发件人认为超时;实际上它不会知道发射是否成功,因为它没有收到任何消息;因此可以看到应用程序已启动,但发件人会引发超时错误。我建议你也检查一下你的接收器日志,看看是否有任何东西可以指出你的原因。

以上是关于启动自定义 chromecast 接收器有时会超时的主要内容,如果未能解决你的问题,请参考以下文章

无法调试 Chromecast 的自定义接收器应用程序

切换音轨时是不是可以阻止 Chromecast 自定义媒体接收器发出许可请求?

我可以从自定义 chromecast 接收器访问我的音乐库吗?

如何将我的自定义接收器 chromecast(CAF)的媒体播放器更改为另一个播放器

Chromecast 自定义接收器播放器卡在 IDLE 状态并且没有响应

chromecast 自定义接收器 - 播放列表在没有“onLoad”动画的情况下推进媒体