管理portaudio中的频道

时间:2015-04-27 15:54:30

标签: c audio portaudio

目前正在使用C语言进行实时声音应用,我正在学习如何使用portaudio

我的第一个问题是,我真的不懂如何管理频道 我们承认我只希望通过portaudio传递音频 我认为我的回调函数是:

static int fuzzCallback( const  void *inputBuffer,
                            void *outputBuffer,
                            unsigned long framesPerBuffer,
                            const PaStreamCallbackTimeInfo* timeInfo,
                            PaStreamCallbackFlags statusFlags,
                            void *userData )
{
    SAMPLE *out = (SAMPLE*)outputBuffer;
    const SAMPLE *in = (const SAMPLE*)inputBuffer;
    (void) timeInfo; /* Prevent unused variable warnings. */
    (void) statusFlags;
    (void) userData;

    *out++ = *in++; // Left channel
    *out++ = *in++; // Right channel

    return paContinue;
}

现在我们承认我想切换输入并将其发送到我的输出,即将input 1发送到output 2,将input 2发送到output 1

如何使用portaudio实现这一目标?我期待*out.1++ = *in.2++;之类的内容,但无法找到有关此内容的任何信息。

提前感谢您的回答!

1 个答案:

答案 0 :(得分:3)

sudo ip link delete tap#outin的数组,其中信道是交错的。含义float是L1,R1,L2,R2,L3,R3 ......输出相同。当您从输入复制到输出时,要交换频道,请更改索引。

in