3行代码,为QQ轻游戏加上语音互动能力

算法琉璃客
• 阅读 5411

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

本文由腾讯游戏云 发表于云+社区专栏

游戏和社交往往有着密不可分的关系,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的接口, 如下:

 3行代码,为QQ轻游戏加上语音互动能力

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

 3行代码,为QQ轻游戏加上语音互动能力

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

新的接入流程如下

 3行代码,为QQ轻游戏加上语音互动能力

这样就比较好的接入实现了QQ轻游戏使用场景,对于游戏开发者而言,只要三步:

1, Import GME文件

2, 直接调用初始化接口, 设置自身的APPID信息

3, 之后再调用EnterRoom函数即可进房成功

因为内部默认开启麦克风, 扬声器, 所以只要 3行代码即可听到彼此声音。

QQ轻游戏接入的游戏通常体量较小,一般不会有过深的架构,并且需要最快速看见结果、得到响应,当用户场景不一样时,SDK也需要进行相应的转换。扁平化接口思想,让接入的游戏开发商能第一时间看到结果,为他们提供了更好的接入体验。

通过QQ轻游戏案例,GME对SDK接口的改造,大大提升了游戏开发者的接入效率。对于QQ轻游戏或者类似的游戏平台来说,使用腾讯云GME SDK,游戏开发者只需要三步就可以完成音视频功能的接入。

赶快体验GME,实现3行代码就能让小游戏快速接入语音互动的能力。

速戳:https://cloud.tencent.com/pro...

问答

AI开发的语言要求是什么?

相关阅读

如何在Ubuntu上搭建Minecraft服务器

如何在Ubuntu上搭建方舟:生存进化服务器

使用Patroni和HAProxy创建高度可用的PostgreSQL集群

云学院 · 每日课程推荐 | 《移动开发云端新模式探索实践》

此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/dev...

搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!

海量技术实践经验,尽在云加社区

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Peter20 Peter20
4年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这