Stream 直接声流同步

Stream 直接声流同步,stream,directsound,portaudio,synchronisation,Stream,Directsound,Portaudio,Synchronisation,我有一个关于2个Directsound流同步的问题 为了录制和播放声音,我目前使用Portaudio打开2个Directsound流。 有两个回调函数,每次输入缓冲区被填充,输出缓冲区需要数据时调用 现在我的问题来了 输入流以48kHz采样率(@1024个样本)运行。输出流以192kHz采样率(@4096个样本)运行。每次输入缓冲区被填满,调用回调时,我都会执行一些DSP,然后将结果转换为192kHz。输出流获取结果并输出数据。现在这两条流完全不同步了 我已经浏览了整个PortaudioAPI,

我有一个关于2个Directsound流同步的问题

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

现在我的问题来了

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

我已经浏览了整个PortaudioAPI,但是我找不到一个同步选项来将两个流锁定在一起

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

比尔


Vincent Bruinink.

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


作为另一种选择,您可能需要考虑在单个流中打开单个设备并使用软件采样率转换。

您可能会使用除DistToA音以外的一些API更好的运气。但Directsound和ASIO是支持192kHz采样的唯一一个。ASIO只能立即打开一条流。