浅尝云游戏音视频小程序

简介: 云电脑、云办公、云会议、云游戏等等云概念,在不平凡的 2020,依然此起彼伏,你方唱罢我登场!它们似乎在告诉着我们什么:5G 时代不会平凡?还是说正为某项能颠覆产业的技术应用而蛰伏着?

image.png


本文首发在我的博客:《音视频小程序开发笔记》

ps: github.io 偶尔莫名的会挂,如果不可,请暂时挂代理,后面还得修正走内循环🐕。


前言



云电脑云办公云会议云游戏等等云概念,在不平凡的 2020,依然此起彼伏,你方唱罢我登场!它们似乎在告诉着我们什么:5G 时代不会平凡?还是说正为某项能颠覆产业的技术应用而蛰伏着?


前段时间接触了云游戏小程序,记录一二,仅作分享。


云游戏以云计算为基础,游戏运行在服务器端,不再要求用户有高配置的客户端(显卡和处理器),通过视频传输、控制虚拟远程桌面(VNC) 的方式来实现游戏上的交互。当然,这对网络的稳定和低延时有一个较高的要求,这也是为什么在未来 5G 被广泛商用的条件下,大家予之更高期待的原因。


背景


Q:云游戏可以依托于浏览器 H5,那么它能依托于小程序吗?

  • 此文以微信小程序为例,让我们看看其实现的可能性及关键点指北☞。

首先你需要了解如何《快速跑通Demo》,云游戏小程序实现方案基于 TRTC 双人通话。


TRTC 互通的自定义组件是通过 <trtc-room> 标签实现,它基于微信小程序原生的<live-pusher> 和 <live-player> 两个媒体组件。


这里主要用到的是 live-player,用于播放云游戏的视频流 。


架构图


image.png


图片来源

可以从上图看到:微信小程序实现音视频必须经过腾讯视频云做转码(计费 QAQ)。


要点说明


  1. 开发小程序音视频需要先通过类目审核。类目范围
  2. 因为需要经过腾讯云的代理,所以需要注册腾讯云,申请 SDKAPPIDSECRETKEY 并做相应配置,前后端需统一。


开发指引



代码目录


本方案实现基于小程序原生,未使用框架(如 uniapp、taro 等)。

原生规范具体可参见:微信官方文档-小程序

初始化目录:

image.png


开发步骤


  1. GenerateTestUserSig.js 中配置SDKAPPIDSECRETKEY,需和后台统一;
  2. 后台开视频房间,前端拿到房间号;
  3. 在微信开发者工具中打开项目,启用真机调试,扫码测试视频流是否推送成功;
  4. 前端获取用户点击和滑动操作;
  5. websocket 对接,对字节流进行编码和解码;
  6. 流程完善;


编码和解码


需要用 base64 做中转,编码类型是: ascii 编码

  • 接收数据(解码):ArrayBuffer 转 String
  1. 先将 Buffer 转 base64:wx.arrayBufferToBase64
  2. 再将 base64 转 String:微信小程序base64编码解码以及utf-8解码
  • 发送数据(编码):String 转 ArrayBuffer
  1. 先将 String 转为 base 64;
  2. 再调用 wx.base64ToArrayBuffer 转成 ArrayBuffer

此部分方法封装在 trtc-room-socket.js 文件中


真机调试


开发者工具上无法看到视频流,必须启用手机来调试。真机调试可以看实时查看打印信息,查看image.png延迟信息等;


后记



小结


基于微信小程序原生标签 <live-player>可以实现云游戏视频的推流,微信小程序需要经过腾讯云做一层转码服务,框架图已说明。控制流的实现需要自己封装成 VNC,比如获取点击滑动操作,再转码 ArrayBuffer 传给后台进行实际的游戏控制,服务器处理后再推流处理后的视频。


重难点有:

  1. wss 的心跳,重连机制;
  2. 视频画面旋转缩放;
  3. 字节流的传输;
  4. 断点续传等;

此题值得研究的东西还真挺多,浅尝浅记,期待应用 5G。TIME!


文档整理



错误收集


相关文章
|
Web App开发 开发工具
常青:小程序音视频能力再升级
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/82670672 ...
1180 0
|
Web App开发 移动开发 iOS开发
小程序音视频能力技术负责人解读“小程序直播”
策划 / LiveVideoStack 责编 / 包研 一夜之间,“小程序+直播”成为多媒体开发者热议的话题。
2324 0
|
15天前
|
小程序 前端开发 API
小程序全栈开发中的多端适配与响应式布局
【4月更文挑战第12天】本文探讨了小程序全栈开发中的多端适配与响应式布局。多端适配涉及平台和设备适应,确保统一用户体验;响应式布局利用媒体查询和弹性布局维持不同设备的布局一致性。实践中,开发者可借助跨平台框架实现多平台开发,运用响应式布局技术适应不同设备。同时,注意兼容性、性能优化和用户体验,以提升小程序质量和用户体验。通过这些方法,开发者能更好地掌握小程序全栈开发。
|
15天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
15天前
|
小程序 安全 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的身份认证与授权机制。身份认证包括手机号验证、微信登录和第三方登录,而授权机制涉及角色权限控制、ACL和OAuth 2.0。实践中,开发者可利用微信登录获取用户信息,集成第三方登录,以及实施角色和ACL进行权限控制。注意点包括安全性、用户体验和合规性,以保障小程序的安全运行和良好体验。通过这些方法,开发者能有效掌握小程序全栈开发技术。
|
15天前
|
小程序 前端开发 安全
小程序全栈开发中的跨域问题及其解决方案
【4月更文挑战第12天】本文探讨了小程序全栈开发中的跨域问题及其解决方案。跨域问题源于浏览器安全策略,主要体现在前后端分离、第三方服务集成和数据共享上。为解决此问题,开发者可采用CORS、JSONP、代理服务器、数据交换格式和域名策略等方法。实践中需注意安全性、兼容性和性能。通过掌握这些解决方案,开发者能更好地处理小程序的跨域问题,提升用户体验。
|
15天前
|
JavaScript 前端开发 小程序
微信小程序全栈开发之性能优化策略
【4月更文挑战第12天】本文探讨了微信小程序全栈开发的性能优化策略,包括前端的资源和渲染优化,如图片压缩、虚拟DOM、代码分割;后端的数据库和API优化,如索引创建、缓存使用、RESTful API设计;以及服务器的负载均衡和CDN加速。通过这些方法,开发者可提升小程序性能,优化用户体验,增强商业价值。
|
1月前
|
小程序 API
点餐小程序实战教程09-订单功能开发
点餐小程序实战教程09-订单功能开发
|
15天前
|
小程序 前端开发 JavaScript
微信小程序全栈开发中的PWA技术应用
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中PWA技术的应用,PWA结合Web的开放性和原生应用的性能,提供离线访问、后台运行、桌面图标和原生体验。开发者可利用Service Worker实现离线访问,Worker处理后台运行,Web App Manifest添加桌面图标,CSS和JavaScript提升原生体验。实践中需注意兼容性、性能优化和用户体验。PWA技术能提升小程序的性能和用户体验,助力开发者打造优质小程序。
|
1月前
|
小程序 UED
人力资源小程序的设计与开发步骤
人力资源小程序的设计与开发步骤
20 1