# 原始音频数据 (/zh-CN/api-reference/rtc/android/audio/audio-raw)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="toc_audio_raw"></a>

<a id="api_iaudioframeobserver_getearmonitoringaudioparams"></a>

<a id="ariaid-title2"></a>

## getEarMonitoringAudioParams [#getearmonitoringaudioparams]

[onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onearmonitoringaudioframe) 回调的音频格式设置方法。

<a id="api_iaudioframeobserver_getearmonitoringaudioparams__prototype"></a>

```java
@CalledByNative public abstract AudioParams getEarMonitoringAudioParams();
```

<a id="api_iaudioframeobserver_getearmonitoringaudioparams__detailed_desc"></a>

调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 注册音频帧观察者时，需要实现该回调。SDK 会触发该回调，你可以在该回调的返回值中设置音频格式。

:::note
注： SDK 会根据你在返回值中设置的采样间隔计算公式触发 [onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onearmonitoringaudioframe) 回调。采样间隔（秒） = `samplePerCall` /（`sampleRate` × `channel`）。请确保采样间隔 ≥ 0.01 秒。
:::

<a id="api_iaudioframeobserver_getearmonitoringaudioparams__return_values"></a>

### 返回值 [#返回值]

耳返音频数据格式，详见 [AudioParams](/zh-CN/api-reference/rtc/android/class-audioparams)。

### 所属接口类 [#所属接口类]

- [IAudioFrameObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_iaudioframeobserver)

<a id="api_iaudioframeobserver_getmixedaudioparams"></a>

<a id="ariaid-title3"></a>

## getMixedAudioParams [#getmixedaudioparams]

设置 [onMixedAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onmixedaudioframe) 回调的音频格式。

<a id="api_iaudioframeobserver_getmixedaudioparams__prototype"></a>

```java
@CalledByNative public abstract AudioParams getMixedAudioParams();
```

<a id="api_iaudioframeobserver_getmixedaudioparams__detailed_desc"></a>

调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 注册音频帧观察者时，需要实现该回调。成功注册音频帧观察者后，SDK 会触发该回调，你可以在该回调的返回值中设置音频格式。

:::note
注： SDK 会根据你在返回值中设置的采样间隔计算公式触发 [onMixedAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onmixedaudioframe) 回调。采样间隔（秒） = `samplePerCall` /（`sampleRate` × `channel`）。确保采样间隔 ≥ 0.01 秒。
:::

<a id="api_iaudioframeobserver_getmixedaudioparams__return_values"></a>

### 返回值 [#返回值-1]

方法调用成功，返回 [AudioParams](/zh-CN/api-reference/rtc/android/class-audioparams) 对象。详见 [AudioParams](/zh-CN/api-reference/rtc/android/class-audioparams)。

### 所属接口类 [#所属接口类-1]

- [IAudioFrameObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_iaudioframeobserver)

<a id="api_iaudioframeobserver_getobservedaudioframeposition"></a>

<a id="ariaid-title4"></a>

## getObservedAudioFramePosition [#getobservedaudioframeposition]

设置音频数据观察位置。

<a id="api_iaudioframeobserver_getobservedaudioframeposition__prototype"></a>

```java
@CalledByNative public abstract int getObservedAudioFramePosition();
```

<a id="api_iaudioframeobserver_getobservedaudioframeposition__detailed_desc"></a>

成功注册音频数据观察器后，SDK 会在每个特定的音频帧处理节点调用该回调，以判断是否触发以下回调：

- [onRecordAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onrecordaudioframe)
- [onPlaybackAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframe)
- [onPlaybackAudioFrameBeforeMixing](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing)
- [onMixedAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onmixedaudioframe)
- [onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onearmonitoringaudioframe)

你可以根据场景需求，通过修改 [getObservedAudioFramePosition](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_iaudioframeobserver_getobservedaudioframeposition) 的返回值设置需要观察的一个或多个位置。当需要观察多个位置时，需使用 |（或运算符）。为节省系统资源，建议减少观察的帧位置数量。

<a id="api_iaudioframeobserver_getobservedaudioframeposition__return_values"></a>

### 返回值 [#返回值-2]

返回一个位掩码，用于设置观察位置，具体取值如下：

