Compartir a través de


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, lo 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 de operationSet de para 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 único y nuevo OperationSet. Se garantiza que un conjunto de cambios en el grafo, aplicado de forma atómica, sea preciso para la muestra. Por ejemplo, las voces se iniciarán sincronizadas.

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 de operationSet de.

Algunos 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 de 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. Debido a esto, 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. Los métodos a los que se llama mientras se detiene el motor surten efecto inmediatamente, independientemente del OperationSet valor 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.

Consulte 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 en última instancia a la función IXAudio2::CommitChanges para ejecutar los cambios diferidos.

conjuntos de operaciones

guía de programación XAudio2

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