# 设置音频编码属性 (/zh-CN/realtime-media/rtc/build/audio/audio-profile/windows)

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

不同的 App 需要设置不同的音频编码属性或应用场景。本文介绍如何使用声网 RTC SDK 在你的 App 中设置合适的音频编码属性和应用场景。

## 技术原理 [#技术原理-3]

SDK 默认使用 `AUDIO_PROFILE_DEFAULT` 编码属性和 `AUDIO_SCENARIO_DEFAULT` 应用场景。如果默认设置无法满足你的需求，调用如下 API 设置音频编码属性和应用场景。

| API                                                          | 描述                                                         |
| :----------------------------------------------------------- | :----------------------------------------------------------- |
| `initialize(context.audioScenario)` | 在创建 `IRtcEngine` 实例时，设置音频应用场景。默认值为 `AUDIO_SCENARIO_DEFAULT`。 |
| `setAudioProfile(profile)`                                   | 在加入频道前后均可设置音频编码属性。                         |
| `setAudioScenario`                         | 在加入频道前后均可设置音频应用场景。               |

## 前提条件 [#前提条件-4]

在实现设置音频编码属性和应用场景前，请确保已在你的项目中实现基本的实时音视频功能。详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现方法 [#实现方法-4]

本节介绍如何为常见应用设置音频编码属性和应用场景。你可以将如下示例代码添加至你的项目中。

### 一对一互动教学 [#一对一互动教学-3]

一对一互动教学主要要求保证通话质量、传输流畅。在你的项目中添加如下代码：

```cpp
// 在初始化 IRtcEngine 实例时，设置音频应用场景
RtcEngineContext context;
context.audioScenario = AUDIO_SCENARIO_DEFAULT
m_rtcEngine->initialize(context);

// 设置音频编码属性
m_rtcEngine->setAudioProfile(AUDIO_PROFILE_DEFAULT);
```

### KTV [#ktv-3]

KTV 主要要求高音质、对音乐和歌声的表现力好。在你的项目中添加如下代码：

```cpp
// 在初始化 IRtcEngine 实例时，设置音频应用场景
RtcEngineContext context;
context.audioScenario = AUDIO_SCENARIO_GAME_STREAMING
m_rtcEngine->initialize(context);

// 设置音频编码属性
m_rtcEngine->setAudioProfile(AUDIO_PROFILE_MUSIC_HIGH_QUALITY);
```

### 语音电台 [#语音电台-3]

语音电台一般会使用专业的音频设备，主要要求高音质和立体声。在你的项目中添加如下代码：

```cpp
// 在初始化 IRtcEngine 实例时，设置音频应用场景
RtcEngineContext context;
context.audioScenario = AUDIO_SCENARIO_GAME_STREAMING
m_rtcEngine->initialize(context);

// 设置音频编码属性
m_rtcEngine->setAudioProfile(AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO);
```

### 音乐教学 [#音乐教学-3]

该场景主要要求高音质，支持将扬声器播放的音效传输到远端。声网推荐如下设置：

```cpp
// 在初始化 IRtcEngine 实例时，设置音频应用场景
RtcEngineContext context;
context.audioScenario = AUDIO_SCENARIO_GAME_STREAMING
m_rtcEngine->initialize(context);

// 设置音频编码属性
m_rtcEngine->setAudioProfile(AUDIO_PROFILE_MUSIC_STANDARD_STEREO);
```

## 参考信息 [#参考信息-4]

### 相关文档 [#相关文档-3]

- [如何区分媒体音量和通话音量？](/zh-CN/reference/faq/integration/system_volume)
- [实现高音质](/zh-CN/realtime-media/rtc/build/audio/optimal-audio-quality)

### 示例项目 [#示例项目-3]

声网提供了设置音频编码属性和应用场景功能的开源示例项目供你参考，你可以前往下载或查看其中的源代码。

<Cards>
  <Card title={<RepositoryCardTitle provider="gitee">AudioProfile</RepositoryCardTitle>} href="https://gitee.com/agoraio-community/API-Examples/tree/main/windows/APIExample/APIExample/Advanced/AudioProfile" />
  <Card title={<RepositoryCardTitle provider="github">AudioProfile</RepositoryCardTitle>} href="https://github.com/Shengwang-Community/API-Examples/tree/main/windows/APIExample/APIExample/Advanced/AudioProfile" />
</Cards>

### API 参考 [#api-参考-4]

- [`initialize`](/zh-CN/api-reference/rtc/cpp-all-platforms/initialize#api_irtcengine_initialize)
- [`setAudioProfile`[2/2]](/zh-CN/api-reference/rtc/cpp-all-platforms/audio/audio-basic#api_irtcengine_setaudioprofile2)
- [`setAudioScenario`](/zh-CN/api-reference/rtc/cpp-all-platforms/audio/audio-basic#api_irtcengine_setaudioscenario)