- `POSITION_PLAYBACK`（0x0001）：可观察所有远端用户混音后的播放音频，对应 [onPlaybackAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframe) 回调。
- `POSITION_RECORD`（0x0002）：可观察本地用户采集的音频，对应 [onRecordAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onrecordaudioframe) 回调。
- `POSITION_MIXED`（0x0004）：可观察本地用户与所有远端用户混音后的播放音频，对应 [onMixedAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onmixedaudioframe) 回调。
- `POSITION_BEFORE_MIXING`（0x0008）：可观察单个远端用户混音前的音频，对应 [onPlaybackAudioFrameBeforeMixing](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调。
- `POSITION_EAR_MONITORING`（0x0010）：可观察本地用户的耳返音频，对应 [onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onearmonitoringaudioframe) 回调。

### 所属接口类 [#所属接口类-2]

- [IAudioFrameObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_iaudioframeobserver)

<a id="api_iaudioframeobserver_getplaybackaudioparams"></a>

<a id="ariaid-title5"></a>

## getPlaybackAudioParams [#getplaybackaudioparams]

[onPlaybackAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframe) 回调的音频格式设置方法。

<a id="api_iaudioframeobserver_getplaybackaudioparams__prototype"></a>

```java
public abstract AudioParams getPlaybackAudioParams()
```

<a id="api_iaudioframeobserver_getplaybackaudioparams__detailed_desc"></a>

你需要在调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 方法时注册回调。在成功注册音频观测器后，SDK 会触发该回调。你可以在该回调的返回值中设置音频格式。

:::note
注： SDK 会根据你在返回值中设置的 [AudioParams](/zh-CN/api-reference/rtc/android/class-audioparams) 计算采样间隔，并以此触发 [onPlaybackAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframe) 回调。采样间隔的计算公式为：采样间隔（秒） = `samplePerCall` /（`sampleRate` × `channel`）。确保采样间隔 ≥ 0.01 秒。
:::

<a id="api_iaudioframeobserver_getplaybackaudioparams__return_values"></a>

### 返回值 [#返回值-3]

方法调用成功，返回 [AudioParams](/zh-CN/api-reference/rtc/android/class-audioparams) 对象。详见 [AudioParams](/zh-CN/api-reference/rtc/android/class-audioparams)。

### 所属接口类 [#所属接口类-3]

- [IAudioFrameObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_iaudioframeobserver)

<a id="api_iaudioframeobserver_getrecordaudioparams"></a>

<a id="ariaid-title6"></a>

## getRecordAudioParams [#getrecordaudioparams]

设置 [onRecordAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onrecordaudioframe) 回调的音频格式。

<a id="api_iaudioframeobserver_getrecordaudioparams__prototype"></a>

```java
@CalledByNative public abstract AudioParams getRecordAudioParams();
```

<a id="api_iaudioframeobserver_getrecordaudioparams__detailed_desc"></a>

调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 注册回调后，SDK 会触发该回调。你可以在该回调的返回值中设置音频格式。

:::note
注： SDK 会根据你在返回值中设置的 [AudioParams](/zh-CN/api-reference/rtc/android/class-audioparams) 计算采样间隔并触发 [onRecordAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onrecordaudioframe) 回调。采样间隔（秒） = `samplePerCall` /（`sampleRate` × `channel`）。请确保采样间隔 ≥ 0.01 秒。
:::

<a id="api_iaudioframeobserver_getrecordaudioparams__return_values"></a>

### 返回值 [#返回值-4]

方法调用成功，返回 [AudioParams](/zh-CN/api-reference/rtc/android/class-audioparams) 对象。

### 所属接口类 [#所属接口类-4]

- [IAudioFrameObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_iaudioframeobserver)

<a id="api_irtcengine_registeraudioframeobserver"></a>

<a id="ariaid-title7"></a>

## registerAudioFrameObserver [#registeraudioframeobserver]

注册音频帧观测器对象。

<a id="api_irtcengine_registeraudioframeobserver__prototype"></a>

```java
public abstract int registerAudioFrameObserver(IAudioFrameObserver observer);
```

<a id="api_irtcengine_registeraudioframeobserver__detailed_desc"></a>

调用该方法注册音频帧观测器对象后，SDK 会触发 [onMixedAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onmixedaudioframe)、[onRecordAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onrecordaudioframe)、[onPlaybackAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframe)、[onPlaybackAudioFrameBeforeMixing](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 或 [onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onearmonitoringaudioframe) 回调。

<a id="api_irtcengine_registeraudioframeobserver__timing"></a>

### 调用时机 [#调用时机]

在加入频道前调用此方法。

<a id="api_irtcengine_registeraudioframeobserver__related"></a>

### 相关回调 [#相关回调]

相关回调：[onMixedAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onmixedaudioframe)、[onRecordAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onrecordaudioframe)、[onPlaybackAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframe)、[onPlaybackAudioFrameBeforeMixing](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing)、[onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onearmonitoringaudioframe)。

<a id="api_irtcengine_registeraudioframeobserver__parameters"></a>

### 参数 [#参数]

<ParameterList>
<a id="observer"></a>
<Parameter name="observer">

音频帧观测器实例。详见 [IAudioFrameObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_iaudioframeobserver)。设置为 `null` 可释放该实例。建议在收到 [onLeaveChannel](/zh-CN/api-reference/rtc/android/channel#callback_irtcengineeventhandler_onleavechannel) 回调后调用此方法释放音频帧观测器对象。

</Parameter>
</ParameterList>

<a id="api_irtcengine_registeraudioframeobserver__return_values"></a>

### 返回值 [#返回值-5]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-5]

- [RtcEngine](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengine)

<a id="api_irtcengine_setearmonitoringaudioframeparameters"></a>

<a id="ariaid-title8"></a>

## setEarMonitoringAudioFrameParameters [#setearmonitoringaudioframeparameters]

设置耳返音频数据格式。

<a id="api_irtcengine_setearmonitoringaudioframeparameters__prototype"></a>

```java
public abstract int setEarMonitoringAudioFrameParameters(int sampleRate, int channel, int mode, int samplesPerCall);
```

<a id="api_irtcengine_setearmonitoringaudioframeparameters__detailed_desc"></a>

该方法用于设置 [onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onearmonitoringaudioframe) 回调中报告的耳返音频数据格式。

:::note
注：

- 在调用该方法前，你需要先调用 `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](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onearmonitoringaudioframe) 回调。
:::

<a id="api_irtcengine_setearmonitoringaudioframeparameters__parameters"></a>

### 参数 [#参数-1]

<ParameterList>
<a id="samplerate"></a>
<Parameter name="sampleRate">

在 [onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onearmonitoringaudioframe) 回调中报告的音频采样率。可设置为 8000、16000、32000、44100 或 48000 Hz。

</Parameter>
<a id="channel"></a>
<Parameter name="channel">

在 [onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onearmonitoringaudioframe) 回调中报告的音频通道数：

- 1：单声道。
- 2：立体声。

</Parameter>
<a id="mode"></a>
<Parameter name="mode">

音频帧的使用模式：

- `RAW_AUDIO_FRAME_OP_MODE_READ_ONLY`（0）：（默认）只读模式。例如，用户通过声网 SDK 获取数据后推送 RTMP 或 RTMPS 流。
- `RAW_AUDIO_FRAME_OP_MODE_READ_WRITE`（2）：读写模式。用户从 [AudioFrame](/zh-CN/api-reference/rtc/android/class-audioframe) 中读取数据，修改后再播放。例如，用户有自己的音效处理模块并进行语音预处理，如变声。

</Parameter>
<a id="samplespercall"></a>
<Parameter name="samplesPerCall">

在 [onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onearmonitoringaudioframe) 回调中报告的每次调用采样数，例如媒体推流时为 1024。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setearmonitoringaudioframeparameters__return_values"></a>

### 返回值 [#返回值-6]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-6]

- [RtcEngine](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengine)

<a id="api_irtcengine_setmixedaudioframeparameters"></a>

<a id="ariaid-title9"></a>

## setMixedAudioFrameParameters [#setmixedaudioframeparameters]

设置混音后用于采集和播放的原始音频数据格式。

<a id="api_irtcengine_setmixedaudioframeparameters__prototype"></a>

```java
public abstract int setMixedAudioFrameParameters(int sampleRate, int channel, int samplesPerCall);
```

<a id="api_irtcengine_setmixedaudioframeparameters__detailed_desc"></a>

SDK 会根据该方法中设置的 `samplesPerCall`、`sampleRate` 和 `channel` 参数计算采样间隔。
采样间隔（秒） = `samplesPerCall` / (`sampleRate` × `channel`)，请确保采样间隔 ≥ 0.01 秒。
SDK 会根据采样间隔触发 [onMixedAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onmixedaudioframe) 回调。

<a id="api_irtcengine_setmixedaudioframeparameters__timing"></a>

### 调用时机 [#调用时机-1]

请在加入频道前调用该方法。

<a id="api_irtcengine_setmixedaudioframeparameters__parameters"></a>

### 参数 [#参数-2]

<ParameterList>
<a id="samplerate-1"></a>
<Parameter name="sampleRate">

回调中返回的采样率，可设置为 8000、16000、32000、44100 或 48000 Hz。

</Parameter>
<a id="channel-1"></a>
<Parameter name="channel">

音频声道数，可设置为以下取值：

- 1：单声道。
- 2：立体声。

</Parameter>
<a id="samplespercall-1"></a>
<Parameter name="samplesPerCall">

每次回调的数据采样数，例如媒体推流时为 1024。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setmixedaudioframeparameters__return_values"></a>

### 返回值 [#返回值-7]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-7]

- [RtcEngine](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengine)

<a id="api_irtcengine_setplaybackaudioframebeforemixingparameters"></a>

<a id="ariaid-title10"></a>

## setPlaybackAudioFrameBeforeMixingParameters [1/2] [#setplaybackaudioframebeforemixingparameters-12]

设置混音前原始音频播放数据的格式。

<a id="api_irtcengine_setplaybackaudioframebeforemixingparameters__prototype"></a>

```java
public abstract int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel);
```

<a id="api_irtcengine_setplaybackaudioframebeforemixingparameters__detailed_desc"></a>

SDK 会根据采样间隔触发 [onPlaybackAudioFrameBeforeMixing](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调。

<a id="api_irtcengine_setplaybackaudioframebeforemixingparameters__timing"></a>

### 调用时机 [#调用时机-2]

请在加入频道前调用此方法。

<a id="api_irtcengine_setplaybackaudioframebeforemixingparameters__related"></a>

### 相关回调 [#相关回调-1]

相关回调：[onPlaybackAudioFrameBeforeMixing](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing)。

<a id="api_irtcengine_setplaybackaudioframebeforemixingparameters__parameters"></a>

### 参数 [#参数-3]

<ParameterList>
<a id="samplerate-2"></a>
<Parameter name="sampleRate">

回调中返回的采样率。可设置为以下值：

- 8000：8 kHz。
- 16000：16 kHz。
- 32000：32 kHz。
- 44100：44.1 kHz。
- 48000：48 kHz。

</Parameter>
<a id="channel-2"></a>
<Parameter name="channel">

音频声道数。可设置为以下值：

- 1：单声道。
- 2：立体声。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setplaybackaudioframebeforemixingparameters__return_values"></a>

### 返回值 [#返回值-8]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-8]

- [RtcEngine](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengine)

<a id="api_irtcengine_setplaybackaudioframebeforemixingparameters1"></a>

<a id="ariaid-title11"></a>

## setPlaybackAudioFrameBeforeMixingParameters [2/2] [#setplaybackaudioframebeforemixingparameters-22]

设置 [onPlaybackAudioFrameBeforeMixing](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调中返回音频数据的格式。

<a id="api_irtcengine_setplaybackaudioframebeforemixingparameters1__prototype"></a>

```java
public abstract int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel, int samplesPerCall);
```

<a id="api_irtcengine_setplaybackaudioframebeforemixingparameters1__detailed_desc"></a>

<a id="api_irtcengine_setplaybackaudioframebeforemixingparameters1__parameters"></a>

### 参数 [#参数-4]

<ParameterList>
<a id="samplerate-3"></a>
<Parameter name="sampleRate">

设置 [onPlaybackAudioFrameBeforeMixing](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调中返回的采样率。可设置为以下值（单位：Hz）：

- 8000
- 16000
- 32000
- 44100
- 48000

</Parameter>
<a id="channel-3"></a>
<Parameter name="channel">

设置 [onPlaybackAudioFrameBeforeMixing](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调中返回的音频数据的声道数。可设置为：

- 1：单声道。
- 2：立体声。

</Parameter>
<a id="samplespercall-2"></a>
<Parameter name="samplesPerCall">

设置 [onMixedAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onmixedaudioframe) 回调中返回的音频数据的采样点数。

:::note
注： 在 RTMP 推流场景中，建议设置为 1024。
:::

</Parameter>
</ParameterList>

<a id="api_irtcengine_setplaybackaudioframebeforemixingparameters1__return_values"></a>

### 返回值 [#返回值-9]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-9]

- [RtcEngine](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengine)

<a id="api_irtcengine_setplaybackaudioframeparameters"></a>

<a id="ariaid-title12"></a>

## setPlaybackAudioFrameParameters [#setplaybackaudioframeparameters]

设置原始音频播放数据的格式。

<a id="api_irtcengine_setplaybackaudioframeparameters__prototype"></a>

```java
public abstract int setPlaybackAudioFrameParameters(int sampleRate, int channel, int mode, int samplesPerCall);
```

<a id="api_irtcengine_setplaybackaudioframeparameters__detailed_desc"></a>

SDK 会根据 `samplesPerCall`、`sampleRate` 和 `channel` 参数计算采样间隔。采样间隔（单位：秒） = `samplesPerCall` /（`sampleRate` × `channel`）。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 [onPlaybackAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframe) 回调。

<a id="api_irtcengine_setplaybackaudioframeparameters__timing"></a>

### 调用时机 [#调用时机-3]

在加入频道前调用此方法。

<a id="api_irtcengine_setplaybackaudioframeparameters__related"></a>

### 相关回调 [#相关回调-2]

该方法会根据采样间隔触发 [onPlaybackAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframe) 回调。

<a id="api_irtcengine_setplaybackaudioframeparameters__parameters"></a>

### 参数 [#参数-5]

<ParameterList>
<a id="samplerate-4"></a>
<Parameter name="sampleRate">

回调中返回的采样率。可设置为 8000、16000、24000、32000、44100 或 48000 Hz。

</Parameter>
<a id="channel-4"></a>
<Parameter name="channel">

音频声道数。可设置为：

- 1：单声道。
- 2：立体声。

</Parameter>
<a id="mode-1"></a>
<Parameter name="mode">

音频帧的使用模式：

- `RAW_AUDIO_FRAME_OP_MODE_READ_ONLY` (0)：（默认）只读模式。例如，用户通过声网 SDK 获取数据后推送 RTMP 或 RTMPS 流。
- `RAW_AUDIO_FRAME_OP_MODE_READ_WRITE` (2)：读写模式。用户从 [AudioFrame](/zh-CN/api-reference/rtc/android/class-audioframe) 中读取数据，修改后再播放。例如，用户有自己的音效处理模块并进行语音预处理，如变声。

</Parameter>
<a id="samplespercall-3"></a>
<Parameter name="samplesPerCall">

每次调用返回的数据采样数，例如媒体推流时为 1024。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setplaybackaudioframeparameters__return_values"></a>

### 返回值 [#返回值-10]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-10]

- [RtcEngine](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengine)

<a id="api_irtcengine_setrecordingaudioframeparameters"></a>

<a id="ariaid-title13"></a>

## setRecordingAudioFrameParameters [#setrecordingaudioframeparameters]

设置采集的原始音频数据格式。

<a id="api_irtcengine_setrecordingaudioframeparameters__prototype"></a>

```java
public abstract int setRecordingAudioFrameParameters(int sampleRate, int channel, int mode, int samplesPerCall);
```

<a id="api_irtcengine_setrecordingaudioframeparameters__detailed_desc"></a>

SDK 会根据 `samplesPerCall`、`sampleRate` 和 `channel` 参数计算采样间隔。采样间隔（单位：秒） = `samplesPerCall` /（`sampleRate` × `channel`）。请确保采样间隔 ≥ 0.01 秒。SDK 会根据采样间隔触发 [onRecordAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onrecordaudioframe) 回调。

<a id="api_irtcengine_setrecordingaudioframeparameters__timing"></a>

### 调用时机 [#调用时机-4]

请在加入频道前调用该方法。

<a id="api_irtcengine_setrecordingaudioframeparameters__parameters"></a>

### 参数 [#参数-6]

<ParameterList>
<a id="samplerate-5"></a>
<Parameter name="sampleRate">

回调中返回的采样率，可设置为 8000、16000、32000、44100 或 48000 Hz。

</Parameter>
<a id="channel-5"></a>
<Parameter name="channel">

音频声道数，可设置为：

- 1：单声道。
- 2：立体声。

</Parameter>
<a id="mode-2"></a>
<Parameter name="mode">

音频帧的使用模式：

- 0：只读模式。例如，用户通过声网 SDK 获取数据后推送 RTMP 或 RTMPS 流。
- 2：读写模式。用户从 [AudioFrame](/zh-CN/api-reference/rtc/android/class-audioframe) 中读取数据并进行修改后播放。例如，用户有自己的音效处理模块并进行语音预处理，如变声。

</Parameter>
<a id="samplespercall-4"></a>
<Parameter name="samplesPerCall">

每次调用的数据采样数，例如媒体推流时为 1024。

</Parameter>
</ParameterList>

<a id="api_irtcengine_setrecordingaudioframeparameters__return_values"></a>

### 返回值 [#返回值-11]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-11]

- [RtcEngine](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengine)

<a id="callback_iaudioframeobserver_onearmonitoringaudioframe"></a>

<a id="ariaid-title14"></a>

## onEarMonitoringAudioFrame [#onearmonitoringaudioframe]

耳返音频帧回调。

<a id="callback_iaudioframeobserver_onearmonitoringaudioframe__prototype"></a>

```java
public abstract boolean onEarMonitoringAudioFrame(int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type);
```

<a id="callback_iaudioframeobserver_onearmonitoringaudioframe__detailed_desc"></a>

该回调用于获取耳返音频数据。为了确保获取的数据符合预期，声网建议你通过以下任一方式设置音频数据格式：

- 方法一：调用 [setEarMonitoringAudioFrameParameters](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_setearmonitoringaudioframeparameters) 设置音频数据格式，并调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 注册音频帧观察者对象后，SDK 会根据设置的参数计算采样间隔，并按该间隔触发 [onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onearmonitoringaudioframe) 回调。
- 方法二：调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 注册音频帧观察者对象后，在 [getObservedAudioFramePosition](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_iaudioframeobserver_getobservedaudioframeposition) 的返回值中设置音频数据格式。然后 SDK 会根据 [getEarMonitoringAudioParams](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_iaudioframeobserver_getearmonitoringaudioparams) 的返回值计算采样间隔，并按该间隔触发 [onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/android/audio/audio-raw#callback_iaudioframeobserver_onearmonitoringaudioframe) 回调。

:::note
注： 方法一的优先级高于方法二。如果使用方法一设置音频数据格式，则方法二的设置无效。
:::

<a id="callback_iaudioframeobserver_onearmonitoringaudioframe__parameters"></a>

### 参数 [#参数-7]

<ParameterList>
<a id="type"></a>
<Parameter name="type">

音频帧类型。

</Parameter>
<a id="samplesperchannel"></a>
<Parameter name="samplesPerChannel">

每个声道中的采样点数。

</Parameter>
<a id="bytespersample"></a>
<Parameter name="bytesPerSample">

每个音频采样点的字节数。例如，每个 PCM 音频采样点通常占用 16 位（2 字节）。

</Parameter>
<a id="channels"></a>
<Parameter name="channels">

声道数：

- 1：单声道。
- 2：立体声。若为立体声，数据为交错格式。

</Parameter>
<a id="samplespersec"></a>
<Parameter name="samplesPerSec">

录音采样率（Hz）。

</Parameter>
<a id="buffer"></a>
<Parameter name="buffer">

音频缓冲区。缓冲区大小 = `samplesPerChannel` × `channels` × `bytesPerSample`。详见 `ByteBuffer`。

</Parameter>
<a id="rendertimems"></a>
<Parameter name="renderTimeMs">

外部音频帧的时间戳（毫秒）。你可以使用该参数在视频或音频相关场景中（包括使用自定义视频源的场景）实现音视频帧同步。

</Parameter>
<a id="avsync_type"></a>
<Parameter name="avsync_type">

预留参数。

</Parameter>
</ParameterList>

<a id="callback_iaudioframeobserver_onearmonitoringaudioframe__return_values"></a>

### 返回值 [#返回值-12]

- true：回调处理成功。
- false：回调处理失败。

### 所属接口类 [#所属接口类-12]

- [IAudioFrameObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_iaudioframeobserver)

<a id="callback_iaudioframeobserver_onmixedaudioframe"></a>

<a id="ariaid-title15"></a>

## onMixedAudioFrame [#onmixedaudioframe]

获取混合采集和播放的音频帧回调。

<a id="callback_iaudioframeobserver_onmixedaudioframe__prototype"></a>

```java
public abstract boolean onMixedAudioFrame(String channelId, int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type);
```

<a id="callback_iaudioframeobserver_onmixedaudioframe__detailed_desc"></a>

声网建议通过以下两种方式之一设置音频数据格式，以确保混合采集和播放音频帧的数据格式符合预期：

- 方法一：调用 [setMixedAudioFrameParameters](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_setmixedaudioframeparameters) 设置音频数据格式，并调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 注册音频帧观察者对象后，SDK 会根据设置的参数计算采样间隔，并按照采样间隔触发该回调。
- 方法二：调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 注册音频帧观察者对象后，在 [getObservedAudioFramePosition](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_iaudioframeobserver_getobservedaudioframeposition) 回调的返回值中设置音频数据格式。SDK 会根据 [getMixedAudioParams](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_iaudioframeobserver_getmixedaudioparams) 回调的返回值计算采样间隔，并按照采样间隔触发该回调。

:::note
注： [setMixedAudioFrameParameters](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_setmixedaudioframeparameters) 的设置优先级高于 [getObservedAudioFramePosition](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_iaudioframeobserver_getobservedaudioframeposition)。如果使用方法一设置音频数据格式，则方法二的设置无效。
:::

<a id="callback_iaudioframeobserver_onmixedaudioframe__parameters"></a>

### 参数 [#参数-8]

<ParameterList>
<a id="channelid"></a>
<Parameter name="channelId">

频道 ID。

</Parameter>
<a id="type-1"></a>
<Parameter name="type">

音频帧类型。

</Parameter>
<a id="samplesperchannel-1"></a>
<Parameter name="samplesPerChannel">

每个声道的采样点数。

</Parameter>
<a id="bytespersample-1"></a>
<Parameter name="bytesPerSample">

每个音频采样的字节数。例如，每个 PCM 音频采样通常占用 16 位（2 字节）。

</Parameter>
<a id="channels-1"></a>
<Parameter name="channels">

声道数：

- 1：单声道。
- 2：立体声。使用立体声时，数据为交错格式。

</Parameter>
<a id="samplespersec-1"></a>
<Parameter name="samplesPerSec">

录音采样率（Hz）。

</Parameter>
<a id="buffer-1"></a>
<Parameter name="buffer">

音频缓冲区。缓冲区大小 = `samplesPerChannel` × `channels` × `bytesPerSample`。详见 `ByteBuffer`。

</Parameter>
<a id="rendertimems-1"></a>
<Parameter name="renderTimeMs">

外部音频帧的时间戳（毫秒）。你可以使用该参数在视频或音频相关场景中（包括使用外部视频源的场景）实现音视频帧同步。

</Parameter>
<a id="avsync_type-1"></a>
<Parameter name="avsync_type">

预留参数。

</Parameter>
</ParameterList>

<a id="callback_iaudioframeobserver_onmixedaudioframe__return_values"></a>

### 返回值 [#返回值-13]

- true：回调处理成功。
- false：回调处理失败。

### 所属接口类 [#所属接口类-13]

- [IAudioFrameObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_iaudioframeobserver)

<a id="callback_iaudioframeobserver_onplaybackaudioframe"></a>

<a id="ariaid-title16"></a>

## onPlaybackAudioFrame [#onplaybackaudioframe]

获取用于播放的原始音频帧回调。

<a id="callback_iaudioframeobserver_onplaybackaudioframe__prototype"></a>

```java
public abstract boolean onPlaybackAudioFrame(String channelId, int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type);
```

<a id="callback_iaudioframeobserver_onplaybackaudioframe__detailed_desc"></a>

你可以通过以下两种方式之一设置音频数据格式：

- 方法一：调用 [setPlaybackAudioFrameParameters](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_setplaybackaudioframeparameters) 设置音频数据格式，并调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 注册音频帧观察者对象后，SDK 会根据设置的参数计算采样间隔，并按照采样间隔触发该回调。
- 方法二：调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 注册音频帧观察者对象后，在 [getObservedAudioFramePosition](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_iaudioframeobserver_getobservedaudioframeposition) 回调的返回值中设置音频数据格式。SDK 会根据 [getPlaybackAudioParams](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_iaudioframeobserver_getplaybackaudioparams) 回调的返回值计算采样间隔，并按照采样间隔触发该回调。

:::note
注： [setPlaybackAudioFrameParameters](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_setplaybackaudioframeparameters) 的设置优先级高于 [getObservedAudioFramePosition](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_iaudioframeobserver_getobservedaudioframeposition)。如果使用方法一设置音频数据格式，则方法二的设置无效。
:::

<a id="callback_iaudioframeobserver_onplaybackaudioframe__parameters"></a>

### 参数 [#参数-9]

<ParameterList>
<a id="channelid-1"></a>
<Parameter name="channelId">

频道 ID。

</Parameter>
<a id="type-2"></a>
<Parameter name="type">

音频帧类型。

</Parameter>
<a id="samplesperchannel-2"></a>
<Parameter name="samplesPerChannel">

每个声道中的采样点数。

</Parameter>
<a id="bytespersample-2"></a>
<Parameter name="bytesPerSample">

每个音频采样点的字节数。例如，每个 PCM 音频采样点通常占用 16 位（2 字节）。

</Parameter>
<a id="channels-2"></a>
<Parameter name="channels">

声道数：

- 1：单声道。
- 2：立体声。若为立体声，数据为交错排列。

</Parameter>
<a id="samplespersec-2"></a>
<Parameter name="samplesPerSec">

录音采样率（Hz）。

</Parameter>
<a id="buffer-2"></a>
<Parameter name="buffer">

音频缓冲区。缓冲区大小 = `samplesPerChannel` × `channels` × `bytesPerSample`。

</Parameter>
<a id="rendertimems-2"></a>
<Parameter name="renderTimeMs">

外部音频帧的时间戳（毫秒）。你可以使用该参数在视频或音频相关场景中（包括使用外部视频源的场景）实现音视频帧同步。

</Parameter>
<a id="avsync_type-2"></a>
<Parameter name="avsync_type">

预留参数。

</Parameter>
</ParameterList>

<a id="callback_iaudioframeobserver_onplaybackaudioframe__return_values"></a>

### 返回值 [#返回值-14]

- true：回调处理成功。
- false：回调处理失败。

### 所属接口类 [#所属接口类-14]

- [IAudioFrameObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_iaudioframeobserver)

<a id="callback_iaudioframeobserver_onplaybackaudioframebeforemixing"></a>

<a id="ariaid-title17"></a>

## onPlaybackAudioFrameBeforeMixing [#onplaybackaudioframebeforemixing]

获取已订阅远端用户混音前的音频帧回调。

<a id="callback_iaudioframeobserver_onplaybackaudioframebeforemixing__prototype"></a>

```java
public abstract boolean onPlaybackAudioFrameBeforeMixing(String channelId, int uid, int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type, int rtpTimestamp, long presentationMs);
```

<a id="callback_iaudioframeobserver_onplaybackaudioframebeforemixing__detailed_desc"></a>

<a id="callback_iaudioframeobserver_onplaybackaudioframebeforemixing__timing"></a>

### 触发时机 [#触发时机]

该回调在获取远端用户音频帧并在混音前触发。

<a id="callback_iaudioframeobserver_onplaybackaudioframebeforemixing__parameters"></a>

### 参数 [#参数-10]

<ParameterList>
<a id="channelid-2"></a>
<Parameter name="channelId">

频道 ID。

</Parameter>
<a id="uid"></a>
<Parameter name="uid">

已订阅远端用户的用户 ID。

</Parameter>
<a id="type-3"></a>
<Parameter name="type">

音频帧类型。

</Parameter>
<a id="samplesperchannel-3"></a>
<Parameter name="samplesPerChannel">

每个声道的采样点数。

</Parameter>
<a id="bytespersample-3"></a>
<Parameter name="bytesPerSample">

每个音频采样点的字节数。例如，每个 PCM 音频采样点通常为 16 位（2 字节）。

</Parameter>
<a id="channels-3"></a>
<Parameter name="channels">

声道数：

- 1：单声道。
- 2：立体声。立体声数据为交错排列。

</Parameter>
<a id="samplespersec-3"></a>
<Parameter name="samplesPerSec">

录音采样率（Hz）。

</Parameter>
<a id="buffer-3"></a>
<Parameter name="buffer">

音频缓冲区。缓冲区大小 = `samplesPerChannel` × `channels` × `bytesPerSample`。

</Parameter>
<a id="rendertimems-3"></a>
<Parameter name="renderTimeMs">

外部音频帧的时间戳（毫秒）。你可以使用该参数在视频或音频相关场景中（包括使用自定义视频源的场景）实现音视频同步。

</Parameter>
<a id="avsync_type-3"></a>
<Parameter name="avsync_type">

预留参数。

</Parameter>
<a id="rtptimestamp"></a>
<Parameter name="rtpTimestamp">

RTP 时间戳。

</Parameter>
<a id="presentationms"></a>
<Parameter name="presentationMs">

展示时间戳（毫秒）。

</Parameter>
</ParameterList>

<a id="callback_iaudioframeobserver_onplaybackaudioframebeforemixing__return_values"></a>

### 返回值 [#返回值-15]

- true：处理成功。
- false：处理失败。

### 所属接口类 [#所属接口类-15]

- [IAudioFrameObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_iaudioframeobserver)

<a id="callback_iaudioframeobserver_onrecordaudioframe"></a>

<a id="ariaid-title18"></a>

## onRecordAudioFrame [#onrecordaudioframe]

获取采集到的音频帧回调。

<a id="callback_iaudioframeobserver_onrecordaudioframe__prototype"></a>

```java
public abstract boolean onRecordAudioFrame(String channelId, int type, int samplesPerChannel, int bytesPerSample, int channels, int samplesPerSec, ByteBuffer buffer, long renderTimeMs, int avsync_type);
```

<a id="callback_iaudioframeobserver_onrecordaudioframe__detailed_desc"></a>

你可以通过以下两种方式之一设置音频数据格式：

- 方法一：调用 [setRecordingAudioFrameParameters](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_setrecordingaudioframeparameters) 设置音频数据格式，并调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 注册音频帧观察者对象后，SDK 会根据方法中设置的参数计算采样间隔，并按照采样间隔触发该回调。
- 方法二：调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_registeraudioframeobserver) 注册音频帧观察者对象后，在 [getObservedAudioFramePosition](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_iaudioframeobserver_getobservedaudioframeposition) 回调的返回值中设置音频数据格式。SDK 会根据 [getRecordAudioParams](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_iaudioframeobserver_getrecordaudioparams) 回调的返回值计算采样间隔，并按照采样间隔触发该回调。

:::note
注： [setRecordingAudioFrameParameters](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_irtcengine_setrecordingaudioframeparameters) 的设置优先级高于 [getObservedAudioFramePosition](/zh-CN/api-reference/rtc/android/audio/audio-raw#api_iaudioframeobserver_getobservedaudioframeposition)。如果使用方法一设置音频数据格式，则方法二的设置无效。
:::

<a id="callback_iaudioframeobserver_onrecordaudioframe__parameters"></a>

### 参数 [#参数-11]

<ParameterList>
<a id="channelid-3"></a>
<Parameter name="channelId">

频道 ID。

</Parameter>
<a id="type-4"></a>
<Parameter name="type">

音频帧类型。

</Parameter>
<a id="samplesperchannel-4"></a>
<Parameter name="samplesPerChannel">

每个声道中的采样点数。

</Parameter>
<a id="bytespersample-4"></a>
<Parameter name="bytesPerSample">

每个音频采样的字节数。例如，每个 PCM 音频采样通常占用 16 位（2 字节）。

</Parameter>
<a id="channels-4"></a>
<Parameter name="channels">

声道数：

- 1：单声道。
- 2：立体声。如果使用立体声，数据为交错排列。

</Parameter>
<a id="samplespersec-4"></a>
<Parameter name="samplesPerSec">

录音采样率（Hz）。

</Parameter>
<a id="buffer-4"></a>
<Parameter name="buffer">

音频缓冲区。缓冲区大小 = `samplesPerChannel` × `channels` × `bytesPerSample`。

</Parameter>
<a id="rendertimems-4"></a>
<Parameter name="renderTimeMs">

外部音频帧的时间戳（毫秒）。你可以使用该参数在视频或音频相关场景中（包括使用外部视频源的场景）实现音视频帧同步。

</Parameter>
<a id="avsync_type-4"></a>
<Parameter name="avsync_type">

预留参数。

</Parameter>
</ParameterList>

<a id="callback_iaudioframeobserver_onrecordaudioframe__return_values"></a>

### 返回值 [#返回值-16]

- true：回调处理成功。
- false：回调处理失败。

### 所属接口类 [#所属接口类-16]

- [IAudioFrameObserver](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_iaudioframeobserver)
