Dela via


XAudio2-åtgärdsuppsättningar

Den här översikten introducerar flera XAudio2-metoder som du kan anropa som en del av en åtgärdsuppsättning.

Flera XAudio2-metoder använder argumentet OperationSet, vilket gör att de kan anropas som en del av en uppskjuten grupp. Vid en viss tidpunkt kan du tillämpa en hel uppsättning ändringar samtidigt genom att anropa funktionen IXAudio2::CommitChanges med OperationSet identifierare för gruppen. Identifieraren är ett godtyckligt tal. Därför kan separata delar av klientkoden tillämpa separata atomiska ändringar i grafen utan konflikter. Den rekommenderade metoden är att klienten ökar en global räknare när den behöver generera en unik, ny OperationSet identifierare. En uppsättning ändringar i diagrammet, som tillämpas atomiskt, är garanterade att vara urvals korrekta. Till exempel börjar röster synkroniseras.

Om du anger OperationSet till XAUDIO2_COMMIT_NOW tillämpas ändringen omedelbart. Den börjar gälla i det första ljudbearbetningspasset efter metodanropet. Om du anropar CommitChanges med XAUDIO2_COMMIT_ALL utförs ändringar i alla väntande åtgärdsuppsättningar, oavsett OperationSet identifierare.

Vissa metoder börjar gälla omedelbart när de anropas från ett XAudio2-återanrop med en OperationSet av XAUDIO2_COMMIT_NOW. Alla andra metoder som tar ett OperationSet argument träder bara i kraft vid nästa bearbetningspass efter att metoden anropas (om den anropas med XAUDIO2_COMMIT_NOW) eller efter CommitChanges anropas med samma OperationSet. På grund av detta kanske vissa metodanrop inte alltid sker i samma ordning som de anropades.

Alla väntande åtgärder utförs atomiskt när IXAudio2::StopEngine anropas. Alla metoder som anropas medan motorn stoppas börjar gälla omedelbart, oavsett OperationSet angivet värde. När du startar om motorn återgår XAudio2 till asynkront läge.

Enkla scenarier där åtgärdsuppsättningar är användbara är bland annat följande exempel.

  • Starta flera röster samtidigt.
  • Samtidigt skickar du en buffert till en röst, ställer in röstparametrarna och startar rösten.
  • Göra en storskalig ändring i diagrammet, till exempel att ansluta alla källröster till en ny undermixröst.

Se Så här: Gruppera ljudmetoder som en åtgärdsuppsättning ett exempel på hur du använder en åtgärdsuppsättning.

Metoder för åtgärdsuppsättning

Du kan anropa följande metoder som en del av en åtgärdsuppsättning.

Som tidigare beskrivits måste klientkoden anropa funktionen IXAudio2::CommitChanges för att köra de uppskjutna ändringarna.

åtgärdsuppsättningar

programmeringsguide för XAudio2

Så här: Gruppera ljudmetoder som en åtgärdsuppsättning