启动自定义 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(CAF)的媒体播放器更改为另一个播放器