Conjuntos de operaciones XAudio2

En esta introducción se presentan varios métodos XAudio2 a los que puede llamar como parte de un conjunto de operaciones.

Varios métodos XAudio2 toman el argumento OperationSet , que les permite llamar como parte de un grupo diferido. En un momento específico, puede aplicar un conjunto completo de cambios simultáneamente llamando a la función IXAudio2::CommitChanges con el identificador OperationSet de ese grupo. El identificador es un número arbitrario. Por lo tanto, permite separar partes del código de cliente para aplicar cambios atómicos independientes al gráfico sin ningún conflicto. La práctica recomendada es que el cliente incremente un contador global siempre que necesite generar un identificador OperationSet único y nuevo. Se garantiza que un conjunto de cambios en el grafo, aplicado de forma atómica, sea preciso de muestra. Por ejemplo, las voces se iniciarán sincronizando.

Si establece OperationSet en XAUDIO2_COMMIT_NOW, el cambio se aplica inmediatamente. Surte efecto en el primer paso de procesamiento de audio después de la llamada al método. Si llama a CommitChanges con XAUDIO2_COMMIT_ALL, se realizan cambios en todos los conjuntos de operaciones pendientes, independientemente de su identificador OperationSet .

Ciertos métodos surten efecto inmediatamente cuando se llaman desde una devolución de llamada XAudio2 con un OperationSet de XAUDIO2_COMMIT_NOW. Todos los demás métodos que toman un argumento OperationSet solo surten efecto en el siguiente paso de procesamiento después de llamar al método (si se llama con XAUDIO2_COMMIT_NOW), o después de llamar a CommitChanges con el mismo OperationSet. Por este motivo, es posible que algunas llamadas de método no siempre se produzcan en el mismo orden en el que se llamaron.

Todas las operaciones pendientes se confirman de forma atómica cuando se llama a IXAudio2::StopEngine . Todos los métodos a los que se llama mientras se detiene el motor surten efecto inmediatamente, independientemente del valor OperationSet proporcionado. Al reiniciar el motor, XAudio2 vuelve al modo asincrónico.

Entre los escenarios sencillos en los que los conjuntos de operaciones son útiles se incluyen los ejemplos siguientes.

  • Iniciar varias voces simultáneamente.
  • Enviar simultáneamente un búfer a una voz, establecer los parámetros de voz e iniciar la voz.
  • Realizar un cambio a gran escala en el gráfico, como conectar todas las voces de origen a una nueva voz de submezcla.

Vea Cómo: Agrupar métodos de audio como un conjunto de operaciones para obtener un ejemplo de uso de un conjunto de operaciones.

Métodos del conjunto de operaciones

Puede llamar a los métodos siguientes como parte de un conjunto de operaciones.

Como se ha descrito anteriormente, el código de cliente debe llamar a la función IXAudio2::CommitChanges para ejecutar los cambios diferidos.

Conjuntos de operaciones

Guía de programación de XAudio2

Cómo: agrupar métodos de audio como un conjunto de operaciones