2

DebianWheezy64ビット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.

これもPortAudioに基づいているAudacityを実行しようとすると、次のエラーが発生します。

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をすでに試しました。しかし、それも機能せず、エラーは変わりません。

4

2 に答える 2

2

聴覚エラーは、何かが正しく構成されていないように見えます。問題の根底にあるものを見つけるには、この関数を呼び出して、ホストエラーが何であったかを調べてみてください。

const PaHostErrorInfo * Pa_GetLastHostErrorInfo(void)

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

于 2013-03-10T00:36:33.937 に答える
1

しばらくして問題を調査した後、私はあきらめ、PortAudioを削除して再構築することにより、ソースからPortAudioを再インストールしてみました。そしてありがたいことに、今回はうまくいきました!

ですから、新しいバージョンで解決されたのはバグだったと思います。

于 2013-03-28T19:24:50.357 に答える