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

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

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

问答

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

相关阅读

如何在Ubuntu上搭建Minecraft服务器

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

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

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

此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/developer/article/1188198?fromSource=waitui

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

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

3行代码,为QQ轻游戏加上语音互动能力的更多相关文章

  1. 【编程教室】PONG - 100行代码写一个弹球游戏

    大家好,欢迎来到 Crossin的编程教室 ! 今天跟大家讲一讲:如何做游戏 游戏的主题是弹球游戏<PONG>,它是史上第一款街机游戏.因此选它作为我这个游戏开发系列的第一期主题. 游戏引 ...

  2. 自定义控件?试试300行代码实现QQ侧滑菜单

    Android自定义控件并没有什么捷径可走,需要不断得模仿练习才能出师.这其中进行模仿练习的demo的选择是至关重要的,最优选择莫过于官方的控件了,但是官方控件动辄就是几千行代码往往可能容易让人望而却 ...

  3. HTML5游戏实战(1):50行代码实现正面跑酷游戏

    前段时间看到一个"熊来了"的HTML5跑酷游戏,它是一个典型的正面2D跑酷游戏,这里借用它来介绍一下用Gamebuilder+CanTK开发正面跑酷游戏的基本方法. CanTK(C ...

  4. HTML5游戏实战之20行代码实现打地鼠

    之前写过一篇打地鼠的博客70行的代码实现打地鼠游戏,细致思考过后,发现70行代码都有点多余了,应用tangide的控件特性,能够将代码量缩减到20行左右. 先show一下终于成果,点击试玩:打地鼠.或 ...

  5. HTML5游戏实战(4): 20行代码实现FlappyBird

    这个系列很久没有更新了.几个月前有位读者调侃说,能不能一行代码做一个游戏呢.呵呵,接下来一段时间,我天天都在想这个问题,怎么能让GameBuilder+CanTK进一步简化游戏的开发呢.经过几个月的努 ...

  6. C# 13行代码带你模拟登录QQ空间

    最近想做一个QQ空间点赞的小工具,于是晚上下班回来就开始分析PC版的QQ空间,打开Chrome,切换到Network,然后输入账号密码,然后点击登录... 然后,我曹....一堆请求就开始了....搞 ...

  7. Python:游戏:300行代码实现俄罗斯方块

    本文代码基于 python3.6 和 pygame1.9.4. 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块.但是想到旋转,停靠,消除等操作,感觉好像很难啊, ...

  8. 37行代码实现一个简单的打游戏AI

    不废话,直接上码,跟神经网络一点关系都没有,这37行代码只能保证电脑的对敌牺牲率是1:10左右,如果想手动操控,注释掉autopilot后边的代码即可. 哪个大神有兴趣可以用tensorflow或者s ...

  9. 9 行 javascript 代码获取 QQ 群成员

    昨天看到一条微博:「22 行 JavaScript 代码实现 QQ 群成员提取器」. 本着好奇心点击进去,发现没有达到效果,一是 QQ 版本升级了,二是博客里面的代码也有些繁琐. 于是自己试着写了一个 ...

随机推荐

  1. IIS部署网站常见问题

    有时候Web项目在VS开发环境下没有问题,但是在IIS服务器下却出现了问题. 这让人很抓狂. 在这里总结下通常发生这种问题的几个主要原因. 1.IIS注册.Net框架. 1.1:C:\WINDOWS\ ...

  2. (zxing.net)一维码EAN 8的简介、实现与解码

    一.简介 一维码EAN 8:属于国际标准条码,由8个数字组成,属EAN的简易编码形式(EAN缩短码).当包装面积小于120平方公分以下无法使用标准码时,可以申请使用缩短码. 依结构的不同,EAN条码可 ...

  3. ASP.net 居中

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs& ...

  4. 「HNOI 2016」 序列

    \(Description\) 给你一个序列,每次询问一个区间,求其所有子区间的最小值之和 \(Solution\) 这里要用莫队算法 首先令\(val\)数组为原序列 我们考虑怎么由一个区间\([l ...

  5. fatal: Not a git repository (or any parent up to mount point /home)

    问题:fatal: Not a git repository (or any parent up to mount point /home) 解决:git init

  6. 【OCP-12c】CUUG 071题库考试原题及答案解析(21)

    3.choose three View the Exhibit and examine the description of SALES and PROMOTIONS tables. You want ...

  7. luoguP5074 Eat the Trees

    https://www.luogu.org/problemnew/show/P5074 插头 $ dp $ 入门题 如果你还不会插头 $ dp $ 请右转 洛谷插头dp题解 虽然是入门题但还是逃不过分 ...

  8. express 直接返回HTML文件

    一般情况下用的是模板引擎,如jade: res.render('detail',{ // 使用render() #http://www.expressjs.com.cn/4x/api.html#res ...

  9. bad interpreter: Text file busy

    刚才运行test_mysql.py文件的时候 报了个这样的错.上网查了下,链接在这里:http://www.cnblogs.com/kerrycode/p/4038934.html 于是我就把第一行的 ...

  10. javascript事件的类型整理

    mouseenter:只能进入目标元素才会触发: mouseleave:只能离开目标元素才会触发: mouseover:进入目标元素或者其子元素的时候触发: mouseout:离开目标元素或者其子元素 ...