2017-04-19 15 views

回答

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; 
    } 
} 
相關問題