将数据从一种格式转换为另一种格式

[与此页面关联的功能 音频压缩管理器是一项旧功能。 Microsoft 强烈建议新代码不使用此功能。]

ACM 使用流函数来支持数据格式转换。 ACM 中的转换器会更改格式,但不会更改数据类型。 例如,转换器模块可以将 44 kHz、16 位数据更改为 44 kHz、8 位数据。

以下 ACM 函数支持数据格式转换。 它们按你通常使用的顺序列出。

  • acmStreamOpen 函数将打开转换流。
  • acmStreamSize 函数计算源缓冲区或目标缓冲区的适当大小。
  • acmStreamPrepareHeader 函数准备在转换中使用的源缓冲区和目标缓冲区。
  • acmStreamConvert 函数将源缓冲区中的数据转换为目标格式,并将转换后的数据写入目标缓冲区。
  • acmStreamUnprepareHeader 函数清理 acmStreamPrepareHeader 准备的源缓冲区和目标缓冲区。 在释放源缓冲区和目标缓冲区之前,必须调用此函数。
  • acmStreamClose 函数关闭转换流。

转换数据时,首先确定源格式,然后选择目标格式。 执行此操作的最简单方法是使用 acmFormatChoose 函数,该函数显示格式选择对话框并返回用户的格式选择。

了解源格式和目标格式后,可以使用 acmStreamOpen 打开转换流。 然后,可以使用 acmStreamSize 函数来确定适当的缓冲区大小。

下一步是使用 acmStreamPrepareHeader 准备要用于转换的缓冲区。

若要执行转换,请使用 acmStreamConvert ,直到处理完所有缓冲区。 转换完成后,使用 acmStreamUnprepareHeader 清理缓冲区,然后使用 acmStreamClose 关闭转换流。