我正在制作用于录制声音的pulseaudio,我遇到了“拒绝访问”错误。
首先,我在Ubuntu 16.04机器上工作。 我正在尝试使用以下部分代码连接到服务器:
_s = NULL;
int32_t err = -1;
_ss.format = PA_SAMPLE_S16LE;
_ss.rate = 44100;
_ss.channels = 2;
_s = pa_simple_new(NULL, "Recorder", PA_STREAM_RECORD, NULL, "record", &_ss, NULL, NULL, &err);
pa_simple_new 不返回null,所以我认为,这部分没有错。
但是在代码的另一部分,我试图从服务器读取数据,如下所示:
int32_t err = -1;
int8_t buff[ ( CIRC_DATA_SIZE ) ] = { 0x00 };
if ( pa_simple_read(_s, &buff, ( CIRC_DATA_SIZE ), &err ) > 0 )
{
_ReadBuff->add_to_buffer(buff, ( CIRC_DATA_SIZE ) );
}else { DEBUG_MSG("Unable to read from audio device, %s\n", pa_strerror(err)); }
在应用程序的输出中,我看到以下声明: 无法从音频设备读取,拒绝访问
然后我像这样设置 PULSE_COOKIE 环境变量:
export PULSE_COOKIE=/home/sbahadirarslan/.config/pulse/cookie
顺便说一句,cookie文件确实存在于/home/sbahadirarslan/.config/pulse目录中。
在此安排之后,应用程序给我相同的错误日志。 然后我像这样设置 PULSE_SERVER 环境变量:
export PULSE_SERVER=unix:/run/user/1000/pulse/native
但是在这次改变之后,应用程序给了我同样的错误。 那么这些改变是错误的还是我必须做出其他改变?
感谢您的帮助。
答案 0 :(得分:0)
尝试一下: systemctl --user enable pulseaudio&& systemctl --user start pulseaudio