音频采集
adjustRecordingSignalVolume
调节音频采集信号音量。
public abstract int adjustRecordingSignalVolume(int volume);
注意:
该方法在加入频道前后都能调用。
参数
| 参数名 | 描述 |
|---|---|
volume | 音量,取值范围为 [0,400]。
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码了解详情和解决建议。
enableInEarMonitoring [1/2]
enableInEarMonitoring [2/2]
开启耳返功能。
public abstract int enableInEarMonitoring(boolean enabled, int includeAudioFilters);
该方法打开或关闭耳返功能。
注意:
-
用户必须使用耳机(有线和蓝牙均可)才能听到耳返效果。
-
该方法在加入频道前后都能调用。
参数
| 参数名 | 描述 |
|---|---|
enabled | 开启/关闭耳返功能:
|
includeAudioFilters | 耳返 audio filter 类型:
|
返回值
-
>0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码了解详情和解决建议。-
-
8: 请确保当前的音频路由为蓝牙或耳机。
-
-
enableLocalAudio
开关本地音频采集。
public abstract int enableLocalAudio(boolean enabled);
当用户加入频道时,音频功能默认是开启的。该方法可以关闭或重新开启本地音频功能,即停止或重新开始本地音频采集。
该方法不影响接收远端音频流,enableLocalAudio(false) 适用于只听不发的用户场景。
音频功能关闭或重新开启后,会收到 onLocalAudioStateChanged 回调,并报告 LOCAL_AUDIO_STREAM_STATE_STOPPED(0) 或 LOCAL_AUDIO_STREAM_STATE_RECORDING(1)。
注意:
-
该方法与
muteLocalAudioStream的区别在于:-
enableLocalAudio: 开启或关闭本地音频采集及处理。使用enableLocalAudio关闭或开启本地采集后,本地听远端播放会有短暂中断。 -
muteLocalAudioStream: 停止或继续发送本地音频流。
-
-
该方法在加入频道前后均可调用。在加入频道前调用只能设置设备状态,在加入频道后才会立即生效。
参数
| 参数名 | 描述 |
|---|---|
enabled |
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码了解详情和解决建议。
getEarMonitoringAudioParams
设置 onEarMonitoringAudioFrame 回调数据的格式。
public abstract AudioParams getEarMonitoringAudioParams();
v4.0.1
你需要在调用 registerAudioFrameObserver 方法时注册该回调。成功注册音频数据观测器后,SDK 会触发该回调,你可以在该回调的返回值中设置耳返的音频数据格式。
注意:
SDK 会通过你在返回值中设置的 AudioParams 计算采样间隔触发 onEarMonitoringAudioFrame 回调。计算公式为采样间隔 = samplesPerCall/(sampleRate × channel)。
请确保采样间隔不小于 0.01 秒。
返回值
耳返的音频数据,详见 AudioParams。
muteRecordingSignal
是否将录音信号静音。
public abstract int muteRecordingSignal(boolean muted);
参数
| 参数名 | 描述 |
|---|---|
muted |
adjustRecordingSignalVolume 调节了音量,则调用该方法并设置为 true 时,SDK 会记录当前音量并将其静音。如需恢复之前的音量,再次调用该方法并设置为 false 即可。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码了解详情和解决建议。
setEarMonitoringAudioFrameParameters
设置耳返的音频数据格式。
public abstract int setEarMonitoringAudioFrameParameters(
int sampleRate, int channel, int mode, int samplesPerCall);
该方法用于设置 onEarMonitoringAudioFrame 回调的耳返音频数据格式。
注意:
-
调用该方法前,你需要先调用
enableInEarMonitoring [2/2],将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
获得耳返的原始音频数据。
public abstract boolean onEarMonitoringAudioFrame(int type, int samplesPerChannel,
int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs,
int avsync_type);
为保证耳返的音频数据格式符合预期,你可以在如下两种方法中任选一种,设置耳返音频数据格式:
-
方法一:调用
setEarMonitoringAudioFrameParameters设置音频数据格式后,调用registerAudioFrameObserver注册音频观测器对象,SDK 会根据该方法中的参数计算采样间隔,并根据该采样间隔触发onEarMonitoringAudioFrame回调。 -
方法二:调用
registerAudioFrameObserver注册音频观测器对象后,在getObservedAudioFramePosition回调的返回值中设置具体的音频观测位置,然后在getEarMonitoringAudioParams回调的返回值中设置音频数据格式,SDK 会根据该回调的返回值计算采样间隔,并根据该采样间隔触发onEarMonitoringAudioFrame回调。
注:
- 方法一的优先级高于方法二,如果已使用方法一设置了音频数据格式,则使用方法二的设置不生效。
参数
| 参数名 | 描述 |
|---|---|
type | 音频原始数据。详见 |
samplesPerChannel | 音频数据的类型。 |
bytesPerSample | 每声道的采样点数。 |
channels | 每个采样点的字节数(byte)。对于 PCM 音频数据,一般是两个字节。 |
samplesPerSec | 声道数:
|
buffer | 音频采样率(Hz)。 |
renderTimeMs | 音频 buffer。buffer 大小为 samplesPerChannel x channels x bytesPerSample。 |
avsync_type | 外部音频帧的渲染时间戳(毫秒)。你可以使用该时间戳还原音频帧的顺序。在音视频场景下(包含使用外部视频源的场景),该时间戳可以用于实现音频和视频的同步。 |
返回值
无实际含义。