jvoiplib中的examples的编译和运行

本文详细阐述了实时音频传输的复杂性,并分享了通过使用JVOIPLIB实现音频传输的经验。包括JRTPLIB和JTHREAD的安装与配置,解决共享库路径问题及音频播放故障排查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发现实时音频传输也不是那么简单的,还是先学学别人的吧!JVOIPLIB是利用JRTPLIB做的,也便于以后的扩展应用。
1 . 安装好JRTPLIB和JTHREAD。此处步骤比较简单,./configure  ; make  ; make install;   三板斧!  而注意一点的是,要先安装JHTREAD,再安装JRTPLIB,因为JRTPLIB的.configure会去检查是否安装了JTHREAD,即是否支持多线程。(我在此就犯了个错误,是先安装JRTPLIB的,导致后面安装JVOIPLIB时,老报错,多线程支持通不过。
2. 安装好JVOIPLIB,步骤同上,当然还可以安装一些其它的库如:speex压缩库;libsndfile格式转化库等。
3.编译example里的文件,如编译localsimple.cpp  ,由于此程序的编译要用到头文件的查找,共享库的连接等,我写了个简单的Makefile:
INCL = -I/usr/local/include/jvoiplib -I/usr/local/include/jthread     #增加头文件的包含路径
CFLAGS = -pipe -O2 -fno-strength-reduce
LFLAGS = /usr/local/lib/libjvoip.a -L/usr/X11R6/lib
LIBS = -LX11 -LXext -L /usr/local/lib -l jvoip -L /usr/local/lib -l jthread   #连接共享库
CC = g++
OBJECT = localsimple
$(OBJECT):$(OBJECT).o
    $(CC) $(LFLAGS) $(INCL) -o $(OBJECT) $(OBJECT).o $(LIBS)
    
$(OBJECT).o:$(OBJECT).cpp

.SUFFIXES:.cpp
.cpp.o:
    $(CC) -c $(CFLAGS) $(INCL) -o $@ $<      
clean:
    rm -f main
    rm -f *.o      
4. 运行
第一次运行./localsimple ,它提示:error while loading shared libraries: libjvoip.so.1.4: cannot open shared object file: No such file or directory
后面查到是因为连接了共享库却没有加共享库路径,当然就找不到连接库了。
运行命令:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib        
将共享库路径添加到收索路添中,即可。
程序终于能运行了,但仍然听到不声音,明天继续努力!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值