从我的Android手机中,如果我再次播放已经播出的电视播放视频,则会在手机上显示“ExpandedControlsActivity”,视频将从电视开始播放。 我不希望视频从一开始就开始我只是希望它继续在电视上播放并使用电视更新状态制作“ExpandedControlsActivity”简历。有可能吗?
答案 0 :(得分:0)
AFAIK,是的。由于Google Cast框架具有sender resumes cast中讨论的此设计功能,因此可以恢复当前正在播放的视频。
有了这个,您可能想尝试使用SessionManagerListener
类。
正如本documentation中所述,
会话由班级
SessionManager
管理,您的应用可以通过CastContext.getSessionManager()
访问该班级。单个会话由类Session
的子类表示。例如,CastSession
表示与Cast设备的会话。您的应用可以SessionManager.getCurrentCastSession()
访问当前有效的Cast会话。
此外,您可以使用SessionManagerListener
类监视会话事件,例如恢复。当会话处于活动状态时,Google Cast框架会自动尝试从异常/突然终止中恢复。
以下是有关如何管理会话的示例:
public class MyActivity extends Activity {
private CastSession mCastSession;
private SessionManager mSessionManager;
private final SessionManagerListener mSessionManagerListener =
new SessionManagerListenerImpl();
private class SessionManagerListenerImpl implements SessionManagerListener {
@Override
public void onSessionStarted(Session session, String sessionId) {
invalidateOptionsMenu();
}
@Override
public void onSessionResumed(Session session, boolean wasSuspended) {
invalidateOptionsMenu();
}
@Override
public void onSessionEnded(Session session, int error) {
finish();
}
}
@Override
protected void onCreate() {
mSessionManager = CastContext.getSharedInstance(this).getSessionManager();
super.onCreate();
}
@Override
protected void onResume() {
mCastSession = mSessionManager.getCurrentCastSession();
mSessionManager.addSessionManagerListener(mSessionManagerListener);
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
mSessionManager.removeSessionManagerListener(mSessionManagerListener);
mCastSession = null;
}
}