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


摘自:http://hi.baidu.com/vpipjntmllbiquq/item/7965d152b4ee863695eb05b2
tag:C,PortAudio,ASIO,音频播放

        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
Win32环境PortAudio库编译简介:音频播放_第1张图片

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

你可能感兴趣的:(Win32环境PortAudio库编译简介:音频播放)