GCKDeviceManager 类

GCKDeviceManager 类参考文档

概览

适用于投放设备的控制器。

此类可以向在 Cast 设备上运行的应用发送消息、接收消息、启动消息以及关闭应用。

只要与 Cast 设备的连接处于建立状态,或者正在创建或关闭连接,GCKDeviceManager 实例就必须在范围内。在通过 connect (GCKDeviceManager) 启动连接之前或调用 deviceManager:didDisconnectWithError: (GCKDeviceManagerDelegate-p)deviceManager:didSuspendConnectionWithReason: (GCKDeviceManagerDelegate-p)deviceManager:didFailToConnectWithError: (GCKDeviceManagerDelegate-p) 委托回调之后,可以安全地释放对象。

Deprecated:
使用 GCKSessionManagerGCKCastSession 与投放接收器交互。

此类继承 NSObject。

实例方法摘要

(instancetype) - initWithDevice:clientPackageName:
 使用给定设备构造新的 GCKDeviceManager更多...
 
(instancetype) - initWithDevice:clientPackageName:ignoreAppStateNotifications:
 指定的初始化程序。更多...
 
(void) - connect
 连接到设备。更多...
 
(void) - disconnect
 断开与设备的连接。更多...
 
(void) - disconnectWithLeave:
 断开与设备的连接。更多...
 
(BOOL) - addChannel:
 添加一个渠道,以便在特定命名空间中发送和接收此设备的消息。更多...
 
(BOOL) - removeChannel:
 移除之前添加的频道。更多...
 
(NSInteger) - launchApplication:
 启动应用。更多...
 
(NSInteger) - launchApplication:withLaunchOptions:
 使用给定的启动选项启动应用。更多...
 
(NSInteger) - launchApplication:relaunchIfRunning:
 启动应用(如果已有运行,则可以选择重新启动该应用)。更多...
 
(NSInteger) - joinApplication:
 加入应用。更多...
 
(NSInteger) - joinApplication:sessionID:
 联接具有特定应用会话 ID 的应用。更多...
 
(BOOL) - leaveApplication
 退出当前应用。更多...
 
(NSInteger) - stopApplication
 停止任何正在运行的应用。更多...
 
(NSInteger) - stopApplicationWithSessionID:
 停止具有指定应用会话 ID 的应用。更多...
 
(NSInteger) - setVolume:
 设置系统音量。更多...
 
(NSInteger) - setMuted:
 开启或关闭静音功能。更多...
 
(NSInteger) - requestDeviceStatus
 请求设备的当前状态。更多...
 

属性摘要

BOOL ignoreAppStateNotifications
 此对象是否会监听应用状态通知。更多...
 
GCKConnectionState connectionState
 设备管理器的当前连接状态。更多...
 
GCKConnectionState applicationConnectionState
 设备管理器的当前应用连接状态。更多...
 
BOOL isConnected
 如果设备管理器已与设备建立连接,则返回 true。更多...
 
BOOL isConnectedToApp
 如果设备管理器已与设备上的应用建立连接,则返回 true。更多...
 
BOOL isReconnecting
 如果设备管理器由于暂时性事件(例如,应用在后台运行或存在可能通过重新连接解决的网络错误)而断开连接,则为 true。更多...
 
NSTimeInterval reconnectTimeout
 如果套接字连接由于暂时性错误而断开连接,系统会尝试重新连接此时长。更多...
 
GCKDevicedevice
 由此 GCKDeviceManager 控制的设备。更多...
 
id< GCKDeviceManagerDelegatedelegate
 用于从 GCKDeviceManager 接收通知的代理。更多...
 
float deviceVolume
 设备的当前音量(如果已知,范围为 [0.0, 1.0]);否则为 0。更多...
 
BOOL deviceMuted
 设备当前的静音状态(如果已知);否则为 NO更多...
 
GCKActiveInputStatus activeInputStatus
 设备当前的“有效输入”状态。更多...
 
GCKStandbyStatus standbyStatus
 设备当前的“待机”状态。更多...
 
NSString * applicationSessionID
 当前连接的接收器应用的应用会话 ID(如有);否则为 nil更多...
 
