3行代码,为QQ轻游戏加上语音互动能力
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
游戏和社交往往有着密不可分的关系,QQ轻游戏就是一款集成在手Q里面的游戏平台,直接通过手Q入口就能随开随玩,好友之间一言不合就可以游戏PK起来。
互动、好玩、快速开发都成为小游戏开发者的重要的核心竞争力,越来越多的小游戏也开始使用语音互动,但无论是对于QQ轻游戏团队还是游戏开发团队而言,自主开发游戏语音,既不经济也不具备技术优势。腾讯云游戏多媒体引擎 GME ( Gaming Multimedia Engine,以下简称 GME) 为QQ轻游戏团队提供的游戏语音能力,让游戏开发商免于重复造轮子的同时,把更多时间花在提升核心竞争力上。
GME以SDK方式为QQ轻游戏开发团队提供音频支持,QQ轻游戏团队仅需要在现成的音频能力基础上直接调用即可。GME在原有的SDK上进行了改造,大大简化了接入流程,提供了简单好用的音频技术服务,甚至只需要3行代码,你就可以给自己开发的QQ轻游戏加上语音互动场景。
如何改造让接入流程更加简便?
GME之前采用的是立体式接口,有一个总接口以及两个子接口分别管理房间、音频部分,每一个接口都有分别对应的接口事件。这样有一个好处,用相关功能,只需要初始化对应的相关接口,监听相关回调,游戏开发者使用起来更有层次感。
但这种接入模式比较复杂,不适用于QQ轻游戏这样的小游戏平台,真实的游戏开发商并不会直接对接SDK提供商,每次出问题都要涉及三方联调,所以这一套接口服务会引发后面不断的人力投入。并且小游戏平台要把能力封装到js脚本层,需要由音频服务商提供一套接口透传到QQ轻游戏的引擎层,再由QQ轻游戏负责实现js层对应的音频接口。 这个过程要求接口不能太多,否则不利于维护;但又不能太少,否则无法满足复杂的外部产品游戏需求。这就需要对现行的接入流程进行改造。
GME技术团队重新梳理了需求,从QQ轻游戏特殊需求出发,重新设计了接入流程。
QQ轻游戏接入者通常都是小游戏,开发周期没那么长,架构也不需要这么丰富,GME技术团队提炼出了高频使用的功能:开关扬声器和麦克风等。
所以GME技术团队扁平化了GME的接口, 如下:

在代码中,只有以下8个接口

这样对比以前会有一个好处,接入的时候用户可以不需要关心黑匣子中的内容,只需要关心对应的功能API就行。
新的接入流程如下

