您尚未登录

登录

推荐您使用PC浏览器访问

确定
  • 开发者中心
  • >
  • 云游戏
  • >
  • SDK参考手册
  • >
  • iOS
  • >
  • v5.1.3

iOS SDK 参考手册

iOS SDK 参考手册

HMCloudPlayer 类

方法 描述
play 开始游戏
registCloudPlayer 向海马云端注册
prepare 申请游戏
pause 暂停游戏
stop 停止游戏
setBackgroundImage 设置背景图
sendMessage 发送消息
startNetMonitor 开始网络状态监控
stopNetMonitor 停止网络状态监控
getLastUserOperationTimestamp 获取用户最后一次操作时间
getVideoLatency 获取视频帧延迟
config 配置云游戏连接信息
speedTest IDC 节点测速
idcQuery IDC 路由查询
resume 恢复云游戏
switchResolution 手动切换清晰度
confirmQueue 确认进入排队队列
sendKeyCommand 发送特定键值指令,更新用户操作时间
gameArchiveQuery 游戏存档进度查询
gameArchived 游戏是否有存档查询
updateGameUID 游戏过程中,更新UID和游戏时长
gameParamsQuery 查询游戏配置信息(目前版本仅支持清晰度查询)
setAudioMute 云游戏设置静音
getDelayInfo 获取某一秒延迟检测信息
getReservedInstance 查询是否有上次未完成的游戏实例
gameReleaseInstanceWithCid 根据 cid 立即释放实例
startLivingWithLivingId 游戏过程中,开启直播
stopLivingWithLivingId 游戏过程中,关闭直播
gainControlWithMasterCid 获取授权码,控制端同意转让控制权后调用
getLivingCapabilityStatus 获取控制权,申请端调用
getLivingCapabilityStatus 查询是否支持直播的方法,建议APP调用时机为收到第一帧回调之后
stop 停止云游戏,支持配置最小云玩存档时间
stopAndDismiss 停止云游戏带动画,支持配置最小云玩存档时间

config

配置云游戏连接信息;该方法在创建单例后第一时间调用

/**
 @param info 连接信息 AUTH / Countly/ Link
 @return 是否成功 //参数类型非法,或者已经请求过SAAS地址,均返回失败。
 */
- (BOOL) config:(NSDictionary *)info;
参数 类型 说明
info NSDictionary 连接地址信息

Info 字典中,有效 Key 含义说明如下:

参数 类型 说明
CloudGameConfigKeyAuthURL NSString SAAS AUTH请求地址
CloudGameConfigKeyLinkURL NSString SAAS WS长连接地址
CloudGameConfigKeyCountlyURL NSString 数据上报地址

registCloudPlayer

海马云进行注册

/**
 @param accessKeyID 接入商ID
 @param channelId 接入商渠道ID
 @param launchOptions AppLauchuOptions
 @return 是否正常进行注册,最终注册结果异步返回
 */
- (BOOL) registCloudPlayer:(NSString *)accessKeyID 
                 channelId:(NSString *)channelId 
                   options:(NSDictionary *)launchOptions;
参数 类型 说明
accessKeyID NSString 接入商唯一ID
channelId NSString 渠道号,由接入商配置。如果应用本身不区分渠道,可以设置为一个随机值的字符串
options NSDictionary iOS App启动选项,在 didFinishLaunching 方法中由系统传入

prepare

申请游戏

/**
 @param options 游戏参数
 @return 云游戏ViewController
 */
- (UIViewController *) prepare:(NSDictionary *)options;
参数 类型 说明
options NSDictionary 游戏信息

options 字典中,有效 Key 含义说明如下:

