弹幕云启动(原“玩法云启动能力”)
收藏
我的收藏能力介绍
让主播无需下载安装玩法包体,包体在云端运行,目前默认全为高配设备。 高配:CPU(酷睿I7-12700KF )显卡( RTX3070Ti )
目前成本暂由平台承担,无需开发者/主播承担云启动费用。
开发者仅需在目前包体上做少量的适配工作,无较大开发量。
解决的问题:
- •PC端:部分玩法对主播电脑性能要求过高的问题。
- •移动端:解决unity/UE玩法无法在移动端使用的问题。
接入流程
第一步:选择申请方式
- •手动申请
- a.登录开发者平台控制台。
- a.在「我的应用」页面中点击「直播小玩法」,然后在「直播小玩法」页签中点击已创建的应用。
- a.在应用详情页面左侧导航栏选择「能力」>「平台基础」,在「平台基础」页签的「弹幕云启动」区域中点击「申请开通」。(注意需要前置申请包体能力)
- a.等待运营 @李宁 审核通过。
- a.若上传包体时显示 “云游戏已开启” 则代表能力已具备。则可以去上传新的包体,新的包体将自动部署到云服务器,通过后主播即可在前端使用。
云包体适配
云启动包体和下载包共用一个包体,但是平台会通过启动参数让开发者感知是什么渠道打开,开发者需要针对不同渠道打开的包做一定的适配。
此项十分重要,需要开发者重点关注,配置不当会导致直播伴侣侧收到的云启动画面异常。
启动参数适配
云端Windows 容器分辨率支持三种比例:3:4(对应云端 1080x1440),9:16(对应云端 1080x1920) 和1:2(对应云端 1080x2160)。开发者在上传包体时可以选择包体展示比例,也可以按设置的分辨率比例在本地进行验证。
玩法需要支持全屏模式启动体验,开发者可以通过将本地显示器设置为上传包体设置的比例:以9:16(1080x1920分辨率)举例,云启动会将云端Windows容器设 置为 1080x1920 的显示分辨率后,在启动参数额外加入“-screen-fullscreen 1 -cloud-game 1”后启动玩法,开发者需要验证玩法在全屏场景下分辨率、画面清晰度和UI展现是否符合预期。
Unity示例代码片段:
/// <summary> /// 收集启动参数 /// </summary> /// <returns>启动参数的键值表</returns> private Dictionary<string, int> CollectArgs() { Dictionary<string, int> keyValues = new (); HashSet<string> argKeys = new(); argKeys.Add("-screen-fullscreen"); argKeys.Add("-screen-height"); argKeys.Add("-screen-width"); argKeys.Add("-cloud-game"); argKeys.Add("-mobile"); string[] args = System.Environment.GetCommandLineArgs(); int i = 0; while (i < args.Length - 1) { var key = args[i]; if (argKeys.Contains(key)) { if (int.TryParse(args[i+1], out var intVar)) { keyValues.Add(key, intVar); i += 2; continue; } } i++; } return keyValues; } /// <summary> /// 根据启动参数设置屏幕参数 /// </summary> /// <param name="keyValues">启动参数的键值表</param> private void CheckResolution(Dictionary<string, int> keyValues) { //默认分辨率和全屏状态 var fullScreen = false; var screenWidth = 1280; var screenHeight = 720; if (keyValues.TryGetValue("-screen-fullscreen", out var full)) { fullScreen = full == 1; } if (keyValues.TryGetValue("-screen-height", out var height) && keyValues.TryGetValue("-screen-width", out var width)) { screenWidth = width; screenHeight = height; } Screen.SetResolution(screenWidth, screenHeight, fullScreen); } //程序启动时运行 void Start() { //收集启动参数 var keyValues = CollectArgs(); //根据参数设置显示分辨率 CheckResolution(keyValues); //业务代码... }
玩法内分辨率 UI 和退出UI屏蔽
云启动在启动时会传入参数"-cloud-game 1",玩法侧需要屏蔽分辨率设置UI(若主播云启动后,再调整玩法内分辨率会存在问题)和退出 UI。
移动端适配(也需要适配完成)
整体测试
- •伴侣启动测试(重要!!!)
本地PC机器使用竖屏显示屏,设置正确的分辨率(如 1080x1920)后以“-screen-fullscreen 1 -cloud-game 1”启动,请保证游戏占满全屏,且不会看到分辨率设置和退出 UI。
- •移动端启动测试
本地PC机器使用竖屏显示屏,设置正确的分辨率(如 1080x1920)后以“-screen-fullscreen 1 -cloud-game 1 -mobile 1”启动,请保证游戏占满全屏,且不会看到分辨率设置和退出 UI;用 touchpad 方式可以初步验证手势效果 。
包体的上传
上述适配做好之后,上传包体且选择包体展示比例(云启动会根据开发者选择的比例进行渲染)。
提交包体等待审核通过(注意:云启动部署会有3~5小时时间,也会影响本身下载包体的审核,请注意!)
主播使用
- 1.伴侣端
点击启动玩法->选择云开启即可,玩法云窗口打开后请用伴侣“窗口素材”进行捕捉
- 2.移动端
在正常玩法点击开启即可(移动端无交互差异,点击启动会全屏启动玩法,原有小魔盒不显示后台低帧运行)
注意: 1.若玩法用了getUserInfoV2能力需要主播手动授权,则无法正常运行玩法,需要将获取方式获取token获取:https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/webcastinfo
2.安卓:26.1.0版本起可体验云启动
a.此外,云启动下的玩法暂不支持输入uid/room_id(目前需要输入的玩法暂无法正常使用),预计8月中旬平台支持
3.IOS:预计26.4.0版本起可支持
注意事项
- 1.如果开发者不想使用“云启动”能力可以关闭,关闭后:
- a.线上的云启动版本将不会再被支持,若想再使用需要重新打开能力,重新上传包体才可以。
- b.在审核中的包体流程将会被终止。
- c.待提审的包体将会关闭云启动能力。
- 2.当包体开通云启动之后,云启动第一次部署需要3~5小时时间,部署成功后才会进入包体审核流程,请开发者注意影响。