> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SHAPE_PCM_FORMAT

> SHAPE_PCM_FORMAT

# SHAPE\_PCM\_FORMAT

指定 PCM 格式的枚举。

## 语法

```cpp theme={null}
enum SHAPE_PCM_FORMAT    
{  
    SHAPE_PCM_FORMAT_16_BIT_MONO,  
    SHAPE_PCM_FORMAT_16_BIT_STEREO,  
    SHAPE_PCM_FORMAT_32_BIT_MONO,  
    SHAPE_PCM_FORMAT_32_BIT_FLOAT  
}  
```

## 常量

| 常量                                  | 说明                                                                                 |
| ----------------------------------- | ---------------------------------------------------------------------------------- |
| SHAPE\_PCM\_FORMAT\_16\_BIT\_MONO   | 16 位单声道。缓冲区大小为 `numSamples * sizeof(INT16)`。                                       |
| SHAPE\_PCM\_FORMAT\_16\_BIT\_STEREO | 16 位立体声。对于读取和写入指针而言，视为单个 32 位样本。缓冲区大小为 `numSamples * 2 * sizeof(INT16)`。           |
| SHAPE\_PCM\_FORMAT\_32\_BIT\_MONO   | 24 位或 32 位整数单声道。可以是 24 位左对齐，或者是低 8 位被屏蔽的 32 位。缓冲区大小为 `numSamples * sizeof(INT32)`。 |
| SHAPE\_PCM\_FORMAT\_32\_BIT\_FLOAT  | 32 位浮点单声道。缓冲区大小为 `numSamples * sizeof(FLOAT32)`。                                   |

## 备注

| 函数         | 说明                                                                                                                                                                                                                                          |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 非循环线性 PCM  | 使用 `SHAPE_SRC_COMMAND_TYPE_START` 常量为采样率转换器 (SRC) 启动语音。让语音播放到末尾，或者可选地使用 `SHAPE_SRC_COMMAND_TYPE_STOP_IMMEDIATE` 常量在末尾之前停止它。有关更多信息，请参阅 [SHAPE\_SRC\_COMMAND\_TYPE](/reference/audio/shapesrccontext/enums/shape_src_command_type) 枚举。        |
| 无限循环线性 PCM | 将脉冲编码调制 (PCM) 上下文循环计数 *loopCount* 设置为 `SHAPE_PCM_INFINITE_LOOP_COUNT` 常量。使用 `SHAPE_SRC_COMMAND_TYPE_START` 为 SRC 启动语音。让语音一直播放直到你想停止时，或者在循环结束时使用 `SHAPE_SRC_COMMAND_TYPE_STOP_END` 让语音播放完，或者立即使用 `SHAPE_SRC_COMMAND_TYPE_STOP_IMMEDIATE` 停止。 |
| 有限循环线性 PCM | 将 PCM 上下文循环计数 *loopCount* 设置为末尾，或者可选地在循环结束时使用 `SHAPE_SRC_COMMAND_TYPE_STOP_END` 停止并让语音播放完，或者立即使用 `SHAPE_SRC_COMMAND_TYPE_STOP_IMMEDIATE` 停止。                                                                                                |
| 环形 PCM     | 使用 `SHAPE_SRC_COMMAND_TYPE_START` 为 SRC 启动语音。持续流式传输数据并更新 PCM 上下文写入指针，直到你想停止时。使用 `SHAPE_SRC_COMMAND_TYPE_STOP_END` 让 SRC 播放到当前 PCM 写入指针 `loopStartWritePointer`，或者使用 `SHAPE_SRC_COMMAND_TYPE_STOP_IMMEDIATE` 立即停止。                           |

输入采样格式：

<img src="https://mintcdn.com/microsoft-4404708b/gzrdvT5kpqAXKEQt/images/gdk/reference/pcm_format.png?fit=max&auto=format&n=gzrdvT5kpqAXKEQt&q=85&s=58f4b6bb7fadd542a8c9a337cd729ba2" alt="显示四种支持的 PCM 输入采样格式各自位分配的示意图。" width="740" height="357" data-path="images/gdk/reference/pcm_format.png" />

## 要求

**标头：** shapepcmcontext.h

**支持的平台：** XBOX One 系列主机和 XBOX Series 主机

## 另请参阅

[ACP 概述](/build/console-features/audio/overviews/acp-overview)

[Shape 概述](/build/console-features/audio/overviews/shape-overview)\
[shapepcmcontext](/reference/audio/shapepcmcontext/shapepcmcontext_members)


## Related topics

- [GetShapePcmFormat](/zh-CN/reference/audio/shapepcmcontext/functions/getshapepcmformat.md)
- [SetShapePcmFormat](/zh-CN/reference/audio/shapepcmcontext/functions/setshapepcmformat.md)
- [ShapePcmContext](/zh-CN/reference/audio/shapepcmcontext/shapepcmcontext_members.md)
- [SHAPE_PCM_CONTEXT](/zh-CN/reference/audio/shapepcmcontext/structs/shape_pcm_context.md)
- [SHAPE_PCM_MODE](/zh-CN/reference/audio/shapepcmcontext/enums/shape_pcm_mode.md)
