Metodo IXAudio2::CreateSubmixVoice (xaudio2.h)
Crea e configura una voce submix.
Sintassi
HRESULT CreateSubmixVoice(
[out] IXAudio2SubmixVoice **ppSubmixVoice,
[in] UINT32 InputChannels,
[in] UINT32 InputSampleRate,
[in] UINT32 Flags,
[in] UINT32 ProcessingStage,
[in, optional] const XAUDIO2_VOICE_SENDS *pSendList,
[in, optional] const XAUDIO2_EFFECT_CHAIN *pEffectChain
);
Parametri
[out] ppSubmixVoice
In caso di esito positivo, restituisce un puntatore al nuovo oggetto IXAudio2SubmixVoice .
[in] InputChannels
Numero di canali nei dati audio di input della voce submix. InputChannels deve essere minore o uguale a XAUDIO2_MAX_AUDIO_CHANNELS.
[in] InputSampleRate
Frequenza di esempio dei dati audio di input della voce submix. Questa frequenza deve essere un multiplo di XAUDIO2_QUANTUM_DENOMINATOR. InputSampleRate deve essere compreso tra XAUDIO2_MIN_SAMPLE_RATE e XAUDIO2_MAX_SAMPLE_RATE.
[in] Flags
Contrassegni che specificano il comportamento della voce submix. Può essere 0 o quanto segue:
Valore | Descrizione |
---|---|
XAUDIO2_VOICE_USEFILTER | L'effetto filtro deve essere disponibile in questa voce. |
[in] ProcessingStage
Numero arbitrario che specifica quando questa voce viene elaborata rispetto ad altre voci submix, se il motore XAudio2 esegue altre voci submix. La voce viene elaborata dopo tutte le altre voci che includono un valore ProcessingStage più piccolo e prima di tutte le altre voci che includono un valore ProcessingStage più grande. Le voci che includono lo stesso valore ProcessingStage vengono elaborate in qualsiasi ordine. Una voce submix non può inviare a un'altra voce submix con un valore ProcessingStage inferiore o uguale. Ciò impedisce la perdita dell'audio a causa di un ciclo submix.
[in, optional] pSendList
Puntatore a un elenco di strutture XAUDIO2_VOICE_SENDS che descrivono il set di voci di destinazione per la voce submix. Se pSendList è NULL, l'elenco di invio verrà predefinito in un singolo output alla prima voce mastering creata.
[in, optional] pEffectChain
Puntatore a un elenco di strutture XAUDIO2_EFFECT_CHAIN che descrivono una catena di effetti da usare nella voce submix.
Valore restituito
Restituisce S_OK se ha esito positivo; in caso contrario, un codice di errore.
Per le descrizioni dei codici di errore specifici di XAudio2, vedere Codici di errore XAudio2 .
Commenti
Le voci submix ricevono l'output di una o più voci di origine o submix. Elaborano l'output e quindi lo inviano a un'altra voce sottomix o a una voce mastering.
Una voce submix esegue una conversione della frequenza di esempio dalla frequenza di esempio di input alla frequenza di input delle voci di output in pSendList. Se si specificano più invii vocali, tutti devono avere la stessa frequenza di esempio di input.
Non è possibile creare voci di origine o submix fino a quando non esiste una voce mastering e non è possibile distruggere una voce mastering se esistono ancora voci di origine o submix.
Quando viene creata la prima volta, le voci submix si trovano nello stato iniziale.
XAudio2 usa un pooler di memoria interno per le voci con lo stesso formato. Ciò significa che l'allocazione di memoria per le voci si verificherà meno frequentemente quando vengono create più voci e quindi eliminate. Per ridurre al minimo le allocazioni just-in-time, un titolo può creare il numero massimo previsto di voci necessarie in anticipo e quindi eliminarle in base alle esigenze. Le voci verranno quindi riutilizzate dal pool XAudio2. Il pool di memoria è associato a un'istanza del motore XAudio2. È possibile recuperare tutta la memoria usata da un'istanza del motore XAudio2 distruggendo l'oggetto XAudio2 e ricreandolo in base alle esigenze (forzando il pool di memoria a crescere tramite preallocation dovrebbe essere riapplicato in base alle esigenze).
Non è valido chiamare CreateSubmixVoice dall'interno di un callback, ovvero IXAudio2EngineCallback o IXAudio2VoiceCallback. Se si chiama CreateSubmixVoice all'interno di un callback, restituisce XAUDIO2_E_INVALID_CALL.
Il XAUDIO2_EFFECT_CHAIN passato come argomento pEffectChain e le informazioni XAUDIO2_EFFECT_DESCRIPTOR contenute all'interno non sono più necessarie dopo il completamento di CreateSubmixVoice e possono essere eliminate immediatamente dopo la chiamata di CreateSubmixVoice .
Requisiti della piattaforma
Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | xaudio2.h |