GCKApplicationMetadataapplicationMetadata
 当前在接收器上运行的接收器应用的元数据(如果有);否则为 nil更多...
 
NSString * applicationStatusText
 当前正在运行的接收器应用最近报告的状态文本(如果有);否则为 nil更多...
 

方法详细信息

- (instancetype) initWithDevice: (GCKDevice *)  device
clientPackageName: (NSString *)  clientPackageName 

使用给定设备构造新的 GCKDeviceManager

此对象将监听应用状态通知,并且在应用进入后台时自动断开与设备的连接,并在应用返回前台时尝试重新连接设备。

Parameters
deviceThe device to control.
clientPackageNameThe client package name.
- (instancetype) initWithDevice: (GCKDevice *)  device
clientPackageName: (NSString *)  clientPackageName
ignoreAppStateNotifications: (BOOL)  ignoreAppStateNotifications 

指定的初始化程序。

构造用于控制给定设备的新 GCKDeviceManager

如果 ignoreAppStateNotificationsNO,该对象将监听应用状态的变化,并在应用进入后台时自动断开与设备的连接,并在应用返回前台时尝试重新连接设备。

如果 ignoreAppStateNotificationsYES,则对象不会监听这些通知,并且由应用负责管理连接生命周期。请注意,后台 iOS 应用通常无法无限期地运行,而且其活动网络连接最终将由操作系统关闭。

Parameters
deviceThe device to control.
clientPackageNameThe client package name.
ignoreAppStateNotificationsWhether this object will ignore app state notifications.
- (void) connect

连接到设备。

- (void) disconnect

断开与设备的连接。

这是明显的中断。

必须在调用 connect 之后以及其所有者释放此对象之前的某个时间点调用某个断开连接方法。

- (void) disconnectWithLeave: (BOOL)  leaveApplication

断开与设备的连接。

必须在调用 connect 之后以及其所有者释放此对象之前的某个时间点调用某个断开连接方法。

Parameters
leaveApplicationYES if this is an explicit disconnect that should disconnect from ("leave") the receiver application before closing the connection; NO if this is an implicit disconnect that should just close the connection.
- (BOOL) addChannel: (GCKCastChannel *)  channel

添加一个渠道,以便在特定命名空间中发送和接收此设备的消息。

Parameters
channelThe channel.
返回
如果频道已添加,则设为 YES;如果频道未添加此频道,则添加 NO 表示此命名空间。
- (BOOL) removeChannel: (GCKCastChannel *)  channel

移除之前添加的频道。

Parameters
channelThe channel.
返回
如果频道已移除,则为 YES;如果频道未曾被移除,则为 NO
- (NSInteger) launchApplication: (NSString *)  applicationID

启动应用。

Parameters
applicationIDThe application ID.
返回
请求 ID,如果请求无法发送,则为 kGCKInvalidRequestID
- (NSInteger) launchApplication: (NSString *)  applicationID
withLaunchOptions: (GCKLaunchOptions *__nullable)  launchOptions 

使用给定的启动选项启动应用。

Parameters
applicationIDThe application ID.
launchOptionsThe launch options for this request. If nil, defaults will be used.
返回
请求 ID,如果请求无法发送,则为 kGCKInvalidRequestID
- (NSInteger) launchApplication: (NSString *)  applicationID
relaunchIfRunning: (BOOL)  relaunchIfRunning 

启动应用(如果已有运行,则可以选择重新启动该应用)。

Deprecated:
改用 launchApplication:withLaunchOptions:
Parameters
applicationIDThe application ID.
relaunchIfRunningIf YES, relaunches the application if it is already running instead of joining the running application.
返回
请求 ID,如果请求无法发送,则为 kGCKInvalidRequestID
- (NSInteger) joinApplication: (NSString *__nullable)  applicationID

加入应用。

Parameters
applicationIDThe application ID. If nil, attempts to join whichever application is currently running; otherwise, attempts to join the specified application.
返回
请求 ID,如果请求无法发送,则为 kGCKInvalidRequestID
- (NSInteger) joinApplication: (NSString *)  applicationID
sessionID: (NSString *)  sessionID 

联接具有特定应用会话 ID 的应用。

如果接收设备上的指定会话 ID 不再活动,则请求将失败。

