zyzx的小窝

C/C++,GUI,个人移动存储,zyzx_lsl@163.com

 

Win32环境PortAudio库编译简介:音频播放

tag:C,PortAudio,ASIO,音频播放
/* Create By zyzx
 * Created 2008-7-19
 * Modified 2008-07-20
*/

        PortAudio库简介:免费开源的跨平台音频播放库,支持Windows, Macintosh (8,9,X), Unix (OSS), SGI, and BeOS.等平台;
        PortAudio库完成从类似wav数据驱动声卡发音这个过程。如果要播放mp3等其他格式还需要先用相应的格式解码库,解码后转换成PortAudio库提供的格式。

如下是在Win32 + VS 环境下编译

一、 准备
     1、PortAudio开源库
        官方主页:http://www.portaudio.com/下载源码包

     2、依赖ASIO库:用于异步处理
        网址:http://www.steinberg.net/en/home.html
        下载:http://www.steinberg.net/en/company/3rd_party_developer.html

     3、依赖DirectX库:用于驱动声卡
         微软主页

二、步骤
      1、将ASIO库 拷贝到 portaudio、src\hostapi\asio\目录下 文件夹改名为ASIOSDK。
      2、安装DirectX库。
      3、用VS8.0 打开portaudio\build\msvc\portaudio.sln
      4、可选:

      官方说明:http://www.portaudio.com/trac/wiki/TutorialDir/Compile/Windows(参照设置)
             http://www.portaudio.com/trac/wiki/TutorialDir/Compile/WindowsASIOMSVC(参照检查文件)

       注:

           Finally, open the "pa_win_hostapis.c" file. Add the following:

           #define PA_NO_WMME

           #define PA_NO_DS

几句话,郁闷了我半天,总是在后面测试时通不过,总得到后面错误的结果。在Win32环境中是需要WMME和DS的。这两个define语句是不能加的,小小的惩罚,看文章要认真点哦。

三、Win32下音频编程过程
待续。。
四、测试
      打开Test/patest_saw.c添加到新的VS工程,编译运行。

某次运行的结果----纪念

如下图是错误的结果:原因是在"pa_win_hostapis.c"中加了#define PA_NO_WMME #define PA_NO_DS
ProtAudio-FirstTest.jpg


如下是正确的结果:(示例文件“patest_sine.c”,加了一小短代码)
ProtAudio-RightTest.jpg
终于听到了梦寐以求的“滴,滴,滴,滴。。。。”声音了。。。兴奋。。。

posted on 2009-04-27 17:15 zyzx 阅读(2953) 评论(0)  编辑 收藏 引用 所属分类: OpenSource开源


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

常用链接

搜索

最新评论

阅读排行榜

评论排行榜