PortAudio库环境搭建

在qt creator中,我用openCV捕获摄像头的帧,
并把结合了高斯平滑和微分求导离散微分算子sobel 应用在每帧图像上,
看着屏幕中,那实时的用黑底白色线条勾勒出来的自己,感觉好好玩,
感觉openCV好强大,可惜我没找到它捕获麦克风的功能,
既然媒体I/O模块可以处理视频,既然封装了DirectShow的摄像头捕获功能,
openCV可真够视觉库的,视觉得也太彻底了点吧!不过我喜欢。
搜索后发现DirectShow是当然的首选,可惜我不是微软家豢养的,我是野生的,
看了看DirectShow的教程,那代码竟不认识我,发现被豢养其实也挻幸福的。
我能搜到PortAudio库也不容易,网上相关的中文教程更是少得可怜!
和openCV一样,我的需求仅仅只是采集数据,至于处理播放,压缩打包,
udp发送等等交给qt来处理。我就纳闷了,怎么我在qt多媒体库没找到实时采集功能?
就像腾讯在线视频点播,竟不支持本地文件播放一样不可思议,又理所当然!
强大的openAL音频库我是一定要学的,不过不是现在,现在我得开始进入正题:
我刚开始下的是pa_stable_v19_20111121.tgz 那个最新版本的,
解压后,竟发现那东东打不开,我是win7 64位版的操作系统,360的解压缩。
后来改下载portaudio_v18_1.zip 那个老版本的,才发现里面有代码资源。
点击 \portaudio_v18_1\docs那个目录index.html看了起来,
没办法,我英文不好,网上又没中文的教程,好在那英文文档并不大,
PortAudio只是提供了一个接口,对底层实现进行了封装,对不同的平台选用不同的实现。
PortAudio在windows平台中有三种实现,我选择DirectSound API. 实现,呵呵,真够贱的!
把pa_win_ds目录中的文件复制到pa_common目录中,
找到pa_tests目录中的patest_saw.c文件,它例子当中最简单的一个,用于测试环境。
把pa_common目录中的几个文件连同patest_saw.c文件一同拷贝进项目中,
那项目是我用vc9创建的空项目,接下来应该是设置编译环境了,我准备让PortAudio库依赖DX嘛,
所以在项目属性页,c/c++ ,附加包含目录 "D:\Microsoft DirectX SDK (June 2010)\Include"
以前装了DX SDK的,不过后来又重装了系统,所以有必要设置它的搜索目录,
再来设置链接器的附加库目录"D:\Microsoft DirectX SDK (June 2010)\Lib\x86"
千万别设置成x64位的,否则编译器会给你整一小版---无法解析的外部符号,我试过的。
再下来就设置链接器->输入->附加依赖项 dsound.lib winmm.lib
我也不知道为什么会要winmm.lib,文档上说是要,我不要它就通不过编译,所以,就这样了。
不必设置bin目录了,生成解决方案,运行,然后就会发现音响中发出的那刺耳又难听的声音是如此动听,
到此PortAudio库的使用环境搭建完毕,接下来该是看例子学习怎么使用它了。
上面提到的我拷贝进项目的那些文件,其实没必要管它是什么东东的,封装嘛,就是为了易于使用,
去纠缠那些细节,我还不如去学DirectShow,去学习openAL,不过portaudio.h这个接口文件除外。
先写到这儿,这库具体怎么用,以及怎么在qt creator中使用,有机会再写,
日记是记录成长足迹的嘛,不是凭空想像写还没发生的科幻小说的,是吧?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章