腾讯云云游戏iOS SDK 接口_音视频解决方案_同尘科技

云游戏 4年前 (2021-12-14) 浏览 92

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折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?