|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
今年三月初开学,进入ortp协议的正式开始阶段:在网上下载版本为ortp0.15.0,安装成功后,就可以调用函数库里的函数用了(用来export LD_LIBRARY和export PKG_CONFIG_PATH命令)。
在PC机运行应用程序时,用本地编译器;在ARM9(用到HH6410开发包)板上运行应用程序时,用交叉编译器(/opt/arm-2008q3/bin/arm-none-linux-gnueabi-gcc)。需要注意的是:在板子上运行的应用程序是分两种情况的,第一:如果应用程序不调用ortp协议栈里面函数库的共享库时,只用交叉编译器编译应用程序即可,无须在板子上挂载用交叉编译器编译过的共享库;第二,如果应用程序调用ortp协议栈里面函数库的共享库时,必须用交叉编译器编译ortp0.15.0协议栈里面的库函数,然后将生成的共享库放在合适位置,供ARM9开发板挂载(挂载后,需要在原目录前加上/mnt 这个目录),然后在开发板上运行的应用程序就可以调用这个交叉编译器编译过的共享库了。如果学会了这些,就等同于学会了协议栈在不同开发环境下的移植。
在做通过ortp音频传输时,用到了对音频的编程。看过《音频编程指南》,就会知道比较简单的做法是调用/dev/dsp(属于OSS框架)这个音频设备接口文件进行操作.当然比较高级的程序员,会用属于ALSA框架的音频编程,其中ALSA还提供了一些编程用的函数库。在本实验室的机器中,说来也巧,只有我的PC可以打开/dev/dsp这个文件设备,别的PC都不可以,即执行open("/dev/dsp",O_RDONLY)。看过此部分的知识后,我完成了:现场录音---->保存音频文件(只试了*.wav和*.wma格式);将已有的*.wav和*.wma格式的音频文件----->播放出声音;现场录音---->现场播放等三个程序。
将ortp协议和音频编程结合,我完成了声音的实时传输,不过接收端收到的声音不清楚,但是声音的大体还是可以分辨出来的。今天我想到的改善的方法有两种,其一:提高声音的采样率,不过采样过大,声卡可能不支持;其二:录音时说话尽量大声些,这样在接收端接收到的声音可以更清楚些。今天测试的程序是:将录制的声音在发送端发送,然后在接收端将接收到的数据保存为jieshou.wav音频文件。然后用自编的播放*.wav的程序播放该jieshou.wav,测试结果还可以。
总结一下,以上说的内容需要完成以下工作:
ortp协议栈库函数的本地编译和交叉编译;
对音频的编程;
音频程序与ortp协议栈函数的结合,完成音频传输。 |
|