starksdkRuntime
宿主枚举
入口枚举
SC的运行环境
Apk的版本环境
保存宿主环境变量
获取query字段,即小程序的启动参数,可能为空,使用时需判空
获取小程序启动时的参数,里面的参数可能为空,使用时需判空; 可以在StarkSDK.init()之后调用,确保得到非空值
加速器数据回调
接入头条抖音能力的接口,在非宿主环境下,会对一些回调进行模拟
如果调用的函数在宿主版本不被支持,则会抛出异常
SDK版本号
游戏版本号,通过该接口替换Application.version获得正确的版本号信息
游戏发布版本号,发布版本时发布工具中指定的版本号
设置Container初始化成功的回调。获取宿主及入口信息
需要在调用其他api之前调用
非Container下不会有此回调
version : 1.0.0
初始化完成的回调.
获取录屏相关接口
StarkGameRecorder
提前向用户发出授权请求。该方法不会调用对应接口,只会弹框咨询用户是否授权或者获取用户信息。如果用户之前有授权,该接口直接返回成功,不会跟用户产生交互。
需要预授权的 scope,详见 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/user-information/authorization/authorization/
接口调用成功的回调函数
接口调用失败的回调函数
需要白名单
获取 RtcEngine 实例(包含音视频应用程序调用的主要方法的接口类实例),应当只调用一次。第二次调用getRtcEngine 时,实际获取的还是上次那个
StarkRTCManager
广告相关接口
StarkAdManager
网络请求接口
StarkAdManager
控制sdk中的Log级别
账号模块
获取container sdk 版本号 like "1.0.0"
关注抖音号
需要在开发者平台-设置中绑定抖音号
完成打开抖音号的回调。涉及用户信息,无法获取用户是否关注了抖音号的状态
打开抖音号失败的回调。errCode:
当关注抖音号失败,是否显示Toast弹窗提示,默认显示
CODE_ERROR = -1
CODE_NOT_SUPPORT = -2
CODE_NOT_LOGIN = -3
CODE_NO_ACTIVITY = -4
CODE_UID_ERROR = -5
创建快捷方式
创建快捷方式回调,参数为是否成功,true表示成功,false表示失败
当创建失败,是否显示Toast弹窗提示,默认显示
快捷方式是否已经创建
是否存在的回调,参数表示是否已创建,true表示已创建,false表示未创建
可以配置震动周期的手机震动接口,单位ms
震动周期 like long[] pattern = {0, 100, 1000, 300}; 传入null则取消震动
重复次数,为-1则不重复
注意:WebGL平台下,只有两种震动:长和短。
pattern数组参数只能传入一个数值,传入小于1000则为短震动,否则为长震动。
不支持取消和重复。即repeat参数无效。
>
获取分享相关接口
是否已关注抖音号
是否关注的回调,参数表示是否已关注,true表示已关注,false表示未关注
是否在小程序开发者后台绑定了抖音号
是否绑定的回调,参数表示是否已绑定,true表示已绑定,false表示未绑定
获取收藏引导接口
接入sdk的debugpanel面板,注册一些debug命令的回调函数
支付服务接口
自定义分析数据上报接口,调用后,会将数据上报到小程序开发者平台,开发者可以在小程序开发者平台中查看上报数据。使用前,需要在小程序管理后台事件中新建事件,配置好事件名与字段。
可参考文档 https://microapp.bytedance.com/docs/zh-CN/mini-app/data/advanced-analysis/events
事件名
上报的数据,默认为null key : 配置中的字段名. value(number|string|boolean) : 上报的数据
保存游戏数据接口,所有游戏数据保存上限50M
数据名
可序列化的数据(存档类需标记为Serializable)[见以下的例子]
保存成功返回true,否则返回false
[Serializable]
class SaveData
{
public int IntValue = 99;
private float FloatValue = 1.0f;
public string StrValue = "My String";
public Dictionary<String,bool> map;
public List<String> listStr;
}
SaveData sd = new SaveData();
sd.xx = yyy;
bool ret = StarkSDK.API.Save<SaveData>(sd);
加载游戏数据接口,返回数据类型需为Serializable
数据名
SaveData loaded = StarkSDK.API.LoadSaving<SaveData>();
删除游戏数据接口
数据名
StarkSDK.API.DeleteSaving<SaveData>();
删除所有游戏数据
获取游戏数据磁盘总大小
数据名
获取游戏跳转模块
获取视频播放接口
StarkVideoManager
打开客服聊天页
打开客服聊天页回调,参数为是否成功,true表示成功,false表示失败
跳转到抖音视频
抖音视频videoId,复制抖音视频链接到浏览器即可得到
跳转结果,参数为是否成功,true表示成功,false表示失败
退出程序
是否显示退出提示对话框,true为在退出前显示二次提示对话框架,false则不显示对话框而直接退出程序
接口调用成功状态回调,true表示成功,false表示失败
获取系统信息。类似小程序开发平台 tt.getSystemInfoSync 接口返回值。
https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/device/system-information/tt-get-system-info-sync/
StarkSystemInfo 当前系统相关信息
开始监听加速度数据
加速度数据回调事件监听
接口调用状态回调,(bool success, string errMsg) => {}
停止监听加速度数据
接口调用状态回调,(bool success, string errMsg) => {}
获取键盘管理器(仅WebGL支持)
StarkKeyboard
创建mock模块
获取游戏记录的Mock
获取广告的Mock
获取分享的Mock
收藏模块的Mock
获取账号模块的Mock
获取账号模块的Mock
记录已判断支持的函数
记录已判断不被支持的函数
Check if UNBridge android sdk is available
Validate the native method before calling it
非Container环境下,都返回 true
Replacement for UNbridge.Call
native method object to be called
Replacement for UNBridge.Call with callback
native method object to be called
callback object passed in
不使用Loom调用一个Android方法
目标接口
参数数据
同步Call通讯接口
消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息
目标接口
参数
Replacement for UNBridge.Call with callback
native method object to be called
callback object passed in
Replacement for UNBridge.Call with callback with timeout
native method object to be called
callback object passed in
callback timeout
Replacemenet for UNBridge.CallSync, return primitive values;
This API only support basic types: int, long, float, double, bool, string;
Default(T) will return if return type not supported!
Define Android code as following:
@UNBridgeMethod(sync = true)
public long testLong() { return 21474836470L; }
Only valide for basic types: int, long, float, double, bool, string
Native method object
return value
Convenient method to register c# API for Android
关注抖音的回调
data 内容 :
{
"errCode" : 0, 成功时为0
“errMsg” : "", errCode不为0时,描述错误原因
“hasFollowed” : true?false 关注抖音号结果
}
errCode:
CODE_ERROR = -1
CODE_NOT_SUPPORT = -2
CODE_NOT_LOGIN = -3
CODE_NO_ACTIVITY = -4
CODE_UID_ERROR = -5
关注回调,参数为是否关注
错误回调,参数为错误码 和 错误描述
创建快捷方式回调
data 内容 :
{
"errCode" : 0, 成功时为0
“errMsg” : "", errCode不为0时,描述错误原因
}
errCode:
1 : 取消
创建回调,参数为是否成功
是否可以使用
打印到文件
初始化打印文件的变量
结束打印
文件名称
是否需要打印栈信息
是否在StarkContainer真机环境下
是否显示调试Toast提示。当调用StarkSDK相关接口后,获得函数执行状态(主要是失败状态)的反馈。
设置为true则在调用StarkSDK相关接口后,会自动弹出Toast提示。默认不显示。【建议只在调试状态下开启】
Stark_UnitySDK初始化函数
error code :
0 , 无错误
1, stark unity sdk 版本不支持
2,unity engine 版本不被支持
判断是否运行在StarkContainer
StarkSDK运行再错误的环境中
Hostid 转换
对应关系 https://bytedance.feishu.cn/sheets/shtcn959RKBOao1tFJAwEBTI1lf
HostEnum
从Java层传输来的数据和C#层的UC运行环境之间的转换
从Java层传输来的数据和C#层版本类型枚举做转换
当游戏第一次启动以及被其他游戏拉起,或者再次拉起时调用外部摄入的回调方法,并立即写入文件
将Json解析成互跳信息对象
The android bridge of the Container SDK.
Make sure the UnityCache folder disk occupation is under the limit
Will be checked consquently since the Addressable or the developer might overwrite it.
单例抽象类
在竖屏正方向下的安全区域
安全区域左上角横坐标
安全区域右下角横坐标
安全区域左上角纵坐标
安全区域右下角纵坐标
安全区域的宽度,单位逻辑像素
安全区域的高度,单位逻辑像素
机型性能评分
屏幕方向
竖屏
横屏
系统信息
当前宿主名,如 Douyin
当前宿主版本号,如 19.2.0
StarkContainer 底层框架版本号
,如 Apple、samsung
手机设备制造商
手机品牌,如 iPhone 12、SM-G9880
操作系统,如 ios、android
系统版本,如 iOS 15.1.1、Android 11
系统语言,如 zh_CN
客户端基础库版本
设备像素比
屏幕高度,单位逻辑像素
屏幕宽度,单位逻辑像素
状态栏的高度
在竖屏正方向下的安全区域
机型性能评分
性能数组实体
判断是否运行在UC环境
埋点上报到app_log
TODO : 分离 StarkInnelAPI
埋点上报到app_log
TODO : 分离 StarkInnelAPI
读取Java侧UnityContainerConfigCenter中的配置字段,目前返回的泛型数据只支持基本类型
bool
double
float
Int32
Int64
string
配置字段的类型
配置字段的key
当该配置字段不存在时返回该值
只埋点上报性能信息,由于性能信息一部分来自Java所以单独列出一个方法
告知Java侧这时候可以手机CPU信息了
新的上报游戏性能信息的接口
Custo onCommand method register
Default onCommand register
callback from onCommand panel
Default onCommand
获取到当前的性能数据
更新需要上报的数据
当前统计到的最新的数据
计算平均表现
结果值
获取用户存档空间
判断当前SC版本是否大于等于给定的版本
主版本号
中间版本号
获取小游戏Settings, 适用版本 >= 5.31.0
获取的数据key
是否使用缓存
获取应用信息:schema、appid、接口黑白名单、应用版本、应用 pkg 类型、应用技术形态, 适用版本 > 5.32.0
是否需要session字段
游戏版本号是从AndroidManifest.xml解析出来
游戏发布版本号,发布版本时发布工具中指定的版本号
根据CI填写
Container的Version
RTC模块
登录
检查当前session是否有效
获取当前的用户信息
判断用户是否已经授权给当前游戏读取个人信息
该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回是否已经授权
如果调用宿主代码失败则会调用onGetUserInfoAuthFail
主动打开获取用户信息的授权界面
该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回最新的授权状态
如果调用宿主代码失败则会调用onGetUserInfoAuthFail
用户在实名认证弹窗完成实名认证后回调
必须在游戏初始化阶段就调用
广告管理模块,请求,播放激励视屏广告
其他类型广告待实现
设置激励视频广告的回调。获取完整的回调信息,一般处理都可以通过ShowVideoAd完成,评估必要性
已播放时长.
video ad state.
Usually only state of `VideoAdState.Loaded` means it is properly loaded.
根据广告错误判断是否需要retry
广告是否加载完成
初始化
请求加载激励视频广告
加载广告,并在某些错误情况下进行有限次重试
异步请求并显示广告
未进行视频裁剪
视频裁剪中
视频裁剪完成
视频裁剪失败
开始录屏回调
录屏完成回调
录屏失败回调
录屏超时回调
视频裁剪成功回调
视频裁剪失败回调
视频分享成功回调
视频分享失败回调
视频分享取消回调
视频录制状态
视频裁剪状态
视频分享状态
录制完成后的视频路径
裁剪后的视频路径
自助配乐
录屏开启状态,-1未知,0未开启,1开启。
设置录屏是否开启
获取录屏开启状态
返回true则表示录屏开启,返回false为录屏关闭
开始录屏
是否录制声音,默认为录制声音
最大录制时长,单位 s。小于等于 0 则无限制。默认为10分钟
视频录制开始回调
视频录制失败回调
录屏超时回调
函数调用状态,调用成功返回true,否则返回false
WebGL开始录屏
视频录制开始回调
视频录制失败回调
获取录屏时长
返回录屏时长,单位 ms
视频裁剪
需要裁剪的时间片段,允许为null或空列表,如果列表为null或空,
则默认使用RecordClip调用记录的时间片段,会对重合的时间进行合并,然后进行视频裁剪。
如果不为空,则按传入的裁剪片段进行视频裁剪,时间片段重叠不会进行合并。主要用于乱序拼接。
函数调用状态,调用成功返回true,否则返回false
分享视频
获取录屏状态
VideoRecordState
获取视频分享状态
VideoShareState
构造函数
显示视频
获取上一次的拉起信息
判断自己本身是否被其他游戏拉起
初始化
跳转至某个游戏
保存导航信息
调用从互调返回时的回调函数
游戏id
游玩时间
额外数据
从服务器拉取互跳信息
保存一个互跳信息
游戏id
自定义的query值
额外数据
视频链接
这条互跳信息的来源
保存自定义信息,用于传递给上一个拉起自己的游戏
监听自己本身是否被其他游戏拉起
Dic的扩展方法
当游戏Activity#OnResume的方法被调用时调用该C#方法
OK
禁止录屏
录屏SDK未初始化
视频文件不存在
开始录屏错误
视频裁剪失败
视频分享失败
视频分享取消
视频文件异常
广告模块未初始化
广告ID为空
广告模块异常
广告加载失败
加速器数据回调
RTC连麦接口模块
rtc 连麦 接口文档:https://bytedance.feishu.cn/docx/doxcnKNEvQGmLTwupIvWDSqh1nd
需要白名单
获取 RtcEngine 实例(包含音视频应用程序调用的主要方法的接口类实例),应当只调用一次, 重复调用返回上次创建的,destroy后则重新创建。
rtc服务使用的appId
销毁EtcEngine实例
成功回调
失败回调
加入到通信房间
加入语音频道的id
加入语音频道用户的唯一标识,建议统一使用当前用户的 openId/匿名 openId
成功回调
失败回调
离开当前频道
成功回调
失败回调
执行结果,true为成功,false为失败
开启内部音频采集。默认为关闭状态。
成功回调
失败回调
执行结果,true为成功,false为失败
关闭本地麦克风推流
成功回调
失败回调
执行结果,true为成功,false为失败
控制本地音频流的发送状态:不发送
使用此方法后,房间中的其他用户会收到回调: OnUserMuteAudio
执行结果,true为成功,false为失败
控制本地音频流的发送状态:发送
使用此方法后,房间中的其他用户会收到回调: OnUserMuteAudio
成功回调
失败回调
执行结果,true为成功,false为失败
针对当前设备,静音远端用户音频流
成功回调
失败回调
执行结果,true为成功,false为失败
针对当前设备,取消静音远端用户音频流
成功回调
失败回调
执行结果,true为成功,false为失败
针对当前设备,静音所有远端用户音频流
成功回调
失败回调
执行结果,true为成功,false为失败
针对当前设备,取消静音所有远端用户音频流
成功回调
失败回调
执行结果,true为成功,false为失败
调节播放音量(该方法只能加入房间成功后调用才生效)
音量可在0~400范围内进行调节
- 0 : 静音
- 100 : 原始音量
- 400 : 最大可为原始音量的 2 倍(自带溢出保护)
成功回调
失败回调
执行结果,true为成功,false为失败
调节录音音量,采集麦克风的音量(该方法只能加入房间成功后调用才生效)
音量可在0~400范围内进行调节
- 0 : 静音
- 100 : 原始音量
- 400 : 最大可为原始音量的 2 倍(自带溢出保护)
成功回调
失败回调
执行结果,true为成功,false为失败
该方法启用说话者音量提示。调用该方法后,将收到 audioVolumeIndication 事件回调。该方法只有在joinChannel之后才生效
收到音量提示回调的时间间隔
+ ≤ 0:禁用音量提示功能。
+ > 0:启用音量提示功能,并设置收到音量提示回调的时间间隔。单位为毫秒。
建议设置为大于等于 200 毫秒;小于 10 毫秒时,行为未定义。
成功回调
失败回调
执行结果,true为成功,false为失败
取消 RtcEngine,on 监听的所有event类型事件。当event 为空的时候,会移除所有RtcEngine上的事件监听。可传入参数如下,分别对应上面事件。当不传入时,默认移除所有事件监听
监听列表
首次加入房间成功。用户手动调用 JoinRoom,收到加入成功。
加入房间失败没有单独的事件,需要通过onerror 判断
重新加入房间。用户网络较差,失去与服务器的连接,进行重连时收到加入成功。
当收到网络质量报告时回调该事件
远端可见用户加入房间的回调。
远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。
新进房用户会收到进房前已在房内的可见用户的进房回调通知。
远端可见用户离开房间,包含断网情况
rtc连接断开。和connectionLost类似,不过该方法是断开后立即触发
网络连接断开超过 10 秒,仍然会继续重连。该事件和上面事件在类似,不过是超过10s 后触发
当收到本地第一帧音频的时候上报该事件
接收到来自远端某音频流的第一帧时,收到该回调。 用户刚收到房间内每一个用户音频流时,都会收到该回调。
远端用户调用 muteLocalAudioStream
改变本地音频推流状态时,房间内其他用户会收到此回调。
@param muted 是否被静音
true: 远端用户禁止推送音频数据;
false: 远端用户开启推送音数据
远端用户enableLocalAudio/disableLocalAudio 开启/关闭音频设备采集时,房间内其他人会收到这个回调。
userMuteAudio 和 userEnableLocalAudio 分别代表开/关 本地麦克风采集 和开/关 推送本地数据。
之所以有这样的区分,是因为 开/关 本地麦克风采集成本 的远大于 开/关 推送本地数据。因为麦克风采集需要调用系统接口,而 开/关推送数据只是标识位的改变。
enabled 用户是否开启了音频设备采集
true: 远端用户禁止推送音频数据;
false: 远端用户开启推送音数据
当收到音量信息时回调该事件,需要调用 enableAudioVolumeIndication 后才可以
对于本地用户:只要进行本地音频采集,回调内就会包含本地音频流的音量信息。
对于远端用户:本地必须订阅某远端用户的音频流,回调内才会包含其发送的音频流的音量信息。
当内部发生警告信息时回调该事件
当内部发生不可逆转测错误时回调,比如加入房间失败
首次加入房间成功。用户手动调用 JoinRoom,收到加入成功。
加入房间失败没有单独的事件,需要通过onerror 判断
从调用joinChannel开始到加入房间成功所经历的时间(毫秒单位)
重新加入房间。用户网络较差,失去与服务器的连接,进行重连时收到加入成功。
从用户掉线掉重新加入房间成功经历的时间(毫秒单位)
当收到网络质量报告时回调该事件
远端通话用户标识
所属用户的媒体流上行网络质量
所属用户的媒体流下行网络质
远端可见用户加入房间的回调。
远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。
新进房用户会收到进房前已在房内的可见用户的进房回调通知。
远端通话用户标识
从加入房间到收到该事件经历的时间(毫秒单位)
远端可见用户离开房间,包含断网情况。
离线用户的标识
用户离线的原因 0, quit normal , 1, user lost
rtc连接断开。和connectionLost类似,不过该方法是断开后立即触发
网络连接断开超过 10 秒,仍然会继续重连。该事件和上面事件在类似,不过是超过10s 后触发
当收到本地第一帧音频的时候上报该事件
返回StreamIndex: 0-视频流;1-屏幕流
当收到本地第一帧音频的时候上报该事件
远端通话用户标识
返回StreamIndex: 0-视频流;1-屏幕流
远端用户调用 muteLocalAudioStream, 改变本地音频推流状态时,房间内其他用户会收到此回调。
远端通话用户标识
是否被静音 true: 远端用户禁止推送音频数据 false: 远端用户开启推送音数据
远端用户enableLocalAudio/disableLocalAudio 开启/关闭音频设备采集时,房间内其他人会收到这个回调。
userMuteAudio 和 userEnableLocalAudio 分别代表开/关 本地麦克风采集 和开/关 推送本地数据。
之所以有这样的区分,是因为 开/关 本地麦克风采集成本 的远大于 开/关 推送本地数据。因为麦克风采集需要调用系统接口,而 开/关推送数据只是标识位的改变。
远端通话用户标识
用户是否开启了音频设备采集 true: 远端用户允许开启音频设备 false: 远端用户禁止开启音频设备
当收到音量信息时回调该事件,需要调用 enableAudioVolumeIndication 后才可以。
对于本地用户:只要进行本地音频采集,回调内就会包含本地音频流的音量信息。
对于远端用户:本地必须订阅某远端用户的音频流,回调内才会包含其发送的音频流的音量信息。
用户id
音量大小,范围[0,255]
音频源数量
当内部发生警告信息时回调该事件
警告码,详情查看 https://bytedance.feishu.cn/docx/doxcnKNEvQGmLTwupIvWDSqh1nd
当内部发生不可逆转测错误时回调,比如加入房间失败
错误码,详情查看 https://bytedance.feishu.cn/docx/doxcnKNEvQGmLTwupIvWDSqh1nd
首次加入房间成功。用户手动调用 JoinRoom,收到加入成功。
重新加入房间。用户网络较差,失去与服务器的连接,进行重连时收到加入成功。
当收到本地第一帧音频的时候上报该事件
当收到本地第一帧音频的时候上报该事件
远端用户调用 muteLocalAudioStream, 改变本地音频推流状态时,房间内其他用户会收到此回调。
远端用户enableLocalAudio/disableLocalAudio 开启/关闭音频设备采集时,房间内其他人会收到这个回调。
远端可见用户加入房间的回调
远端可见用户离开房间,包含断网情况。
远端用户enableLocalAudio/disableLocalAudio 开启/关闭音频设备采集时,房间内其他人会收到这个回调。
rtc连接断开。和connectionLost类似,不过该方法是断开后立即触发
网络连接断开超过 10 秒,仍然会继续重连。该事件和上面事件在类似,不过是超过10s 后触发
当收到音量信息时回调该事件,需要调用 enableAudioVolumeIndication 后才可以。
当内部发生警告信息时回调该事件
当内部发生不可逆转测错误时回调,比如加入房间失败
当前的登录状态
登录后获取登录的用户信息
Stark账号系统
登录成功
临时登录凭证, 有效期 3 分钟。可以通过在服务器端调用 登录凭证校验接口 换取 openid 和 session_key 等信息。
用于标识当前设备, 无论登录与否都会返回, 有效期 3 分钟
判断在当前 APP(头条、抖音等)是否处于登录状态
登录失败
错误消息
检查Session接口调用失败的回调函数
错误原因
接口调用成功的回调函数
获取用户信息失败的回调
失败信息
获取用户信息成功的回调
目标用户信息
用户实名认证成功的回调
判断当前用户是否已经授权给游戏读取自身的信息
是否授权
调用接口判断当前用户是否已经授权时失败或者发生内部错误
登录-获取临时登录凭证
强制登录默认为true,即若当前未登录宿主,则会调起宿主的登录窗口, 如果用户点击取消则会调用 fail
如果当前登录宿主,则直接返回success,获取到 code 和 anonymousCode
若强制登录为false,当前登录了宿主则会返回success,可以获取到获取到 code 和 anonymousCode
当前未登录宿主,则只有 anonymousCode
code 可以换取 openid, openid 是用户的唯一标识
anonymousCode 可以换取 anonymous_openid, 同一台手机 anonymous_openid 是相同的
未登录时, 是否强制调起登录框
登录成功的回调
登陆失败的回调
检查用户当前的 session 状态是否有效
只有成功调用 login 才会生成 session,checkSession 才会进入 success 回调,当用户退出登录会清除 session
session_key 会随着login接口的调用被刷新。可以通过checkSession方法验证当前 session 是否有效,从而避免频繁登录。
目前实际测试若使用匿名登录(forceLogin = false),则checkSession会一直返回 fail
只有登录了宿主(forceLogin = true),checkSession才会返回success,下次不用login checkSession也可以返回true
验证有效的回调
验证无效或者验证失败的回调
获取已登录用户的基本信息或特殊信息
若匿名登录后 userinfo里面字段全部为默认值
登录了宿主后可以获取账号数据,下次不用login GetScUserInfo也可以返回正确数据
验证有效的回调
验证无效或者验证失败的回调
判断用户是否已经授权给当前游戏读取个人信息
该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回是否已经授权
如果调用宿主代码失败则会调用onGetUserInfoAuthFail
调用宿主代码成功,并返回是否已经授权读取用户信息
调用宿主代码时发生错误
主动打开获取用户信息的授权界面,在Setting界面关闭后返回最新的授权状态,该方法没有超时时间
该API会调用宿主的代码,如果调用宿主代码成功则会调用onGetUserInfoAuth,并返回最新的授权状态
如果调用宿主代码失败则会调用onGetUserInfoAuthFail
用户在实名认证弹窗完成实名认证后回调
需要在初始化时设置,回调时机为:游戏中弹出实名认证,用户完成了实名认证时触发
广告管理模块
支持激励视屏,banner 和 插屏广告。
开通指南:https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/functional-plug-in/advertising-component-access-guide/flow-main-open-process/
是否显示广告加载提示,默认显示
展示激励视频广告,在广告未加载时会发起异步请求,弱网情况下会进行重试。失败会调用errCallback
激励视频广告只支持一个实例,申请多个激励视频广告位是无效的
简单回调设置,激励视频完成和错误的回调函数
与 SetVideoAdCallBack 不冲突,在结束时都会被调用到,会同时收到close和complete
错误码由sdk传出,原因参考
https://bytedance.feishu.cn/docs/doccn1lAbZzMOqI5ueq1gCyPdcg#
https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/ads/ads-error-code-description/
https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/ads/tt-create-interstitial-ad
1004 可能是由于广告请求被限制了次数,需要跟广告投放沟通
如果需要更详细的回调信息,可使用 SetVideoAdCallBack
广告aid.
视频广告关闭回调,参数含义 IsComplete,表明广告是否播放完成.
视频广告错误回调,参数含义 errCode, errMsg 表明错误码和错误描述.
视频广告详细过程回调,一般可以不关注.
创建Banner广告,返回 BannerAd 实例。支持多实例,可以在一个页面下展示多个。也可以分页面展示
竖屏情况下,Banner广告接受的宽度范围是 0.8*屏幕宽度,1.0*屏幕宽度。
横屏情况下,Banner广告接受的最小宽度是 128,最大宽度是 208。
开发者可以在这之间自由指定广告宽度。广告组件会自动等比例缩放素材。
创建Banner示例后,要主动调用show来进行展示
错误码由sdk传出,原因参考
https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/ads/ads-error-code-description/
banner广告位的adid
样式:"style":{"top":0, "left":0, "width":320}} width 在竖屏下会被限制在 [0.8*ScreenWidth,1.0*ScreenWidth],横屏下会被限制在[128, 208]
广告自动刷新的间隔时间,单位为秒,参数值必须大于等于 30(该参数不传入时 Banner 广告不会自动刷新).
广告错误回调,参数表明错误码和错误描述.
广告加载回调.
广告样式改变回调,第一个参数是width.第二个参数是height.
创建并播放插屏广告,在广告模块启动15s内不允许展示插屏广告,在任何地方调用API.GetStarkAdManager,就会启动广告模块
两个插屏广告展示间隔不能少于30s
插屏广告支持多实例。简单回调设置,插屏广告完成和错误的回调函数
插屏广告实例只支持展示一次,出现加载错误,或 展示成功,点击关闭按钮或视频广告外的其他地方,广告实例都会自动销毁。下一次需再次创建。
提供接口可以手动销毁
错误码由sdk传出,原因参考
https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/open-capacity/ads/tt-create-interstitial-ad
插屏广告位的adid
是否自动展示
广告视频错误回调,参数含义 errCode, errMsg 表明错误码和错误描述.
广告视频关闭回调.
广告加载回调.
---------------------------------------------------------------------
BannerAd 对象
显示。如果加载出错,会调用CreateBannerAd的参数 errCallback
隐藏
销毁
改变样式
成功后会调用CreateBannerAd的参数 resizeCallback
横屏下可以更改位置和宽度,竖屏下只能更改位置。
是否有效,bannerad在load出错的情况下,如果adInterval为-1,则无法再进行刷新。此时认为已失效,需要destory再重新创建
InterstitialAd 对象
加载
显示
是否已加载
销毁
Banner样式
广告位区域左上角横坐标
广告位区域左上角纵坐标
广告位区域宽度
广告位区域高度,受广告内容影响自主变化, 无法由外部指定
广告的回调函数
广告加载成功
广告开始播放
广告失败,错误码同 ShowVideoAd
广告关闭回调
已播放时长.
有效播放时长(超过此时长可以授予激励).
视频总时长.
设置激励视频广告的回调。获取完整的回调信息,一般处理都可以通过ShowVideoAdWithId完成,需要时使用
激励视频广告的回调.
是否显示广告加载进度弹窗
游戏收藏
收藏回调,true表示成功,false表示失败
取消游戏收藏
取消收藏回调,true表示成功,false表示失败
游戏是否已收藏
是否已收藏,true表示已收藏,false表示未收藏
收藏引导
弹窗类型,默认为底部弹窗
弹窗文案,仅style为 Tip 时可修改,最多显示 12 个字符。
游戏内录屏模块
是否显示视频分享Toast UI提示,默认显示
开始录屏
录屏错误
错误码
错误消息
录屏完成
实际视频路径
视频分享成功
视频分享失败
错误消息
视频分享取消
是否显示视频分享Loading界面
时间片段(用于视频裁剪)
开始时间,单位ms
结束时间,单位ms
录屏状态枚举
录制开始中
录制已开始
录制暂停中
录制已暂停
录制停止中
录制已停止
录制结束
录制错误
录制的视频时长太短
视频分享状态枚举
未进行视频分享
视频分享中
等待分享器回调
视频分享成功
视频分享失败
视频分享取消
设置录屏是否开启
开启设置为true,禁止设置为false
获取录屏开启状态
返回true则表示录屏开启,返回false为录屏关闭
设置录屏关键帧插帧间隔
内部默认关键帧间隔1s,若需要更小的关键帧间隔精度,可通过该接口设置关键帧间隔
插帧思路按照帧间隔在超过下述设置阈值后,将自动将对应到来的帧插成关键帧
在录制前设置,在下次录制时候即生效
视频关键帧插帧间隔 单位ms,默认值-1,为不插帧
是否设置成功回调, true 成功 false 失败
开始录屏
是否录制声音,默认为录制声音
最大录制时长,单位 s。小于等于 0 则无限制。默认为10分钟
视频录制开始回调
视频录制失败回调
函数调用状态,调用成功返回true,否则返回false
停止录屏
视频录制完成回调
视频录制失败回调
停止后需要对视频进行裁剪的时间片段,如果为null或空列表,则不对视频进行裁剪
是否对视频裁剪片段进行自动合并。
合并规则:
如果有两段重叠的时间片段,并且重叠部分小于等于1秒,则对这两段进行合并为一段
若autoMerge为true,比如时间片段为{[1000, 5000], [4000, 7000]},会被合并为{[1000, 7000]}。
若autoMerge为false,将按原始传入的时间片段进行裁剪,是否有重叠,由调用方保证。主要用于自定义裁剪。
函数调用状态,调用成功返回true,否则返回false
获取录屏时长
返回录屏时长,单位 ms
获取视频录制状态
VideoRecordState
给录屏分享设置默认的配乐,若链接不符合要求则不生效,参考文档:https://bytedance.feishu.cn/docs/doccnlj9zMlqSbD0S0FEMonoJZd
抖音PGC音乐的短链。形如 "https://v.douyin.com/JmcxWo8/", null 或者 “”表示取消默认配乐
获取视频分享状态
VideoClipState
分享视频。分享的视频文件是调用StopVideo后生成的文件。
注意:视频分享需要录制至少3s的视频,低于3s的视频将会分享失败。
分享成功回调
分享失败回调
分享取消回调
函数调用状态,调用成功返回true,否则返回false
带标题和话题的分享视频。分享的视频文件是调用StopVideo后生成的文件。
注意:视频分享需要录制至少3s的视频,低于3s的视频将会分享失败。
分享成功回调
分享失败回调
分享取消回调
分享视频的标题,如不需要设置标题,可以传null或空字符串
分享视频的话题,如不需要设置话题,可以传null或空列表
函数调用状态,调用成功返回true,否则返回false
带Json数据格式的分享视频。分享的视频文件是调用StopVideo后生成的文件。
注意:视频分享需要录制至少3s的视频,低于3s的视频将会分享失败。
分享成功回调
分享失败回调
分享取消回调
视频分享的其它一些字段信息
(除videoPath、channel字段的其它字段信息,如分享话题、标题、描述等)。
参考:https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-share-app-message/
函数调用状态,调用成功返回true,否则返回false
抖音好友邀请状态变化
状态值, 参考@InviteState
状态对应的信息
监听邀请状态变化事件
抖音好友邀请
房间id
用于放在schema 里面的信息,Key-Value形式。
额外扩展信息, Key-Value形式。
调用结果回调: (isSuccess, errMsg) => {}
Example
StarkSDK.API.GetStarkInvite().onInviteStateChanged = (state, msg) =>
{
Debug.Log($"onInviteStateChanged - state: {state}, msg: {msg}");
};
var roomId = "12345";
var query = new JsonData {["test"] = "query"};
JsonData extra = null;
StarkSDK.API.GetStarkInvite().CreateInvitePanel(roomId, query, extra, (isSuccess, errorMsg) =>
{
if (isSuccess)
{
Debug.Log("CreateInvitePanel success");
}
else
{
Debug.Log($"CreateInvitePanel failed, {errorMsg}");
}
});
键盘输入事件
键盘输入的当前值
用户点击键盘确定按钮时的事件
键盘输入的当前值
键盘收起事件
键盘输入的当前值
监听键盘输入事件
监听用户点击键盘确定按钮时的事件
监听键盘收起事件
显示软键盘(仅WebGL平台下支持)
参考: https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/interface/keyboard/tt-show-keyboard/
键盘输入监听请设置 onKeyboardInputEvent 和 onKeyboardConfirmEvent
显示键盘的参数
显示软键盘成功回调: () => {}
显示软键盘失败回调,(errMsg) => {}
Example:
using StarkSDKSpace;
using UnityEngine;
using UnityEngine.UI;
public class KeyboardTest : MonoBehaviour
{
public InputField input;
private void Start()
{
SetInputTexts();
RegisterKeyboardEvents();
}
private void SetInputTexts()
{
input.text = "done";
var comp = input.GetComponent<ClickableInputField>();
if (comp == null)
{
comp = input.gameObject.AddComponent<ClickableInputField>();
}
comp.multiple = false;
comp.confirmType = input.text;
}
private void OnDestroy()
{
UnregisterKeyboardEvents();
}
private void RegisterKeyboardEvents()
{
StarkSDK.API.GetStarkKeyboard().onKeyboardInputEvent += OnKeyboardInput;
StarkSDK.API.GetStarkKeyboard().onKeyboardConfirmEvent += OnKeyboardConfirm;
StarkSDK.API.GetStarkKeyboard().onKeyboardCompleteEvent += OnKeyboardComplete;
}
private void UnregisterKeyboardEvents()
{
StarkSDK.API.GetStarkKeyboard().onKeyboardInputEvent -= OnKeyboardInput;
StarkSDK.API.GetStarkKeyboard().onKeyboardConfirmEvent -= OnKeyboardConfirm;
StarkSDK.API.GetStarkKeyboard().onKeyboardCompleteEvent -= OnKeyboardComplete;
}
private void OnKeyboardInput(string value)
{
Debug.Log($"OnKeyboardInput: {value}");
if (input.isFocused)
{
input.text = value;
}
}
private void OnKeyboardConfirm(string value)
{
Debug.Log($"OnKeyboardConfirm: {value}");
}
private void OnKeyboardComplete(string value)
{
Debug.Log($"OnKeyboardComplete: {value}");
}
}
public class ClickableInputField : EventTrigger
{
public string confirmType = "done"; // 可选值有: "done", "next", "search", "go", "send"
public int maxInputLength = 100; // 最大输入长度
public bool multiple = false; // 是否多行输入
private InputField _inputField;
private void Start()
{
_inputField = GetComponent<InputField>();
}
public override void OnPointerClick(PointerEventData eventData)
{
if (_inputField != null)
{
if (_inputField.isFocused)
{
StarkSDK.API.GetStarkKeyboard().ShowKeyboard(new StarkKeyboard.ShowKeyboardOptions()
{
maxLength = maxInputLength,
multiple = multiple,
defaultValue = _inputField.text,
confirmType = confirmType
});
}
}
}
}
收起软键盘(仅WebGL平台下支持)
参考: https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/interface/keyboard/tt-hide-keyboard/
隐藏软键盘成功回调: () => {}
隐藏软键盘失败回调,(errMsg) => {}
更新键盘,只有当键盘处于拉起状态时才会产生效果。
参考: https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/interface/keyboard/tt-show-keyboard/
键盘输入监听请设置 onKeyboardInputEvent 和 onKeyboardConfirmEvent
键盘输入框的当前值
更新软键盘成功回调: () => {}
更新软键盘失败回调,(errMsg) => {}
游戏跳转返回的跳转信息
用处:
1.A->B A游戏跳转到B游戏,再从B游戏返回到A时,若A游戏没有被杀死则实时收到该信息
2.A->B A游戏跳转到B游戏,再从B游戏返回到A时,若A游戏被杀死则下次A启动时再获取该信息
提供游戏互跳功能的模块
本地配置互跳信息的方法:
在Resources文件加下添加game.json
内容如下:
[{
"navigate_app_id": "互跳游戏1的appid",
},
{
"navigate_app_id": "互跳游戏2的appid",
}]
当从跳转的目标游戏返回时且自身进程存在没有被玩家杀死则自动调用该方法
A跳转B,B玩完返回A时,若A依旧存活则会自动调用该方法
若A被用户杀死则下一次启动A时可以通过方法获取上次的拉起信息
两种情况互斥,A依旧存活时,下次启动A就会获取不到信息;A被杀死,一定获取不到该回调,下次启动时会获取到拉起信息
跳转的目标appid
游玩时间
跳转游戏时失败时调用这个回调
当播放的视频被关闭时调用改接口
显示一个游戏视频,当点击视频时跳转到对应游戏,只能在宿主抖音和头条下使用
抖音极速版和头条极速版不支持,
可通过获取当前的宿主类型。
互跳的条目信息可有两个来源,网络动态拉取找对应QA同学配置,本地配置方法见类
StarkNavigateGame的注释。
跳转返回时调用该方法
跳转失败时调用该方法,如没有获取到跳转信息
视频界面关闭时的回调
跳转到对应游戏时传递的自定义参数
直接跳转至目标索引号所代表的游戏
互跳的条目信息可有两个来源,网络动态拉取找对应QA同学配置,本地配置方法见类
StarkNavigateGame的注释。
在服务器配置的游戏索引号,从0开始
跳转返回时调用该方法
跳转失败时调用该方法,如没有获取到跳转信息
跳转到对应游戏时传递的自定义参数
拉起方读取被拉起方传递的信息,只有A拉起B后,A被杀死无法从B获取通知时该接口才会有数据
该接口涉及到读文件、Native方法调用,比较耗时,不可频繁调用!
是否查找到跳转信息
判断当前游戏是否被另一个游戏拉起
该游戏被该appid对应的游戏拉起,若不是被拉起的appid为""
获取从拉起方传递来的自定义数据,若不是被拉起的navigateExtraParam为""
true:当前游戏是被其他游戏拉起的,false:当前游戏不是由其他游戏拉起的
初始化,从服务器获取导航信息
不开放给用户StarkSDK实现的调用SCPlugin的存储文件的方法
当该游戏由其他游戏拉起时,设置的回调
被哪个游戏拉起
被拉起游戏设置的额外信息
CP自己设置的在本游戏中推荐的游戏
目标appid
设置的query值
自定义的额外信息
视频的url链接
被拉起方的游戏设置传递给拉起方的信息,拉起方可以读取设置的该信息
游戏A拉起了游戏B:
A若拉起B后在后台被杀死则通过接口可以获取到设置的信息
A若拉起B后依旧在后台则通过设置的接口通知设置的信息
该接口涉及到写文件、Native方法调用,比较耗时,不可频繁调用!
设置从其他游戏拉起的事件监听,从其他游戏拉起时会调用该回调
一定要早于StarkSDK的初始化
特定游戏的id
供Java侧调用,获取保存到Unity本地的互跳信息
非uc环境下运行
当前uc环境不支持支付功能
前一个支付未完成
orderInfo参数无效
支付失败
拉起微信支付失败
微信未安装
查询订单状态处理函数
订单号(从orderInfo中读取的order_info值)
交易时间(从orderInfo中读取的trade_time值)
PayStatus 订单支付状态
支付状态
支付成功
支付超时
支付失败
支付关闭
支付取消
订单状态未知/未支付
拉起支付服务类型
小程序收银台,从收银台选择支付渠道
调用微信 API 支付,不拉起小程序收银台
调用支付宝 API 支付,不拉起小程序收银台
支付渠道
使用微信支付
使用支付宝支付
支付接口 (已废弃)
参考文档:https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/api/open-interface/pay/tt-pay/
json字符串。调起小程序支付收银台的签名订单信息。
生成方式参考文档:https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/server/ecpay/server-doc/
拉起支付服务类型 (小程序收银台、微信、支付宝)
默认勾选的支付方式(支付宝或微信),仅在 serviceType 值为 Checkout 时有效。
注意:这个设置会依赖服务器端下发用户上次使用过的支付方式作为默认支付方式,所以这个设置可能不会生效。
(orderNo, tradeTime) => { return PayStatus; } 查询订单支付状态函数实现,仅在 serviceType 值为 Checkout 时需要实现。
如果 serviceType 值为 Checkout ,需要由业务方实现 orderStatusHandler 接口,根据订单号从业务后台查询支付状态并返回支付状态结果,主要用于通知前端界面展示。
注意:orderStatusHandler 这个回调函数会在底层轮循调用。如果查询不到支付结果状态,可以返回PayUnknown状态。
支付回调 (payStatus) => {}
当有错误发生时回调 (errCode, errMsg) => {}
初始化支付接口,减少支付时卡顿时间
小游戏平台的支付接口
接口文档 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/payment/tt-request-game-payment
mode string 支付的类型, 目前仅为"game"
env int 环境配置,目前合法值仅为"0"
currencyType string 币种, 目前仅为"CNY"
platform string 申请接入时的平台,目前仅为"android"
buyQuantity int 金币购买数量
zoneId 选填 string 游戏服务区 id,
customId 选填 string 游戏开发者自定义的唯一订单号,订单支付成功后通过服务端支付结果回调回传
extraInfo string 游戏开发者自定义的其他信息,订单支付成功后通过服务端支付结果回调回传。字符串长度最大不能超过 256
游戏内网络请求模块
请求相关设置
网络请求方法,支持 GET/POST/OPTIONS/PUT/HEAD/DELETE
请求的参数
请求header
期望返回的数据类型
期望响应的数据类型,支持 text 或 arraybuffer
请求响应
发起一个网络请求。网络相关的 API 在使用前需要配置域名白名单。
请参考 https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/guide/basic-ability/network/
请求地址
相关设置
请求'成功'的回调
请求失败的回调
(内部方法)发起一个网络请求。网络相关的 API 在使用前需要配置域名白名单。
请参考 https://microapp.bytedance.com/docs/zh-CN/mini-app/develop/guide/basic-ability/network/
请求地址
相关设置
请求'成功'的回调
请求失败的回调
分享成功
分享失败
错误消息
分享取消
通用分享
分享成功回调
分享失败回调
分享取消回调
可填的字段信息参考:https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-share-app-message/
监听用户点击右上角菜单中的“转发”,"拍抖音"按钮时触发的事件 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-on-share-app-message
需要返回一个ShareParam 对象,用于分享 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/share-param
callback 接收一个 object 类型的参数,属性为:string: channel
取消监听用户点击右上角菜单的“转发”按钮时触发的事件。 https://microapp.bytedance.com/docs/zh-CN/mini-game/develop/api/retweet/tt-off-share-app-message
视频播放回调接口
视频在列表中的位置(第一个位置从0开始)
视频点击回调
文本点击回调
播放的视频页发生变化
视频播放结束
视频播放失败
视频界面关闭回调
视频播放模块
抖音短视频分享链接
用于显示的文本
文本颜色,默认为白色
抖音视频播放
视频列表(如果之前有播放过视频,下次调用时可以传 null 或空列表)
视频播放回调,具体参见 StarkVideoCallback 定义
视频播放窗口的关闭按钮延迟显示时间,单位毫秒,小于等于0则表示立即显示。
窗口横坐标位置(相对于屏幕左上角)
窗口纵坐标位置(相对于屏幕左上角)
视频播放窗口宽度,小于等于0则占满屏幕宽度
视频播放窗口高度,小于等于0则占满屏幕高度
List<StarkVideoManager.StarkVideo> videos = new List<StarkVideoManager.StarkVideo>();
videos.Add(new StarkVideoManager.StarkVideo("https://v.douyin.com/JppLfuu/", "This is the first video"));
StarkVideoCallback callback = new StarkVideoCallback();
callback.OnVideoClickedCallback = index =>
{
Debug.Log("video clicked, index: " + index);
};
callback.OnTextClickedCallback = index =>
{
Debug.Log("text clicked, index: " + index);
};
callback.OnVideoPageChanged = index =>
{
Debug.Log("video page selected, index: " + index);
if (index + 1 == StarkSDK.API.GetStarkVideoManager().GetVideoCount())
{
var video = new StarkVideoManager.StarkVideo
{
VideoUrl = "https://v.douyin.com/Jpgo15A/",
VideoText = "This is a new video",
TextColor = 0xff00ff00,
};
StarkSDK.API.GetStarkVideoManager().AddVideo(video);
// if you want add multiple videos, you can call 'StarkSDK.API.GetStarkVideoManager().AddVideos' to add a video list
}
};
callback.OnVideoPlayCompleted = index =>
{
Debug.Log("video play completed, index: " + index);
};
callback.OnVideoPlayError = index =>
{
Debug.Log("video play error, index: " + index);
};
关闭窗口
添加视频到播放列表末尾
视频信息
添加多个视频到播放列表末尾
视频列表信息
获取当前列表中的视频数量
视频数量
开始播放当前页展示的视频
暂停当前正在播放的视频
视频是否正在播放
正在播放返回 true ,否则返回 false
广告模块的mock层
登录的mock方法
检查session是否有效的mock方法
获取用户信息的mock方法
获取用户授权状态
主动打开授权界面,然后获取最新的授权状态
用户在实名认证弹窗完成实名认证后回调
必须在游戏初始化阶段就调用
Banner广告的Mock模块
插屏广告的Mock模块
广告模块的mock层
收藏模块的Mock层
录屏模块的mock层
Banner广告的Mock模块
分享模块的mock层
分享模块的mock层
分享模块的mock层
登录成功回调
是否是断线重连,true表示断线重连,false表示正常登录
登录失败回调
客户端错误码
客户端错误消息
连接断开回调
排队队列更新回调
排队当前位置
排队需要等待的时间,单位 s
业务消息事件回调
服务器端返回的数据
登录事件回调
是否是断线重连,1表示是断线重连,0表示是正常登录
登录结果,0表示登录成功,失败则为客户端错误码
服务器端结果,0表示成功,失败则为服务器返回的错误码
注意:serverResult不为0,则loginResult一定不为0;loginResult为0,serverResult一定为0;loginResult不为0,serverResult可能为0
登录成功回调
登录失败回调
断开连接回调
排队队列更新回调
业务消息事件回调
设置登录回调
登录成功回调
登录失败回调
创建一个上下文环境,用于初始化相关信息
Code ID
Code ID
服务器主机地址
服务器端口号
与服务器连接超时时间
返回错误码状态,0表示成功,非0表示失败。可以通过调用 GetErrorString 函数获取错误信息。或者直接调用 GetLastErrorString 获取错误信息。
销毁上下文环境,清理数据
开始与服务器端建立连接(包括登录流程)
需要调用SetOnLoginEventCallback,监听登录状态
返回错误码状态,0表示成功,非0表示失败。可以通过调用 GetErrorString 函数获取错误信息。或者直接调用 GetLastErrorString 获取错误信息。
停止与服务器端的连接
与服务器端连接是否已停止
更新内部逻辑状态
!!!Note: 需要定期不断调用该函数(比如每隔100ms调用一次)
向服务器端发送业务消息
通过调用 SetOnMessageEventCallback 函数监听服务器端的业务消息回调
返回错误码状态,0表示成功,非0表示失败。可以通过调用 GetErrorString 函数获取错误信息。或者直接调用 GetLastErrorString 获取错误信息。
根据错误码获取错误信息
返回错误信息文本
获取最后一次错误的信息
返回错误信息文本
业务消息事件回调
底层C接口的数据指针
数据长度
网络调用的封装
RPC调用成功时的回调,返回结果
返回的结果
RPC调用失败时的回调,返回错误码
错误码
非鉴权的Post方法进行一次RPC
域名
服务
数据
成功回调
失败回调
Android Toast提示
类似于直接调用Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
提示信息
Android Toast提示
类似于直接调用Toast.makeText(context, message, Toast.LENGTH_LONG).show()
提示信息
Android 弹出式对话框
标题
内容
确认按钮文本
取消按钮文本
对话框是否取消(点击空白区域关闭界面)
点击确认按钮回调
点击取消按钮回调
Android 进度加载弹窗
提示信息
Loading弹窗是否取消(点击空白区域关闭界面)
Loading弹窗关闭回调
隐藏进度加载弹窗
以同步的隐藏一个弹框
Mock设置类
用于记录开放了哪些模块
是否屏蔽Mock的弹窗
获取当前设置的每个模块是否开放
打开所有的Mock模块,默认关闭所有模块
关闭所有的Mock模块,默认关闭所有模块
分模块设置各个功能模块对应的Mock UI开放和关闭,默认关闭所有模块
extraData 大部分模块默认填null即可,目前已知的应用场景如下:
module == MockModule.Host,enable == true,则extraData为的变量,模拟当前在何处启动等
目标功能模块
是否开放
额外数据
判断一个功能模块的Mock层是否已经打开
目标模块
Mock层是否打开
使用GUI绘制出Mock层的工具类
初始化
键值对显示mock选项
要显示的内容
当前显示的目标模块
获取屏幕密度,和屏幕的英寸长度dpi = a*a+b*b然后开平方再除以 屏幕英寸。
dp = px * (dpi / 160)
创建一个UI用于显示提示
通用Unity单例
Toast提示
提示信息
Toast提示
提示信息
时间工具类
获取当前时间,单位ms
创建用于视频裁剪的时间片段 (需要在开始录屏后调用)
以调用时的录屏时刻为基准,指定前 x 毫秒,后 y 毫秒为将要裁剪的片段,可以多次调用,记录不同时刻。
在结束录屏时,可以调用 ClipVideo 接口剪辑并合成记录的片段。
记录那一刻前的毫秒数
记录那一刻后的毫秒数
StarkGameRecorder.TimeRange
处理Android通讯的工具类
确保在主线程执行初始化。
发送消息到Native
异步Call通讯
消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息
目标接口
参数
混合Call通讯,调用直接返回一段String的数据,同时会有回调。
目标API接口
参数
回调ID
异步Call通讯
同步Call通讯
消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息
目标接口
参数
同步Call通讯
查询Native层是否支持某个API
接口名
BridgeAPI的包装类
BridgeAPI的委托
回调接口
回调被添加的事件,ns
默认Call超时,默认使用通用的超时,10秒
回调成功
回调失败
失败码
失败原因
超时
UBridge的内部实现
超时时间
成功
接口未支持
接口不支持异步调用
缺少参数
接口不支持同步调用
以callback_id为key维护回调。
以接口名为key,维护回调
Unity侧以接口的形式实现的API,比委托优先
Unity侧以委托的形式实现的API
本地注册的事件列表
Native端注册的事件列表
超时定时器
定时器是否已经启动,避免重复启动;
超时时间,默认10秒
启动超时定时器
停止超时定时器
重新设置Call的超时时间
单位ms
Unity注册接口形式的API接口
接口名
接口实现
Unity注册委托形式的API
接口名
接口实现
Unity注销接口形式的API接口
接口名
Unity注册事件
Unity发送事件消息
目标事件
数据
异步调用native的方法
目标接口
参数数据
回调
异步调用native的方法
目标接口
参数数据
回调
监听事件
目标接口
新的监听是否覆盖旧的
回调
关闭监听事件
目标接口
处理Native调用过来的消息
消息数据,JSON格式
处理Native的调用消息。
处理Unity调用Native回来的回包。
消息的封装
消息ID
消息类型,消息类型0-call消息,1-listen消息,2-unListen消息,3-event消息
回调,唯一
错误码
消息来源
目标接口或者事件
错误消息
数据
参数
Unity侧的SDK版本号
Native侧的SDK版本号
SDK的版本信息
SDK版本号
从JsonData中安全的读取数据的帮助类
读取int
读取string
读取JsonData
读取Object
Bridge接口
iOS的通信接口
确保在主线程执行初始化。
发送消息到Native
异步Call通讯
消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息
目标接口
参数
异步Call通讯,确保调用在主线程执行
同步Call通讯
消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息
目标接口
参数
同步Call通讯
混合Call通讯,调用直接返回一段String的数据,同时会有回调。
目标API接口
参数
回调ID
查询Native层是否支持某个API
接口名
日志辅助类
线程调度
处理消息
打包成功的回包
请求的消息
回包的数据
打包失败的回包
请求的消息
错误码
错误信息
打包异步Call消息
消息类型0-call消息,1-listen消息,2-unListen消息,3-event消息
目标接口
参数
回调的id
打包同步Call消息
消息类型0-call消息,1-listen消息,2-unListen消息,3-event消息
目标接口
参数
打包事件的消息
目标事件
数据
解析消息
JSON格式的消息
同步调用的结果转换
JSON字符串
Bridge的上下文
回调成功
数据
回调失败
错误码
错误信息
webgl的通讯接口
确保在主线程执行初始化。
发送消息到Native
异步Call通讯
消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息
目标接口
参数
异步Call通讯,确保调用在主线程执行
同步Call通讯
消息类型0-call消息,1-listen消息,2-unlisten消息,3-event消息
目标接口
参数
同步Call通讯
查询h5是否支持某个接口
混合Call通讯,确保调用在主线程执行
目标API接口
参数
回调ID
Determines whether the json contains an element that has the specified key.
The key to locate in the json.
true if the json contains an element that has the specified key; otherwise, false.
Unity声音录制
Unity层使用的接口
开始录屏
停止录屏
开启录制游戏声音
关闭录制游戏声音
设置录制分辨率
Unity层使用的接口
检查是否有多个ActiveAndEnable AudioListener
Unity声音录制接口
声音采样间隔,单位毫秒
是否需要将PCM从float数组转为byte数组
是否在录制中
提供给Java端通过UnityPlayer.UnitySendMessage("ByteREC","NativeStopRecord","");来停止录屏
提供给Java端通过UnityPlayer.UnitySendMessage("ByteREC","NativeStartRecord","");来启动录屏
提供给Java端通过UnityPlayer.UnitySendMessage("ByteREC","StartRecord","");来触发录制
提供给Java端通过UnityPlayer.UnitySendMessage("ByteREC","NativeRecordVoice","");来设置是否录音
设置是否在Unity测转换PCM
支持外部注入RT进行录制
Unity层使用的接口
Unity版本号,每对外升级一次,自增1,详情见
UnityRenderEvent的回调的指针,可以通过
录制图片
录制纹理
传递Unity前后台切换消息
录音,传递PCM的float数组
录音,传递PCM的byte数组
传递录音的配置参数,JSON格式
通知JNI DeAttach 当前线程,不然会引起crash
设置使用的音频引擎类型:0-unity,1-wwise plugin, 2-wwise mix
开始录屏
停止录屏
开启录制游戏声音
关闭录制游戏声音
Unity声音录制
将数组添加到List里。
Unicode转utf8编码
封装了和Native通讯的接口。
初始化Bridge
重新设置Call的超时时间,单位毫秒
单位ms
Unity注册API,以接口的形式
接口名
接口的实现
Unity注册API,以委托的形式提供
Unity注册API,以接口的形式
接口名
接口的实现
Unity注册事件
Unity发送事件消息
异步调用native的方法,不需要回调和参数
目标接口
异步调用native的方法,不需要回调
目标接口
参数数据
异步调用native的方法
目标接口
参数数据
回调
异步调用native的方法
目标接口
参数数据
回调
超时,默认10秒,单位毫秒
混合Call,函数可以带回一段string数据
目标API
混合Call,函数可以带回一段string数据
目标API
参数
混合Call,函数可以带回一段string数据,同时有回调
目标API
参数
混合Call,函数可以带回一段string数据,同时有回调
目标API
参数
回调
超时时间
同步调用native的方法
目标接口
参数数据
监听事件
目标接口
回调
监听事件
目标接口
新的监听是否覆盖旧的
回调
关闭监听事件
目标接口
查询Native层是否支持某个API
处理Native调用过来的消息,通讯接口
消息数据,JSON格式