问题详述
为什么听不到 RTC 房间内的音频?如何定位和排查问题?
问题解答
你可以按照以下步骤解决问题:
步骤 1:定位问题类型
在两个终端使用不同的手机号登录 veRTC,进入同一个房间进行语音通话:
- 如果能听到声音,则说明是你的应用的逻辑问题。请跳转至步骤 5 检查 app 代码逻辑。
- 如果不能听到声音,可尝试在 veRTC 设置项中切换音频设备,如果切换后可以听到声音,则可能是设备问题。请跳转至步骤 2 检查音频输入设备。
步骤 2:检查音频输入设备
- 外部音频源:确保外部音频源可以正常输入,而且音量正常。
- 内部音频采集:确保当前使用的音频输入设备连接正确并未被静音。
在 iOS 上,如果设备装了非苹果官方的磁性保护壳并且听不到其他人的声音,则可能是保护壳引起的问题。请先拆除保护壳,退出房间,再重新加入房间,尝试是否能听到声音。
在 PC 端对着音频输入设备说话,在系统设置的音频设备界面中检查音量条是否变化:
- 如果发生变化,则说明音频输入设备正常工作。请跳转至步骤 3 检查音频输出设备。
- 如果未发生变化,说明音频输入设备有问题,尝试重启设备或更换音频输入设备。
步骤 3:检查音频输出设备
确保音频输出设备连接正确并未被静音。
- 播放一个音频文件,检查是否能听到声音。如果不能听到声音,说明音频输出设备有问题,尝试重启或更换设备。
- 如果你使用了声卡,且在更换音频输出设备后未能解决问题,请跳转至步骤 4 检查声卡。
步骤 4:检查声卡
- 确保声卡连接正确,并且其混音功能已开启。
- 重装驱动,或更换声卡。
步骤 5:检查 app 逻辑
确保你的应用已获得了音频设备的使用权限。
确保用户已经加入房间。
- 客户端已收到用户成功加入房间的回调。
- 在控制台 > 监控台 > 诊断工具 > 用户详情 > 用户事件图表中查看是否有“加入房间成功”事件。
确保用户已经成功 / 接收发布音频流。
确保音频设备未被系统或其他应用占用,详见通话打断和恢复。
确保音频采集正常
- 内部音频采集:确保用户未主动静音。
- 发送端是否有用户静音的回调 onUserStopAudioCapture。
- 在控制台 > 监控台 > 诊断工具 > 用户详情 > 用户事件图表中查看是否有“禁用本地音频”事件。
- 外部音频源:确认外部采集开关 enableExternalAudioDevice 已经打开,并成功推入音频数据。详见自定义音频采集和渲染。
确保播放路由设置 FollowSystemCaptureDevice 是否符合预期。
步骤 6:联系技术支持协助解决
联系技术支持时,提供以下信息:
必要信息:
- 出现无声问题的时间点和房间 ID;
- 出现无声现象的用户 ID(听不到远端的音频或无法让远端听到本地的音频)。
辅助信息:
- 出现无声现象的频率,是必现还是偶现;
- 出现无声现象时使用的设备名称和具体型号。