参数 类型 说明 选项
CloudGameOptionKeyId NSString 游戏包名称 必选
CloudGameOptionKeyOrientation NSNumber 游戏屏幕方向0-横屏 1-竖屏 必选
CloudGameOptionKeyUserId NSString 游戏客户端用户的唯一识别码,如果没有用户登陆账号,可以随机生成长度在64以内的字符串,但需要每台客户端上的账号保证唯一性 必选
CloudGameOptionKeyUserToken NSString 用来校验userId的有效性,如果userId为随机生成,UserToken也可以随机生成 必选
CloudGameOptionKeyUserType NSString 用户类型:超级账号用户传5,其他传0;默认为0 必选
CloudGameOptionKeyConfigInfo NSString 免登使用,如果不需要免登功能,传任意非空字符串 必选
CloudGameOptionKeyCToken NSString 用来校验参数的有效性 必选
CloudGameOptionKeyPriority NSNumber 用户申请游戏服务的优先级,默认写0;数值越大,优先级越高 必选
CloudGameOptionKeyPlayingTime NSNumber 用户可以玩游戏的时长,单位是ms 必选
CloudGameOptionKeyExtraId NSString 预留参数 可选
CloudGameOptionKeyArchive NSNumber 是否存档 0-否 1-是 可选
CloudGameOptionKeyAppChannel NSString 游戏渠道 可选
CloudGameOptionKeyProtoData NSString 数据透传字段 可选
CloudGameOptionKeyBitrate NSNumber 开始播放的码率,单位KB 可选
CloudGameOptionKeyIPV6Supported NSNumber 是否查询IPV6地址,0-否 1-是,默认为0 可选
CloudGameOptionKeyStasticFPSInterval NSNumber 帧数统计时长,单位:秒 可选
CloudGameOptionKeyStasticBandInterval NSNumber 流量统计时长,单位:秒 可选
CloudGameOptionKeyStasticMaxFramesCount NSNumber 流量统计周期内,最大的帧的数量 可选
CloudGameOptionKeyStasticDecodeInterval NSNumber 解码耗时统计时长,单位:秒 可选
CloudGameOptionKeyCid NSString 继续未完成游戏实例时(必选) 可选
CloudGameOptionKeyShowSize NSString 自定义展示尺寸 可选
CloudGameOptionKeyUserType NSString 用户类型 可选
CloudGameOptionKeyIPV6Supported NSString 是否支持IPV6网络,即是否需要SDK查询IPV4地址 可选
CloudGameOptionKeyCidCacheInterval NSString 缓存Cid超时时间,单位为秒,默认2小时 可选
CloudGameOptionKeyStreamType CloudCoreStreamingType 播流类型rtmp,webrtc 可选

pause

暂停游戏

- (void) pause;

stop

停止游戏

- (void) stop;

getVideoLatency

获取视频帧网络延迟

/**
 @return 视频延迟,单位ms
 */
- (NSInteger) getVideoLatency;
返回参数 类型 说明
latency NSInteger 获取视频帧网络延迟,单位ms

setBackgroundImage

设置背景图

- (void) setBackgroundImage:(UIImage *)bgImage;
参数 类型 说明
bgImage UIImage 要显示的背景图

sendMessage

发送消息给云游戏的接口

/**
 @param message 消息内容
 */
- (void) sendMessage:(NSString *)message;
参数 类型 说明
message NSString 需要发送的消息

startNetMonitor

开始网络状态监控

/**
 @param block 回调通知
 */
- (void) startNetMonitor:(void (^)(CloudCorePlayerNetStatus status))block;
参数名称 类型 说明
block Block 网络状态变更回调
NetStatusUnknown : 未知
NetStatusNotReachable : 不可达
NetStatusReachableViaWWAN : 移动网络可达
NetStatusReachableViaWiFi : Wi-Fi网络可达

stopNetMonitor

停止网络状态监控

- (void) stopNetMonitor;

getLastUserOperationTimestamp

获取用户最后一次操作时间

/**
@return 用户最后操作时间戳,单位ms
*/
- (long long) getLastUserOperationTimestamp;
返回参数 参数说明
Long 默认返回 0,代表用户没有操作过实例,否则返回相应时间戳

speedTest

IDC节点测速,支持 IPV6

/**

 @param seconds 最大测速时长,单位:秒
 @param success 测速成功回调
 @param fail 测速失败回调
 @return 是否开始测速
 */
- (BOOL) speedTest:(NSInteger)seconds 
           success:(void (^)(int rst))success 
              fail:(void (^)(NSString *errorCode))fail;

/**

@param seconds 最大测速时长,单位:秒
@param ipv6Supported 是否支持IPV6,即:是否需要查询IPV4地址
@param success 测速成功回调
@param fail 测速失败回调
@return 是否开始测速
*/
- (BOOL) speedTest:(NSInteger)seconds 
     ipv6Supported:(BOOL)ipv6Supported 
           success:(void (^)(int rst))success 
              fail:(void (^)(NSString *errorCode))fail;
