2013-05-10 53 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

相關問題