4

当我尝试从 pjsip 建立新调用时出现此错误:

pjsua_aud.c ..Error retrieving default audio device parameters: Unable to find default audio device (PJMEDIA_EAUD_NODEFDEV) [status=420006] Exception: Object: {Account <sip:192.168.0.2:54496>}, operation=make_call(), error=Unable to find default audio device (PJMEDIA_EAUD_NODEFDEV)

我安装了libasound2-dev:sudo apt-get install libasound2-dev并重新编译了 pjsip,但它仍然给了我相同的结果.. 我在这里遗漏了什么吗?

注意我使用的是 Ubuntu 11.10,声音很好,没有问题,所以请不要告诉我声卡有问题


更新

我像这样配置和编译 pjsip:

$ ./配置

$ 制作 && 制作安装

像这样:

$ ./configure --enable-shared --disable-static --enable-memalign-hack

$ 制作 && 制作安装

也像这样:

$ ./配置

$ make dep && make clean && make

所有方法都给了我相同的结果。


更新 2

我确保安装了以下所有内容,但问题仍然存在:

sudo apt-get install portaudio19-dev libportaudio2 pulseaudio alsa-utils liboss4-salsa-dev alsa-base alsa-tools libasound2-plugins libasound2 libasound2-dev binutils binutils-dev libasound-dev pulseaudio-dev


更新 3

我像下面那样运行它,它起作用了:

pjproject-2.1.0/pjsip-apps/bin/pjsua-i686-pc-linux-gnu --capture-dev=-1 --playback-dev=-1

它可以呼叫对方。但是当我从 python 脚本运行它时,它会给我一个错误,即使我这样设置声音设备:

lib.init(log_cfg = pj.LogConfig(level=LOG_LEVEL, callback=log_cb))
snd_dev = lib.get_snd_dev()
print snd_dev ## returns (-1,-2)
lib.set_snd_dev(0,0)

错误是:

12:39:55.753 os_core_unix.c !pjlib 2.1 for POSIX 已初始化 12:39:55.754 sip_endpoint.c .创建端点实例... 12:39:55.754 pjlib .select() I/O 队列已创建 (0x93f1a80) 12:39 :55.754 sip_endpoint.c .Module "mod-msg-print" 注册 12:39:55.754 sip_transport。.Transport 管理器创建。12:39:55.754 pjsua_core.c .PJSUA 状态已更改:NULL --> 已创建 12:39:55.769
pjsua_core.c .pjsua 2.1 版用于 Linux-3.0.0.17/i686/glibc-2.13 已初始化(-1,-2) 12:39:55.770 pjsua_aud.c .检索默认音频设备参数时出错:音频设备无效 (PJMEDIA_EAUD_INVDEV) [status=420004] 异常:对象:Lib,操作=set_current_sound_devices(),错误=无效的音频设备 (PJMEDIA_EAUD_INVDEV)

但是奇怪的是,当我lib.set_snd_dev(0,0)用这条线替换时lib.set_null_snd_dev(),声音当然不起作用,因为我将声音设备设置为 null !

4

4 回答 4

11

当未安装开发包时会发生这种情况。从您的错误消息中,我可以看出未安装libasound-development-package 。执行以下操作:

sudo apt-get install libasound2-dev

请注意,pjsip 仍然无法设置默认音频设备,因为您已经完成了,make因为缺少此包。所以你需要再次构建 Pjsip

在 pjsip 目录分别执行以下操作:

./configure
make dep 
make clean
make
make install

就可以了。

于 2014-01-07T16:45:48.210 回答
0

从另一篇文章中,我发现您可能还想检查您是否拥有这些软件包并进行重建。让我知道这对你有什么影响。

  1. 安装所需的开发包!像 pulseaudio-dev、alsa-dev、portaudio-dev 或任何你想要的(在 dubio 所有!)
  2. 重新启动配置并再次构建!(配置,制作...)
  3. 再次转到 pjsip-apps/src/python 并做 make / make all,在 ../py_pjsua 中相同

pa_dev.c ..Sound 设备计数现在应该会吐出更多设备...

于 2013-05-10T19:08:22.327 回答
0

您可以将虚拟声卡安装到 ubuntu 并使其正常工作,如本解决方案中所述,https://stackoverflow.com/a/40095791/7242275

您必须安装这些软件包sudo apt-get install pulseaudio jackd2 alsa-utils dbus-x11并重建 pjsip,就是这样!

于 2021-05-13T12:52:51.197 回答
-2

好吧,只是一个猜测(我现在无法在我的 PC 上尝试),但您实际上不需要将声音设备设置为由 获得的值get_snd_dev吗?至少这似乎是合理的。所以而不是

lib.set_snd_dev(0,0)

尝试用 (-1, -2) 元组调用它:

lib.set_snd_dev(-1,-2)
于 2013-12-02T06:07:45.937 回答