Konvertieren von Daten aus einem Format in ein anderes
Der ACM verwendet Streamfunktionen, um die Konvertierung von Datenformaten zu unterstützen. Konverter im ACM ändern das Format, aber nicht den Datentyp. Ein Konvertermodul kann z. B. 44-kHz- und 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 acmStreamOpen-Funktion öffnet einen Konvertierungsstream.
- Die acmStreamSize-Funktion berechnet die entsprechende Größe des Quell- oder Zielpuffers.
- Die acmStreamPrepareHeader-Funktion bereitet Quell- und Zielpuffer für die Verwendung in einer Konvertierung vor.
- Die acmStreamConvert-Funktion konvertiert Daten in einem Quellpuffer in das Zielformat und schreibt die konvertierten Daten in den Zielpuffer.
- Die acmStreamUnprepareHeader-Funktion bereinigt die Quell- und Zielpuffer, die von acmStreamPrepareHeader vorbereitet wurden. Sie müssen diese Funktion aufrufen, bevor Sie die Quell- und Zielpuffer frei geben.
- 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 hierzu 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 Konvertierungsstream zu öffnen. Anschließend können Sie die acmStreamSize-Funktion verwenden, um die entsprechenden Puffergrößen zu bestimmen.
Der nächste Schritt besteht im Vorbereiten der Puffer für die Konvertierung mithilfe von acmStreamPrepareHeader.
Um die Konvertierung durchzuführen, verwenden Sie acmStreamConvert, bis alle Puffer verarbeitet wurden. Wenn die Konvertierung abgeschlossen ist, verwenden Sie acmStreamUnprepareHeader, um die Puffer zu bereinige, und verwenden Sie dann acmStreamClose, um den Konvertierungsstream zu schließen.