GCKSessionManager 類別

GCKSessionManager 類別參考資料

總覽

管理工作階段的課程。

startSessionWithDevice: (GCKSessionManager) 方法可用來建立具有指定 GCKDevice 的新工作階段。工作階段管理員會使用該裝置類型的 GCKDeviceProvider 來建立新的 GCKSession 物件,讓該物件委派所有工作階段要求。

GCKSessionManager 可自動恢復已暫停的工作階段 (也就是說,恢復應用程式在背景執行時,或在應用程式停止運作或使用者強制終止時結束的工作階段)。應用程式在重新啟用或重新啟動時,工作階段管理員會等候一小段時間,讓已停權工作階段的裝置的裝置供應商再次探索裝置;如果成功,系統會嘗試重新連線到該裝置,並自動重新建立工作階段。

如果應用程式在已建立 GCKUICastButton 後未提供目標和選擇器,使用者只要輕觸該按鈕即可顯示預設的 Cast 對話方塊,並自動根據使用者選擇或與裝置連線而啟動及停止工作階段。不過,如果應用程式提供了自己的裝置選取/控制對話方塊 UI,則應使用 GCKSessionManager 直接建立及控制工作階段。

無論應用程式是否使用 GCKSessionManager 來控制工作階段,都可以附加 GCKSessionManagerListener 以接收工作階段事件通知,也能使用 KVO 監控 connectionState 屬性,以追蹤目前的工作階段生命週期狀態。

辛策
3.0

沿用 NSObject。

執行個體方法摘要

(instancetype) - init
 無法使用預設初始化器。更多...
 
(BOOL) - startSessionWithDevice:
 使用裝置類別註冊的預設工作階段選項 (如果有的話),以指定裝置啟動新的工作階段。更多...
 
(BOOL) - startSessionWithDevice:sessionOptions:
 使用指定的裝置和選項開始新的工作階段。更多...
 
(BOOL) - startSessionWithOpenURLOptions:sessionOptions:
 嘗試透過 UIApplicationDelegate::application:openURL:options: 方法提供的選項加入或啟動工作階段。更多...
 
(BOOL) - suspendSessionWithReason:
 暫停目前的工作階段。更多...
 
(BOOL) - endSession
 結束目前的工作階段。更多...
 
(BOOL) - endSessionAndStopCasting:
 如果目前有一個已連線的寄件者裝置,系統會結束目前的工作階段並停止投放;否則,如果有多部傳送者裝置已連線,系統會停止投放。更多...
 
(BOOL) - hasConnectedSession
 測試工作階段目前是否由該工作階段管理員管理,且目前也已連結。更多...
 
(BOOL) - hasConnectedCastSession
 測試目前是否由這個工作階段管理員管理,且目前已連線。更多...
 
(void) - setDefaultSessionOptions:forDeviceCategory:
 設定指定裝置類別的預設工作階段選項。當使用者從「投放」對話方塊中選取裝置時,工作階段選項會傳遞至 createSessionForDevice:sessionID:sessionOptions: (GCKDeviceProvider) 方法。更多...
 
(nullable GCKSessionOptions *) - defaultSessionOptionsForDeviceCategory:
 取得指定裝置類別的預設工作階段選項。更多...
 
(void) - addListener:
 新增接收通知的監聽器。更多...
 
(void) - removeListener:
 移除先前透過 addListener: 新增的事件監聽器。更多...
 

屬性摘要

GCKSessioncurrentSession
 目前的工作階段 (如果有的話)。更多...
 
GCKCastSessioncurrentCastSession
 目前的投放工作階段 (如果有的話)。更多...
 
GCKConnectionState connectionState
 目前的工作階段連線狀態。更多...
 

方法說明

- (instancetype) init

無法使用預設初始化器。

- (BOOL) startSessionWithDevice: (GCKDevice *)  device

使用裝置類別註冊的預設工作階段選項 (如果有的話),以指定裝置啟動新的工作階段。

這是非同步作業。

Parameters
deviceThe device to use for this session.
傳回
YES 如果操作順利完成,NO 如果有目前建立的工作階段,或無法啟動作業,
- (BOOL) startSessionWithDevice: (GCKDevice *)  device
sessionOptions: (nullable GCKSessionOptions *)  options 

使用指定的裝置和選項開始新的工作階段。

這是非同步作業。

