文档中心 > 游戏多媒体引擎 > 常见问题 > 实时语音音频相关问题

实时语音音频相关问题

最近更新时间:2020-09-16 16:55:40

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

不同的应用场景有不同的音频类型,具体请参见 音质选择文档
第一个进房的人会确定房间的音频类型,之后进房的人都会应用此音频类型,如果需要切换房间音频类型,请调用 ChangeRoomType 接口。

进房后,手机音量变得特别小,开启麦克风后音量又变得很大,怎么解决?

手机的音量分媒体音量和通话音量。媒体音量很小的话,即使通话音量很大,进房时候如果不开启麦克风,默认使用是媒体音量,所以进房后也会显得声音很小。用户需要确认一下媒体音量处于一个适中大小的状态。同理,开麦克风后,声音变得很小,那么需要调整手机的通话音量。

iPhone 手机进房成功后,无法听到别人说话的声音,如何解决?

请先检查 iPhone 手机侧面的物理静音按键是否为打开状态。

iPhone 手机设置物理静音键后,依然能听到房间内的声音?

物理静音键的生效涉及 AVAudioSession,需要客户在 XCode 中配置。

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

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

接入 SDK 后,如何设置默认开启扬声器而不是听筒?

系统默认为扬声器播放。

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

实时语音不支持听筒播放。

如何实现在一个房间内,只有两个成员能互相通话,其他成员只能收听的需求?

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

如果用户本地没有麦克风,怎么提示用户?

GetMicListCount 可以获取麦克风设备数量,可以通过这个接口进行判断。

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

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

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

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

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

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

GME 的获取实时音量的方法,麦克风的音量多久会报告一次?

接口 GetMicLevel 20ms 统计一次音量,所以开发者最频繁也是 20ms 获取一次。

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

利用接口 IsAccompanyPlayEnd()。

进入房间后,打开麦克风后播放伴奏,但是关闭麦克风就无法播放伴奏了,怎么规避这个问题?

进房成功后使用 EnableAudioCaptureDevice,然后打开伴奏,再通过 EnableAudioSend 控制上行下行就不会关闭伴奏,可以参考实时语音伴奏流程图

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

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

使用 SDK 时,登模拟器无法播放歌曲,且无法使用电脑的声卡?

模拟器不支持 Mp3。

变声效果会生成文件吗?

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

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

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

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

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

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

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

声音卡顿的主要原因?

  • 音乐卡:主播使用外放的设备播音乐,然后通过另一个手机采集并主播(这里会必现卡顿,可建议主播带耳机)。
  • 网络卡:上行丢包率过高或者上行延时波动较大情况下观众会听到卡顿。
  • 客户需要判断卡顿的具体表现,是声音延迟,还是声音。
目录