SDK 支持对采集和播放的音频音量进行调整,以满足用户实际应用场景。如果使用调整信号音量的方法将音量设置过大,在某些设备上可能会出现音频失真。因此使用时候要保留一定的调节余地。
// 设置本地播放的媒体音量大小 m_pBrtc->setAudioPlayoutVolume(50); // 获取播放音量大小 int curVolume = m_pBrtc->getAudioPlayoutVolume();
调用 setAudioCaptureVolume 调整音频采集音量,通过 getAudioCaptureVolume 读取麦克风的采集音量。
int volume = 50; m_pBrtc->setAudioCaptureVolume(volume); int curVolume = m_pBrtc->getAudioCaptureVolume(volume);
⚠️SDK 默认是开启自动增益(AGC)的,通常情况下会根据采集音量大小进行自我调节。但如果您感觉音量太小,可以将 volume 设置成最大值 150,但超过 100 的 volume 可能会有爆音的风险,请谨慎操作。
在音频采集、混音、播放的整个过程中,你都可以通过 onUserVoiceVolume 回调获取房间内所有正在说话的人的用户 ID 及他们的音量。
class BRTCCore : public BRTCCallback { public: void onUserVoiceVolume(BRTCVolumeInfo* userVolumes, uint32_t userVolumesCount, uint32_t totalVolume) override; private: BRTC* m_pBrtc = nullptr; } BRTCCore::BRTCCore() { m_pBrtc = getBRTCShareInstance(); m_pBrtc->setCallback(this); // 启用 onUserVoiceVolume 回调,默认是300毫秒 m_pBrtc->enableAudioVolumeEvaluation(300); } void BRTCCore::onUserVoiceVolume(BRTCVolumeInfo* userVolumes, uint32_t userVolumesCount, uint32_t totalVolume) { for (uint32_t i = 0; i < userVolumesCount; i++) { BRTCVolumeInfo volumeInfo = userVolumes[i]; std::string* str = new std::string(volumeInfo.userId); LOG(INFO) << "userId[" << (*str).c_str() << "], volume[" << volumeInfo.volume << "]"; } }
调整通话音量
SDK 支持对采集和播放的音频音量进行调整,以满足用户实际应用场景。
如果使用调整信号音量的方法将音量设置过大,在某些设备上可能会出现音频失真。因此使用时候要保留一定的调节余地。
调整播放音量
调整采集音量
调用 setAudioCaptureVolume 调整音频采集音量,通过 getAudioCaptureVolume 读取麦克风的采集音量。
⚠️SDK 默认是开启自动增益(AGC)的,通常情况下会根据采集音量大小进行自我调节。但如果您感觉音量太小,可以将 volume 设置成最大值 150,但超过 100 的 volume 可能会有爆音的风险,请谨慎操作。
获取用户音量(回调)
在音频采集、混音、播放的整个过程中,你都可以通过 onUserVoiceVolume 回调获取房间内所有正在说话的人的用户 ID 及他们的音量。