我正在编写一个以独占模式运行流的实时音频应用程序。为了正确地向设备提供数据,它需要以我自己选择的格式到达。我的所有音频处理都是在发送到设备之前使用浮点样本完成的,并且设备的波形格式可能不是(也可能不是)设置为WAVE_FORMAT_IEEE_FLOAT
- 例如,它可能是WAVE_FORMAT_EXTENSIBLE
或WAVE_FORMAT_PCM
。
是否有一个API可以轻松地在一种波形(浮点)和另一种波形(设备的格式)之间进行转换?
答案 0 :(得分:1)
使用音频压缩管理器(ACM)转换流:
Converting Data from One Format to Another
如果您无法从格式到设备的格式创建单个流,则必须创建两个流 - 一个从您的格式到WAVE_FORMAT_PCM
,另一个来自WAVE_FORMAT_PCM
设备的格式(所有流/设备必须支持与PCM之间的转换)。