質問

私はのvorbis-ストリームのコンテストを再生するためのpulseaudioを使用しようとしているが、問題がヒットしています。

:Basicly私はと言われています
‘pa_simple’ was not declared in this scope
‘pa_simple_new’ was not declared in this scope
‘pa_simple_write’ was not declared in this scope

いくつかのコードを以下に示します:

#include <pulse/pulseaudio.h>
<時間>
pa_simple *s;
pa_sample_spec ss;

ss.format = PA_SAMPLE_S16NE;
ss.channels = 2;
ss.rate = 44100;

s = pa_simple_new(
    NULL,               // Use the default server.
    "Fooapp",           // Our application's name.
    PA_STREAM_PLAYBACK, // Playback
    NULL,               // Use the default device.
    "Music",            // Description of our stream.
    &ss,                // Our sample format.
    NULL,               // Use default channel map
    NULL,               // Use default buffering attributes.
    NULL,               // Ignore error code.
);
<時間>
while((samples=vorbis_synthesis_pcmout(&vd,&pcm))>0){
    int j;
    int bout=(samples<convsize?samples:convsize);
    cout << "D" << endl;
    for(i=0;i<vi.channels;i++){
        ogg_int16_t *ptr=convbuffer+i;
        float  *mono=pcm[i];
        for(j=0;j<bout;j++){
            int val=floor(mono[j]*32767.f+.5f);
            *ptr=val;
            ptr+=vi.channels;
        }
    }
    cout << "E" << endl;
    #ifdef PulseAudio
    pa_simple_write(s,convbuffer,2*vi.channels,NULL);
    #else
    fwrite(convbuffer,2*vi.channels,bout,output);
    #endif
    vorbis_synthesis_read(&vd,bout);
    cout << "F" << endl;
}

これはおそらく、いくつかの単純な誤りですが、誰もが正しい方向に私を指すことができれば、それは素晴らしいことだ!

役に立ちましたか?

解決

これらのものはすべてのsimple.hので定義されているので、あなたのファイルの先頭に新しい#includeを追加されます:

#include <pulse/simple.h>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top