Parameters
deviceThe device to use for this session.
optionsThe options for this session, if any. May be nil.
傳回
YES
辛策
4.0
- (BOOL) startSessionWithOpenURLOptions: (GCKOpenURLOptions *)  openURLOptions
sessionOptions: (nullable GCKSessionOptions *)  sessionOptions 

嘗試透過 UIApplicationDelegate::application:openURL:options: 方法提供的選項加入或啟動工作階段。

一般來說,這類要求可在特定應用程式啟動的某部裝置上加入現有的 Cast 工作階段。

Parameters
openURLOptionsThe options that were extracted from the URL.
sessionOptionsThe options for this session, if any. May be nil.
傳回
YES
辛策
4.0
- (BOOL) suspendSessionWithReason: (GCKConnectionSuspendReason reason

暫停目前的工作階段。

這是非同步作業。

Parameters
reasonThe reason for the suspension.
傳回
YES 如果操作已順利完成,NO如果沒有目前建立的工作階段,或是無法啟動作業,
- (BOOL) endSession

結束目前的工作階段。

這是非同步作業。

傳回
YES 如果操作已順利完成,NO如果沒有目前建立的工作階段,或是無法啟動作業,
- (BOOL) endSessionAndStopCasting: (BOOL)  stopCasting

如果目前有一個已連線的寄件者裝置,系統會結束目前的工作階段並停止投放;否則,如果有多部傳送者裝置已連線,系統會停止投放。

使用 stopCasting 參數指示工作階段是否應在工作階段結束時停止投放。只有在連接多個傳送者裝置時,這個參數才會生效。舉例來說,同一個應用程式會在多個寄件者裝置上開啟,而每個傳送端裝置都有運作中的 Cast 工作階段,且接收者的裝置皆相同。

  • 如果將 stopCasting 設為 YES,當多個裝置連線時,接收器應用程式就會停止投放。
  • 如果 stopCastingNO,且其他裝置有運作中的工作階段,接收器會繼續播放。
  • 如果只連結一個寄件者裝置,接收器就會停止投放媒體並忽略 stopCasting 值,即使設為 NO 也一樣。
Parameters
stopCastingWhether casting on the receiver should stop when the session ends. Only used when multiple sender devices are connected.
傳回
YES 如果結束工作階段的作業順利完成,NO如果沒有目前建立的工作階段,或是無法啟動作業,
- (BOOL) hasConnectedSession

測試工作階段目前是否由該工作階段管理員管理,且目前也已連結。

如果工作階段狀態為 GCKConnectionStateConnected,則為 YES

- (BOOL) hasConnectedCastSession

測試目前是否由這個工作階段管理員管理,且目前已連線。

如果工作階段狀態為 GCKConnectionStateConnected 且工作階段是投放工作階段,則為 YES

- (void) setDefaultSessionOptions: (nullable GCKSessionOptions *)  sessionOptions
forDeviceCategory: (NSString *)  category 

設定指定裝置類別的預設工作階段選項。當使用者從「投放」對話方塊中選取裝置時,工作階段選項會傳遞至 createSessionForDevice:sessionID:sessionOptions: (GCKDeviceProvider) 方法。

如果是投放工作階段,工作階段選項可以指定要啟動的接收器應用程式。

Parameters
sessionOptionsThe session options. May be nil to remove any previously set options.
categoryThe device category.
辛策
4.0
- (nullable GCKSessionOptions *) defaultSessionOptionsForDeviceCategory: (NSString *)  category

取得指定裝置類別的預設工作階段選項。

Parameters
categoryThe device category.
傳回
預設工作階段選項,如無,則為 nil
辛策
4.0
- (void) addListener: (id< GCKSessionManagerListener >)  listener

新增接收通知的監聽器。

新增的監聽器強度較低,應予以保留,以免發生意外取消配置的情況。

Parameters
listenerThe listener to add.
- (void) removeListener: (id< GCKSessionManagerListener >)  listener

移除先前透過 addListener: 新增的事件監聽器。

Parameters
listenerThe listener to remove.

資源詳細資料

- (GCKSession*) currentSession
readnonatomicstrong

目前的工作階段 (如果有的話)。

- (GCKCastSession*) currentCastSession
readnonatomicstrong

目前的投放工作階段 (如果有的話)。

- (GCKConnectionState) connectionState
readnonatomicassign

目前的工作階段連線狀態。