GCKSessionManager 类

GCKSessionManager 类参考

概览

管理会话的类。

startSessionWithDevice: (GCKSessionManager) 方法用于创建具有给定 GCKDevice 的新会话。会话管理器使用该设备类型的 GCKDeviceProvider 构造新的 GCKSession 对象,然后将所有会话请求委托给该对象。

GCKSessionManager 负责自动恢复已暂停的会话(即恢复当应用转到后台时,或者应用崩溃或被用户强制终止时已结束的会话)。当应用恢复或重启时,会话管理器会等待片刻,让已暂停会话的设备的设备提供程序再次发现该设备。如果发现此设备,会话管理器会尝试重新连接到该设备并自动重新建立会话。

如果应用在未提供目标和选择器的情况下创建了 GCKUICastButton,则用户点按该按钮将显示默认的投射对话框,并且它将根据用户选择的设备或断开连接的设备自动开始和停止会话。不过,如果应用提供了自己的设备选择/控制对话框界面,则应直接使用 GCKSessionManager 来创建和控制会话。

无论应用是否使用 GCKSessionManager 控制会话,应用都可以附加 GCKSessionManagerListener 以接收会话事件通知,还可以使用 KVO 来监控 connectionState 属性,以跟踪当前会话生命周期状态。

开始时间
3.0

此类继承 NSObject。

实例方法摘要

(instancetype) - init
 默认初始化程序不可用。更多...
 
(BOOL) - startSessionWithDevice:
 使用为设备类别注册的默认会话选项(如果有)启动与给定设备的新会话。更多...
 
(BOOL) - startSessionWithDevice:sessionOptions:
 使用指定的设备和选项启动新会话。更多...
 
(BOOL) - startSessionWithOpenURLOptions:sessionOptions:
 尝试使用向 UIApplicationDelegate::application:open网址:options: 方法提供的选项加入或启动会话。更多...
 
(BOOL) - suspendSessionWithReason:
 暂停当前会话。更多...
 
(BOOL) - endSession
 结束当前会话。更多...
 
(BOOL) - endSessionAndStopCasting:
 如果已连接一台发送设备,则结束当前会话并停止投射;否则,如果连接了多个发送设备,则选择停止投射。更多...
 
(BOOL) - hasConnectedSession
 测试某个会话当前是否由此会话管理器管理,以及当前是否已连接。更多...
 
(BOOL) - hasConnectedCastSession
 用于测试 Cast 会话目前是否由此会话管理器管理以及目前是否处于连接状态。更多...
 
(void) - setDefaultSessionOptions:forDeviceCategory:
 为指定的设备类别设置默认会话选项。当用户从 Cast 对话框中选择设备时,系统会将会话选项传递给 createSessionForDevice:sessionID:sessionOptions: (GCKDeviceProvider) 方法。更多...
 
(nullable GCKSessionOptions *) - defaultSessionOptionsForDeviceCategory:
 获取指定设备类别的默认会话选项。更多...
 
(void) - addListener:
 添加用于接收通知的监听器。更多...
 
(void) - removeListener:
 移除之前使用 addListener: 添加的监听器。更多...
 

属性摘要

GCKSessioncurrentSession
 当前会话(如果有)。更多...
 
GCKCastSessioncurrentCastSession
 当前的 Cast 会话(如果有)。更多...
 
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;如果当前已建立会话或无法启动操作,则为 NO
开始时间
4.0
- (BOOL) startSessionWithOpenURLOptions: (GCKOpenURLOptions *)  openURLOptions
sessionOptions: (nullable GCKSessionOptions *)  sessionOptions 

尝试使用向 UIApplicationDelegate::application:open网址:options: 方法提供的选项加入或启动会话。

通常情况下,该请求是加入特定设备上由其他应用发起的现有 Cast 会话的请求。

Parameters
openURLOptionsThe options that were extracted from the URL.
sessionOptionsThe options for this session, if any. May be nil.
返回
如果操作已成功启动,则为 YES;如果当前建立了会话,则为 NO;或者 open网址 选项不包含所需的 Cast 选项。
开始时间
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

用于测试 Cast 会话目前是否由此会话管理器管理以及目前是否处于连接状态。

如果会话状态为 GCKConnectionStateConnected 并且会话是 Cast 会话,则该值为 YES

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

为指定的设备类别设置默认会话选项。当用户从 Cast 对话框中选择设备时,系统会将会话选项传递给 createSessionForDevice:sessionID:sessionOptions: (GCKDeviceProvider) 方法。

对于 Cast 会话,会话选项可指定要启动的接收器应用。

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

当前的 Cast 会话(如果有)。

- (GCKConnectionState) connectionState
readnonatomicassign

当前的会话连接状态。