portaudio PCM和压缩

时间:2018-06-12 10:13:20

标签: compression pcm portaudio

我正在使用portaudio从麦克风获取声音,我使用avcodec_encode_audio压缩声音。我将它发送到另一台计算机,解压缩并播放它。完善。但是我想从微软的AecSdkDemo程序的输出开始。那是过滤掉反馈的那个。它也很完美,但它提供了PCM输出。 portaudio回调函数正在使用其他格式,这是压缩器将采用的唯一格式。格式是什么?这不是PCM。我可以将它写入文件,但Audacity无法播放也无法识别它,它可以播放PCM。下面是我用来启动PortAudio的代码。非常感谢任何帮助。

PaStreamParameters  inputParameters;

PaError             err = paNoError;

err = Pa_Initialize();
if( err != paNoError ) 
{
    goto done;
}

inputParameters.device = Pa_GetDefaultInputDevice(); 
if (inputParameters.device == paNoDevice) 
{
    sprintf(ErrLine,"Error: No default input device.");
    AfxMessageBox(ErrLine);
    goto done;
}
inputParameters.channelCount = NUM_CHANNELS;                    /* stereo input */
inputParameters.sampleFormat = PA_SAMPLE_TYPE;
inputParameters.suggestedLatency = Pa_GetDeviceInfo( inputParameters.device )->defaultLowInputLatency;
inputParameters.hostApiSpecificStreamInfo = NULL;

err = Pa_OpenStream(
          &stream,
          &inputParameters,
          NULL,    
          SAMPLE_RATE,
          SAMPLES_PER_FRAME,
          paClipOff,  
          AudioEncodeCallback,
          EncodeAudioData );

if( err != paNoError ) 
{
    goto done;
}

EncodeAudioData->recordStream = stream; 
return paNoError;

0 个答案:

没有答案