我有一个关于2个Directsound流的同步的问题。
为了录制和播放声音,我目前使用Portaudio打开2个Directsound流。有两个回调函数,每次输入缓冲区被填满,输出缓冲区需要数据时都会调用这两个函数。
这就是我的问题..。
输入流以48 The的采样率运行(@1024个采样)。输出流以192 The采样率(@4096个采样)运行。每次输入缓冲区被填满并调用回调时,我都会执行一些DSP操作,然后将结果转换为192 the。输出流获取结果并输出数据。现在这两个流完全不同步地运行。
我已经看遍了整个Portaudio API,但我没有找到一个同步选项来将两个流锁定在一起。
有没有办法锁定2个Directsound流?我真的需要48 and的输入和192 and的输出。
Br
文森特·布鲁因克。
发布于 2013-03-21 09:41:09
问题是,你不能“同时”打开两个流,也不能打开两个设备(甚至一个设备以两个不同的采样率),并期望它们保持真正的同步,即使它们在同一时间是同步的。要了解其中的原因,您可能需要阅读一些关于how audio works on a computer的内容。您可能还想阅读特定于PortAudio的this document。
作为替代方案,您可能需要考虑在单个数据流中打开单个设备,并使用软件采样率转换。
https://stackoverflow.com/questions/15208800
复制相似问题