腾讯云云游戏iOS SDK 接口_音视频解决方案_同尘科技
iOS SDK 接口概览
生命周期相关接口
接口名称 | 接口描述 |
initWithParams | SDK 初始化 |
startGameWithRemoteSession | 启动云游戏 |
stopGame | 停止云游戏 |
TCGGamePlayerDelegate | 生命周期回调 |
音视频控制接口
接口名称 | 接口描述 |
pauseResumeGame | 暂停/恢复画面传输 |
setStreamBitrateMix | 设置建议的帧率码率 |
setVolumeScale | 设置游戏音频 PCM 增益大小,默认1.0 |
videoView | 获取游戏画面渲染的图层 |
setVideoViewEnablePinch | 是否允许双指缩放/拖动游戏图层 |
setVideoViewInsets | 设置缩放时画面边框的偏移大小,这能让游戏画面划出手机边框。 |
onVideoSizeChanged | 视频图像宽高发生变化 |
onVideoOrientationChanged | (手游)视频画面的朝向发生改变,进入游戏前也会回调。 |
游戏操控相关接口
接口名称 | 接口描述 |
gameController | 获取游戏操控辅助类 |
initWithFrame | 创建鼠标视图(继承 UIView),支持将手指单击事件转换为 PC 上的鼠标操作 |
setCursorTouchMode | 设置鼠标的操控模式 |
setCursorIsShow | 设置鼠标是否可见,配合 onCursorVisibleChanged: 回调一起使用 |
setCursorImage | 更新鼠标的图标,配合 onCursorImageUpdated:frame: 回调一起使用 |
setCursorSensitive | 设置鼠标相对移动时的灵敏度 |
setClickTypeIsLeft | 设置鼠标触发单击的事件 |
moveCursorWithDiffX | 以接口的方式移动鼠标指针 |
initWithFrame | 创建一个虚拟按键视图(继承 UIView),支持将手指单击事件转换为键盘/手柄按键事件 |
showKeyGamepad | 加载虚拟按键布局并生成按键,虚拟按键配置文件与 Android SDK、JS SDK 通用 |
needConnected | 查询当前的按键布局是否需要主动通知云端,返回 YES 表示时需调用 enableVirtualGamepad 通知云端启用虚拟手柄。 |
initWithFrame | (手游)创建云端触控视图(继承 UIView),支持将手指单击事件传递到云端手机上 |
onCursorVisibleChanged | 设置云端鼠标是否可见 |
onCursorImageUpdated | 设置云端鼠标图片 |
clickKeyboard | 发送键盘事件,推荐使用 TCGVKeyGamepad |
clickGamepadKey | 发送游戏手柄按键事件,推荐使用 TCGVKeyGamepad |
turnJoyStickX | 转动游戏手柄的(左/右)摇杆,推荐使用 TCGVKeyGamepad |
enableVirtualGamepad | 通知云端启用虚拟游戏手柄 |
resetRemoteKeycode | 清空云端的按键,用于处理键盘卡键的异常状态 |
remoteMobileBackClick | (手游) 触发云端的返回动作,触发云端系统的物理返回键 |
数据通道交互接口
接口名称 | 接口描述 |
openCustomTransChannel | 创建一条数据通道 |
sendData | 给云端 UDP 端口发送数据 |
close | 关闭数据通道 |
onConnSuccessAtRemotePort | 连接成功,可以通过数据通道给云端应用发送消息 |
onConnFailed | 连接失败 |
onReceiveData | 接收来自云端的数据 |
调试及日志相关接口
接口名称 | 接口描述 |
setLogger | 设置日志回调接收者及过滤等级 |
logWithLevel | 日志打印回调接口 |
currentStatisReport | 返回获取当前的性能统计数据 |
TCGMouseCursorTouchMode | 鼠标的操控模式 |
TCGLogLevel | 日志等级 |
生命周期相关接口
[TCGGamePlayer initWithParams:andDelegate:]
SDK 初始化。接口立即返回,异步执行初始化通过回调通知结果。
参数 | 类型 | 描述 |
params | NSDictionary | 选填,预留暂未启用 |
listener | TCGGamePlayerDelegate | 生命周期回调 |
[TCGGamePlayer startGameWithRemoteSession:error:]
启动云游戏。
参数 | 类型 | 描述 |
remoteSession | NSString | Server Session,需从云 API 获取 |
[TCGGamePlayer stopGame]
停止云游戏。
TCGGamePlayerDelegate
TCGGamePlayer 生命周期回调。
接口名称 | 接口描述 |
[TCGGamePlayerDelegate onInitSuccess:] | SDK 初始化成功回调 |
[TCGGamePlayerDelegate onInitFailure:msg:] | 初始化失败 |
[TCGGamePlayerDelegate onConnectionFailure:msg:] | 连接失败回调 |
[TCGGamePlayerDelegate onVideoShow] | 首帧绘制时机 |
[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 | 视频画面的朝向 |
游戏操控相关接口
注意 所有按键相关接口必须在 [TCGGamePlayerDelegate onVideoShow] 回调发生之后调用才生效。
[TCGGamePlayer gameController]
获取游戏操控辅助类。
[TCGVirtualMouseCursor initWithFrame:controller:]
创建鼠标视图(继承 UIView),支持将手指单击事件转换为 PC 上的鼠标操作。说明 视图为透明视图,使用时添加为 videoView 的子视图,大小与 videoView 相同。
参数 | 类型 | 描述 |
frame | CGRect | 视图的大小与位置 |
controller | TCGGameController | 游戏操控辅助类 |
[TCGVirtualMouseCursor setCursorTouchMode:]
设置鼠标的操控模式。
参数 | 类型 | 描述 |
mode | TCGMouseCursorTouchMode | 鼠标的操控模式 |
[TCGVirtualMouseCursor setCursorIsShow:]
设置鼠标是否可见,配合 onCursorVisibleChanged: 回调一起使用。
参数 | 类型 | 描述 |
isShow | BOOL | YES 表示显示,NO 表示隐藏 |
[TCGVirtualMouseCursor setCursorImage:andRemoteFrame:]
更新鼠标的图标,配合 onCursorImageUpdated:frame: 回调一起使用。
参数 | 类型 | 描述 |
image | UIImage | 鼠标指针图标 |
imageFrame | CGRect | view 的大小位置,云端主动下发 |
[TCGVirtualMouseCursor setCursorSensitive:]
设置鼠标相对移动时的灵敏度,TCGMouseCursorTouchMode(RelativeTouch、RelativeOnly) 下有效。
参数 | 类型 | 描述 |
sensitive | CGFloat | 默认1.0与手动滑动的幅度相同 |
[TCGVirtualMouseCursor setClickTypeIsLeft:]
设置鼠标触发单击的事件,TCGMouseCursorTouchMode(AbsoluteTouch、RelativeTouch) 下有效。
参数 | 类型 | 描述 |
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 | TCGGameController | 游戏操控辅助类 |
[TCGVKeyGamepad showKeyGamepad:]
加载虚拟按键布局并生成按键,虚拟按键配置文件与 Android SDK、JS SDK 通用。
参数 | 类型 | 描述 |
cfg | NSString | JSON 格式的配置内容 |
[TCGVKeyGamepad needConnected]
查询当前的按键布局是否需要主动通知云端,返回 YES 表示时需调用 enableVirtualGamepad 通知云端启用虚拟手柄。
[TCGRemoteTouchScreen initWithFrame:controller:]
(手游)创建云端触控视图(继承 UIView),支持将手指单击事件传递到云端手机上。注意 视图为透明视图,使用时添加为 videoView 的子视图,大小与 videoView 相同。
参数 | 类型 | 描述 |
frame | CGRect | 视图的大小与位置 |
controller | TCGGameController | 游戏操控辅助类 |
[TCGGameController onCursorVisibleChanged:]
设置云端鼠标是否可见
参数 | 类型 | 描述 |
isVisble | BOOL | YES 表示云端鼠标可见,NO 表示云端鼠标不可见 |
[TCGGameController onCursorImageUpdated:frame:]
设置云端鼠标图片。
参数 | 类型 | 描述 |
image | UIImage | 鼠标指针图标 |
imageFrame | CGRect | view的大小位置,云端主动下发 |
[TCGGameController clickKeyboard:isDown:]
发送键盘事件,推荐使用 TCGVKeyGamepad。
参数 | 类型 | 描述 |
keycode | int | 按键值 |
isDown | BOOL | true 表示按下,false 表示抬起 |
[TCGGameController clickGamepadKey:isDown:]
发送游戏手柄按键事件,推荐使用 TCGVKeyGamepad。
参数 | 类型 | 描述 |
keycode | int | 按键值 |
isDown | BOOL | YES 表示发送按下消息,NO 表示发送抬起消息 |
[TCGGameController turnJoyStickX:y:isLeft:]
转动游戏手柄的(左/右)摇杆,推荐使用 TCGVKeyGamepad。
参数 | 类型 | 描述 |
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 | TCGLogDelegate | 数据内容 |
minLevel | TCGLogLevel | 云端应用监听的端口号 |
[TCGLogDelegate logWithLevel:log:]
日志打印回调接口。
参数 | 类型 | 描述 |
logLevel | TCGLogLevel | 日志的等级 |
log | NSString | 日志的内容 |
[TCGGamePlayer currentStatisReport]
返回获取当前的性能统计数据。
TCGMouseCursorTouchMode
鼠标的操控模式。
状态定义 | 说明 |
AbsoluteTouch | 鼠标跟随手指移动,单击可以单击按键 |
RelativeTouch | 手指滑动控制鼠标相对移动,轻触触发鼠标左键,长按触发按单击鼠标左键, 滑动仅触发鼠标移动 |
RelativeOnly | 触控,鼠标跟随手指移动,单击可以单击按键(鼠标左键或右键) |
TCGLogLevel
日志等级。
等级 | 说明 |
TCGLogLevelDebug | 调试信息,主要用于开发过程中打印一些运行信息 |
TCGLogLevelInfo | 粗粒度信息,输出程序运行过程中的重要信息 |
TCGLogLevelWarning | 警告,传递系统中的潜在错误信息 |
TCGLogLevelError | 错误,传递系统或应用程序中出现的各种级别的错误 |
TCGLogLevelNone | 不打印日志 |
对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?