0

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

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

现在这是我的问题...

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

我查看了整个 Portaudio API,但找不到将 2 个流锁定在一起的同步选项。

有什么方法可以锁定 2 个 Directsound 流吗?我真的需要 48kHz 输入和 192kHz 输出。

溴,

文森特·布鲁因克。

4

1 回答 1

1

问题是您不能真正“同时”打开两个流,也不能打开两个设备(甚至一个设备以两种不同的采样率)并期望它们真正保持同步,即使它们是,一次,同步。要了解原因,您可能需要阅读有关音频如何在计算机上工作的内容。您可能还想阅读此文档,它是特定于 PortAudio 的。

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

于 2013-03-21T01:41:08.507 回答