Konvertieren von Daten aus einem Format in ein anderes
[Das dieser Seite zugeordnete Feature Audiokomprimierungs-Manager ist ein Legacyfeature. Microsoft empfiehlt dringend, dass neuer Code dieses Feature nicht verwendet.]
Der ACM verwendet Streamfunktionen, um die Datenformatkonvertierung zu unterstützen. Konverter im ACM ändern das Format, aber nicht den Datentyp. Beispielsweise kann ein Konvertermodul 44-kHz-, 16-Bit-Daten in 44-kHz- und 8-Bit-Daten ändern.
Die folgenden ACM-Funktionen unterstützen die Datenformatkonvertierung. Sie werden in der Reihenfolge aufgeführt, in der Sie sie normalerweise verwenden würden.
- Die Funktion acmStreamOpen öffnet einen Konvertierungsdatenstrom.
- Die Funktion acmStreamSize berechnet die entsprechende Größe des Quell- oder Zielpuffers.
- Die Funktion acmStreamPrepareHeader bereitet Quell- und Zielpuffer für die Verwendung in einer Konvertierung vor.
- Die Funktion acmStreamConvert konvertiert Daten in einem Quellpuffer in das Zielformat und schreibt die konvertierten Daten in den Zielpuffer.
- Die Funktion acmStreamUnprepareHeader bereinigt die Quell- und Zielpuffer, die von acmStreamPrepareHeader vorbereitet wurden. Sie müssen diese Funktion aufrufen, bevor Sie die Quell- und Zielpuffer freigeben.
- Die acmStreamClose-Funktion schließt einen Konvertierungsstream.
Identifizieren Sie beim Konvertieren von Daten zunächst das Quellformat, und wählen Sie dann das Zielformat aus. Die einfachste Möglichkeit ist die Verwendung der acmFormatChoose-Funktion , die ein Dialogfeld zur Formatauswahl anzeigt und die Formatauswahl des Benutzers zurückgibt.
Wenn Sie die Quell- und Zielformate kennen, können Sie acmStreamOpen verwenden, um einen Konvertierungsdatenstrom zu öffnen. Anschließend können Sie die acmStreamSize-Funktion verwenden, um die entsprechenden Puffergrößen zu bestimmen.
Der nächste Schritt besteht darin, die Puffer vorzubereiten, die bei der Konvertierung verwendet werden sollen, indem Sie acmStreamPrepareHeader verwenden.
Verwenden Sie zum Ausführen der Konvertierung acmStreamConvert , bis alle Puffer verarbeitet wurden. Wenn die Konvertierung abgeschlossen ist, verwenden Sie acmStreamUnprepareHeader, um die Puffer zu sauber, und verwenden Sie dann acmStreamClose, um den Konvertierungsstream zu schließen.