请求参数 类型 说明
ipv6Supported BOOL 是否支持IPV6,即:是否需要查询IPV4地址
返回参数 类型 说明 选项
fail Block 测速失败后的回调 可选
success Block 测速成功后的回调,单位KB/s 可选

idcQuery

IDC路由查询,是否支持 IPV6

/**
 IDC路由查询

 @param success 查询成功回调
 @param fail 查询失败回调
 @return 是否开始查询
 */
- (BOOL) idcQuery:(void (^)(NSString *url, NSString *ipAddress))success
             fail:(void (^)(NSString *errorCode))fail;

/**
IDC路由查询

@param ipv6Supported 是否支持IPV6,即:是否需要查询IPV4地址
@param success 查询成功回调
@param fail 查询失败回调
@return 是否开始查询
*/
- (BOOL) idcQuery:(BOOL)ipv6Supported 
          success:(void (^)(NSString *url, NSString *ipAddress))success 
             fail:(void (^)(NSString *errorCode))fail;
请求参数 类型 说明
ipv6Supported BOOL 是否支持IPV6,即:是否需要查询IPV4地址
参数 类型 说明 选项
fail Block 查询失败后的回调 可选
success Block 查询成功后的回调
返回测速文件地址、路由IP
可选

play

开始云游戏

- (void) play;

resume

恢复云游戏

- (void) resume:(NSInteger)playingTime;
参数 类型 说明
playingTime NSInteger 恢复后的游戏时长,单位:ms

switchResolution

手动切换云游戏清晰度

/**
 @param resolutionId 目标清晰度ID
 */
- (void) switchResolution:(NSInteger)resolutionId;
参数名称 类型 说明 选项
resulotionId NSString 清晰度ID 必选

confirmQueue

进入排队队列

- (void) confirmQueue;

sendKeyCommand

发送特定键值指令,更新用户操作时间

/**
 @param cmd 键值
 @return 是否发送
 */
- (BOOL) sendKeyCommand:(HMCloudPlayerKeyCommand)cmd;

/**
发送特定键值指令

@param cmd 键值
@param updateUserOperationTime  是否更新用户操作时间
@return 是否发送
*/
- (BOOL) sendKeyCommand:(HMCloudPlayerKeyCommand)cmd 
updateUserOperationTime:(BOOL)updateUserOperationTime;
参数 类型 说明
cmd HMCloudPlayerKeyCommand 要发送的按键
updateUserOperationTime updateUserOperationTime 是否更新用户最后操作时间
枚举值 说明
CloudPlayerKeyCommandBackGame 在非游戏界面发送该指令,返回游戏
CloudPlayerKeyCommandEmptyTouch 发送空操作指令,重置用户无操作定时器

gameArchiveQuery

查询游戏存档进度查询

/**
 @param userId 必填,不能为NULL
 @param userToken 必填,不能为NULL
 @param pkgName 必填,不能为NULL
 @param appChannel 选填,可为NULL
 @param success 查询成功的回调
 @param fail 查询失败的回调
 @return 是否开始查询
 */
- (BOOL) gameArchiveQuery:(NSString *)userId 
                userToken:(NSString *)userToken
                  pkgName:(NSString *)pkgName
               appChannel:(NSString *)appChannel
                  success:(void (^)(BOOL finished))success
                     fail:(void (^)(NSString *errorCode))fail;
参数 类型 说明 选项
userId NSString 游戏客户端用户的唯一识别码,如果没有用户登陆账号,
可以随机生成长度在64以内的字符串,但需要每台客户端上的账号保证唯一性
必选
userToken NSString 用来校验userId的有效性,如果userId为随机生成,UserToken也可以随机生成 必选
pkgName NSString 游戏包名称 必选
appChannel NSString 游戏渠道 可选
success Block 查询成功后的回调
finished - YES:存档完成; NO:存档中
可选
fail Block 查询失败后的回调 可选

gameArchived

游戏是否有存档查询

/**
 @param userId 必填,不能为NULL
 @param userToken 必填,不能为NULL
 @param pkgName 必填,不能为NULL
 @param appChannel 选填,可为NULL
 @param success 查询成功的回调
 @param fail 查询失败的回调
 @return 是否开始查询
 */
