这是我简单的回调。 PA使用8ins / 8outs检测我的声卡。我想将音频流同时发送到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;
}
答案 0 :(得分:0)
您的示例表明您的输入流是立体声,请尝试以下操作:
s1 = * in ++; s2 = * in ++;
* out ++ = s1; //频道1 * out ++ = s2; //频道2 * out ++ = s1; //频道3 * out ++ = s2; //频道4
结果应该是通道1和3播放相同的信号,通道2和4播放相同的信号
在大多数情况下,通道在输出缓冲区中交错。否则,其他信道对可以由不同的设备表示。