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

# XWMAEncoder

> XWMAEncoder

將輸入緩衝區編碼為 xWMA 資料。

## 語法

```cpp theme={null}
HRESULT XWMAEncoder(
         const BYTE *pInputBuffer,
         DWORD inputBufferSize,
         const WAVEFORMATEX *pInputFormat,
         DWORD outputBitrate,
         BYTE **ppEncodedBuffer,
         DWORD *pEncodedBufferSize,
         WAVEFORMATEX **ppEncodedBufferFormat,
         DWORD *pEncodedBufferFormatSize,
         DWORD **ppDecodedPacketCumulativeBytes,
         DWORD *pDecodedPacketCumulativeBytesSize)  
```

### 參數

*pInputBuffer*
類型:BYTE \*

指向包含 PCM 資料之輸入緩衝區的指標,必須包含至少一個框架。

*inputBufferSize*
類型:DWORD

輸入緩衝區大小,以位元組為單位。

*pInputFormat*
類型:WAVEFORMATEX \*

輸入緩衝區格式。

*outputBitrate*
類型:DWORD

指定要求的位元速率,必須是 20000、32000、48000、64000、96000、160000 或 192000 其中之一。

*ppEncodedBuffer*
類型:BYTE \*\*

指向編碼資料之指標的指標。

*pEncodedBufferSize*
類型:DWORD \*

指向 DWORD 的指標,其中包含編碼資料的大小,以位元組為單位。

*ppEncodedBufferFormat*
類型:WAVEFORMATEX \*\*

指向輸出格式結構之指標的指標。

*pEncodedBufferFormatSize*
類型:DWORD \*

指向 DWORD 的指標,其中包含輸出格式結構的大小。

*ppDecodedPacketCumulativeBytes*
類型:DWORD \*\*

已解碼封包的累計資料大小陣列 (使用 free \[] 釋放)。每個元素是依序解碼對應的 WMA 封包時所累計的位元組數,必須有 PacketCount 個元素。PacketCount 設定於 XAUDIO2\_BUFFER\_WMA 結構中。

*pDecodedPacketCumulativeBytesSize*
類型:DWORD \*

已解碼封包累計資料的大小 (以位元組為單位)。封包數目 = \*pDecodedPacketCumulativeBytesSize / sizeof(DWORD);

### 傳回值

類型:HRESULT

如果成功,會傳回 S\_OK;否則會傳回下表中的錯誤碼。

| 錯誤碼 | 描述 |
| - | - |
| XWMA\_E\_UNSUPPORTED\_FORMATTAG | 格式標記必須是 WAVE\_FORMAT\_PCM 或 WAVE\_FORMAT\_IEEE\_FLOAT。 |
| XWMA\_E\_UNSUPPORTED\_FRAMERATE | nSamplesPerSec 必須介於 1 kHz 到 200 kHz 之間。 |
| XWMA\_E\_UNSUPPORTED\_CHANNELS | nChannels 必須是 1、2 或 6。 |
| XWMA\_E\_UNSUPPORTED\_BITSPERSAMPLE | 對於整數輸入資料,wBitsPerSample 必須是 8、16 或 24;對於浮點資料則必須是 32。 |
| XWMA\_E\_UNSUPPORTED\_BITRATE | 位元速率必須是 20 Kbps、32 Kbps、48 Kbps、64 Kbps、96 Kbps、16 Kbps0 或 192 Kbps。 |

## 備註

下表顯示每個取樣率和聲道數原生支援的位元速率。

\| 輸入| 輸出選項|
\| --- | --- | --- | --- |
\| 22050 Hz 單聲道| 20000|
\| 22050 Hz 立體聲| 32000|
\| 32000 Hz 單聲道| 20000|
\| 32000 Hz 立體聲| 32000, 48000|
\| 44100 Hz 單聲道| 32000, 48000|
\| 44100 Hz 立體聲| 32000, 48000, 96000, 192000|
\| 44100 Hz 5.1| 96000, 192000|
\| 48000 Hz 立體聲| 48000, 64000, 96000, 160000, 192000|
\| 48000 Hz 5.1| 48000, 192000|

## 需求

**標頭:** xwmaencoder.h

**程式庫:** xwmaencoder.lib

## 另請參閱

[xWMA 命令列編碼器](/zh-TW/build/console-features/audio/tools/xwmaencode-tools)


## Related topics

- [Xwmaencoder 函式](/zh-TW/build/console-features/audio/tools/xwmaencoder/tech-xwmaencoder-nativereference-funcs.md)
- [xWMA 概觀](/zh-TW/build/console-features/audio/overviews/xwma-overview.md)
- [xWMA 編碼器參考資訊](/zh-TW/build/console-features/audio/tools/xwmaencoder/atoc-xwmaencoder.md)
- [xWMA 編碼器程式庫和命令列工具](/zh-TW/build/console-features/audio/tools/xwmaencoder/index.md)
- [XMA2 編碼器程式庫和命令列工具](/zh-TW/build/console-features/audio/tools/xma2encoder/index.md)
