iOS SDK 接口概览
生命周期相关接口
接口名称 | 接口描述 |
SDK 初始化 | |
启动云游戏 | |
停止云游戏 | |
生命周期回调 |
音视频控制接口
接口名称 | 接口描述 |
暂停/恢复画面传输 | |
设置建议的帧率码率 | |
设置游戏音频 PCM 增益大小,默认1.0 | |
获取游戏画面渲染的图层 | |
是否允许双指缩放/拖动游戏图层 | |
设置缩放时画面边框的偏移大小,这能让游戏画面划出手机边框。 | |
视频图像宽高发生变化 | |
(手游)视频画面的朝向发生改变,进入游戏前也会回调。 |
游戏操控相关接口
接口名称 | 接口描述 |
获取游戏操控辅助类 | |
创建鼠标视图(继承 UIView),支持将手指单击事件转换为 PC 上的鼠标操作 | |
设置鼠标的操控模式 | |
设置鼠标相对移动时的灵敏度 | |
设置鼠标触发单击的事件 | |
以接口的方式移动鼠标指针 | |
创建一个虚拟按键视图(继承 UIView),支持将手指单击事件转换为键盘/手柄按键事件 | |
加载虚拟按键布局并生成按键,虚拟按键配置文件与 Android SDK、JS SDK 通用 | |
(手游)创建云端触控视图(继承 UIView),支持将手指单击事件传递到云端手机上 | |
设置云端鼠标是否可见 | |
设置云端鼠标图片 | |
发送键盘事件,推荐使用 TCGVKeyGamepad | |
发送游戏手柄按键事件,推荐使用 TCGVKeyGamepad | |
转动游戏手柄的(左/右)摇杆,推荐使用 TCGVKeyGamepad | |
通知云端启用虚拟游戏手柄 | |
清空云端的按键,用于处理键盘卡键的异常状态 | |
(手游) 触发云端的返回动作,触发云端系统的物理返回键 |
数据通道交互接口
接口名称 | 接口描述 |
创建一条数据通道 | |
给云端 UDP 端口发送数据 | |
关闭数据通道 | |
连接成功,可以通过数据通道给云端应用发送消息 | |
连接失败 | |
接收来自云端的数据 |
调试及日志相关接口
接口名称 | 接口描述 |
设置日志回调接收者及过滤等级 | |
日志打印回调接口 | |
返回获取当前的性能统计数据 | |
鼠标的操控模式 | |
日志等级 |
生命周期相关接口
[TCGGamePlayer initWithParams:andDelegate:]
SDK 初始化。接口立即返回,异步执行初始化通过回调通知结果。
参数 | 类型 | 描述 |
params | NSDictionary | 选填,预留暂未启用 |
listener | TCGGamePlayerDelegate | 生命周期回调 |
[TCGGamePlayer startGameWithRemoteSession:error:]
启动云游戏。
参数 | 类型 | 描述 |
remoteSession | NSString | Server Session,需从云 API 获取 |
[TCGGamePlayer stopGame]
停止云游戏。
TCGGamePlayerDelegate
TCGGamePlayer 生命周期回调。
[TCGGamePlayerDelegate onInitSuccess:]
SDK 初始化成功回调。
参数 | 类型 | 描述 |
localSession | NSString | ClientSession 客户端会话, 其内容较长, 可能会超出 logcat 输出限制 |
[TCGGamePlayerDelegate onInitFailure:msg:]
初始化失败回调。
参数 | 类型 | 描述 |
errorCode | TCGErrorType | 错误码 |
errorMsg | NSError | 内部错误信息 |
[TCGGamePlayerDelegate onConnectionFailure:msg:]
连接失败回调。
参数 | 类型 | 描述 |
errorCode | TCGErrorType | 错误码 |
errorMsg | NSError | 内部错误信息 |
[TCGGamePlayerDelegate onVideoShow]
连接成功,画面开始显示。
音视频控制接口
[TCGGamePlayer pauseResumeGame:]
暂停/恢复 画面传输。
参数 | 类型 | 描述 |
doPause | BOOL | YES 表示暂停画面传输,NO 表示恢复画面传输 |
[TCGGamePlayer setStreamBitrateMix:max:fps:]
设置建议的帧率和码率
注意
该接口设置的仅是建议值,云端会根据实际网络情况动态调整。
参数 | 类型 | 描述 |
fps | int | 建议帧率,范围[10,60],默认45 |
minBitrate | int | 建议最小码率,范围[1000,15000],默认1000kbps |
maxBitrate | int | 建议最大码率,范围[1000,15000],默认3000kbps |
[TCGGamePlayer setVolumeScale:]
设置游戏音频 PCM 增益大小,默认1.0。
参数 | 类型 | 描述 |
scale | float | [0,10]之间的浮点数,大于1时可能会导致声音失真 |
[TCGGamePlayer videoView]
获取游戏画面渲染的图层。
[TCGGamePlayer setVideoViewEnablePinch:]
是否允许双指缩放/拖动游戏图层。
参数 | 类型 | 描述 |
isEnable | BOOL | YES 表示允许双指缩放画面,NO 表示不允许 |
[TCGGamePlayer setVideoViewInsets:]
设置缩放时画面边框的偏移大小,这能让游戏画面划出手机边框。
参数 | 类型 | 描述 |
insets | UIEdgeInsets | 指定边缘间距,默认(100, 50, 50, 100) |
[TCGGamePlayerDelegate onVideoSizeChanged:]
视频图像宽高发生变化。
参数 | 类型 | 描述 |
videoSize | CGSize | 变化后的视频图像尺寸 |
[TCGGamePlayerDelegate onVideoOrientationChanged:]
(手游)视频画面的朝向发生改变,进入游戏前也会回调。
注意
这里的朝向指画面里的内容是竖屏或横屏内容(可理解为云端手机的朝向),而视频画面的宽高是不会发生改变的。
参数 | 类型 | 描述 |
orientation | UIInterfaceOrientation | 视频画面的朝向 |
游戏操控相关接口
注意
[TCGGamePlayer gameController]
获取游戏操控辅助类。
[TCGVirtualMouseCursor initWithFrame:controller:]
创建鼠标视图(继承 UIView),支持将手指单击事件转换为 PC 上的鼠标操作。
说明
参数 | 类型 | 描述 |
frame | CGRect | 视图的大小与位置 |
controller | 游戏操控辅助类 |
[TCGVirtualMouseCursor setCursorTouchMode:]
设置鼠标的操控模式。
参数 | 类型 | 描述 |
mode | 鼠标的操控模式 |
[TCGVirtualMouseCursor setCursorIsShow:]
参数 | 类型 | 描述 |
isShow | BOOL | YES 表示显示,NO 表示隐藏 |
[TCGVirtualMouseCursor setCursorImage:andRemoteFrame:]
参数 | 类型 | 描述 |
image | UIImage | 鼠标指针图标 |
imageFrame | CGRect | view 的大小位置,云端主动下发 |
[TCGVirtualMouseCursor setCursorSensitive:]
参数 | 类型 | 描述 |
sensitive | CGFloat | 默认1.0与手动滑动的幅度相同 |
[TCGVirtualMouseCursor setClickTypeIsLeft:]
参数 | 类型 | 描述 |
isLeft | BOOL | YES 表示触发鼠标左键,NO 表示触发鼠标右键 |
[TCGVirtualMouseCursor moveCursorWithDiffX:diffY:]
以接口的方式移动鼠标指针。
参数 | 类型 | 描述 |
diffX | CGFloat | 在当前鼠标视图的 X 轴上,鼠标指针移动 diffX 个 point |
diffY | CGFloat | 在当前鼠标视图的 Y 轴上,鼠标指针移动 diffY 个 point |
[TCGVKeyGamepad initWithFrame:controller:]
创建一个虚拟按键视图(继承 UIView),支持将手指单击事件转换为键盘/手柄按键事件。
注意
需要选用 TCGVkey.framework 库。
参数 | 类型 | 描述 |
frame | CGRect | 视图的大小与位置 |
controller | 游戏操控辅助类 |
[TCGVKeyGamepad showKeyGamepad:]
加载虚拟按键布局并生成按键,虚拟按键配置文件与 Android SDK、JS SDK 通用。
参数 | 类型 | 描述 |
cfg | NSString | JSON 格式的配置内容 |
[TCGVKeyGamepad needConnected]
[TCGRemoteTouchScreen initWithFrame:controller:]
(手游)创建云端触控视图(继承 UIView),支持将手指单击事件传递到云端手机上。
注意
参数 | 类型 | 描述 |
frame | CGRect | 视图的大小与位置 |
controller | 游戏操控辅助类 |
[TCGGameController onCursorVisibleChanged:]
设置云端鼠标是否可见
参数 | 类型 | 描述 |
isVisble | BOOL | YES 表示云端鼠标可见,NO 表示云端鼠标不可见 |
[TCGGameController onCursorImageUpdated:frame:]
设置云端鼠标图片。
参数 | 类型 | 描述 |
image | UIImage | 鼠标指针图标 |
imageFrame | CGRect | view的大小位置,云端主动下发 |
[TCGGameController clickKeyboard:isDown:]
参数 | 类型 | 描述 |
keycode | int | 按键值 |
isDown | BOOL | true 表示按下,false 表示抬起 |
[TCGGameController clickGamepadKey:isDown:]
参数 | 类型 | 描述 |
keycode | int | 按键值 |
isDown | BOOL | YES 表示发送按下消息,NO 表示发送抬起消息 |
[TCGGameController turnJoyStickX:y:isLeft:]
参数 | 类型 | 描述 |
deltaX | CGFloat | 范围[-1, 1],最左端为-1 最右端为 1 |
deltaY | CGFloat | 范围[-1, 1],最左端为-1 最右端为 1 |
isLeft | BOOL | YES 表示转动左摇杆,NO 表示转动右摇杆 |
[TCGGameController enableVirtualGamepad:]
通知云端启用虚拟游戏手柄。
参数 | 类型 | 描述 |
enable | BOOL | YES 表示发送启用的消息,NO 表示发送停用的消息 |
[TCGGameController resetRemoteKeycode]
清空云端的按键,用于处理键盘卡键的异常状态。
[TCGGameController remoteMobileBackClick]
(手游) 触发云端的返回动作,触发云端系统的物理返回键。
数据通道交互接口
[TCGGamePlayer openCustomTransChannel:delegate:]
创建一条数据通道。nreturn:数据通道对象,与云端连接的结果通过代理异步回调通知。
参数 | 类型 | 描述 |
remotePort | int | 云端应用监听的端口号 |
channelDelegate | TCGCustomTransChannelDelegate | 数据通道的代理,用于回调数据通道的连接状态和数据 |
[TCGCustomTransChannel sendData:]
给云端 UDP 端口发送数据。
return:发送状态。0发送成功,-1 数据超过长度,-2当前通道未连接成功。
参数 | 类型 | 描述 |
data | NSData | 需要发送的数据内容, 单次发送大小限制在1200字节 |
[TCGCustomTransChannel close]
关闭数据通道。
[TCGCustomTransChannelDelegate onConnSuccessAtRemotePort:]
连接成功,可以通过数据通道给云端应用发送消息。
参数 | 类型 | 描述 |
remotePort | int | 云端应用监听的端口号 |
[TCGCustomTransChannelDelegate onConnFailed:atRemotePort:]
连接失败。
参数 | 类型 | 描述 |
remotePort | int | 云端应用监听的端口号 |
error | NSError | 失败的原因,code: -1:云端后台错误 10009:连接超时 |
[TCGCustomTransChannel onClosedAtRemotePort:]
云端主动关闭了通道。
参数 | 类型 | 描述 |
remotePort | int | 云端应用监听的端口号 |
[TCGCustomTransChannel onReceiveData:fromRemotePort:]
接收来自云端的数据。
参数 | 类型 | 描述 |
data | NSData | 数据内容 |
remotePort | int | 云端应用监听的端口号 |
调试及日志相关接口
[TCGGamePlayer setLogger:withMinLevel:]
设置日志回调接收者及过滤等级。
参数 | 类型 | 描述 |
logger | 数据内容 | |
minLevel | 云端应用监听的端口号 |
[TCGLogDelegate logWithLevel:log:]
日志打印回调接口。
参数 | 类型 | 描述 |
logLevel | 日志的等级 | |
log | NSString | 日志的内容 |
[TCGGamePlayer currentStatisReport]
返回获取当前的性能统计数据。
TCGMouseCursorTouchMode
鼠标的操控模式。
状态定义 | 说明 |
AbsoluteTouch | 鼠标跟随手指移动,单击可以单击按键 |
RelativeTouch | 手指滑动控制鼠标相对移动,轻触触发鼠标左键,长按触发按单击鼠标左键, 滑动仅触发鼠标移动 |
RelativeOnly | 触控,鼠标跟随手指移动,单击可以单击按键(鼠标左键或右键) |
TCGLogLevel
日志等级。
等级 | 说明 |
TCGLogLevelDebug | 调试信息,主要用于开发过程中打印一些运行信息 |
TCGLogLevelInfo | 粗粒度信息,输出程序运行过程中的重要信息 |
TCGLogLevelWarning | 警告,传递系统中的潜在错误信息 |
TCGLogLevelError | 错误,传递系统或应用程序中出现的各种级别的错误 |
TCGLogLevelNone | 不打印日志 |