本文首发在我的博客:《音视频小程序开发笔记》
ps: github.io 偶尔莫名的会挂,如果不可,请暂时挂代理,后面还得修正走内循环🐕。
云电脑、云办公、云会议、云游戏等等云概念,在不平凡的 2020,依然此起彼伏,你方唱罢我登场!它们似乎在告诉着我们什么:5G 时代不会平凡?还是说正为某项能颠覆产业的技术应用而蛰伏着?
前段时间接触了云游戏小程序,记录一二,仅作分享。
云游戏以云计算为基础,游戏运行在服务器端,不再要求用户有高配置的客户端(显卡和处理器),通过视频传输、控制虚拟远程桌面(VNC) 的方式来实现游戏上的交互。当然,这对网络的稳定和低延时有一个较高的要求,这也是为什么在未来 5G 被广泛商用的条件下,大家予之更高期待的原因。
Q:云游戏可以依托于浏览器 H5,那么它能依托于小程序吗?
首先你需要了解如何《快速跑通Demo》,云游戏小程序实现方案基于 TRTC 双人通话。
TRTC 互通的自定义组件是通过 <trtc-room> 标签实现,它基于微信小程序原生的<live-pusher> 和 <live-player> 两个媒体组件。
这里主要用到的是 live-player,用于播放云游戏的视频流 。
可以从上图看到:微信小程序实现音视频必须经过腾讯视频云做转码(计费 QAQ)。
本方案实现基于小程序原生,未使用框架(如 uniapp、taro 等)。
原生规范具体可参见:微信官方文档-小程序
初始化目录:
需要用 base64 做中转,编码类型是: ascii 编码。
此部分方法封装在 trtc-room-socket.js 文件中
开发者工具上无法看到视频流,必须启用手机来调试。真机调试可以看实时查看打印信息,查看延迟信息等;
基于微信小程序原生标签 <live-player>可以实现云游戏视频的推流,微信小程序需要经过腾讯云做一层转码服务,框架图已说明。控制流的实现需要自己封装成 VNC,比如获取点击滑动操作,再转码 ArrayBuffer 传给后台进行实际的游戏控制,服务器处理后再推流处理后的视频。
重难点有:
此题值得研究的东西还真挺多,浅尝浅记,期待应用 5G。TIME!