Bagikan melalui


Cara: Menggunakan XAPO di XAudio2

Topik ini menunjukkan kepada Anda cara menggunakan efek yang dibuat dengan API XAPO dalam rantai efek XAudio2.

  1. Buat XAPO seperti yang dijelaskan dalam Cara: Membuat XAPO.

    Anda juga dapat menerapkan fungsionalitas parameter run-time seperti yang dijelaskan dalam Cara: Menambahkan Dukungan Parameter Run-time ke XAPO.

  2. Buat instans XAPO.

    IUnknown * pXAPO;
    pXAPO = new SimpleXAPO();
    
  3. Isi struktur XAUDIO2_EFFECT_DESCRIPTOR dengan data.

    XAUDIO2_EFFECT_DESCRIPTOR descriptor;
    descriptor.InitialState = true;
    descriptor.OutputChannels = 1;
    descriptor.pEffect = pXAPO;
    
  4. Isi struktur XAUDIO2_EFFECT_CHAIN dengan data.

    XAUDIO2_EFFECT_CHAIN chain;
    chain.EffectCount = 1;
    chain.pEffectDescriptors = &descriptor;
    
  5. Terapkan rantai efek ke suara XAudio2 dengan fungsi SetEffectChain .

    pVoice->SetEffectChain(&chain);
    

    Catatan

    Rantai efek juga dapat diterapkan ke suara ketika suara dibuat dengan meneruskan rantai sebagai parameter ke IXAudio2::CreateSourceVoice, IXAudio2::CreateSubmixVoice, atau IXAudio2::CreateMasteringVoice.

     

  6. Rilis efek dengan IUnknown::Release.

    Ketika Anda membuat XAPO, itu akan memiliki jumlah referensi 1. Ketika XAPO diteruskan ke XAudio2 dengan SetEffectChain, XAudio2 menaikkan jumlah referensi pada XAPO. Merilis referensi klien ke XAPO memungkinkan XAudio2 untuk mengambil kepemilikan XAPO. Jika XAudio2 memiliki satu-satunya referensi ke XAPO, XAudio2 akan dibuang ketika tidak lagi digunakan oleh XAudio2. Jika kode klien perlu mempertahankan referensi ke XAPO untuk digunakan kembali nanti, misalnya, Anda harus melewati langkah ini.

    pXAPO->Release();
    
  7. Isi struktur parameter, jika ada, yang terkait dengan efeknya. Dalam hal ini, persentase kekuatan penuh di mana efek harus diterapkan.

    XAPO_PARAMETERS XAPOParameters;
    XAPOParameters.Level = 0.75;
    
  8. Teruskan struktur parameter efek ke efek dengan memanggil fungsi SetEffectParameters pada suara tempat efek dilampirkan.

    hr = pVoice->SetEffectParameters( 0, &XAPOParameters, sizeof( XAPO_PARAMETERS ) );
    

Efek Audio

Gambaran Umum XAPO

Panduan Pemrograman XAudio2