# LocalAudioTrack 类 (/zh-CN/api-reference/rtc-server-sdk/python-api/localaudiotrack.python)

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

<span className="index-desc-localaudiotrack">`LocalAudioTrack` 类是本地音频轨道的基类。</span>

<a id="setenabled"></a>
## set_enabled [#set_enabled]

```python
def set_enabled(self, enable)
```

<span className="index-desc-setenabled">开启或关闭本地音频轨道。本地音频轨道开启之后，SDK 可以采集、处理和编码本地音频。</span>

#### 参数 [#参数]

| 参数 | 描述 |
| --- | --- |
| `enable` | [localaudiotrack-python-html-0-1-1 details](#table-slot-localaudiotrack-python-html-0-1-1) |

<a id="table-slot-localaudiotrack-python-html-0-1-1"></a>

**localaudiotrack-python-html-0-1-1 details**

是否开启音频轨道：

- `1` 表示开启音频轨道，
- `0` 表示关闭音频轨道。

<a id="adjustpublishvolume"></a>
## adjust_publish_volume [#adjust_publish_volume]

```python
def adjust_publish_volume(self, volume)
```

<span className="index-desc-adjustpublishvolume">调整音频发布音量。</span>

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

| 参数 | 描述 |
|------|------|
| `volume` | 音频发布音量。取值范围 [0,100]，`0` 表示静音，`100` 表示原始音量。|

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

- 0: 方法调用成功。
- < 0: 方法调用失败。

<a id="setmaxbufferaudioframenumber"></a>
## set_max_buffer_audio_frame_number [#set_max_buffer_audio_frame_number]

```python
def set_max_buffer_audio_frame_number(self, num)
```

<span className="index-desc-setmaxbufferaudioframenumber">设置音频发送缓冲区的最大容量。</span>

在 AI 交互等应用场景中，发送端发送音频帧的频率可能不均匀，例如有时每 20 ms 发送 1 帧数据、有时每 20 ms 发送 3 帧数据。如果 SDK 按照实际的发送频率去发送给声网服务器，则接收端可能会有卡顿、丢帧等不良体验。为优化音频传输性能，SDK 设置了音频发送缓冲区，不论发送端实际发送音频帧的频率是多少，SDK 都会将数据存放在音频发送缓冲区。待音频发送缓冲区中的数据达到允许发送的最小时长后，SDK 再开始按照 10 ms 每帧的频率发送数据给接收端。

SDK 默认的音频发送缓冲区最大容量是 6000，表示支持存放最多 6000 帧数据，即 60 s 的数据。如果你需要更大的缓冲区容量，你可以调用该方法进行调整。如果你还需要设置音频发送缓冲区允许发送的最小数据时长，调用 [`set_send_delay_ms`](/zh-CN/api-reference/rtc-server-sdk/python-api/localaudiotrack.python#setsenddelayms) 方法。

:::warning[注意]
该方法需要在 [`publish_audio`](/zh-CN/api-reference/rtc-server-sdk/python-api/localuser.python#publishaudio) 方法之前调用。
:::

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

| 参数 | 描述 |
|------|------|
| `num` | 缓冲区存放的最大音频帧数。例如，填入 6000 则表示 6000 帧音频数据。|

<a id="clearsenderbuffer"></a>
## clear_sender_buffer [#clear_sender_buffer]

```python
def clear_sender_buffer(self)
```

<span className="index-desc-clearsenderbuffer">清除当前音频发送缓冲区。</span>

如果你不再需要当前音频发送缓冲区中的数据，可以调用该方法清除缓冲区。例如，用户给 AI 提了个问题，AI 正在通过 SDK 传输音频给用户解答，此时 SDK 的音频发送缓冲区中不断有数据进出。当用户打断 AI 的回复并提出另一个问题时，你可以调用该方法，让 SDK 清除当前未发送出去的缓冲数据，以便快速缓冲 AI 对新话题的回答。

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

- 0: 方法调用成功。
- < 0: 方法调用失败。

<a id="setsenddelayms"></a>
## set_send_delay_ms [#set_send_delay_ms]

```python
def set_send_delay_ms(self, delay_ms:int)
```

<span className="index-desc-setsenddelayms">设置音频发送缓冲区允许发送的最小数据时长。</span>

SDK 默认允许发送的最小数据时长为 160 ms，即 SDK 会等音频发送缓冲区存满 160 ms 的数据后将数据发送给接收端，这会带来如下影响：

- 如果发送端一次发送的数据大于或等于 160 ms，例如 800 ms，则 SDK 会立即按照每帧 10 ms 的频率发送数据给接收端。
- 如果发送端一次发送的数据小于 160 ms，例如 100 ms，则 SDK 会等缓冲区数据达到 160 ms 后，再按照 10 ms 每帧的频率发送数据给接收端。这就会造成至多 60 ms 的延迟。

你可以根据实际业务需求，调用该方法调整缓冲区允许发送的最小数据时长。

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

| 参数 | 描述 |
|------|------|
| `delay_ms` | 缓冲区允许发送的最小数据时长（ms）。该参数需要设置为 10 的倍数，取值范围为大于 0 且小于 [`set_max_buffer_audio_frame_number`](/zh-CN/api-reference/rtc-server-sdk/python-api/localaudiotrack.python#setmaxbufferaudioframenumber) 方法中 number 参数值的 10 倍。 |

<a id="release"></a>
## release [#release]

```python
def release(self)
```

<span className="index-desc-release">释放本地音频轨道资源。</span>
