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

# XAudio2XMAEncoder

> XAudio2XMAEncoder

将输入流编码为 XMA 格式。

<a id="syntaxSection" />

## 语法

```cpp theme={null}
HRESULT XAudio2XMAEncoder(
         DWORD InputStreamCount,
         const XMAENCODERSTREAM *pStreams,
         DWORD Compression,
         DWORD Flags,
         DWORD BlockSizeInKbytes,
         VOID **ppEncodedBuffer,
         DWORD *pEncodedBufferSize,
         XMA2WAVEFORMATEX **ppEncodedBufferFormat,
         DWORD *pEncodedBufferFormatSize,
         DWORD **ppSeekTable,
         DWORD *pSeekTableSize)  
```

<a id="ID4EG" />

### 参数

*InputStreamCount*
类型：DWORD

输入流的数量。

*pStreams*
类型：XMAENCODERSTREAM \*

指向输入流的指针。

*Compression*
类型：DWORD

要使用的 XMA2 压缩质量级别（1 到 100）。

*Flags*
类型：DWORD

零，或以下一个或多个标志的组合。

| 标志                        | 值          | 说明                                                                                                  |
| ------------------------- | ---------- | --------------------------------------------------------------------------------------------------- |
| XMAENCODER\_LOOP          | 0x00000001 | 如果存在循环点，则使用循环点，并对波形做重采样使循环点对齐到 128 采样边界。如果没有循环点，则从头到尾循环整个波形，并对波形做重采样，使波形的循环末尾（即整个波形长度）对齐到 128 采样边界。 |
| XMAENCODER\_NOFILTER      | 0x00000002 | 不做滤波。                                                                                               |
| XMAENCODER\_DECODEFROMXMA | 0x00000004 | 内存编码器不支持。                                                                                           |
| XMAENCODER\_VERBOSE       | 0x00000008 | 启用调试输出。                                                                                             |
| XMAENCODER\_PACKSTREAMS   | 0x00000010 | 将声道尽可能打包到最少的流中。                                                                                     |

*BlockSizeInKbytes*
类型：DWORD

要使用的 XMA2 压缩块大小，以 KB 为单位（2 到 8190）。不能为零。

*ppEncodedBuffer*
类型：VOID \*\*

指向用于存放编码数据的缓冲区指针的指针。

*pEncodedBufferSize*
类型：DWORD \*

指向 DWORD 的指针，用于存放已编码缓冲区的大小。

*ppEncodedBufferFormat*
类型：XMA2WAVEFORMATEX \*\*

指向结构指针的指针，用于存放已编码流的格式细节。

*pEncodedBufferFormatSize*
类型：DWORD \*

指向 DWORD 的指针，用于存放格式结构的大小。

*ppSeekTable*
类型：DWORD \*\*

指向指针的指针，用于存放 seek 表。

*pSeekTableSize*
类型：DWORD \*

指向 DWORD 的指针，用于存放 seek 表的大小。

<a id="ID4EO" />

### 返回值

类型：HRESULT

成功时返回 S\_OK；否则返回下表中的错误码之一。

| 错误码                              | 实现                     | 说明          |
| -------------------------------- | ---------------------- | ----------- |
| XMAENCODER\_E\_OUTOFMEMORY       | E\_OUTOFMEMORY         | 内存不足。       |
| XMAENCODER\_E\_INVALIDARG        | E\_INVALIDARG          | 参数无效。       |
| XMAENCODER\_E\_NOTIMPL           | E\_NOTIMPL             | 未实现。        |
| XMAENCODER\_E\_FAIL              | E\_FAIL                | 未知错误。       |
| XMAENCODER\_E\_INVALIDLOOP       | XMAENCODERERROR(0x001) | 循环点无效。      |
| XMAENCODER\_E\_UNSUPPORTEDFORMAT | XMAENCODERERROR(0x002) | 格式无效。       |
| XMAENCODER\_E\_OUTOFRANGE        | XMAENCODERERROR(0x003) | 参数超出有效范围。   |
| XMAENCODER\_E\_READFAILED        | XMAENCODERERROR(0x004) | 读操作失败。      |
| XMAENCODER\_E\_INVALIDFRAME      | XMAENCODERERROR(0x005) | 无效的 XMA 帧。  |
| XMAENCODER\_E\_INCOMPLETEFRAME   | XMAENCODERERROR(0x006) | 不完整的 XMA 帧。 |
| XMAENCODER\_E\_ZEROSTUFFINGBIT   | XMAENCODERERROR(0x007) | 填充位为零。      |
| XMAENCODER\_E\_GETDATAFAILED     | XMAENCODERERROR(0x008) | 数据获取失败。     |

<a id="requirements" />

## 要求

**头文件：** xmaencoder.h

**库：** xmaencoder.lib

## 另请参阅

[XMA2 编码器工具](/build/console-features/audio/tools/xma2encodertool)


## Related topics

- [XMA2encoder 函数](/zh-CN/build/console-features/audio/tools/xma2encoder/tech-xmaencoder-funcs.md)
- [XMA2 编码器参考信息](/zh-CN/build/console-features/audio/tools/xma2encoder/atoc-xmaencoder.md)
- [XMA2 编码器工具](/zh-CN/build/console-features/audio/tools/xma2encodertool.md)
- [XWMAEncoder](/zh-CN/build/console-features/audio/tools/xwmaencoder/methods/xwmaencoder-xwmaencoder-xbox-microsoft-m.md)
- [XAudio2CreateWithSharedContexts](/zh-CN/reference/audio/xaudio2xbox/functions/xaudio2createwithsharedcontexts.md)
