Introduzione a XAudio2

XAudio2 è un'API audio di basso livello. Fornisce un'elaborazione del segnale e una base di combinazione per i giochi simili ai predecessori, DirectSound e XAudio.

XAudio2 è la sostituzione attesa per DirectSound. Risolve diversi problemi in sospeso e richieste di funzionalità.

Funzionalità di XAudio2

Di seguito è riportato un elenco delle funzionalità di XAudio2 e delle nuove funzionalità che consentono agli sviluppatori di migliorare le prestazioni nei loro giochi.

  • Effetti DSP e filtro vocale per voce

    Gli effetti DSP (Digital Signal Processing) sono i pixel shader dell'audio. Gestiscono tutto, dalla trasformazione di un suono, trasformando un maiale squeal in un suono basso, spaventoso mostro, per inserire suoni nell'ambiente di gioco usando riverbero e occlusione o filtro di ostruzione. XAudio2 offre un framework DSP flessibile e potente. Fornisce inoltre un filtro incorporato per ogni voce, per effetti di filtro di basso/alto/passaggio banda efficienti.

    Vedere Effetti audio XAudio2 e IXAudio2Voice::SetFilterParameters per altre informazioni sugli effetti DSP e sui filtri vocali.

  • Submixing

    Il submixing combina diversi suoni in un singolo flusso audio, ad esempio un suono motore costituito da parti composite, tutte riprodotte contemporaneamente. Inoltre, puoi usare il submixing per elaborare e combinare parti simili di un gioco. Ad esempio, puoi combinare tutti gli effetti audio del gioco per consentire l'applicazione di un'impostazione del volume utente mentre un'impostazione separata controlla il volume musicale. In combinazione con DSP, il submixing fornisce il tipo di routing dei dati e l'elaborazione necessari per i giochi odierni. XAudio2 consente livelli arbitrari di submixing, consentendo la creazione di suoni complessi e combinazioni di giochi.

    Per altre informazioni sul submixing, vedi XAudio2 Audio Graph e XAudio2 Voices .

  • Supporto audio compresso

    Una delle principali richieste di funzionalità per DirectSound è stata per il supporto audio compresso. XAudio2 supporta formati compressi, ADPCM, in modo nativo con decompressione in fase di esecuzione.

  • Supporto avanzato di audio multicanale e surround

    Il supporto audio multicanale, 3D e surround viene espanso. Il suono 3D e surround sono ora molto più flessibili e trasparenti. XAudio2 rimuove il limite di 6 canali sui suoni multicanale e supporta l'audio multicanale in qualsiasi scheda audio con supporto multicanale. La scheda non deve essere accelerata dall'hardware.

  • Elaborazione a più velocità

    Per ridurre al minimo l'utilizzo della CPU, XAudio2 offre la tecnologia per creare più grafici di elaborazione audio a bassa frequenza. Ciò può ridurre significativamente l'utilizzo della CPU consentendo a un gioco di elaborare l'audio alla velocità del materiale di origine se la velocità è inferiore a 48 kHz.

  • Modello API non bloccante

    Con poche eccezioni, una chiamata al metodo XAudio2 non blocca il motore di elaborazione audio. Ciò significa che un client può eseguire in modo sicuro un set di chiamate al metodo in qualsiasi momento senza bloccare le chiamate a esecuzione prolungata che causano ritardi. Le eccezioni sono il metodo IXAudio2Voice::D estroyVoice (che può bloccare il motore fino al termine dell'elaborazione della voce) e i metodi che terminano il thread audio: IXAudio2::StopEngine e IXAudio2::Release. Si noti che mentre le chiamate al metodo XAudio2 non bloccano il motore di elaborazione audio, i metodi XAudio2 contengono sezioni critiche e possono diventare bloccati in alcune circostanze.

Quando usare XAudio2

XAudio2 è destinato principalmente allo sviluppo di motori audio ad alte prestazioni per i giochi. Per gli sviluppatori di giochi che voglio aggiungere effetti audio e musica di sottofondo ai propri giochi, XAudio2 offre un motore di missaggio e grafico audio a bassa latenza con supporto per buffer dinamici, riproduzione sincrona dei campioni e conversione implicita della frequenza di origine. Rispetto a WASAPI, XAudio2 richiede solo una quantità minima di codice anche per soluzioni audio complesse. Rispetto al motore di Media Foundation, XAudio2 è un'API C++ a bassa latenza di basso livello progettata per l'uso nei giochi.

Per le applicazioni che richiedono semplicemente la riproduzione di musica regolare, il motore di Media Foundation potrebbe essere una corrispondenza migliore ai requisiti dell'applicazione.

Guida per programmatori

Per iniziare

Guida di riferimento alla programmazione di XAudio2