【问题标题】:Chromecast mRemoteMediaClient throwing java.lang.IllegalStateException: No connectionChromecast mRemoteMediaClient 抛出 java.lang.IllegalStateException:无连接
【发布时间】:2016-11-15 10:20:59
【问题描述】:

我正在使用 android 中的 Chrome-cast,我已将我的 Chrome-cast 从 SDKV2 迁移到 SDKV3。 RemoteMediaClient 在我加载队列时抛出“java.lang.IllegalStateException: No connection”。

-在这一行引发异常

mRemoteMediaClient.queueLoad(mediaQueueItem,     PlayerConstants.SONG_NUMBER, MediaStatus.REPEAT_MODE_REPEAT_OFF, null)
                    .setResultCallback(resultCallback);

这是引发此异常的条件:-
连接到 Chrome-cast 并在队列中连接加载 mediaQueueItem 后,它会第一次顺利运行,现在停止投射(从设备断开 Chrome-cast),然后我再次连接到投射,它将毫无问题地连接,但在连接负载后用于投射的 mediaQueueItem 然后它引发了这个异常。

请帮忙。

【问题讨论】:

  • 不确定这是否有帮助,但您可以尝试拨打requestStatus() 来验证连接吗?也请检查此SO thread,它可能会提供见解。
  • 感谢您的评论,CastSession 和 RemoteMediaClient 中有两个 requestStatus() 可用,我都试过了,但没有人能解决我的问题。

标签: android chromecast


【解决方案1】:

我发现了我在 onSessionEnded() 方法中所做的错误。

@Override
public void onSessionEnded(CastSession session, int error)
{
     mRemoteMediaClient = null;
     mCastSession = null;
}

我在onSessionEnded() 中为mRemoteMediaClientmCastSession 分配了null。 删除这两行。

mRemoteMediaClient = null;
mCastSession = null;

会话结束或会话暂停时不应分配 null。

希望它能帮助其他人。

【讨论】:

  • 这与您描述的问题无关,并没有解决。
  • 可能不是,但是这样做后我的问题得到了解决。您的问题可能有所不同。
  • 这个答案只有避免 NullPointerExceptions 才有意义,所以我很怀疑
  • 你不应该怀疑,因为它不是这个问题的全局解决方案。那是我的问题,你可能会有所不同。如果您发现自己没有得到答案,那么您可以使用代码 sn-p 和规范提出您的问题,这将帮助您找到正确的答案。
  • 您不能在空引用上调用mRemoteMediaClient.queueLoad。这意味着 mRemoteMediaClient 一开始就永远不会为空,否则您将获得 NullPointerException。所以要么你的修复什么都不做,要么你班级的其他部分涉及到一些魔法。我真的很好奇这个,你能发布你的完整课程吗?
猜你喜欢
  • 1970-01-01
  • 2020-05-29
  • 1970-01-01
  • 2012-07-03
  • 2012-04-23
  • 2020-01-09
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
相关资源
最近更新 更多