将数据从一种格式转换为另一种格式
[与此页面关联的功能 音频压缩管理器是一项旧功能。 Microsoft 强烈建议新代码不使用此功能。]
ACM 使用流函数来支持数据格式转换。 ACM 中的转换器会更改格式,但不会更改数据类型。 例如,转换器模块可以将 44 kHz、16 位数据更改为 44 kHz、8 位数据。
以下 ACM 函数支持数据格式转换。 它们按你通常使用的顺序列出。
- acmStreamOpen 函数将打开转换流。
- acmStreamSize 函数计算源缓冲区或目标缓冲区的适当大小。
- acmStreamPrepareHeader 函数准备在转换中使用的源缓冲区和目标缓冲区。
- acmStreamConvert 函数将源缓冲区中的数据转换为目标格式,并将转换后的数据写入目标缓冲区。
- acmStreamUnprepareHeader 函数清理 acmStreamPrepareHeader 准备的源缓冲区和目标缓冲区。 在释放源缓冲区和目标缓冲区之前,必须调用此函数。
- acmStreamClose 函数关闭转换流。
转换数据时,首先确定源格式,然后选择目标格式。 执行此操作的最简单方法是使用 acmFormatChoose 函数,该函数显示格式选择对话框并返回用户的格式选择。
了解源格式和目标格式后,可以使用 acmStreamOpen 打开转换流。 然后,可以使用 acmStreamSize 函数来确定适当的缓冲区大小。
下一步是使用 acmStreamPrepareHeader 准备要用于转换的缓冲区。
若要执行转换,请使用 acmStreamConvert ,直到处理完所有缓冲区。 转换完成后,使用 acmStreamUnprepareHeader 清理缓冲区,然后使用 acmStreamClose 关闭转换流。