音频采集
adjustLoopbackSignalVolume
调节声卡采集信号音量。
virtual int adjustLoopbackSignalVolume(int volume) = 0;
调用 enableLoopbackRecording
开启声卡采集后,你可以调用该方法调节声卡采集的信号音量。
参数
参数名 | 描述 |
---|---|
volume | 音乐文件音量范围为 0~100。100 (默认值)为原始文件音量。 |
返回值
-
0: 方法调用成功
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
adjustRecordingSignalVolume
调节音频采集信号音量。
virtual int adjustRecordingSignalVolume(int volume) = 0;
注意:
该方法在加入频道前后都能调用。
参数
参数名 | 描述 |
---|---|
volume | 音量,取值范围为 [0,400]。
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
enableInEarMonitoring
开启耳返功能。
virtual int enableInEarMonitoring(bool enabled, int includeAudioFilters) = 0;
该方法打开或关闭耳返功能。
注意:
-
用户必须使用耳机(有线和蓝牙均可)才能听到耳返效果。
-
该方法在加入频道前后都能调用。
参数
参数名 | 描述 |
---|---|
enabled | 开启/关闭耳返功能:
|
includeAudioFilters | 耳返 audio filter 类型。详见 |
返回值
-
>0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。-
-
8: 请确保当前的音频路由为蓝牙或耳机。
-
-
enableLocalAudio
开关本地音频采集。
virtual int enableLocalAudio(bool enabled) = 0;
当用户加入频道时,音频功能默认是开启的。该方法可以关闭或重新开启本地音频功能,即停止或重新开始本地音频采集。
该方法不影响接收远端音频流,enableLocalAudio
(false)
适用于只听不发的用户场景。
音频功能关闭或重新开启后,会收到 onLocalAudioStateChanged
回调,并报告 LOCAL_AUDIO_STREAM_STATE_STOPPED
(0) 或 LOCAL_AUDIO_STREAM_STATE_RECORDING
(1)。
注意:
-
该方法与
muteLocalAudioStream
的区别在于:-
enableLocalAudio
: 开启或关闭本地音频采集及处理。使用enableLocalAudio
关闭或开启本地采集后,本地听远端播放会有短暂中断。 -
muteLocalAudioStream
: 停止或继续发送本地音频流。
-
-
该方法在加入频道前后均可调用。在加入频道前调用只能设置设备状态,在加入频道后才会立即生效。
参数
参数名 | 描述 |
---|---|
enabled |
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
enableLoopbackRecording
开启声卡采集。
virtual int enableLoopbackRecording(bool enabled, const char* deviceName = NULL) = 0;
启用声卡采集功能后,声卡播放的声音会被合到本地音频流中,从而可以发送到远端。
注意:
-
该方法仅适用于 macOS 和 Windows 平台。
-
macOS 系统默认声卡不支持采集功能,如果你需要使用该功能,请启用一个虚拟声卡,并将
deviceName
设为该虚拟声卡的设备名。声网推荐你使用声网自研的虚拟声卡 AgoraALD 进行采集。 -
该方法在加入频道前后都能调用。
参数
参数名 | 描述 |
---|---|
enabled | 是否开启声卡采集:
|
deviceName |
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
enableLoopbackRecordingEx
开启声卡采集。
virtual int enableLoopbackRecordingEx(const RtcConnection& connection, bool enabled, const char* deviceName = NULL) = 0;
启用声卡采集功能后,声卡播放的声音会被合到本地音频流中,从而可以发送到远端。
注意:
-
该方法仅适用于 macOS 和 Windows 平台。
-
macOS 系统默认声卡不支持采集功能,如果你需要使用该功能,请启用一个虚拟声卡,并将
deviceName
设为该虚拟声卡的设备名。声网推荐你使用声网自研的虚拟声卡 AgoraALD 进行采集。 -
该方法目前仅支持一路声卡采集。
参数
参数名 | 描述 |
---|---|
connection | Connection 信息。详见 |
enabled | 是否开启声卡采集:
|
deviceName |
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
getEarMonitoringAudioParams
设置 onEarMonitoringAudioFrame
回调数据的格式。
virtual AudioParams getEarMonitoringAudioParams() = 0;
v4.0.1
你需要在调用 registerAudioFrameObserver
方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置耳返的音频数据格式。
注意:
SDK 会通过你在返回值中设置的 AudioParams
计算采样间隔触发 onEarMonitoringAudioFrame
回调。计算公式为采样间隔 = samplesPerCall
/(sampleRate
× channel
)。
请确保采样间隔不小于 0.01 秒。
返回值
耳返的音频数据,详见 AudioParams
。
muteRecordingSignal
是否将录音信号静音。
virtual int muteRecordingSignal(bool mute) = 0;
参数
参数名 | 描述 |
---|---|
mute |
adjustRecordingSignalVolume 调节了音量,则调用该方法并设置为 true 时,SDK 会记录当前音量并将其静音。如需恢复之前的音量,再次调用该方法并设置为 false 即可。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setEarMonitoringAudioFrameParameters
设置耳返的音频数据格式。
virtual int setEarMonitoringAudioFrameParameters(int sampleRate, int channel,
RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
int samplesPerCall) = 0;
该方法用于设置 onEarMonitoringAudioFrame
回调的耳返音频数据格式。
注意:
-
调用该方法前,你需要先调用
enableInEarMonitoring
,将includeAudioFilters
设置为EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERS
或EAR_MONITORING_FILTER_NOISE_SUPPRESSION
。 -
SDK 会通过该方法中的
samplesPerCall
、sampleRate
和channel
参数计算出采样间隔,计算公式为采样间隔 =samplesPerCall
/(sampleRate
×channel
)。请确保采样间隔不小于 0.01 秒。SDK 会根据该采样间隔触发onEarMonitoringAudioFrame
回调。
参数
参数名 | 描述 |
---|---|
sampleRate |
|
channel |
|
mode | 音频帧的使用模式,详见 |
samplesPerCall |
|
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
setInEarMonitoringVolume
onEarMonitoringAudioFrame
获得耳返的原始音频数据。
virtual bool onEarMonitoringAudioFrame(AudioFrame& audioFrame) = 0;
为保证耳返的音频数据格式符合预期,你可以在如下两种方法中任选一种,设置耳返音频数据格式:
-
方法一:调用
setEarMonitoringAudioFrameParameters
设置音频数据格式后,调用registerAudioFrameObserver
注册音频观测器对象,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发onEarMonitoringAudioFrame
回调。 -
方法二:调用
registerAudioFrameObserver
注册音频观测器对象后,在getObservedAudioFramePosition
回调的返回值中设置具体的音频观测位置,然后在getEarMonitoringAudioParams
回调的返回值中设置音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发onEarMonitoringAudioFrame
回调。
注:
- 方法一的优先级高于方法二,如果已使用方法一设置了音频数据格式,则使用方法二的设置不生效。
参数
参数名 | 描述 |
---|---|
audioFrame | 音频原始数据。详见 |
返回值
无实际含义。
所属接口类