本文总结使用声动语聊方案时可能遇到的常见问题和解决方法。
如何实现某用户调用 startAudioMixing
播放背景音乐时,不想让频道内其他人听到自己说话的声音,只想让别人听到自己播放的背景音乐?
该用户可以调用 adjustRecordingSignalVolume
将音量设置为 0。
如何实现某用户调用 startAudioMixing
播放背景音乐时,不想让自己说话的声音和背景音乐被频道内其他人听到?
该用户可以调用 muteLocalAudioStream
取消发布本地音频流。
如何实现某用户在语聊房间内,想知道谁在说话,但不想听到说话者的声音?
该用户可以调用 adjustUserPlaybackSignalVolume
设置某个说话者的播放音量为 0,或者调用 adjustPlaybackSignalVolume
设置频道内所有人的播放音量为 0。
你可以在加入频道前设置如下私有参数:
// 与第三方应用的音频可以同时播放
setParameters("{\"che.audio.mix_with_others\": true}")
// 打断第三方应用的音频播放
setParameters("{\"che.audio.mix_with_others\":false}")
如果你使用声网 SDK 和第三方播放器集成语聊房应用,那么可能出现用户进入声网 RTC 频道后会自动打断第三方播放器的音视频播放现象,比如使第三方播放器播放卡顿或者不断被打断。如何避免第三方播放器音频被打断?
你可以在加入频道前设置如下私有参数:
// 防止音频被打断
setParameters("{\"che.audio.keep.audiosession\":true}");
当用户使用声动语聊方案时,如果网络突然中断,你的业务服务器会将该用户从正常的用户列表中移除。但是,如果网络恢复,声网会自动进行断线重连,使该用户可以再次加入原来的语聊房间,此时你的业务服务器无法管理该用户,会导致出现“鬼麦”现象。如何避免断网重连导致的“鬼麦”现象?
如下步骤可以避免断网重连导致的“鬼麦”现象:
通过声网服务让业务服务器将失联用户标记为已离线:
当用户的网络再次连接时,业务服务器会与之同步该用户的状态。如果业务服务器标记该用户为已离线,该就可以调用 leaveChannel
让该用户离开原来的频道。从而,避免“鬼麦”现象。