Parameters
applicationIDThe application ID.
sessionIDThe application session ID.
返回
请求 ID,如果请求无法发送,则为 kGCKInvalidRequestID
- (BOOL) leaveApplication

退出当前应用。

返回
NO(如果邮件无法发送)。
- (NSInteger) stopApplication

停止任何正在运行的应用。

返回
请求 ID,如果请求无法发送,则为 kGCKInvalidRequestID
- (NSInteger) stopApplicationWithSessionID: (NSString *__nullable)  sessionID

停止具有指定应用会话 ID 的应用。

如果接收设备上的指定会话 ID 不再活动,则请求将失败。

Parameters
sessionIDThe application session ID, which may not be nil.
返回
请求 ID,如果请求无法发送,则为 kGCKInvalidRequestID
- (NSInteger) setVolume: (float)  volume

设置系统音量。

Parameters
volumeThe new volume, in the range [0.0, 1.0]. Out of range values will be silently clipped.
返回
请求 ID,如果请求无法发送,则为 kGCKInvalidRequestID
- (NSInteger) setMuted: (BOOL)  muted

开启或关闭静音功能。

Parameters
mutedWhether audio should be muted or unmuted.
返回
请求 ID,如果请求无法发送,则为 kGCKInvalidRequestID
- (NSInteger) requestDeviceStatus

请求设备的当前状态。

这会导致在收到更新后的状态信息后调用所有委托状态更新回调。

返回
请求 ID,如果请求无法发送,则为 kGCKInvalidRequestID

属性详情

- (BOOL) ignoreAppStateNotifications
readnonatomicassign

此对象是否会监听应用状态通知。

可以在初始化程序中指定此标记。默认值为 NO

- (GCKConnectionState) connectionState
readnonatomicassign

设备管理器的当前连接状态。

- (GCKConnectionState) applicationConnectionState
readnonatomicassign

设备管理器的当前应用连接状态。

- (BOOL) isConnected
readnonatomicassign

如果设备管理器已与设备建立连接,则返回 true。

Deprecated:
使用 connectionState
- (BOOL) isConnectedToApp
readnonatomicassign

如果设备管理器已与设备上的应用建立连接,则返回 true。

Deprecated:
使用 applicationConnectionState
- (BOOL) isReconnecting
readnonatomicassign

如果设备管理器由于暂时性事件(例如,应用在后台运行或存在可能通过重新连接解决的网络错误)而断开连接,则为 true。

请注意,当设备管理器尝试在发生可能暂时发生的事件后重新连接时,系统不会调用断开连接/连接回调,但这些属性将始终反映实际的当前状态,并且可以被观察到。

- (NSTimeInterval) reconnectTimeout
readwritenonatomicassign

如果套接字连接由于暂时性错误而断开连接,系统会尝试重新连接此时长。

默认超时时间为 15 秒。

- (GCKDevice*) device
readnonatomicassign

由此 GCKDeviceManager 控制的设备。

- (id<GCKDeviceManagerDelegate>) delegate
readwritenonatomicweak

用于从 GCKDeviceManager 接收通知的代理。

- (float) deviceVolume
readnonatomicassign

设备的当前音量(如果已知,范围为 [0.0, 1.0]);否则为 0。

- (BOOL) deviceMuted
readnonatomicassign

设备当前的静音状态(如果已知);否则为 NO

- (GCKActiveInputStatus) activeInputStatus
readnonatomicassign

设备当前的“有效输入”状态。

- (GCKStandbyStatus) standbyStatus
readnonatomicassign

设备当前的“待机”状态。

- (NSString*) applicationSessionID
readnonatomiccopy

当前连接的接收器应用的应用会话 ID(如有);否则为 nil

每当接收器应用(包括同一应用重新启动)时,系统都会生成一个唯一的唯一会话 ID,只要接收器应用继续运行,它就会一直有效。

- (GCKApplicationMetadata*) applicationMetadata
readnonatomiccopy

当前在接收器上运行的接收器应用的元数据(如果有);否则为 nil

- (NSString*) applicationStatusText
readnonatomiccopy

当前正在运行的接收器应用最近报告的状态文本(如果有);否则为 nil