• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Cpper
            C/C++高級工程師 Android高級軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿

            蓋莫音頻引擎1.4.2發布
            1.支持平臺win7,xp,vista
            2.支持語言c++
            3.支持編譯器vc6.0,vc7.1,vc8,vc9,devc++,codeblock
            4.支持音頻格式flac,aiff,wav,it,mod,s3m,xm,ogg,mp3
            5.播放模式:多線程流式播放
            6.使用多線程處理音頻錄入

            蓋莫音頻引擎系列的最大特點:簡單易用

            可能問題:
            1.為啥不支持各種音效?
               當前為alpha版本,betha版會加入的
            2.是否支持xbox,iphone?
               當前不支持.不過后者在考慮之列
            3.為啥不支持midi?
               以后會支持的
            4.是否支持Python等語言?
               以后會支持的  
            5.是否支持播放壓縮包中的音頻?
               下一版本會的(播放內存音頻)
            6.業余使用是否收費?
               不收費,只需要告訴一聲即可
            7.商業使用是否收費?
               需要一點維護費
            8.音頻這塊比較簡單,自行設計一個豈不更好?
               自行設計成本遠高于使用本引擎
            0.弄這個多久了?
               3年吧
            10.使用的時候為啥跑出來一個log文件?
               不出來才奇怪
            11.當前版本功能是否達到游戲開發要求
               一般游戲足以
            12.非游戲開發領域是否可以使用?
               當前可以
            13.去那里下載?
               下面的鏈接地址
            14.其他問題請發郵件到:ccsdu2004@yahoo.com.cn咨詢

            下載鏈接:
            1.vc版本 可使用編譯器vc6.0,vc7.1,vc8,vc9:
               http://www.pudn.com/downloads258/sourcecode/game/detail1192191.html
               http://download.csdn.net/source/2403577
            2.gcc版本 可使用編譯器devc++,codeblock
               http://www.pudn.com/downloads258/sourcecode/multimedia/audio/detail1192125.html   
               http://ccsdu2004.download.csdn.net/

               http://download.csdn.net/source/2403658



            頭文件全文如下:

            //! 蓋莫游戲3d音頻引擎是成都蓋莫軟件技術工作室推出的一款專門
            //! 面向游戲開發的音頻庫,該庫具有使用簡介,功能強大的功能
            //! 本音頻庫使用于非商業產品不收取任何費用
            //! websize:www.gaimo.net
            //! email:ccsdu2004@yahoo.com.cn
            //! telephone:+86-028-67607663,
            //! fax:      +86-028-67607665
            //! 版本更新list.
            /*
            !==========================================================================
             *  2010.01.22 版本:1.0.0
             *     提供功能:支持wav,ogg,mp3格式
             *              使用多線程流式播放
             *              簡單易用的程序接口 
             *     使用本版本需要安裝OpenAL驅動     
             ***************************************************************************
            */
            /*!==========================================================================
             *  2010.03.20 版本:1.1.0
             *     提供功能:真3d音效,及幾個音效 
             *     使用本版本需要安裝OpenAL驅動     
             ***************************************************************************
            */
             
            /*!==========================================================================
             *  2010.05.05 版本:1.2.8
             *     增加功能:支持音頻錄入到文件(當前僅為wav格式) 
             *     增加了對:it,s3m,xm,mod4種音樂文件的支持
             *     修改了幾個接口
             *     使用本版本需要安裝OpenAL驅動     
             ***************************************************************************
            */
             
            /*!==========================================================================
             * 1.4.2 alpha版本修改說明(本發布版本) 
             *     1.平臺支持:xp,vista,win7
             *     2.編譯器支持vc6,vc7,vc9,codeblock,devc++
             *     3.提供pdf說明文檔一份
             *     4.增加對aiff,flac,midi音頻格式的支持
             *     5.改用多線程錄入音頻 
             ***************************************************************************
            */
             
            /*!==========================================================================
             * 1.5.0版本展望
             *     1.語種方面:考慮對C#,Python,Lua,易語言的綁定
             *     2.平臺方面:考慮對Linux的支持
             *     3.支持播放內存音頻
             *     4.音效方面(支持音效待定)
             *     5.音頻格式增加對APE,WMA的支持
             ***************************************************************************
            */ 
             
            /*!==========================================================================
             * 蓋莫音頻引擎發展方向
             *     1.對多平臺的支持(含mac,xbox,unix)
             *     2.對多語言的支持(C#,Python,Dephi,易語言,)
             *     3.脫離OpenAL音頻接口
             *     4.全方位的音效支持
             ***************************************************************************
            */ 
             
            /*!==========================================================================
             * 蓋莫音頻引擎設計的原則和宗旨
             *     1.針對游戲開發,在保持使用極其方便的基礎之上滿足游戲音頻的各類需要
             ***************************************************************************
            */  
            #ifndef GAIMO_AUDIODEVICE_HPP
            #define GAIMO_AUDIODEVICE_HPP

            ////////////////////////////////////////////////////////////
            /// 頭文件包含
            ////////////////////////////////////////////////////////////
            #include <string>

            #ifdef G_ENGINE
              
            #error 蓋莫游戲引擎內置蓋莫音頻引擎! 
            #endif 

            #if defined(_WIN32) || (defined(__WIN32__)) || defined(WIN32) 
               
            #define G_WIN32  
            #endif  

            #ifndef __cplusplus
                
            #error 請使用c++編譯器
            #endif

            #ifndef G_CALL
            #  ifdef G_WIN32
            #    define G_CALL __stdcall
            #  
            else
            #    define G_CALL __stdcall
            #  endif
            #endif

            #if !defined(G_DLL_API) && defined(G_WIN32)
                
            #if defined(BUILDING_DLL)
                    
            #define G_DLL_API __declspec(dllexport)
                
            #else
                    
            #define G_DLL_API __declspec(dllimport)
                
            #endif
            #endif 

            #define G_FUNC(ret) extern "C" G_DLL_API ret 

            #ifndef NULL
            #define NULL 0
            #endif 

            typedef unsigned 
            char  uchar8;
            typedef unsigned 
            int   uint;
            typedef unsigned 
            char  uint8;
            typedef signed   
            short int16;
            typedef unsigned 
            short uint16;
            typedef signed   
            int   int32; 
            typedef std::
            string    engine_string; 

            namespace core 
            {
                      
            ////////////////////////////////////////////////////////
            /// 定義引擎引用計數類
            ////////////////////////////////////////////////////////     
            class RefCount
            {
            public:
                
            ////////////////////////////////////////////////////////////
                
            /// 引用計數構造函數
                
            ////////////////////////////////////////////////////////////
                RefCount(): refcnt(1),auto_del(true){}

                
            ////////////////////////////////////////////////////////////
                
            /// 引用計數析構函數
                
            ////////////////////////////////////////////////////////////
                virtual ~RefCount(){}
                
                
            ////////////////////////////////////////////////////////////
                
            /// 使用自刪除機制
                
            ////////////////////////////////////////////////////////////    
                void SetAutoDel(bool able = true){auto_del = able;}
                
                
            ////////////////////////////////////////////////////////////
                
            /// 檢測是否為自刪除機制
                
            ////////////////////////////////////////////////////////////
                const bool GetAutoDel()const{return auto_del;}
                
                
            ////////////////////////////////////////////////////////////
                
            /// 增加對象引用計數
                
            ////////////////////////////////////////////////////////////
                void Grab()const{++refcnt;}; 
             
                
            ////////////////////////////////////////////////////////////
                
            /// 減少對象引用計數
                
            ////////////////////////////////////////////////////////////
                bool Drop() const
                {
                    
            --refcnt;
                    
            if (refcnt == 0 && auto_del == true)
                    {
                        delete 
            this;
                        
            return true;
                    }
                    
            return false;
                }

                
            ////////////////////////////////////////////////////////////
                
            /// 獲取引用計數
                
            ////////////////////////////////////////////////////////////
                int GetRefCnt()const{return refcnt;}; 
             
            private:
                mutable 
            int  refcnt;
                
            bool    auto_del; 
            };

            ////////////////////////////////////////////////////////
            /// 模板RefPtr用于基于計數的對象管理
            /// 所有對象都必須要從RefCount繼承之
            ////////////////////////////////////////////////////////
            template<class T>
            class RefPtr
            {
            public:
                RefPtr(T
            * object = NULL)
                {   
                    
            this->object = object;
                    
            if(this->object)
                       
            object->Grab();
                }
                
                RefPtr(
            const RefPtr<T>& other)
                {
                    
            object = NULL;
                    
            *this = other;
                }
                
                
            ~RefPtr() 
                {
                    
            if(object)
                       
            object->Drop();
                    
            object = NULL;
                }
             
                RefPtr
            <T>& operator=(const RefPtr<T>& other)
                {
                    
            if (other)
                       other
            ->Grab();
                    
            if (object)
                       
            object->Drop();
                    
            object = other.get();
                    
            return *this;
                }
                
                RefPtr
            & operator=(T* other)
                {
                    
            if (other)
                        other
            ->Grab(); 
                     
            if (object)
                        
            object->Drop();
                    
            object = other;
                    
            return *this;
                }
                
                
            void swap(RefPtr<T>& other)
                {
                    T
            * tmp = other.get();
                    other 
            = object
                    
            object = tmp;
                }
                
                
            void reset(T* other){*this = other;}
                T
            * get() const {return object;}
                T
            * operator->() const{return object;}
                T
            & operator*() const{return *object;}
                
            bool operator<(const RefPtr<T>& other)const{return object < other.get();}
                
            operator bool() const {return object != NULL;}
            protected:
                T
            *   object;
            };

            /////////////////////////////////////////////////////////
            //! 枚舉音頻文件格式
            /////////////////////////////////////////////////////////
            enum AUDIO_FILE_TYPE
            {   
                
            //! WAV音頻格式
                AUDIO_FILE_TYPE_WAV = 0,  //! 支持
                
            //! OGG音頻格式
                AUDIO_FILE_TYPE_OGG,      //! 支持
                
            //! MP3音頻格式
                AUDIO_FILE_TYPE_MP3,      //! 支持
                
            //! XM,IT,MOD,S3M格式
                AUDIO_FILE_TYPE_XM,       //! 支持
                AUDIO_FILE_TYPE_IT,       //! 支持
                AUDIO_FILE_TYPE_MOD,      //! 支持
                AUDIO_FILE_TYPE_S3M,      //! 支持
                
            //! AU格式
                AUDIO_FILE_TYPE_AU,       
                
            //! AIFF格式 
                AUDIO_FILE_TYPE_AIFF,     //! 支持
                
            //! 微軟WMA格式
                AUDIO_FILE_TYPE_WMA,       
                
            //! APE壓縮格式
                AUDIO_FILE_TYPE_APE, 
                
            //! MIDI音樂格式
                AUDIO_FILE_TYPE_MIDI,
                
            //! FLAC音頻格式
                AUDIO_FILE_TYPE_FLAC,     //! 支持
                
            //! 空的音頻格式
                AUDIO_FILE_TYPE_NULL
            };

            ////////////////////////////////////////////////////////////
            /// 枚舉音頻音效距離模型
            ////////////////////////////////////////////////////////////    
            enum AUDIO_DISTANCE_MODE
            {
                AUDIO_DISTANCE_MODEL 
            = 0,
                AUDIO_INVERSE_DISTANCE,
                AUDIO_INVERSE_DISTANCE_CLAMPED,
                AUDIO_LINEAR_DISTANCE,
                AUDIO_LINEAR_DISTANCE_CLAMPED,
                AUDIO_EXPONENT_DISTANCE,
                AUDIO_EXPONENT_DISTANCE_CLAMPED,
                AUDIO_DISTANCE_MODE_NULL
            };    

            /////////////////////////////////////////////////////////
            //! 枚舉音效類型
            /////////////////////////////////////////////////////////
            enum AUDIO_EFFECT_TYPE  
            {
                AUDIO_EFFECT_TYPE_REVERB 
            = 0,    
                AUDIO_EFFECT_TYPE_EFXREVERB,
                AUDIO_EFFECT_TYPE_CHORUS,
                AUDIO_EFFECT_TYPE_DISTORTION,
                AUDIO_EFFECT_TYPE_ECHO,
                AUDIO_EFFECT_TYPE_FLANGER,
                AUDIO_EFFECT_TYPE_FREQUENCY_SHIFTER,
                AUDIO_EFFECT_TYPE_VOCAL_MORPHER,
                AUDIO_EFFECT_TYPE_PITCH_SHIFTER,
                AUDIO_EFFECT_TYPE_RING_MODULATOR,
                AUDIO_EFFECT_TYPE_AUTOWAH,
                AUDIO_EFFECT_TYPE_COMPRESSOR,
                AUDIO_EFFECT_TYPE_EQUALIZER,
                AUDIO_EFFECT_TYPE_COUNT,
                AUDIO_EFFECT_TYPE_NULL
            };

            /////////////////////////////////////////////////////////
            //! 枚舉音頻過濾器類型
            /////////////////////////////////////////////////////////
            enum AUDIO_FILTER_TYPE 
            {
                AUDIO_FILTER_TYPE_LOWPASS,
                AUDIO_FILTER_TYPE_HIGHPASS,
                AUDIO_FILTER_TYPE_BANDPASS,
                AUDIO_FILTER_TYPE_COUNT,
                AUDIO_FILTER_TYPE_NULL
            };

            //! 定義默認空間音速
            const float AUDIO_SPACE_VELOCITY = 343.0f;

            //! 定義默認多普勒因子
            const float AUDIO_DOPPLER_FACTOR = 1.0f;

            /////////////////////////////////////////////////////////
            /// 定義音頻對象基類
            /////////////////////////////////////////////////////////
            class AudioObject : public RefCount
            {
            public
                
            /////////////////////////////////////////////////////
                //! 設置,獲取音頻對象位置
                /////////////////////////////////////////////////////
                virtual void SetPosition(float x,float y,float z) = 0;
                
            virtual void GetPosition(float &x,float &y,float &z) = 0
                
                
            /////////////////////////////////////////////////////
                //! 設置,獲取音頻對象方向
                /////////////////////////////////////////////////////
                virtual void SetDirection(float dirx,float diry,float dirz) = 0;
                
            virtual void GetDirection(float &dirx,float &diry,float &dirz) = 0
             
                
            /////////////////////////////////////////////////////
                //! 設置,獲取音頻對象速度
                /////////////////////////////////////////////////////
                virtual void SetVelocity(float velx,float vely,float velz) = 0;
                
            virtual void GetVelocity(float &velx,float &vely,float &velz) = 0;

                
            ////////////////////////////////////////////////////
                //! 移動音頻對象(相對于上次的位置的偏移量)
                ////////////////////////////////////////////////////       
                virtual void Move(float offsetx,float offsety,float offsetz) = 0;       
            };

            /////////////////////////////////////////////////////////
            /// 定義音頻過濾器基類
            /////////////////////////////////////////////////////////
            class AudioFilter : public RefCount
            {
            public:
                
            ////////////////////////////////////////////////////////
                //! 設置,獲取音頻過濾器音量[0,1]
                //////////////////////////////////////////////////////// 
                virtual bool  SetVolume(const float& volume) = 0;
                
            virtual float GetVolume()const = 0;

                
            ////////////////////////////////////////////////////////
                //! 設置,獲取低頻音量
                //////////////////////////////////////////////////////// 
                virtual bool  SetLowVolume(const float &volume) = 0;
                
            virtual float GetLowVolume()const = 0;
                
                
            ////////////////////////////////////////////////////////
                //! 設置,獲取高頻頻音量
                //////////////////////////////////////////////////////// 
                virtual bool  SetHighVolume(const float &volume) = 0;
                
            virtual float GetHighVolume() const = 0;    
                    
                
            ////////////////////////////////////////////////////////
                //! 檢測過濾器是否合法
                ////////////////////////////////////////////////////////
                virtual bool IsValid() const = 0;
            };

            /////////////////////////////////////////////////////////
            /// 定義音頻聽者基類
            /////////////////////////////////////////////////////////
            class AudioListener : public AudioObject
            {
            public:
                
            /////////////////////////////////////////////////////
                //! 設置,獲取全局音量(0.0f,1.0f)
                /////////////////////////////////////////////////////        
                virtual void  SetGlobalVolume(float volume) = 0
                
            virtual float GetGlobalVolume()const = 0;     
            };

            ////////////////////////////////////////////////////////
            //! 定義蓋莫音頻引擎音源類
            ////////////////////////////////////////////////////////
            class AudioSource : public AudioObject
            {
            public:
                
            ////////////////////////////////////////////////////
                //! 播放指定音頻文件(2D模式)
                ////////////////////////////////////////////////////
                virtual bool Play(const engine_string& audiofile,bool loop = false= 0
                
                
            ////////////////////////////////////////////////////
                //! 播放指定音頻文件(3D模式)(參數:音頻文件名字,是否循環播放,音頻穿透能力,最小音距,最小音距)
                ////////////////////////////////////////////////////
                virtual bool Play(const engine_string& audiofile,bool loop,float mindist,float maxdist,float strength = 0.3f= 0;    

                
            ////////////////////////////////////////////////////
                //! 停止,暫停播放音頻
                ////////////////////////////////////////////////////
                virtual bool Stop() = 0;
                
            virtual bool Pause() = 0;

                
            ///////////////////////////////////////////////////
                //! 檢測音源狀態函數 
                ///////////////////////////////////////////////////
                virtual bool IsPlay()const = 0;
                
            virtual bool IsPause()const = 0;
                
            virtual bool IsStop()const = 0
                
                
            ///////////////////////////////////////////////////
                //! 設置,獲取音頻增益[0.0f,1.0f]
                ///////////////////////////////////////////////////
                virtual void  SetVolume(float gain) = 0;
                
            virtual float GetVolume()const = 0;  
                
            virtual void  SetMaxVolume(float gain) = 0;
                
            virtual float GetMinVolume()const = 0;
                
            virtual void  SetMinVolume(float gain) = 0;
                
            virtual float GetMaxVolume()const = 0;    

                
            ///////////////////////////////////////////////////
                
            /// 設置,獲取音源最大,最小傳播距離(僅對3D播放有效)
                
            ///////////////////////////////////////////////////
                virtual void SetMaxDistance(float distance) = 0;
                
            virtual void GetMaxDistance(float &distance)= 0;
                
            virtual void SetMinDistance(float distance) = 0;
                
            virtual void GetMinDistance(float &distance)= 0;
                
                
            ///////////////////////////////////////////////////
                
            /// 設置,獲取音源錐(內錐,外錐,外增益)(僅對3D播放有效)
                
            ///////////////////////////////////////////////////
                virtual void SetAudioCone(float innerangle,float outerangle,float outergain) = 0;
                
            virtual void GetAudioCone(float &innerangle,float &outerangle,float &outergain) = 0;  
            };

            //////////////////////////////////////////////////////
            /// 定義音頻錄入類接口
            //////////////////////////////////////////////////////
            class AudioCapture : public RefCount
            {
            public:
                
            //////////////////////////////////////////////////
                //! 捕獲,停止捕獲音頻數據 
                //////////////////////////////////////////////////
                virtual void CaptureAudio() = 0;    
                
            virtual void CaptureStop() = 0;    
            };

            //////////////////////////////////////////////////////
            //! 定義音頻設備基類
            //////////////////////////////////////////////////////
            class AudioDevice : public RefCount 
            {
            public:      
                
            /////////////////////////////////////////////////
                //! 獲取音頻引擎版本號
                /////////////////////////////////////////////////
                virtual engine_string GetVerson() const = 0;

                
            /////////////////////////////////////////////////
                //! 獲取音頻引擎作者
                /////////////////////////////////////////////////
                virtual engine_string GetMaker() const = 0;

                
            /////////////////////////////////////////////////
                //! 查詢音頻設備是否支持指定格式的音頻文件
                /////////////////////////////////////////////////
                virtual bool IsSupport(const AUDIO_FILE_TYPE& type)const = 0;

                
            /////////////////////////////////////////////////
                //! 抓取音頻音源指針(最大可獲取255個音源)
                /////////////////////////////////////////////////
                virtual RefPtr<AudioSource>  GetAudioSource()const = 0;

                
            /////////////////////////////////////////////////
                //! 獲取聽者指針(全局唯一)(參數:位置)
                /////////////////////////////////////////////////
                virtual RefPtr<AudioListener> GetAudioListener(float x,float y,float z)= 0
                
                
            /////////////////////////////////////////////////
                //! 獲取音頻捕獲設備指針(參數為音頻名字)(當前僅僅支持wav格式)(全局唯一) 
                /////////////////////////////////////////////////
                virtual RefPtr<AudioCapture> GetAudioCapture(const engine_string& name = "capture")const = 0;     

                
            /////////////////////////////////////////////////
                //! 設置,獲取音效作用單位
                /////////////////////////////////////////////////
                virtual void  SetMetersPerUnit(float meters) = 0;
                
            virtual float GetMetersPerUnit(voidconst = 0;  

                
            /////////////////////////////////////////////////
                //! 獲取同時支持的音頻源最大音效個數
                /////////////////////////////////////////////////
                virtual int   GetMaxEffectMuber()const = 0
                
                
            /////////////////////////////////////////////////
                //! 設置多普勒參數(默認為1.0f,343.3)
                /////////////////////////////////////////////////
                virtual void  SetDoppler(float factor,float vel) = 0;

                
            /////////////////////////////////////////////////
                //! 設置音頻世界距離模型
                /////////////////////////////////////////////////
                virtual void  SetDistanceModel(const AUDIO_DISTANCE_MODE &model) = 0;
            };

            /////////////////////////////////////////////////////
            //! 初始化蓋莫音頻設備并返回音頻設備指針(初始化失敗則返回NULL)
            /////////////////////////////////////////////////////
            G_FUNC(AudioDevice*) InitAudioDevice();

            /////////////////////////////////////////////////////
            //! 卸載蓋莫音頻設備(釋放相關資源)
            /////////////////////////////////////////////////////
            G_FUNC(void)         TerminateAudioDevice();

            }

            #endif
            //! maker:ccsdu2004

            附帶4個小demo如下:
            1.
            /*!==========================================================================
             *
             *  蓋莫游戲引擎(GaiMo Game Engine)
             *
             *  版權所有 (C) 2009-2009 成都蓋莫軟件技術工作室 保留所有權利
             *  Copyright (C) 成都蓋莫軟件技術工作室.  All Rights Reserved.
             *
             *  了解更多情況,請訪問 
            http://www.gaimo.net
             ***************************************************************************
            */
            #include 
            <iostream>
            #include 
            <conio.h>
            #include 
            <stdio.h>
            #include 
            <stdlib.h>
            #include 
            <AudioDevice.hpp>

            int main()
            {
                std::cout
            <<"歡迎使用蓋莫音頻引擎!"<<std::endl;
                
            //! 初始化設備并獲取音頻設備指針
                core::AudioDevice *device = core::InitAudioDevice();

                
            //! 獲取音源指針
                core::RefPtr<core::AudioSource> source = device->GetAudioSource();

                
            //! 播放給定音頻文件
                std::cout<<"play:"<<source->Play("..\\audio//愛笑的眼睛.aif",true)<<std::endl;

                
            while(getche() != 'q');

                core::TerminateAudioDevice();
                system(
            "pause");

                
            return EXIT_SUCCESS;
            }


            2.
            /*!==========================================================================
             *
             *  蓋莫游戲引擎(GaiMo Game Engine)
             *
             *  版權所有 (C) 2009-2009 成都蓋莫軟件技術工作室 保留所有權利
             *  Copyright (C) 成都蓋莫軟件技術工作室.  All Rights Reserved.
             *
             *  了解更多情況,請訪問 
            http://www.gaimo.net
             ***************************************************************************
            */
            #include 
            <AudioDevice.hpp>
            #include 
            <conio.h>
            #include 
            <cmath>
            #include 
            <iostream>
            #include 
            <stdio.h>
            #include 
            <stdlib.h>

            #define MAX_DST 10
            #define MAX_POS 20

            int main()
            {
                std::cout
            <<"歡迎使用蓋莫音頻引擎!"<<std::endl;
                core::AudioDevice 
            *device = core::InitAudioDevice();    ;

                
            //! 獲取一個音源
                core::RefPtr<core::AudioSource> source = device->GetAudioSource();

                std::cout
            <<"play:"<<source->Play("..\\audio//主題.wav",true,0,MAX_DST)<<std::endl;

                
            float itr = 0;
                
            while(1)
                {
                    
            float x = MAX_POS * cosf(itr);
                    
            float z = MAX_POS * cosf(itr);
                    source
            ->Move(x,0,z);
                    itr
            += 0.0001*0.017453293f;
                }

                core::TerminateAudioDevice();
                system(
            "pause");

                
            return EXIT_SUCCESS;
            }



            3.
            #include <AudioDevice.hpp>
            #include 
            <iostream>
            #include 
            <conio.h>
            #include 
            <windows.h>

            #define CAPTURE_TIME 30000

            int main()
            {
                std::cout
            <<"歡迎使用蓋莫音頻引擎!"<<std::endl; 
                
            //! 初始化設備并獲取音頻設備指針
                core::AudioDevice *device = core::InitAudioDevice();
                
                
            //! 獲取音源指針
                core::RefPtr<core::AudioSource> source = device->GetAudioSource();
                
                
            //! 獲取音頻捕獲指針
                core::RefPtr<core::AudioCapture> capture = device->GetAudioCapture("capture");

                
            //! 播放給定音頻文件 
                std::cout<<"play:"<<source->Play("..\\audio//glance.xm",true)<<std::endl;  

                capture
            ->CaptureAudio();
                
                unsigned 
            long time = timeGetTime(); 
                
            while(1)
                {
                    
            if(timeGetTime() - time >  CAPTURE_TIME)
                       
            break;
                }

                capture
            ->CaptureStop();
                
                core::TerminateAudioDevice();

                
            return 1;
            }


            4.
            /*!==========================================================================
             *
             *  蓋莫游戲引擎(GaiMo Game Engine)
             *
             *  版權所有 (C) 2009-2009 成都蓋莫軟件技術工作室 保留所有權利
             *  Copyright (C) 成都蓋莫軟件技術工作室.  All Rights Reserved.
             *
             *  了解更多情況,請訪問 
            http://www.gaimo.net
             ***************************************************************************
            */
            #include 
            <iostream>
            #include 
            <conio.h>
            #include 
            <AudioDevice.hpp>

            char* mp3  = "..\\audio//DarinPeerless.mp3";
            char* ogg  = "..\\audio//GetOut.ogg";
            char* xm   = "..\\audio//Azure.xm";
            char* s3m  = "..\\audio//Friday.s3m";
            char* mod  = "..\\audio//Gimme the beat boys.mod";
            char* aiff = "..\\audio//愛笑的眼睛.aif";
            char* flac = "..\\audio//duck.flac";
            short flag = 0;

            int main()
            {    
                std::cout
            <<"歡迎使用蓋莫音頻引擎!"<<std::endl; 
                
            //! 初始化設備并獲取音頻設備指針
                core::AudioDevice *device = core::InitAudioDevice();
                
                std::cout
            <<"按鍵0播放mp3"<<std::endl;
                std::cout
            <<"按鍵1播放ogg"<<std::endl;
                std::cout
            <<"按鍵2播放xm"<<std::endl;
                std::cout
            <<"按鍵3播放s3m"<<std::endl;
                std::cout
            <<"按鍵4播放mod"<<std::endl;
                std::cout
            <<"按鍵5播放aiff"<<std::endl;
                std::cout
            <<"按鍵6播放flac"<<std::endl;
                std::cin 
            >> flag;
                std::cout 
            << std::endl;
                
                
            //! 獲取音源指針
                core::RefPtr<core::AudioSource> source = device->GetAudioSource();
                source
            ->SetVolume(1.0f);
                
                
            //! 播放給定音頻文件 
                if(flag == 0)
                    std::cout
            <<"play:"<<source->Play(mp3,true)<<std::endl;  
                
            else if(flag == 1)
                    std::cout
            <<"play:"<<source->Play(ogg,true)<<std::endl; 
                
            else if(flag == 2)
                    std::cout
            <<"play:"<<source->Play(xm,true)<<std::endl;
                
            else if(flag == 3)
                    std::cout
            <<"play:"<<source->Play(s3m,true)<<std::endl;
                
            else if(flag == 4)
                    std::cout
            <<"play:"<<source->Play(mod,true)<<std::endl;
                
            else if(flag == 5)
                    std::cout
            <<"play:"<<source->Play(aiff,true)<<std::endl;
                
            else if(flag == 6)
                    std::cout
            <<"play:"<<source->Play(flac,true)<<std::endl;
                
            while(getche() != 'q');
                
                core::TerminateAudioDevice();
                system(
            "pause");
                 
                
            return EXIT_SUCCESS;
            }


            ..................................................................................................................................................................................................................................
            posted on 2010-05-28 17:36 ccsdu2009 閱讀(1524) 評論(4)  編輯 收藏 引用 所屬分類: Game引擎
            Comments
            • # re: 蓋莫音頻引擎1.4.2(alpha)來了
              f
              Posted @ 2010-05-31 16:00
              網上用的最多的是和H.264配合的Advanced Audio Coding音頻格式,youku上面都是那種格式,這里卻沒有支持到,不能不說是一種遺憾。  回復  更多評論   
            • # re: 蓋莫音頻引擎1.4.2(alpha)來了
              ccsdu2009
              Posted @ 2010-05-31 16:14
              @f
              aac格式?
              acc和ape,mid以后肯定都會支持的
              這些只是解碼問題  回復  更多評論   
            • # re: 蓋莫音頻引擎1.4.2(alpha)來了
              小時候可靚了
              Posted @ 2010-06-01 14:20
              你這搞得有點多哇!  回復  更多評論   
            • # re: 蓋莫音頻引擎1.4.2(alpha)來了
              ccsdu2009
              Posted @ 2010-06-01 14:40
              @小時候可靚了
              啥多啊?  回復  更多評論   
             
            精品久久久久久国产潘金莲| 精品久久久久久综合日本| 久久人人爽人人爽人人片av麻烦| 亚洲乱码中文字幕久久孕妇黑人| 国产成年无码久久久久毛片| 久久久久久国产a免费观看不卡| 久久精品亚洲AV久久久无码| 国产精品久久久久影院嫩草| 亚洲伊人久久综合影院| 精品久久久久久国产| 亚洲国产成人久久综合一区77| 精品无码久久久久国产| 久久国产精品无| 国产成人综合久久精品尤物| 欧美喷潮久久久XXXXx| 欧美性猛交xxxx免费看久久久| 99国产欧美精品久久久蜜芽 | 色综合久久中文字幕无码| 成人a毛片久久免费播放| 久久天天躁狠狠躁夜夜网站 | 日本久久久久亚洲中字幕| 国产无套内射久久久国产| 久久精品国产亚洲77777| 久久精品国产免费观看| 久久嫩草影院免费看夜色| 91性高湖久久久久| 久久国产免费观看精品| 久久777国产线看观看精品| 久久精品国产久精国产思思| 久久婷婷五月综合国产尤物app| 久久AAAA片一区二区| 久久国产成人亚洲精品影院| 日本免费久久久久久久网站| 97久久超碰国产精品2021| 久久99国产综合精品免费| 激情伊人五月天久久综合| 久久久亚洲欧洲日产国码aⅴ| 国产偷久久久精品专区| 亚洲欧洲精品成人久久奇米网| 三级片免费观看久久| 天堂无码久久综合东京热|