# 原始音频数据 (/zh-CN/api-reference/rtc/flutter/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_imediaengine_registeraudioframeobserver"></a>

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

## registerAudioFrameObserver [#registeraudioframeobserver]

注册音频观测器对象。

<a id="api_imediaengine_registeraudioframeobserver__prototype"></a>

```dart
void registerAudioFrameObserver(AudioFrameObserver observer);
```

<a id="api_imediaengine_registeraudioframeobserver__detailed_desc"></a>

该方法用于注册音频观测器对象，即注册回调。当需要 SDK 触发 [onMixedAudioFrame](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onmixedaudioframe)、[onRecordAudioFrame](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onrecordaudioframe)、[onPlaybackAudioFrame](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onplaybackaudioframe)、[onPlaybackAudioFrameBeforeMixing](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 和 [onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onearmonitoringaudioframe) 回调时，需要调用该方法注册回调。

<a id="api_imediaengine_registeraudioframeobserver__timing"></a>

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

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

<a id="api_imediaengine_registeraudioframeobserver__parameters"></a>

### 参数 [#参数]

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

接口对象实例。详见 [AudioFrameObserver](/zh-CN/api-reference/rtc/flutter/rtc-interface-class#class_iaudioframeobserver)。建议在收到 [onLeaveChannel](/zh-CN/api-reference/rtc/flutter/channel#callback_irtcengineeventhandler_onleavechannel) 后调用，来释放音频观测器对象。

</Parameter>
</ParameterList>

<a id="api_imediaengine_registeraudioframeobserver__return_values"></a>

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

方法成功调用时，无返回值；方法调用失败时，会抛出 [AgoraRtcException](/zh-CN/api-reference/rtc/flutter/class-agorartcexception) 异常，你需要捕获异常并进行处理。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

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

- [MediaEngine](/zh-CN/api-reference/rtc/flutter/rtc-interface-class#class_imediaengine)

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

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

## setEarMonitoringAudioFrameParameters [#setearmonitoringaudioframeparameters]

设置耳返的音频数据格式。

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

```dart
Future<void> setEarMonitoringAudioFrameParameters(
      {required int sampleRate,
      required int channel,
      required RawAudioFrameOpModeType mode,
      required int samplesPerCall});
```

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

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

:::note
注：

- 调用该方法前，你需要先调用 [enableInEarMonitoring](/zh-CN/api-reference/rtc/flutter/audio/audio-capture#api_irtcengine_enableinearmonitoring2)，将 `includeAudioFilters` 设置为 `earMonitoringFilterBuiltInAudioFilters` 或 `earMonitoringFilterNoiseSuppression`。
- SDK 会通过该方法中的 `samplesPerCall`、`sampleRate` 和 `channel` 参数计算出采样间隔，计算公式为采样间隔 = `samplesPerCall`/(`sampleRate` × `channel`)。请确保采样间隔不小于 0.01 秒。SDK 会根据该采样间隔触发 [onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onearmonitoringaudioframe) 回调。
:::

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

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

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

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

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

[onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onearmonitoringaudioframe) 中报告音频的声道数，可设置为 1 或 2:

- 1: 单声道。
- 2: 双声道。

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

音频帧的使用模式，详见 [RawAudioFrameOpModeType](/zh-CN/api-reference/rtc/flutter/enum-rawaudioframeopmodetype)。

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

[onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onearmonitoringaudioframe) 中报告的音频的采样点数，如旁路推流应用中通常为 1024。

</Parameter>
</ParameterList>

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

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

方法成功调用时，无返回值；方法调用失败时，会抛出 [AgoraRtcException](/zh-CN/api-reference/rtc/flutter/class-agorartcexception) 异常，你需要捕获异常并进行处理。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

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

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

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

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

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

## setMixedAudioFrameParameters [#setmixedaudioframeparameters]

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

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

```dart
Future<void> setMixedAudioFrameParameters(
    {required int sampleRate,
    required int channel,
    required 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/flutter/audio/audio-raw#callback_iaudioframeobserverbase_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">

音频数据的采样率 (Hz)，可设置为 8000、 16000、 32000、44100 或 48000。

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

音频数据的声道数，可设置为 1 或 2:

- 1: 单声道。
- 2: 双声道。

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

音频数据的采样点数，如旁路推流应用中通常为 1024。

</Parameter>
</ParameterList>

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

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

方法成功调用时，无返回值；方法调用失败时，会抛出 [AgoraRtcException](/zh-CN/api-reference/rtc/flutter/class-agorartcexception) 异常，你需要捕获异常并进行处理。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

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

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

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

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

## setPlaybackAudioFrameBeforeMixingParameters [#setplaybackaudioframebeforemixingparameters]

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

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

```dart
Future<void> setPlaybackAudioFrameBeforeMixingParameters(
      {required int sampleRate, required int channel
      {required int sampleRate, required int samplesPerCall});
```

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

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

<a id="api_irtcengine_setplaybackaudioframebeforemixingparameters1__timing"></a>

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

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

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

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

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

音频数据的采样率 (Hz)，可设置为 8000、 16000、 32000、44100 或 48000。

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

音频数据的声道数，可设置为 1 或 2:

- 1: 单声道。
- 2: 双声道。

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

设置 [onPlaybackAudioFrameBeforeMixing](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserver_onplaybackaudioframebeforemixing) 回调中返回音频数据的采样点数。在 RTMP 推流场景中，建议设置为 1024。

</Parameter>
</ParameterList>

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

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

方法成功调用时，无返回值；方法调用失败时，会抛出 [AgoraRtcException](/zh-CN/api-reference/rtc/flutter/class-agorartcexception) 异常，你需要捕获异常并进行处理。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

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

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

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

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

## setPlaybackAudioFrameParameters [#setplaybackaudioframeparameters]

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

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

```dart
Future<void> setPlaybackAudioFrameParameters(
    {required int sampleRate,
    required int channel,
    required RawAudioFrameOpModeType mode,
    required 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/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onplaybackaudioframe) 回调。

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

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

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

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

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

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

音频数据的采样率 (Hz)，可设置为 8000、 16000、 24000、 32000、44100 或 48000。

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

音频数据的声道数，可设置为 1 或 2:

- 1: 单声道。
- 2: 双声道。

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

音频帧的使用模式，详见 [RawAudioFrameOpModeType](/zh-CN/api-reference/rtc/flutter/enum-rawaudioframeopmodetype)。

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

音频数据的采样点数，如旁路推流应用中通常为 1024。

</Parameter>
</ParameterList>

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

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

方法成功调用时，无返回值；方法调用失败时，会抛出 [AgoraRtcException](/zh-CN/api-reference/rtc/flutter/class-agorartcexception) 异常，你需要捕获异常并进行处理。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

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

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

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

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

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

## setRecordingAudioFrameParameters [#setrecordingaudioframeparameters]

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

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

```dart
Future<void> setRecordingAudioFrameParameters(
    {required int sampleRate,
    required int channel,
    required RawAudioFrameOpModeType mode,
    required 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/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onrecordaudioframe) 回调。

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

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

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

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

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

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

音频数据的采样率 (Hz)，可设置为 8000、 16000、 32000、44100 或 48000。

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

音频数据的声道数，可设置为 1 或 2:

- 1: 单声道。
- 2: 双声道。

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

音频帧的使用模式，详见 [RawAudioFrameOpModeType](/zh-CN/api-reference/rtc/flutter/enum-rawaudioframeopmodetype)。

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

音频数据的采样点数，如旁路推流应用中通常为 1024。

</Parameter>
</ParameterList>

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

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

方法成功调用时，无返回值；方法调用失败时，会抛出 [AgoraRtcException](/zh-CN/api-reference/rtc/flutter/class-agorartcexception) 异常，你需要捕获异常并进行处理。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

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

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

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

<a id="api_imediaengine_unregisteraudioframeobserver_imediaengine"></a>

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

## unregisterAudioFrameObserver [#unregisteraudioframeobserver]

取消注册音频帧观测器。

<a id="api_imediaengine_unregisteraudioframeobserver_imediaengine__prototype"></a>

```dart
void unregisterAudioFrameObserver(AudioFrameObserver observer);
```

<a id="api_imediaengine_unregisteraudioframeobserver_imediaengine__detailed_desc"></a>

<a id="api_imediaengine_unregisteraudioframeobserver_imediaengine__parameters"></a>

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

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

音频帧观测器，观测每帧音频的接收，详见 [AudioFrameObserver](/zh-CN/api-reference/rtc/flutter/rtc-interface-class#class_iaudioframeobserver)。

</Parameter>
</ParameterList>

<a id="api_imediaengine_unregisteraudioframeobserver_imediaengine__return_values"></a>

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

方法成功调用时，无返回值；方法调用失败时，会抛出 [AgoraRtcException](/zh-CN/api-reference/rtc/flutter/class-agorartcexception) 异常，你需要捕获异常并进行处理。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

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

- [MediaEngine](/zh-CN/api-reference/rtc/flutter/rtc-interface-class#class_imediaengine)

<a id="callback_iaudioframeobserverbase_onearmonitoringaudioframe"></a>

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

## onEarMonitoringAudioFrame [#onearmonitoringaudioframe]

获得耳返的原始音频数据。

<a id="callback_iaudioframeobserverbase_onearmonitoringaudioframe__prototype"></a>

```dart
final void Function(AudioFrame audioFrame)? onEarMonitoringAudioFrame;
```

<a id="callback_iaudioframeobserverbase_onearmonitoringaudioframe__detailed_desc"></a>

为保证耳返的音频数据格式符合预期，你可以使用如下方法设置耳返音频数据格式：调用 [setEarMonitoringAudioFrameParameters](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#api_irtcengine_setearmonitoringaudioframeparameters) 设置音频数据格式后，调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#api_imediaengine_registeraudioframeobserver) 注册音频观测器对象，SDK 会根据该方法中的参数计算采样间隔，并根据该采样间隔触发 [onEarMonitoringAudioFrame](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onearmonitoringaudioframe) 回调。

:::note
注：

- 由于框架的限制，该回调不支持将处理后的音频数据发送回 SDK。
:::

<a id="callback_iaudioframeobserverbase_onearmonitoringaudioframe__parameters"></a>

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

<ParameterList>
<a id="audioframe"></a>
<Parameter name="audioFrame">

音频原始数据。详见 [AudioFrame](/zh-CN/api-reference/rtc/flutter/class-audioframe)。

</Parameter>
</ParameterList>

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

- [AudioFrameObserverBase](/zh-CN/api-reference/rtc/flutter/rtc-interface-class#class_iaudioframeobserverbase)

<a id="callback_iaudioframeobserverbase_onmixedaudioframe"></a>

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

## onMixedAudioFrame [#onmixedaudioframe]

获取采集和播放音频混音后的数据。

<a id="callback_iaudioframeobserverbase_onmixedaudioframe__prototype"></a>

```dart
final void Function(String channelId, AudioFrame audioFrame)?
      onMixedAudioFrame;
```

<a id="callback_iaudioframeobserverbase_onmixedaudioframe__detailed_desc"></a>

为保证采集和播放混音后的音频数据格式符合预期，你可以在如下方法设置音频的数据格式：调用 [setMixedAudioFrameParameters](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#api_irtcengine_setmixedaudioframeparameters) 设置音频数据格式后，调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#api_imediaengine_registeraudioframeobserver) 注册音频观测器对象，SDK 会根据该方法中的参数计算采样间隔，并根据该采样间隔触发 [onMixedAudioFrame](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onmixedaudioframe) 回调。

:::note
注：

- 由于框架的限制，该回调不支持将处理后的音频数据发送回 SDK。
:::

<a id="callback_iaudioframeobserverbase_onmixedaudioframe__parameters"></a>

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

<ParameterList>
<a id="audioframe-1"></a>
<Parameter name="audioFrame">

音频原始数据。详见 [AudioFrame](/zh-CN/api-reference/rtc/flutter/class-audioframe)。

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

频道 ID。

</Parameter>
</ParameterList>

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

- [AudioFrameObserverBase](/zh-CN/api-reference/rtc/flutter/rtc-interface-class#class_iaudioframeobserverbase)

<a id="callback_iaudioframeobserverbase_onplaybackaudioframe"></a>

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

## onPlaybackAudioFrame [#onplaybackaudioframe]

获得播放的原始音频数据。

<a id="callback_iaudioframeobserverbase_onplaybackaudioframe__prototype"></a>

```dart
final void Function(String channelId, AudioFrame audioFrame)?
      onPlaybackAudioFrame;
```

<a id="callback_iaudioframeobserverbase_onplaybackaudioframe__detailed_desc"></a>

为保证播放的音频数据格式符合预期，你可以在如下方法设置音频的数据格式：调用 [setPlaybackAudioFrameParameters](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#api_irtcengine_setplaybackaudioframeparameters) 设置音频数据格式后，调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#api_imediaengine_registeraudioframeobserver) 注册音频观测器对象，SDK 会根据该方法中的参数计算采样间隔，并根据该采样间隔触发 [onPlaybackAudioFrame](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onplaybackaudioframe) 回调。

:::note
注：

- 由于框架的限制，该回调不支持将处理后的音频数据发送回 SDK。
:::

<a id="callback_iaudioframeobserverbase_onplaybackaudioframe__parameters"></a>

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

<ParameterList>
<a id="audioframe-2"></a>
<Parameter name="audioFrame">

音频原始数据。详见 [AudioFrame](/zh-CN/api-reference/rtc/flutter/class-audioframe)。

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

频道 ID。

</Parameter>
</ParameterList>

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

- [AudioFrameObserverBase](/zh-CN/api-reference/rtc/flutter/rtc-interface-class#class_iaudioframeobserverbase)

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

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

## onPlaybackAudioFrameBeforeMixing [#onplaybackaudioframebeforemixing]

获取所订阅的远端用户混音前的声音。

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

```dart
final void Function(String channelId, int uid, AudioFrame audioFrame)?
      onPlaybackAudioFrameBeforeMixing;
```

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

:::note
注： 由于框架的限制，该回调不支持将处理后的音频数据发送回 SDK。
:::

<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="audioframe-3"></a>
<Parameter name="audioFrame">

音频原始数据。详见 [AudioFrame](/zh-CN/api-reference/rtc/flutter/class-audioframe)。

</Parameter>
</ParameterList>

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

- [AudioFrameObserver](/zh-CN/api-reference/rtc/flutter/rtc-interface-class#class_iaudioframeobserver)

<a id="callback_iaudioframeobserverbase_onrecordaudioframe"></a>

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

## onRecordAudioFrame [#onrecordaudioframe]

获得采集的原始音频数据。

<a id="callback_iaudioframeobserverbase_onrecordaudioframe__prototype"></a>

```dart
final void Function(String channelId, AudioFrame audioFrame)?
      onRecordAudioFrame;
```

<a id="callback_iaudioframeobserverbase_onrecordaudioframe__detailed_desc"></a>

为保证采集的音频数据格式符合预期，你可以在如下方法设置音频的数据格式：调用 [setRecordingAudioFrameParameters](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#api_irtcengine_setrecordingaudioframeparameters) 设置音频数据格式后，调用 [registerAudioFrameObserver](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#api_imediaengine_registeraudioframeobserver) 注册音频观测器对象，SDK 会根据该方法中的参数计算采样间隔，并根据该采样间隔触发 [onRecordAudioFrame](/zh-CN/api-reference/rtc/flutter/audio/audio-raw#callback_iaudioframeobserverbase_onrecordaudioframe) 回调。

:::note
注：

- 由于框架的限制，该回调不支持将处理后的音频数据发送回 SDK。
:::

<a id="callback_iaudioframeobserverbase_onrecordaudioframe__parameters"></a>

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

<ParameterList>
<a id="audioframe-4"></a>
<Parameter name="audioFrame">

音频原始数据。详见 [AudioFrame](/zh-CN/api-reference/rtc/flutter/class-audioframe)。

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

频道 ID。

</Parameter>
</ParameterList>

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

- [AudioFrameObserverBase](/zh-CN/api-reference/rtc/flutter/rtc-interface-class#class_iaudioframeobserverbase)
