Bagikan melalui


Cara: Menggunakan Panggilan Balik Mesin

Anda dapat memberi tahu kode klien XAudio2 tentang peristiwa mesin dengan mendaftarkan instans kelas yang mengimplementasikan antarmuka IXAudio2EngineCallback dengan mesin XAudio2. Ini memungkinkan kode klien XAudio2 untuk melacak kapan pemrosesan audio terjadi, dan kapan harus memulai ulang mesin jika terjadi kesalahan kritis.

Untuk menggunakan panggilan balik mesin

Langkah-langkah berikut mendaftarkan objek untuk menangani peristiwa mesin.

  1. Buat kelas yang mewarisi dari antarmuka IXAudio2EngineCallback .

    Semua metode IXAudio2EngineCallback murni virtual dan harus ditentukan. Metode yang menarik dalam contoh ini adalah IXAudio2EngineCallback::OnCriticalError, yang menetapkan bendera untuk memberi sinyal perulangan game utama bahwa kesalahan kritis telah terjadi. Metode yang tersisa, IXAudio2EngineCallback::OnProcessingPassStart dan IXAudio2EngineCallback::OnProcessingPassEnd, adalah rinci dalam contoh ini.

    class EngineCallback : public IXAudio2EngineCallback
    {
        void OnProcessingPassEnd () {}
        void OnProcessingPassStart() {}
        void OnCriticalError (HRESULT Error) {}
    };
    
  2. Gunakan XAudio2Buat untuk membuat instans mesin XAudio2.

    if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) )
        return hr;
    
  3. Gunakan IXAudio2::RegisterForCallbacks untuk mendaftarkan panggilan balik mesin.

    pXAudio2->RegisterForCallbacks( &engineCallback );
    
  4. Jika Anda tidak memerlukan panggilan balik mesin lagi, hubungi IXAudio2::UnregisterForCallbacks.

    pXAudio2->UnregisterForCallbacks( &engineCallback );
    

Panggilan balik

Panggilan Balik XAudio2

Panduan Pemrograman XAudio2

Cara: Membangun Grafik Pemrosesan Audio Dasar

Cara: Mengalirkan Suara dari Disk