这是我的简单回调。 PA检测到我的声卡为8进8出。我想同时将音频流发送到输出通道,例如1/2和3/4。我该如何在回调中执行此操作?谢谢
int audioCallback ( const void* input, void* output, unsigned long samples,
const PaStreamCallbackTimeInfo* timeInfo, PaStreamCallbackFlags statusFlags, void* userData)
{
const float *in = ( const float*)input;
float *out = (float*)output;
paTestData *data = (paTestData*)userData;
for (int i = 0; i < samples; ++i)
{
*out++ = *in++; // left Channel(1)
*out++ = *in++; // right Channel(2)
}
return paContinue;
}
最佳答案
您的示例表明您的输入流为立体声,请尝试以下操作:
s1 = * in ++;
s2 = * in ++;
* out ++ = s1; //频道1
* out ++ = s2; //频道2
* out ++ = s1; //频道3
* out ++ = s2; //频道4
结果应该是通道1和3播放相同的信号,而通道2和4播放相同的信号
在大多数情况下,通道在输出缓冲区中交错。否则,其他通道对可以由不同的设备表示。
关于c - 如何通过PortAudio Callback功能中的SoundCard输出 channel 1/2和3/4发送音频?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22469873/