C ++とのpulseaudioが「このスコープで宣言されていません」
-
19-09-2019 - |
質問
私はの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>
所属していません StackOverflow