- (BOOL) gameArchived:(NSString *)userId
            userToken:(NSString *)userToken
              pkgName:(NSString *)pkgName
           appChannel:(NSString *)appChannel
              success:(void (^)(BOOL archived))success
                 fail:(void (^)(NSString *errorCode))fail;
参数 类型 说明 选项
userId NSString 游戏客户端用户的唯一识别码,如果没有用户登陆账号,
可以随机生成长度在64以内的字符串,但需要每台客户端上的账号保证唯一性
必选
userToken NSString 用来校验userId的有效性,如果userId为随机生成,UserToken也可以随机生成 必选
pkgName NSString 游戏包名称 必选
appChannel NSString 游戏渠道 可选
success Block 查询成功后的回调
finished - YES:存档完成; NO:存档中
可选
fail Block 查询失败后的回调 可选

updateGameUID

游戏过程中,更新UID和游戏时长

/**
 @param userId 必填,不能为NULL
 @param userToken 必填,不能为NULL
 @param ctoken 必填,不能为NULL
 @param playingTime 必填,不能小于0,单位: ms
 @param tip 选填
 @param protoData 选填
 @param success 更新成功回调
 @param fail 更新失败回调
 @return 是否开始更新
 */
- (BOOL) updateGameUID:(NSString *)userId
             userToken:(NSString *)userToken
                ctoken:(NSString *)ctoken
       playingTime:(NSInteger)playingTime
                   tip:(NSString *)tip
             protoData:(NSString *)protoData
               success:(void (^)(BOOL successed))success
                  fail:(void (^)(NSString *errorCode))fail;
参数 类型 说明 选项
userId NSString 游戏客户端用户的唯一识别码,如果没有用户登陆账号,
可以随机生成长度在64以内的字符串,但需要每台客户端上的账号保证唯一性
必选
userToken NSString 用来校验userId的有效性,如果userId为随机生成,UserToken也可以随机生成 必选
ctoken NSString 用来校验参数的有效性 必选
playingTime NSNumber 游戏时长,单位:ms 必选
tip NSString 游戏时长更新提示话术 可选
protoData NSString 数据透传字段 可选
success Block 更新成功后的回调
successed - YES:更新成功 NO:更新失败
必选
fail Block 更新失败后的回调 必选

gameParamsQuery

查询游戏配置信息(目前版本仅支持清晰度查询)

/**
 @param pkgName 必填,不能为NULL
 @param appChannel 选填,可为NULL
 @param streamingType 必填
 @param success 游戏配置的清晰度列表
 @param fail 查询失败回调
 @return 是否开始查询
 */
- (BOOL) gameParamsQuery:(NSString *)pkgName
              appChannel:(NSString *)appChannel
  streamingType:(CloudCoreStreamingType)streamingType
                 success:(void (^)(NSArray<HMCloudPlayerResolution *> *))success
                    fail:(void (^)(NSString *errorCode))fail;
参数 类型 说明 选项
pkgName NSString 游戏包名称 必选
appChannel NSString 游戏渠道 可选
streamingType NSString 流类型 必选
success Block 查询成功后的回调
返回游戏配置的清晰度列表
可选
fail Block 查询失败后的回调 可选

setAudioMute

云游戏提供静音接口

/**
 @param mute 静音
 */
- (void) setAudioMute:(BOOL)mute;
参数 类型 说明 选项
mute BOOL True - 静音 ;False - 取消静音 必选

getDelayInfo

获取某一秒延迟检测信息

/**
 @return 包含延迟信息的HMDelayInfoModel
 */
- (HMDelayInfoModel *) getDelayInfo;
返回参数名称 类型 说明
HMDelayInfoModel HMDelayInfoModel HMDelayInfoModel 属性的含义
collectTime:收集延迟信息时的时间戳,单位:ms
netDelayTime:网络延迟时间,单位:ms
decodeDelayTime:解码耗时,单位:ms
renderDelayTime:渲染耗时,单位:ms
aFrameDelayTime:单帧耗时,单位:ms
nowDelayTime:采集某一帧到当前时间的耗时,单位:ms
frameNowSize:帧大小
showFps:展示帧率
gameFps:推流帧率
bitRate:码率
pingpongCostTime:pingpong耗时,单位:ms

