无声问题
接入实时语音之后,用两台机子进入房间之后,没有听到声音。
问题排查的步骤如下:
1. 确认是在成功进入房间的情况下没有听到声音。
2. 是否进入的是同一个房间。
3. 是否两个客户端使用了同一个 OpenId 进入房间。
4. 是否成功打开麦克风,麦克风权限是否已经打开,是否在主线程调用的打开麦克风操作。
5. 是否将对方加入黑名单中。
iPhone 手机进房成功后,无法听到别人说话的声音,如何解决?
请先检查 iPhone 手机侧面的物理静音按键是否为打开状态。
进房后,手机音量变得很小,开启麦克风后音量又变得很大,怎么解决?
手机的音量分媒体音量和通话音量。媒体音量如果很小,即使通话音量很大,进房时候如果不开启麦克风,则默认使用是媒体音量,所以进房后也会显得声音很小。用户需要确认媒体音量是否处于一个适中大小的状态。同理,开启麦克风后,声音变得很小,则需要调整手机的通话音量。
导出到 Android 手机上使用的时候,出现打开麦克风但是手机没有申请权限,应该如何解决?
权限申请为系统操作,并按以下顺序进行排查:
1. 确定在 AndroidManifest 里面有声明麦克风权限。
2. 可以在代码中主动申请麦克风权限。
音频相关问题
两台设备离得比较近,并且都开着麦克风时,会出现非常刺耳的噪音。
这个是啸叫声音,认为比较小概率会两个实际玩家会离得很近开麦沟通,同时为了声音可达率,我们默认做了声音增强。在使用手机拨打电话时,放在一起也会出现此情况。
这种情况只在开发过程中比较常见,实际业务场景较少,因为现实中面对面的人不会开麦克风进行交流。
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()。
进入房间后,打开麦克风后播放伴奏,但是关闭麦克风后便无法播放伴奏,怎么规避此问题?
声音卡顿的主要原因?
音乐卡:主播使用外放的设备播音乐,再通过另一个手机采集并主播(这里会必现卡顿,可建议主播带耳机)。
网络卡:上行丢包率过高或者上行延时波动较大情况下观众会听到卡顿。
客户需要判断卡顿的具体表现,是声音延迟,还是声音。
为了实现 3D 音效,用户使用的麦克风和扬声器有什么要求?
播放端支持双声道。