音频采集
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 | 外部音频帧的渲染时间戳(毫秒)。你可以使用该时间戳还原音频帧的顺序。在音视频场景下(包含使用外部视频源的场景),该时间戳可以用于实现音频和视频的同步。 |
返回值
无实际含义。