我有一个关于2个Directsound流同步的问题。
录制和播放声音,我目前使用Portaudio打开2 Directsound流。有两个回调函数,每次输入缓冲区被填满,输出缓冲区需要数据时调用。
现在我的问题是…
输入流以48kHz采样率(@1024采样率)运行。输出流以192kHz采样率运行(@4096个采样)。每次输入缓冲区被填满并调用回调时,我都会做一些DSP,然后将结果转换为192kHz。输出流接受结果并输出数据。现在这两个流完全不同步了。
我已经看了整个Portaudio API,但我找不到一个同步选项来锁定两个流在一起。
是否有办法锁定2个Directsound流?我真的需要48kHz输入和192kHz输出。
Br,
文森特Bruinink。问题是你不能真正"同时"打开两个流,你也不能打开两个设备(甚至一个设备在两个不同的采样率),并期望他们保持真正的同步,即使他们是,在同一时间,同步。为了理解其中的原因,你可能需要阅读一些关于音频如何在计算机上工作的内容。您可能还想阅读此文档,它是特定于PortAudio的。
作为一种替代方法,您可能需要考虑在单个流中打开单个设备并使用软件采样率转换。