这是我的简单回调。PA检测到我的声卡有8in/8out。我想同时将音频流发送到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;
}发布于 2014-03-19 08:50:55
你的例子表明你的输入流是立体声的,所以试试这个:
s1 = *in++;s2 = *in++;
*out++ = s1;//通道1 *out++ = s2;//通道2 *out++ = s1;//通道3 *out++ = s2;//通道4
结果应该是通道1和3播放相同信号,通道2和4播放相同的信号
在大多数情况下,通道在输出缓冲器中是交错的。否则,其他信道对可以由不同的设备表示。
https://stackoverflow.com/questions/22469873
复制相似问题