初始化PortAudio:主机错误

时间:2013-03-09 19:24:40

标签: c audio alsa portaudio audacity

我正在尝试在Debian Wheezy 64位GNU / Linux上创建一个PortAudio应用程序。我阅读了有关如何添加库的文档,并且编译时没有错误。

现在我想使用这个脚本初始化PortAudio:

#include <stdio.h>
#include "portaudio.h"

int main(){
    PaError err = Pa_Initialize();
    if(err != paNoError){
        fprintf(stderr, "Pa_Initialize error: %s\n", Pa_GetErrorText(err));
        return 1;
    }
    return 0;
}

我得到以下输出:Pa_Initialize error: Host error.

当我尝试运行Audacity时,它也基于PortAudio,我收到以下错误:

ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
audacity: symbol lookup error: audacity: undefined symbol: Pa_GetStreamHostApiType

当我尝试调用此函数时:

const PaHostErrorInfo* hostError;
hostError = Pa_GetLastHostErrorInfo();

我收到以下错误:Undefined reference to 'Pa_GetLastHostErrorInfo'

如何以正确的方式初始化PortAudio,以及我的主机有什么问题; PortAudio要求我对PulseAudio做些什么吗?

我已经尝试了本主题http://ubuntuforums.org/showthread.php?t=1756822的底层解决方案,因为我认为它与库文件的配置有关。但这也没有用,也没有改变错误。

2 个答案:

答案 0 :(得分:2)

audacty错误看起来有些错误配置。要了解问题的根源,请尝试调用此函数以找出主机错误:

const PaHostErrorInfo * Pa_GetLastHostErrorInfo(void)

http://portaudio.com/docs/v19-doxydocs/portaudio_8h.html#aad573f208b60577f21d2777a7c5054e0

答案 1 :(得分:1)

经过一段时间研究我放弃的问题,并尝试通过删除它并重新构建它来从源重新安装PortAudio。谢天谢地,这次它奏效了!

所以我猜这是一个在新版本中得到解决的错误。