Share via


Procedura: Usare un oggetto di elaborazione audio XAPO in XAudio2

Questo argomento illustra come usare un effetto creato con l'API XAPO in una catena di effetti XAudio2.

  1. Creare XAPO come descritto in Procedura: Creare un XAPO.

    È anche possibile implementare la funzionalità dei parametri di runtime, come descritto in Procedura: Aggiungere il supporto dei parametri run-time a un XAPO.

  2. Creare un'istanza di XAPO.

    IUnknown * pXAPO;
    pXAPO = new SimpleXAPO();
    
  3. Popolare una struttura XAUDIO2_EFFECT_DESCRIPTOR con i dati.

    XAUDIO2_EFFECT_DESCRIPTOR descriptor;
    descriptor.InitialState = true;
    descriptor.OutputChannels = 1;
    descriptor.pEffect = pXAPO;
    
  4. Popolare una struttura XAUDIO2_EFFECT_CHAIN con dati.

    XAUDIO2_EFFECT_CHAIN chain;
    chain.EffectCount = 1;
    chain.pEffectDescriptors = &descriptor;
    
  5. Applicare la catena di effetti a una voce XAudio2 con la funzione SetEffectChain .

    pVoice->SetEffectChain(&chain);
    

    Nota

    Una catena di effetti può essere applicata anche a una voce quando la voce viene creata passando la catena come parametro a IXAudio2::CreateSourceVoice, IXAudio2: :CreateSubmixVoice o IXAudio2::CreateMasteringVoice.

     

  6. Rilasciare l'effetto con IUnknown::Release.

    Quando si crea un XAPO, avrà un numero di riferimenti pari a 1. Quando la XAPO viene passata a XAudio2 con SetEffectChain, XAudio2 incrementa il conteggio dei riferimenti sulla XAPO. Il rilascio del riferimento del client alla XAPO consente a XAudio2 di assumere la proprietà della XAPO. Se XAudio2 ha l'unico riferimento alla XAPO, verrà eliminato quando non viene più usato da XAudio2. Se il codice client deve mantenere un riferimento alla XAPO per il riutilizzo successivo, ad esempio, è consigliabile ignorare questo passaggio.

    pXAPO->Release();
    
  7. Popolare la struttura dei parametri, se presente, associata all'effetto. In questo caso, la percentuale di forza completa in corrispondenza della quale deve essere applicato l'effetto.

    XAPO_PARAMETERS XAPOParameters;
    XAPOParameters.Level = 0.75;
    
  8. Passare la struttura dei parametri dell'effetto all'effetto chiamando la funzione SetEffectParameters sulla voce a cui è collegato l'effetto.

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

Effetti audio

Panoramica di XAPO

Guida alla programmazione di XAudio2