2013-05-10 56 views
3

我得到这个错误,当我尝试从PJSIP建立一个新的呼叫:PJSIP新的呼叫错误...无法找到默认音频设备(PJMEDIA_EAUD_NODEFDEV)

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-devsudo apt-get install libasound2-dev,并重新编译pjsip,但仍然,它给了我相同的结果..我在这里错过了什么?

N.B.我使用Ubuntu 11.10和声音工作正常,没有任何问题,所以请不要告诉我,我有声卡


更新

我配置问题,并编制了PJSIP这样:

$的./configure

$使& &使安装

而像这样:

$的./configure --enable-共享 - 禁用静态--enable-包括memalign - 黑客

$使& &使安装

也是这样的:

$ ./configure

$使DEP & &使清洁& &使

而且所有的方式给了我同样的结果。


更新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。模块“mod-msg-print”已注册 12:39:55.754 sip_transport。 。运输经理创建。 12:39:55.754 pjsua_core.c .PJSUA状态改变:NULL - > CREATED 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, operation = set_current_sound_devices(),error =音频无效设备 (PJMEDIA_EAUD_INVDEV)

但是,很奇怪的工作,当我更换了lib.set_snd_dev(0,0)这一行lib.set_null_snd_dev(),当然声音不工作,作为我正在设置声音设备为空!

+0

我不知道你提到的软件,但只是使用谷歌搜索这个错误似乎很常见,看起来你错过了配置中的东西。你有没有尝试查看pjsip资源?有一个关于[为Linux编译](http://trac.pjsip.org/repos/wiki/Getting-Started/Autoconf#),另一个用于[疑难解答](http://trac.pjsip.org/repos/维基/声音问题#)。他们看起来有帮助 – Mike 2013-05-10 13:54:06

+0

不知道你到底在说什么,我试着在你提到的那些页面上感谢你,但是没有任何作用..请在我的问题 – securecurve 2013-05-10 14:20:55

回答

1

从一个额外的帖子,我发现你可能还想检查你是否有这些包,并重建。让我知道这是怎么回事。

  1. 安装所需的开发包!像pulseaudio-dev, alsa-dev,portaudio-dev或者任何你想要的东西(在dubio中都可以!)
  2. 重新开始配置和重建! (aconfigure,使...)
  3. 再去PJSIP-应用/ src目录/ Python和不使/让所有,同样在 ../py_pjsua

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

+0

上看到我的更新你好@theagent,感谢你在这里的贡献:),我安装了所有的在我的问题中,我修改了我在Update2中安装的软件包列表,重新配置,重新制作...并仍然相同:( – securecurve 2013-05-10 21:24:59

-1

好吧,只是一个猜测(我现在不能在我的电脑上试用它),但是你是否真的需要将你的声音设备设置为get_snd_dev?至少这似乎是合理的。因此,而不是

lib.set_snd_dev(0,0) 

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

lib.set_snd_dev(-1,-2) 
+0

嗨,伙计,它有什么区别,以及为什么它应该与( - 1,-2)?我不完全了解 – securecurve 2013-12-02 07:16:57

9

没有安装开发包当发生这种情况。从你的错误信息我可以看出libasound-development-package没有安装。做如下:

sudo apt-get install libasound2-dev 

注重的是PJSIP仍然不能设置默认的音频设备,因为你已经完成了make因为这个包不见了。 所以,你需要在PJSIP目录再次

建立PJSIP分别做如下:

./configure 
make dep 
make clean 
make 
make install 

是会做到这一点。

+0

+1谢谢。出站呼叫会失败,因为它没有检测到音频设备。现在可以在Ubuntu 12.04 – enthusiasticgeek 2014-01-23 20:21:49

相关问题