getReservedInstance

查询是否有上次未完成的游戏实例

/**
 @param options 游戏参数  {@"CloudGameOptionKeyUserId":@"...", @"CloudGameOptionKeyUserToken":"...",}
 @param reservedIncetance 查询驻留机回调方法,包含驻留机数组
 */
- (void) getReservedInstance:(NSDictionary *)options 
           ReservedIncetance:(HMReservedIncetanceCallback)reservedIncetance;

gameReleaseInstanceWithCid

根据cid立即释放实例

/**
 @param cid 必填,不能为NULL
 @param cToken 必填,不能为NULL,并且必须与之前播放的实例传入的cToken一致
 @param userId 必填,不能为NULL
 @param userToken 必填,不能为NULL
 @param pkgName 必填,不能为NULL
 @param appChannel 选填,可为NULL
 @param success 释放成功回调
 @param fail 释放失败回调
 @return 是否开始释放实例
*/
- (BOOL)gameReleaseInstanceWithCid:(NSString *)cid 
                            Ctoken:(NSString *)cToken 
                            UserId:(NSString *)userId 
                         UserToken:(NSString *)userToken 
                           PkgName:(NSString *)pkgName 
                        AppChannel:(NSString *)appChannel 
                           Success:(void(^)(BOOL released))success 
                              Fail:(void (^)(NSString *errorCode))fail;
参数 类型 说明
cid NSString 要释放的cid
cToken NSString 用来校验参数的有效性
userId NSString 用户登录信息 userId
userToken NSString 用户登录信息 userToken
pkgName NSString 游戏包名称
appChannel NSString 如果存在多款游戏同包名的情况,可以通过appChannel区分。如果不存在则可以忽略。
success Block 释放成功回调
fail Block 释放失败回调

startLivingWithLivingId

游戏过程中,开启直播

/**
 @param livingId 直播唯一标识,必填,不能为NULL
 @param pushStreamUrl 第三方推流地址,必填,不能为NULL
 @return 是否开始开启直播
 */
- (BOOL) startLivingWithLivingId:(NSString *)livingId 
                   pushStreamUrl:(NSString *)pushStreamUrl;
参数 类型 说明
livingId NSString 直播ID
livingUrl NSString 直播地址

stopLivingWithLivingId

游戏过程中,关闭直播

/**
 @param livingId 直播间ID,必填,不能为NULL
 @return 是否开始结束直播
 */
- (BOOL) stopLivingWithLivingId:(NSString *)livingId;
参数 类型 说明
livingId NSString 直播ID

getAuthCode

获取授权码,控制端同意转让控制权后调用

/**
 @return 是否开始获取授权码
 */
- (BOOL) getAuthCode;

gainControlWithMasterCid

获取控制权,申请端调用

/**
 @param cid 控制端cid,必填,不能为NULL
 @param authCode 授权码,必填,不能为NULL
 @return 是否开始获取控制权
 */
- (BOOL) gainControlWithMasterCid:(NSString *)cid 
                         authCode:(NSString *)authCode 
                        extraInfo:(NSString *)extraInfo;
参数 类型 说明
cid NSString 控制端cid
authCode NSString 授权码

getLivingCapabilityStatus

查询是否支持直播的方法,建议APP调用时机为收到第一帧回调之后

/**
 @return 是否支持直播枚举结果
 */
- (ELivingCapabilityStatus) getLivingCapabilityStatus;
枚举返回值类型 返回值
ELivingCapabilityStatus LivingUnknown
LivingUnSupported 不支持直播
LivingSupported 支持直播

stop

停止云游戏,支持配置最小云玩存档时间

/**
 停止云游戏

 @param seconds 存档时长,必填 单位:秒
 */
- (void) stop:(int)seconds;

stopAndDismiss

停止云游戏带动画,支持配置最小云玩存档时间

/**
 停止云游戏带动画

 @param archiveMinSeconds 存档时长,必填 单位:秒
 */
- (void) stopAndDismiss:(BOOL)animated archiveMinSeconds:(int)seconds;
×

本篇文章对你是否有帮助?

更多建议

请输入您的建议