这样就比较好的接入实现了QQ轻游戏使用场景,对于游戏开发者而言,只要三步:
1, Import GME文件
2, 直接调用初始化接口, 设置自身的APPID信息
3, 之后再调用EnterRoom函数即可进房成功
因为内部默认开启麦克风, 扬声器, 所以只要 3行代码即可听到彼此声音。
QQ轻游戏接入的游戏通常体量较小,一般不会有过深的架构,并且需要最快速看见结果、得到响应,当用户场景不一样时,SDK也需要进行相应的转换。扁平化接口思想,让接入的游戏开发商能第一时间看到结果,为他们提供了更好的接入体验。
通过QQ轻游戏案例,GME对SDK接口的改造,大大提升了游戏开发者的接入效率。对于QQ轻游戏或者类似的游戏平台来说,使用腾讯云GME SDK,游戏开发者只需要三步就可以完成音视频功能的接入。
赶快体验GME,实现3行代码就能让小游戏快速接入语音互动的能力。
速戳:https://cloud.tencent.com/product/gme
问答
相关阅读
此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/developer/article/1188198?fromSource=waitui
搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!
海量技术实践经验,尽在云加社区!
3行代码,为QQ轻游戏加上语音互动能力的更多相关文章
- 【编程教室】PONG - 100行代码写一个弹球游戏
大家好,欢迎来到 Crossin的编程教室 ! 今天跟大家讲一讲:如何做游戏 游戏的主题是弹球游戏<PONG>,它是史上第一款街机游戏.因此选它作为我这个游戏开发系列的第一期主题. 游戏引 ...
- 自定义控件?试试300行代码实现QQ侧滑菜单
Android自定义控件并没有什么捷径可走,需要不断得模仿练习才能出师.这其中进行模仿练习的demo的选择是至关重要的,最优选择莫过于官方的控件了,但是官方控件动辄就是几千行代码往往可能容易让人望而却 ...
- HTML5游戏实战(1):50行代码实现正面跑酷游戏
前段时间看到一个"熊来了"的HTML5跑酷游戏,它是一个典型的正面2D跑酷游戏,这里借用它来介绍一下用Gamebuilder+CanTK开发正面跑酷游戏的基本方法. CanTK(C ...
- HTML5游戏实战之20行代码实现打地鼠
之前写过一篇打地鼠的博客70行的代码实现打地鼠游戏,细致思考过后,发现70行代码都有点多余了,应用tangide的控件特性,能够将代码量缩减到20行左右. 先show一下终于成果,点击试玩:打地鼠.或 ...
- HTML5游戏实战(4): 20行代码实现FlappyBird
这个系列很久没有更新了.几个月前有位读者调侃说,能不能一行代码做一个游戏呢.呵呵,接下来一段时间,我天天都在想这个问题,怎么能让GameBuilder+CanTK进一步简化游戏的开发呢.经过几个月的努 ...
- C# 13行代码带你模拟登录QQ空间
最近想做一个QQ空间点赞的小工具,于是晚上下班回来就开始分析PC版的QQ空间,打开Chrome,切换到Network,然后输入账号密码,然后点击登录... 然后,我曹....一堆请求就开始了....搞 ...
- Python:游戏:300行代码实现俄罗斯方块
本文代码基于 python3.6 和 pygame1.9.4. 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块.但是想到旋转,停靠,消除等操作,感觉好像很难啊, ...
- 37行代码实现一个简单的打游戏AI
不废话,直接上码,跟神经网络一点关系都没有,这37行代码只能保证电脑的对敌牺牲率是1:10左右,如果想手动操控,注释掉autopilot后边的代码即可. 哪个大神有兴趣可以用tensorflow或者s ...
- 9 行 javascript 代码获取 QQ 群成员
昨天看到一条微博:「22 行 JavaScript 代码实现 QQ 群成员提取器」. 本着好奇心点击进去,发现没有达到效果,一是 QQ 版本升级了,二是博客里面的代码也有些繁琐. 于是自己试着写了一个 ...
随机推荐
- XML--将XML中数据提取出转换成表
DECLARE @xml XMLSET @xml='<Students> <Student id="1001"> <name&g ...
- 了解什么是版本控制 & 用tortoiseSVN 建立本地版本库来管理自己的代码
什么是版本控制 版本控制系统(Version Control System,简称VCS)广泛地应用于程序开发等领域,它可以协助你将某个指定的文件(甚至是一整个项目)返回至某个之前记录的状态,查看发生了 ...
- ClassNotFoundException和 NoClassDefFoundError的区别
##### 1. 类型 ClassNotFoundException继承自Exception,属于java异常类.NoClassDefFoundError继承自Error,在java中Error一般属 ...
- 磁盘IO的概念
转载自:http://blog.csdn.net/letterwuyu/article/details/53542291 在数据库优化和存储规划过程中,总会提到IO的一些重要概念,在这里就详细记录一下 ...
- jquery 通过attr获取属性只有一个值的解决
var a = []; $($('select.list[data-target="' + target + '"]').find("option:selected&qu ...
- (二)SSO之CAS框架单点退出,自定义退出界面.
用CAS的退出,只能使用它自己的那个退出界面,如果有这样的要求, 要求退出后自动跳转到登录界面, 该如何做呢?下面这篇文章实现了退出后可以自定义跳转界面. 用了CAS,发现退出真是个麻烦事,退出后跳 ...
- 在linux云服务器上运行Jar文件
在linux服务器上运行Jar文件时通常的方法是: $ java -jar test.jar 这种方式特点是ssh窗口关闭时,程序中止运行.或者是运行时没法切出去执行其他任务,有没有办法让Jar在后台 ...
- 考试题 T2
题意分析 首先 要求起点终点不连通 再结合数据范围 就是最小割了 首先我们可以建一个图出来 如果\(x\)可以到\(y\)的话 那么我们就从\(x\)向\(y\)连一条代价为\(h[x]-h[y]+1 ...
- 类型转换 / BOOL 类型
/* Swift不允许隐式类型转换, 但可以使用显示类型转换(强制类型转换) OC: int intValue = 10; double doubleValue = (double)intValue; ...
- mysql的left join、 right join和inner join
1.定义 left join:左联接,返回包括左表中的所有记录和右表中符合条件的记录. right join:右联接,返回包括右表中的所有记录和左表中符合条件的记录. inner join:等值联接, ...