2014-03-18 2 views
0

Вот мой простой обратный вызов. PA обнаруживает мою звуковую карту с 8ins/8out. Я хотел бы отправить аудиопоток для вывода каналов, таких как 1/2 и 3/4 одновременно. Как я могу сделать это в обратном вызове? БлагодаряКак отправить аудио через каналы SoundCard 1/2 и 3/4 в функцию обратного вызова PortAudio?

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

Ваш пример показывает, что ваш входной поток стерео, так попробуйте это:

s1 = * в ++; s2 = * in ++;

* out ++ = s1; // канал 1 * out ++ = s2; // канал 2 * out ++ = s1; // канал 3 * out ++ = s2; // канал 4

Результат должен быть, что канал 1 и 3 играть в тот же самый сигнал и канал 2 и 4 играть тот же самый сигнал

В большинстве случаев каналы перемежаются в выходном буфере. В противном случае другие пары каналов могут быть представлены различными устройствами.

 Смежные вопросы

  • Нет связанных вопросов^_^