我正在使用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;