如何解决Android 上的 Chromecast 失败回调
我很想知道在 chromecast 投射失败时是否有办法获得回调:
- 用户开始从我的应用投射某些内容,将应用设为后台并开始投射来自不同应用(例如 YouTube/Spotify)的不同资产
- 当出现断电且 chromecast 与 wifi 断开连接时。
- chromecast 和路由器的连接问题
我目前正在使用带有 setResultCallback 的 RemoteMediaClient,但是当出现这些故障之一时,从未调用过 setResultCallback。
解决方法
有一个会话管理器监听器,你可以使用它
val mSessionManagerListener = object : SessionManagerListener<CastSession> {
override fun onSessionEnded(session: CastSession,error: Int) {
onApplicationDisconnected()
}
override fun onSessionResumed(session: CastSession,wasSuspended: Boolean) {
onApplicationConnected(session)
}
override fun onSessionResumeFailed(session: CastSession,error: Int) {
onApplicationDisconnected()
showToast("ResumeFailed $error")
}
override fun onSessionStarted(session: CastSession,sessionId: String) {
onApplicationConnected(session)
}
override fun onSessionStartFailed(session: CastSession,error: Int) {
onApplicationDisconnected()
showToast("Error $error")
}
override fun onSessionStarting(session: CastSession) {}
override fun onSessionEnding(session: CastSession) {}
override fun onSessionResuming(session: CastSession,sessionId: String) {}
override fun onSessionSuspended(session: CastSession,reason: Int) {}
private fun onApplicationConnected(castSession: CastSession) {
mCastSession = castSession
}
private fun onApplicationDisconnected() {
}
}
mCastContext?.sessionManager?.addSessionManagerListener(
mSessionManagerListener!!,CastSession::class.java
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。