Bagikan melalui


Set Operasi XAudio2

Gambaran umum ini memperkenalkan beberapa metode XAudio2 yang dapat Anda panggil sebagai bagian dari set operasi.

Beberapa metode XAudio2 mengambil argumen OperationSet , yang memungkinkan mereka dipanggil sebagai bagian dari grup yang ditangguhkan. Pada waktu tertentu, Anda dapat menerapkan seluruh rangkaian perubahan secara bersamaan dengan memanggil fungsi IXAudio2::CommitChanges dengan pengidentifikasi OperationSet untuk grup tersebut. Pengidentifikasi adalah angka arbitrer. Dengan demikian, ini memungkinkan bagian terpisah dari kode klien untuk menerapkan perubahan atom terpisah pada grafik tanpa konflik. Praktik yang disarankan adalah agar klien dapat menaikkan penghitung global setiap kali perlu menghasilkan pengidentifikasi OperationSet baru yang unik. Serangkaian perubahan pada grafik, diterapkan secara atomik, dijamin akurat sampel. Misalnya, suara akan mulai disinkronkan.

Jika Anda mengatur OperationSet ke XAUDIO2_COMMIT_NOW, perubahan akan segera berlaku. Ini berlaku dalam proses audio pertama yang lulus setelah panggilan metode. Jika Anda memanggil CommitChanges dengan XAUDIO2_COMMIT_ALL, perubahan pada semua set operasi yang tertunda dilakukan, terlepas dari pengidentifikasi OperationSet-nya .

Metode tertentu segera berlaku ketika dipanggil dari panggilan balik XAudio2 dengan OperationSet XAUDIO2_COMMIT_NOW. Semua metode lain yang mengambil argumen OperationSet hanya berlaku pada proses berikutnya setelah metode dipanggil (jika dipanggil dengan XAUDIO2_COMMIT_NOW), atau setelah CommitChanges dipanggil dengan OperationSet yang sama. Karena itu, panggilan metode tertentu mungkin tidak selalu terjadi dalam urutan yang sama di mana mereka dipanggil.

Semua operasi yang tertunda dilakukan secara atomik ketika IXAudio2::StopEngine dipanggil. Metode apa pun yang dipanggil saat mesin dihentikan segera berlaku, terlepas dari nilai OperationSet yang disediakan. Saat Anda menghidupkan ulang mesin, XAudio2 kembali ke mode asinkron.

Skenario sederhana di mana set operasi berguna termasuk contoh berikut.

  • Memulai beberapa suara secara bersamaan.
  • Mengirimkan buffer secara bersamaan ke suara, mengatur parameter suara, dan memulai suara.
  • Membuat perubahan skala besar pada grafik, seperti menyambungkan semua suara sumber ke suara submix baru.

Lihat Cara: Metode Audio Grup sebagai Kumpulan Operasi untuk contoh penggunaan kumpulan operasi.

Metode Set Operasi

Anda dapat memanggil metode berikut sebagai bagian dari kumpulan operasi.

Seperti yang dijelaskan sebelumnya, kode klien pada akhirnya harus memanggil fungsi IXAudio2::CommitChanges untuk menjalankan perubahan yang ditangguhkan.

Set Operasi

Panduan Pemrograman XAudio2

Cara: Metode Audio Grup sebagai Set Operasi