Directsound流同步

时间:2013-03-04 18:47:38

标签: stream directsound portaudio synchronisation

我对2个Directsound流的同步有疑问。

要录制和播放声音,我目前使用Portaudio打开2个Directsound流。 每次填充输入缓冲区并且输出缓冲区需要数据时,会调用2个回调函数。

现在这是我的问题......

输入流以48kHz采样速率运行(@ 1024个样本)。输出流以192kHz采样率运行(@ 4096个样本)。每次填充输入缓冲区并调用回调时,我会做一些DSP,然后将结果转换为192kHz。输出流获取结果并输出数据。现在,两个流完全不同步。

我查看了整个Portaudio API,但是我找不到同步选项来锁定2个流。

有没有办法锁定2个Directsound流?我真的需要48kHz输入和192kHz输出。

BR,

Vincent Bruinink。

1 个答案:

答案 0 :(得分:1)

问题是你不能“同时”打开两个流,也不能打开两个设备(甚至一个设备以两种不同的采样率)并期望它们保持真正同步,即使他们曾经同步过。要了解原因,您可能需要阅读有关how audio works on a computer的内容。您可能还想阅读this document,这是PortAudio特有的。

作为替代方案,您可能需要考虑在单个流中打开单个设备并使用软件采样率转换。