XAUDIO2_BUFFER_WMA 構造体
xWMA データの送信時に IXAudio2SourceVoice::SubmitSourceBuffer と共に使用されます。
構文
typedef struct XAUDIO2_BUFFER_WMA { UINT32 *pDecodedPacketCumulativeBytes; UINT32 PacketCount;} XAUDIO2_BUFFER_WMA;
メンバー
- pDecodedPacketCumulativeBytes
デコードされたパケットの累積データ サイズ配列です。各要素は、対応する xWMA パケットが順番にデコードされた後に蓄積されたバイト数であり、PacketCount 個の要素を持つ必要があります。 - PacketCount
送信される xWMA パケット数です。この数は 1 以上で、IXAudio2SourceVoice::SubmitSourceBuffer に渡されるそれぞれの XAUDIO2_BUFFER.AudioBytes 値に均等に分割される必要があります。
解説
一度に数パケットずつ xWMA ファイルをストリーミングする場合、最後のパケットに XAUDIO2_END_OF_STREAM を指定する必要があります。別の方法として、最後のパケットの送信後にアプリケーションで IXAudio2SourceVoice::Discontinuity を呼び出すこともできます。
さらに、一度に数パケットずつ xWMA ファイルをストリーミングする場合、アプリケーションは現在送信済みのパケットのすべてのエントリーから、直前のパケットの pDecodedPacketCumulativeBytes[PacketCount-1] を減算する必要があります。
XAUDIO2_BUFFER_WMA のメンバーは、再生される xWMA ファイルの 'dpds' RIFF チャンクに含まれる値に対応します。PacketCount は、チャンクの UINT32 でのサイズに対応します。pDecodedPacketCumulativeBytes は、チャンクのコンテンツを含む UINT32 バッファーに対応します。バッファーのコンテンツは、Xbox 360 でのバッファーのロード時に、バイト スワップされる必要があります。
XAUDIO2_BUFFER または XAUDIO2_BUFFER_WMA 構造体を保持するために割り当てられたメモリーは、その構造体が渡される IXAudio2SourceVoice::SubmitSourceBuffer 呼び出しが終了した時点で解放できます。構造体で示されるデータ (それぞれ、pAudioData および pDecodedPacketCumulativeBytes) は、バッファーが完了する (IXAudio2VoiceCallback::OnBufferEnd コールバックで通知されます) か、ボイスが停止および破棄されるまで解放できません。
要件
ヘッダー: Xaudio2.h で宣言されています。