如何处理无声问题?解决方案
请依次按照以下解决方案排查问题。
定位问题类型
建议本地和远端用户按如下步骤定位问题类型:
打开 AVC,认真阅读声网使用条款和隐私权政策并点击接受。
输入相同的房间名称和房间密码,输入各自的昵称,确认已勾选打开麦克风,点击加入。
允许 AVC 使用麦克风,并开始对话,检查双方是否能听到声音。
如果能听到声音,则说明是 App 逻辑问题。请跳转至检查 App 逻辑。
如果不能听到声音,则说明是设备问题。请跳转至检查音频输入设备。
注意在 iOS 上,如果用户的设备装了非苹果官方的磁性保护壳并且该用户听不到其他人的声音,则可能是保护壳引起的问题。请先拆除保护壳,退出频道,再重新加入频道,尝试是否能听到声音。
检查音频输入设备
确保音频输入设备连接正确。如果有多个音频输入设备,请选择一个合适的设备使用。
在系统设置中,打开声音输入设备(或录音设备)窗口,确保系统使用了正确的音频输入设备,以及音频输入设备未被静音。
对着音频输入设备说话,在窗口中检查设备对应的音量条是否随声音大小发生变化。
如果发生变化,则说明音频输入设备正常工作。请跳转至下一步检查音频输出设备。
如果未发生变化,则说明音频输入设备有问题,请尝试重启设备。如果未能解决问题,请更换音频输入设备。
检查音频输出设备
确保音频输出设备连接正确。如果有多个音频输出设备,请选择一个合适的设备使用。
在系统设置中,打开声音输出设备(或播放设备)窗口,确保系统使用了正确的音频输出设备,以及音频输出设备未被静音。
播放一个音频文件,检查是否能听到声音。如果不能听到声音,则说明音频输出设备有问题,请尝试重启设备。如果未能解决问题,请更换音频输出设备。
如果你使用了声卡,且在更换音频输出设备后未能解决问题,请跳转至下一步检查声卡。
检查声卡
确保声卡连接正确。如果用户在播放音频文件,请确保开启声卡的混音功能。
重装设备驱动,检查是否能听到声音。如果不能听到声音,则说明声卡有问题。请更换声卡。
检查 App 逻辑
请确保用户均启用了音频设备的使用权限。
请确保用户已成功加入频道,即收到 onJoinChannelSuccess/didJoinChannel 回调。
检查是否调用了 muteLocalAudioStream、muteRemoteAudioStream 或 muteAllRemoteAudioStreams 方法取消音频流发布,或 adjustRecordingSignalVolume(0) 或 adjustPlaybackSignalVolume(0) 方法将用户设为静音。
检查 joinChannel [2/2]/joinChannelByToken [2/4] 方法中的 options 参数,跟音频相关的设置是否符合预期:
publishMicrophoneTrack 已设置为 true
enableAudioRecordingOrPlayout 已设置为 true
通过 onAudioRouteChanged/didAudioRouteChanged 回调检查当前的音频路由是否符合预期。如果不符合预期,可参考设置音频路由修改音频路由。
检查 AVAudioSession 设置
iOS 系统中的 AVAudioSession 可能被其他 App 或本 App 内的其他模块修改,导致声网的音视频互动出现预期外问题。你需要确保 AVAudioSession 运行在以下状态:
category:设置为 playAndRecord
mode:
在媒体音量场景下,将 mode 设置为 AVAudioSessionModeDefault
在通话音量场景下,将 mode 设置为 AVAudioSessionModeVoiceChat
联系技术支持
如果上述步骤无法解决问题,请提交工单联系技术支持,并提供如下信息:
发生问题的频道名
该频道内无法听到声音的用户 ID
无法听到声音的时间段
你可以使用声网控制台中的水晶球功能对通话质量进行跟踪和反馈,详见水晶球教程。