Bagikan melalui


struktur XAUDIO2_BUFFER (xaudio2.h)

Mewakili buffer data audio, digunakan dengan IXAudio2SourceVoice::SubmitSourceBuffer.

Sintaks

typedef struct XAUDIO2_BUFFER {
  UINT32     Flags;
  UINT32     AudioBytes;
  const BYTE *pAudioData;
  UINT32     PlayBegin;
  UINT32     PlayLength;
  UINT32     LoopBegin;
  UINT32     LoopLength;
  UINT32     LoopCount;
  void       *pContext;
} XAUDIO2_BUFFER;

Anggota

Flags

Bendera yang menyediakan informasi tambahan tentang buffer audio. Mungkin 0, atau nilai berikut.

Nilai Deskripsi
XAUDIO2_END_OF_STREAM Menunjukkan bahwa tidak boleh ada buffer dalam antrean setelah buffer ini. Satu-satunya efek dari bendera ini adalah menekan peringatan output debug yang disebabkan oleh kelaparan antrean buffer. 

AudioBytes

Ukuran data audio, dalam byte. Tidak boleh lebih besar dari XAUDIO2_MAX_BUFFER_BYTES (didefinisikan dalam xaudio2.h) untuk data PCM dan tidak lebih besar dari XMA_READBUFFER_MAX_BYTES (ditentukan dalam xma2defs.h) untuk data XMA.

Catatan Buffer XMA yang dikirimkan ke suara XAudio2 menggunakan IXAudio2SourceVoice::SubmitSourceBuffer harus berisi blok XMA lengkap. Blok XMA lengkap harus berukuran sama dengan XMA2WAVEFORMATEX. Nilai BytesPerBlock , kecuali untuk blok XMA terakhir dalam file, yang mungkin lebih pendek tetapi masih akan dianggap selesai.
 

pAudioData

Arahkan ke data audio.

Xbox 360
Memori yang dialokasikan untuk buffer yang berisi data XMA harus memiliki perataan blok 2048. Ini dicapai menggunakan XPhysicalAlloc dengan argumen ulAlignment diatur ke 2048.

PlayBegin

Sampel pertama dalam buffer yang harus dimainkan.

Untuk buffer XMA, nilai ini harus berupa kelipatan 128 sampel.

PlayLength

Panjang wilayah yang akan dimainkan, dalam sampel. Nilai nol berarti memainkan seluruh buffer, dan, dalam hal ini, PlayBegin juga harus nol. Untuk data ADPCM, nilai ini harus berupa kelipatan wSamplesPerBlock dalam struktur ADPCMWAVEFORMAT yang berisi struktur XAUDIO2_BUFFER ini.

LoopBegin

Sampel pertama wilayah yang akan diulang. Nilai LoopBegin harus kurang dari PlayBegin + PlayLength. LoopBegin bisa kurang dari PlayBegin. LoopBegin harus 0 jika LoopCount adalah 0.

LoopLength

Panjang wilayah perulangan, dalam sampel. Nilai LoopBegin+LoopLength harus lebih besar dari PlayBegin dan kurang dari PlayBegin + PlayLength. LoopLength harus nol jika LoopCount adalah 0. Jika LoopCount bukan 0, panjang perulangan nol menunjukkan seluruh sampel harus diulang. Untuk data ADPCM, nilai ini harus berupa kelipatan wSamplesPerBlock dalam struktur ADPCMWAVEFORMAT yang berisi struktur XAUDIO2_BUFFER ini.

LoopCount

Berapa kali untuk mengulangi wilayah perulangan. Nilai ini bisa antara 0 dan XAUDIO2_MAX_LOOP_COUNT. Jika LoopCount adalah nol tidak ada perulangan yang dilakukan dan LoopBegin dan LoopLength harus 0. Untuk mengulang selamanya, atur LoopCount ke XAUDIO2_LOOP_INFINITE.

pContext

Nilai konteks yang akan diteruskan kembali dalam panggilan balik ke klien. Ini mungkin NULL.

Keterangan

Data audio XAudio2 diselingi, data dari setiap saluran berdampingan untuk nomor sampel tertentu. Misalnya jika ada gelombang saluran 4 yang diputar ke suara sumber XAudio2, data audio akan menjadi sampel saluran 0, sampel saluran 1, sampel saluran 2, sampel saluran 3, dan kemudian sampel saluran berikutnya 0, 1, 2, 3, dll.

Anggota AudioByte dan pAudioDataXAUDIO2_BUFFER sesuai dengan ukuran dalam byte dan konten potongan RIFF 'data' dari file yang sedang diputar. Konten gugus mungkin perlu ditukar byte saat memuat file di Xbox 360.

Memori yang dialokasikan untuk menahan struktur XAUDIO2_BUFFER atau XAUDIO2_BUFFER_WMA dapat dikosongkan segera setelah panggilan IXAudio2SourceVoice::SubmitSourceBuffer diteruskan ke pengembalian. Data yang ditunjukkan struktur ke (pAudioData dan pDecodedPacketCumulativeBytes, masing-masing) tidak dapat dikosongkan sampai buffer selesai (seperti yang disinyalir oleh panggilan balik IXAudio2VoiceCallback::OnBufferEnd ) atau suara dihentikan atau dihancurkan.

Persyaratan Platform

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)

Persyaratan

   
Header xaudio2.h

Lihat juga

Cara: Membangun Grafik Pemrosesan Audio Dasar

IXAudio2SourceVoice::SubmitSourceBuffer

Struktur XAudio2