【问题标题】:Chromecast failure callbacks on AndroidAndroid 上的 Chromecast 失败回调
【发布时间】:2021-09-18 01:38:22
【问题描述】:
我很想知道当 chromecast 转换失败时是否有办法获得回调:
- 用户开始从我的应用中投射某些内容,在应用后台运行并开始从其他应用(如 YouTube/Spotify)投射不同的资产
- 当断电并且 chromecast 与 wifi 断开连接时。
- chromecast 和路由器的连接问题
我目前正在使用带有 setResultCallback 的 RemoteMediaClient,但是当出现其中一种故障时,永远不会调用 setResultCallback。
【问题讨论】:
标签:
android
kotlin
chromecast
【解决方案1】:
有一个会话管理监听器,你可以使用它
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
)