﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Cpper-随笔分类-数学建模</title><link>http://www.cppblog.com/gaimor/category/16276.html</link><description>业余CPP专家</description><language>zh-cn</language><lastBuildDate>Tue, 26 Nov 2013 12:03:28 GMT</lastBuildDate><pubDate>Tue, 26 Nov 2013 12:03:28 GMT</pubDate><ttl>60</ttl><item><title>GAudio介绍</title><link>http://www.cppblog.com/gaimor/archive/2013/11/26/204465.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Tue, 26 Nov 2013 11:53:00 GMT</pubDate><guid>http://www.cppblog.com/gaimor/archive/2013/11/26/204465.html</guid><wfw:comment>http://www.cppblog.com/gaimor/comments/204465.html</wfw:comment><comments>http://www.cppblog.com/gaimor/archive/2013/11/26/204465.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/gaimor/comments/commentRss/204465.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gaimor/services/trackbacks/204465.html</trackback:ping><description><![CDATA[gaudio是一个基于C/C++混合编程的跨平台音频库,当前支持windows32/64操作系统和linux32位操作系统<br /><br />当前性能:<br />1.最大支持音源同时播放的格式-8<br />2.单音源最大挂载的音效个数-8<br />3.全局最大可挂载的音效个数-8<br />4.当前支持语言C/C++/C#<br />5.当前支持的OS Win32/Win64/Linux32<br />6. 当前支持的音效-Fade in,Fade Out,Bassboost,Speed Changer,Echo,3D Effect,  Doppler, Phaser, Channel Merget, Channel Swap,&nbsp; Fft, Distortion,  Foldback Distortion, Modulator, AutoWah 等<br />7.当前支持的解码格式 - WAV, AU, AIFF, OGG, MOD,IT,XM,S3M,WV,MPC,WV,TTA,MP3,MIDI,FLAC<br />8.支持的编码格式 - WAV,AU,AIFF,OGG,MP2,MP3,FLAC,AAC,WV,VOC,CAF<br />9.支持的音频加载模式 - 文件加载，内存加载，虚拟文件加载<br />10.支持PAN,环绕音,全音量，音源音量设置<br /><br />下一步计划:<br />1.DEPHI绑定<br />2.MAC OS支持<br />3.Flanger,Chorus音效<br />4.TAK,AAC格式<br />5.故障处理 <br /><br />远景:<br />1.支持所有平台和手持设备<br />2.支持常见的所有音频格式<br />3.支持常见的所有音效<br />4.提高最易用最方便的API接口<br /><br />一个使用的小例子:<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">/*</span><span style="color: #008000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;GAudio&nbsp;2.1.0.1,&nbsp;(C)2013&nbsp;by&nbsp;Eric&nbsp;Du(E)<br />&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;program&nbsp;is&nbsp;a&nbsp;part&nbsp;of&nbsp;the&nbsp;GAudio&nbsp;SDK.<br />&nbsp;&nbsp;&nbsp;&nbsp;Use&nbsp;GAudio's&nbsp;echo&nbsp;effect<br /></span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdlib.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">conio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">gaudio.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;argc,</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;argv[])<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">echo&nbsp;created&nbsp;by&nbsp;D.Eric\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /><br /></span><span style="color: #0000FF; ">#if</span><span style="color: #000000; ">(defined(WIN32)&nbsp;||&nbsp;defined(WIN64))</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;gaudio_init(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">addons</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">#else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;gaudio_init(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/usr/local/lib/gaudio/</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">#endif</span><span style="color: #000000; "><br /></span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;filename&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">..\\media\\hurnscald.ogg</span><span style="color: #000000; ">"</span><span style="color: #000000;">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;gsource</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;source&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;gaudio_source_create_from_file(filename,FALSE);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(source&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;NULL)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">load&nbsp;file:%s&nbsp;error!\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,filename);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">bad&nbsp;source.\nerror&nbsp;code:%d.\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,gaudio_error_get());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gaudio_deinit();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;gaudio_source_set_int32(source,AUDIO_ENUM_LOOP,FALSE);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">play&nbsp;filename:%s\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,filename);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;geffect</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;effect&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;gaudio_effect_create(AUDIO_EFFECT_ECHO,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">effect)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">not&nbsp;support&nbsp;echo&nbsp;effect\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gaudio_source_destroy(source);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gaudio_deinit();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;gaudio_effect_set_float(effect,AUDIO_EFFECT_ECHO_DELAY,</span><span style="color: #000000; ">1.0f</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;gaudio_effect_set_float(effect,AUDIO_EFFECT_ECHO_DECAY,</span><span style="color: #000000; ">0.6f</span><span style="color: #000000; ">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;gaudio_effect_bind(effect,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;gaudio_source_play(source,FALSE);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">\nplaying,&nbsp;press&nbsp;any&nbsp;key&nbsp;to&nbsp;quit.\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;getch();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;gaudio_effect_unbind(effect);<br />&nbsp;&nbsp;&nbsp;&nbsp;gaudio_effect_destroy(effect);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;gaudio_source_stop(source);<br />&nbsp;&nbsp;&nbsp;&nbsp;gaudio_source_destroy(source);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;gaudio_deinit();<br />&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">PAUSE</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;EXIT_SUCCESS;<br />}<br /></span></div><br />这个代表了我当前对音频这块的了解程度<br />下载在这里:<a href="www.geek-audio.org/download/zip/gaudio2.1.0.8.zip">download</a><br />欢迎提意见啊.<img src ="http://www.cppblog.com/gaimor/aggbug/204465.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gaimor/" target="_blank">ccsdu2009</a> 2013-11-26 19:53 <a href="http://www.cppblog.com/gaimor/archive/2013/11/26/204465.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>