次の方法で共有


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 で宣言されています。