データをある形式から別の形式に変換する
[このページに関連付けられている機能である Audio Compression Manager は、従来の機能です。 Microsoft では、新しいコードではこの機能を使用しないことを強くお勧めします。]
ACM では、ストリーム関数を使用してデータ形式の変換がサポートされます。 ACM のコンバーターは形式を変更しますが、データ型は変更しません。 たとえば、コンバータ モジュールでは、44 kHz の 16 ビット データを 44 kHz の 8 ビット データに変更できます。
次の ACM 関数では、データ形式の変換がサポートされています。 これらは、通常使用する順序で一覧表示されます。
- acmStreamOpen 関数は、変換ストリームを開きます。
- acmStreamSize 関数は、ソースバッファーまたはコピー先バッファーの適切なサイズを計算します。
- acmStreamPrepareHeader 関数は、変換で使用されるソース バッファーと変換先バッファーを準備します。
- acmStreamConvert 関数は、変換元バッファー内のデータを変換先の形式に変換し、変換されたデータを変換先バッファーに書き込みます。
- acmStreamUnprepareHeader 関数は、acmStreamPrepareHeader によって準備されたソース バッファーと宛先バッファーをクリーンアップします。 ソースバッファーと宛先バッファーを解放する前に、この関数を呼び出す必要があります。
- acmStreamClose 関数は、変換ストリームを閉じます。
データを変換する場合は、最初にソース形式を特定してから、変換先の形式を選択します。 これを行う最も簡単な方法は、 acmFormatChoose 関数を使用して、書式選択ダイアログ ボックスを表示し、ユーザーの書式の選択を返します。
変換元と変換先の形式がわかっている場合は、 acmStreamOpen を 使用して変換ストリームを開くことができます。 その後、 acmStreamSize 関数を使用して、適切なバッファー サイズを決定できます。
次の手順では、 acmStreamPrepareHeader を使用して、変換で使用するバッファーを準備します。
変換を実行するには、すべてのバッファーが処理されるまで acmStreamConvert を使用します。 変換が完了したら、acmStreamUnprepareHeader を使用してバッファーをクリーンしてから、acmStreamClose を使用して変換ストリームを閉じます。