Core Audio 使用注意事项 3.1 windows 有着自己的计时时钟。采集过程中,由于时钟精度问题,采集 callback 的数据大小与恒定的 frameSize 有着一定的差异性。例如以 44100Hz 的采样率去采集,单位时钟内 callback 的数据大小为448,与恒定的441有差异。 3.2 一旦采集/播放线程被 block 了,将会导致线程处理时间变长,采集/播放取出的数据会产生断裂问题。拿播放为例,用户就会听到卡顿声。 3.3 使用 GetMixFormat方法 获取默认设备格式时,通常以 WAVEFORMATEX 的结构来指定格式。但是 WAVEFORMATEX 的结构有着一定的局限性,对于双通道以上,或者更高位深精度,或者新的压缩方案的一些设备格式,微软建议使用 WAVEFORMATEXTENSIBLE 可以获得更好的支持。由于某些设备驱动对 WAVEFORMATEX 结构和 WAVEFORMATEXTENSIBLE 结构调用 IsFormatSupported 会得到不同的结果。为了获取到可靠的设备格式,微软建议使用 IsFormatSupported 对 WAVEFORMATEX 格式和 WAVEFORMATEXTENSIBLE 格式都进行一次遍历。 3.4 音频设备中还有一些其他设置,比如 built-in AEC。built-in AEC 是使用编解码器 DMO 接口配置附加功能,DOM 可能会影响一些设备格式的支持。 相关引用: 1.《Practical Digital Audio for C++ Programmers》; 2.Core Audio APIs - Win32 apps ; 3.Core Audio APIs - Win32 apps ; 4.Configuring Codec DMOs - Win32 apps |
|小黑屋|手机版|音频应用官网微博|音频应用
( 鄂ICP备16002437号 )
GMT+8, 2025-6-2 22:28 , Processed in 0.033716 second(s), 12 queries , Redis On.
Powered by Audio app