> ## 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.

# SetShapePcmReadPointer

> SetShapePcmReadPointer

# SetShapePcmReadPointer

设置读取指针。

## 语法

```cpp theme={null}
HRESULT SetShapePcmReadPointer(  
         SHAPE_PCM_CONTEXT* context,  
         UINT32 readPointerInSamples  
)  
```

### 参数

*context*   \_Inout\_\
类型：[SHAPE\_PCM\_CONTEXT\*](/reference/audio/shapepcmcontext/structs/shape_pcm_context)

指向 [SHAPE\_PCM\_CONTEXT](/reference/audio/shapepcmcontext/structs/shape_pcm_context) 结构体的指针。

*readPointerInSamples*   \
类型：UINT32

以样本为单位的读取指针。此指针将两个 16 位立体声样本视为单个 32 位样本。

### 返回值

类型：HRESULT

HRESULT 成功或错误代码。

## 备注

你可以通过确保音频缓冲区足够大以及数据以与缓冲区大小相关的规律间隔进行流式传输，来防止阻塞的直接内存访问 (DMA) 命令。例如，如果你每次流式传输四个硬件帧，则请确保缓冲区中包含这些帧的一定倍数（至少是双缓冲的八帧），以便硬件可以在游戏的读取指针之前写入。或者，你可以在提交下一个流图之前强制清空缓冲区（消耗、更新 DMA 读取指针，然后提交流图）。

使用 `SHAPE_SRC_COMMAND_TYPE_START` 常量为 SRC 启动语音。持续流式传输数据并更新 PCM 上下文写入指针，直到你想停止时。使用 `SHAPE_SRC_COMMAND_TYPE_STOP_END` 常量让 SRC 播放到当前 PCM 写入指针 `loopStartWritePointer`，或者使用 `SHAPE_SRC_COMMAND_TYPE_STOP_IMMEDIATE` 立即停止。有关更多信息，请参阅 [SHAPE\_SRC\_COMMAND\_TYPE](/reference/audio/shapesrccontext/enums/shape_src_command_type) 枚举。

## 要求

**标头：** 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

- [ShapePcmContext](/zh-CN/reference/audio/shapepcmcontext/shapepcmcontext_members.md)
- [GetShapePcmReadPointer](/zh-CN/reference/audio/shapepcmcontext/functions/getshapepcmreadpointer.md)
- [SetShapePcmLoopStartOrWritePointer](/zh-CN/reference/audio/shapepcmcontext/functions/setshapepcmloopstartorwritepointer.md)
- [SetShapeDmaReadPointer](/zh-CN/reference/audio/shapedmacontext/functions/setshapedmareadpointer.md)
- [SHAPE_PCM_CONTEXT](/zh-CN/reference/audio/shapepcmcontext/structs/shape_pcm_context.md)
