多步骤格式转换

有时,ACM 无法在一个步骤中将数据从一种格式转换为另一种格式。 例如,应用程序可能需要将 16 位 44 kHz 立体声数据转换为 11-kHz 单声道 ADPCM。 如果压缩器或解压缩程序无法直接执行此转换,应用程序可能会分两个步骤尝试转换。 这通常意味着在两种 PCM 格式之间进行一次转换,然后对最终格式类型进行另一次转换。

若要通过两个步骤进行转换,请使用 acmFormatSuggest 函数查找与 ADPCM 格式匹配的 PCM 格式。 然后使用两个转换流来执行转换。 例如,执行从 16 位、44 kHz 立体声 PCM 到 16 位、11 kHz 单声道的一次转换,然后从 16 位、11 kHz 单声道转换为 11-kHz 单声道 ADPCM。

当源格式或目标格式不是 PCM 时,也会发生多步骤转换。 如果源格式不是 PCM,则应在转换前将其更改为 PCM 格式。 如果目标格式不是 PCM,则必须将源转换为中间 PCM 格式,然后转换为最终目标格式。

当源格式和目标格式都是 PCM 格式时,会发生最直接的转换。 如果源格式或目标格式不是 PCM,则转换可能需要额外的步骤。 如果源格式和目标格式都不是 PCM,则转换通常需要多个步骤,并且在某些情况下,转换可能是不可能的。