实时语音相关问题

最近更新时间:2019-08-20 14:10:17

实时语音服务支持什么游戏场景?

大致有以下三种场景:

  • 麦序模式:用户轮流语音上麦,音质高流畅性好,适用于语音狼人杀等场景。
  • 自由通话模式:支持多人同时讲话,超低延迟,适用于多人组队开黑等竞技游戏场景。
  • 指挥模式:针对一对多指挥作战、主播语音陪玩等场景,适合大型国战类游戏。

如何选择适合我的音频类型?

不同的应用场景有不同的音频类型,具体请参见 音质选择文档

触调用 poll 函数应该在什么时候开始调用?

请开发者在初始化 SDK 之后开始周期性的调用 Poll 函数。

触发事件需要周期性的调用 poll 函数,如果新开一个线程,定时唤醒,然后调用 poll 函数可以吗?

我们的接口理论上都需要在同一个线程中调用。如果您选择了在子线程调用,那么也请确保在同一个子线程内调用。特别是 Init 和 Poll。

调用 poll 函数的时间间隔多少比较合适?

如果没有特殊需求,请参照 Demo 进行调用。

GME 的实时语音房间数量有限制吗?人数有限制吗?

实时语音房间数量没有限制。人数也没有限制。

进房返回10001等失败情况下如何排查?

问题排查的步骤如下:

  1. 查看并确认进房 API 中的参数,如 Appid, UIN, AuthBuffer 的合法性(参照各平台接口文档)。
  2. 请查看控制台上的相关参数是否与本地的一致。
  3. 请查看控制台是否欠费。
  4. 检查开发者测试设备是在开发者内网环境还是外网环境。

为什么我在应用中进房会返回 HTTP Invalid id?

如果您的帐号是从0开始的,那么建议您帐号加上10000。例如您的帐号是999的话,输入的数字为10999。

进房失败返回值显示网络错误,要怎么解决?

问题排查的步骤如下:

  1. 查看并确认进房 API 中的参数,如 Appid, UIN, AuthBuffer 的合法性(参照各平台接口文档)。
  2. 如果合法,检查开发者测试设备是在开发者内网环境还是外网环境。
  3. 如果是开发者内网,请开发者探测下 url:openmsf.3g.qq.com:15000 是否能够连接上。
  4. 如上 url 成功连接,请探测下 url:cloud.tim.qq.com:15000 是否能够连通。

房间号有回收 API 吗?

没有回收 API,最后一个人退房,房间自动销毁。

房间号取值有要求吗?

房间号,最大支持127字符(离线语音房间号参数必须填 null)。

如果有退房后立即进房的场景,调用流程应该是怎么样的?

如果应用中有退房后立即进房的场景,在接口调用流程上,开发者无需要等待 ExitRoom 的回调 RoomExitComplete 通知,只需直接调用接口。

openid 取值有要求吗?

openid 目前只支持64位无符号整型。请转为 string 传入 SDK。

单个 openid 能同时进入多个房间吗?

不能,一个 openid 同时只能存在于一个房间。

离开房间和进入房间是异步的操作么?这两个接口可以同时调用么?

需要先调用 exitroom,收到退房成功的回调以后再调 enterroom。如果应用中有退房后立即进房的场景,在接口调用流程上,开发者无需要等待 ExitRoom 的回调 RoomExitComplete 通知,只需直接调用接口。

成员状态同步的时机是?第一次进房会不会通知?

音频事件的通知有一个阈值,超过这个阈值才会发送“有成员发送音频包”通知。房间成员两秒没有说话,才会发送“有成员停止发送音频包”通知。第一次进房会通知。

进房前可以设置麦克风音量吗?

不可以,在房间中才可以调用实时语音相关接口 ITMGAudioCtrl ITMGAudioEffectCtrl。

请问麦克风权限占用具体情况?

在 EnterRoom 函数调用成功之后就会占用麦克风权限,期间其他程序无法进行麦克风采集。
调用 EnableMic(false) 无法释放麦克风占用。
如果确实需要释放麦克风,请调用 PauseAudio。调用 PauseAudio 后会整个暂停引擎,调用 ResumeAudio 可恢复。

是否有调用 EnableMic 函数前获取麦克风好坏状态的接口?

利用 getMicCount 接口可以获取到麦克风是否可以使用。

玩家互相讲话,其他观众只能听的需求如何解决?

开发者在客户端进行维护,其他观众不能开启麦克风。

Android 手机打开麦克风之后,声音从听筒而不是扬声器出来,该如何解决?

权限中添加 “<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />” 这个权限。

开发者如何判断是否有播放背景音乐?

利用接口 IsAccompanyPlayEnd()。

使用 SDK 的时候,登模拟器放不了歌,也用不了电脑的声卡?

模拟器不支持 Mp3。

SDK 是否支持听筒播放声音?

实时语音不支持听筒。

SDK 支持哪些格式的本地音频文件?

m4a、wav、Mp3 一共三种格式。

GME 的实时语音范围语音如何接入?范围语音是否有距离衰减?

实时语音范围语音接入请参考 范围语音文档。实现范围语音功能后,同小队语音无距离衰减,全局语音有距离衰减,衰减系数参考文档。

为了实现 3D 音效,用户使用的麦克风和扬声器有什么要求?

为了实现 3D 音效需要播放端支持双声道。

GME 的实时语音 3D 音效如何接入?

实时语音 3D 音效接入请参考 3D 音效文档

为什么我下载的 SDK 文档和 Demo 里没有 Authbuffer 文件。

Authbuffer 此文件已经合并了,请在 SDK 里面全局搜索一下。

tea 加密有没有 lib 文件?

我们为您提供 Authbuffer 编译文档及 zip 包

“ITMG_MAIN_EVENT_TYPE_ROOM_DISCONNECT”(因为网络断开),一般在什么情况下出现此通知,具体是多少分钟断连才会出现?

彻底断网,没有心跳包30s之后出现。

加入黑名单之后退房,黑名单的作用还在吗?

退出语音房间后,黑名单失效。

变声效果会生成文件吗?

启动变声效果是实时的,不会生成文件发送。