總覽
管理工作階段的類別。
startSessionWithDevice: (GCKSessionManager) 方法可用來建立具有指定 GCKDevice 的新工作階段。工作階段管理員會為該裝置類型使用 GCKDeviceProvider 建構新的 GCKSession 物件,然後委派所有工作階段要求。
GCKSessionManager 會處理已暫停的工作階段自動恢復作業。也就是說,繼續執行應用程式於背景執行時結束的工作階段,或應用程式當機或遭使用者強制終止時,會繼續執行而結束的工作階段。當應用程式繼續或重新啟動時,工作階段管理員會等待一小段時間,讓已停權工作階段的裝置供應商再次找到該裝置,如果可以,系統將嘗試重新連線到該裝置,自動重新建立工作階段。
如果應用程式已建立 GCKUICastButton,但未提供目標和選取器,則使用者輕觸該按鈕就會顯示預設的「投放」對話方塊,而且系統會根據使用者選擇或中斷連線的裝置,自動開始和停止工作階段。不過,如果應用程式提供自己的裝置選取/控制對話方塊 UI,則應直接使用 GCKSessionManager 來建立和控制工作階段。
無論應用程式是否使用 GCKSessionManager 控制工作階段,都可以附加 GCKSessionManagerListener 以接收工作階段事件通知,並使用 KVO 監控 connectionState 屬性,追蹤目前的工作階段生命週期狀態。
- 開始時間
- 3.0
繼承 NSObject。
| 執行個體方法摘要 | |
| (instancetype) | - init | 
| 無法使用預設初始化器。更多... | |
| (BOOL) | - startSessionWithDevice: | 
| 使用指定裝置類別的預設工作階段選項 (如果有的話),透過指定裝置啟動新的工作階段。更多... | |
| (BOOL) | - startSessionWithDevice:sessionOptions: | 
| 使用指定裝置和選項啟動新的工作階段。更多... | |
| (BOOL) | - startSessionWithOpenURLOptions:sessionOptions: | 
| 嘗試加入或啟動工作階段,且使用已提供給 UIApplication 委派::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: 新增的事件監聽器。更多... | |
| 資源摘要 | |
| GCKSession * | currentSession | 
| 目前的工作階段 (如果有的話)。更多... | |
| GCKCastSession * | currentCastSession | 
| 目前的投放工作階段 (如果有的話)。更多... | |
| GCKConnectionState | connectionState | 
| 目前工作階段連線狀態,更多... | |
方法詳細資料
| - (instancetype) init | 
無法使用預設初始化器。
| - (BOOL) startSessionWithDevice: | (GCKDevice *) | device | 
使用指定裝置類別的預設工作階段選項 (如果有的話),透過指定裝置啟動新的工作階段。
這是非同步作業。
- Parameters
- 
  device The device to use for this session. 
- 傳回
- YES:如果作業已成功啟動,- NO表示目前已建立工作階段,或無法開始作業。
| - (BOOL) startSessionWithDevice: | (GCKDevice *) | device | |
| sessionOptions: | (nullable GCKSessionOptions *) | options | |
使用指定裝置和選項啟動新的工作階段。
這是非同步作業。
- Parameters
- 
  device The device to use for this session. options The options for this session, if any. May be nil.
- 傳回
- YES表示作業成功啟動;如果目前已有工作階段或無法開始作業,則為- NO。
- 開始時間
- 4.0
| - (BOOL) startSessionWithOpenURLOptions: | (GCKOpenURLOptions *) | openURLOptions | |
| sessionOptions: | (nullable GCKSessionOptions *) | sessionOptions | |
嘗試加入或啟動工作階段,且使用已提供給 UIApplication 委派::application:openURL:options: 方法的選項。
這通常是要求加入特定裝置上現有投放工作階段 (由其他應用程式啟動) 的要求。
- Parameters
- 
  openURLOptions The options that were extracted from the URL. sessionOptions The options for this session, if any. May be nil.
- 傳回
- YES表示已成功啟動作業;如果目前已建立工作階段,或是 openURL 選項中並未包含必要的投放選項,則傳回- NO。
- 開始時間
- 4.0
| - (BOOL) suspendSessionWithReason: | (GCKConnectionSuspendReason) | reason | 
暫停目前的工作階段。
這是非同步作業。
- Parameters
- 
  reason The reason for the suspension. 
- 傳回
- YES表示作業成功啟動;如果目前未建立工作階段,或是無法開始作業,則為- NO。
| - (BOOL) endSession | 
結束目前的工作階段。
這是非同步作業。
- 傳回
- YES表示作業成功啟動;如果目前未建立工作階段,或是無法開始作業,則為- NO。
| - (BOOL) endSessionAndStopCasting: | (BOOL) | stopCasting | 
當一個傳送者裝置連線時,結束目前的工作階段並停止投放;如果沒有連接多個傳送者裝置,可以選擇停止投放。
使用 stopCasting 參數,指出工作階段結束時是否應停止在接收器上投放內容。只有在連上多部傳送者裝置時,才會套用這個參數。舉例來說,同一個應用程式已在多個傳送端裝置上開啟,而每個傳送者裝置都有同一個接收端裝置正在執行投放工作階段。
- 如果將 stopCasting設為YES,接收器應用程式會在多部裝置連線時停止投放。
- 如果 stopCasting為NO,而其他裝置也有執行中的工作階段,接收端會繼續播放音訊。
- 如果只連線到一部傳送者裝置,接收端應用程式會停止投放媒體並忽略 stopCasting值 (即使已設為NO也一樣)。
- Parameters
- 
  stopCasting Whether 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
- 
  sessionOptions The session options. May be nilto remove any previously set options.category The device category. 
- 開始時間
- 4.0
| - (nullable GCKSessionOptions *) defaultSessionOptionsForDeviceCategory: | (NSString *) | category | 
取得指定裝置類別的預設工作階段選項。
- Parameters
- 
  category The device category. 
- 傳回
- 預設的工作階段選項,如果無則傳回 nil。
- 開始時間
- 4.0
| - (void) addListener: | (id< GCKSessionManagerListener >) | listener | 
新增接收通知的事件監聽器。
新增的事件監聽器未妥善保留,應保留,以免發生意外交易。
- Parameters
- 
  listener The listener to add. 
| - (void) removeListener: | (id< GCKSessionManagerListener >) | listener | 
移除先前使用 addListener: 新增的事件監聽器。
- Parameters
- 
  listener The listener to remove. 
資源詳情
| 
 | readnonatomicstrong | 
目前的工作階段 (如果有的話)。
| 
 | readnonatomicstrong | 
目前的投放工作階段 (如果有的話)。
| 
 | readnonatomicassign | 
目前工作階段連線狀態,