青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Cpper
C/C++高級(jí)工程師 Android高級(jí)軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語(yǔ)言 程序猿

剛做完了蓋莫音頻引擎1.2.8的音頻錄入功能
這個(gè)比較簡(jiǎn)單
就是把聽(tīng)到的音頻保存為一定格式的音頻文件(當(dāng)前只設(shè)計(jì)了保存為wav文件)

接口很簡(jiǎn)單
如下:

////////////////////////////////////////////////////////////
/// 定義音頻錄入類接口
//////////////////////////////////////////////////////////// 
class AudioCapture : public Object  
{
public:
    
/////////////////////////////////////////////////////////
    //! 構(gòu)造,析構(gòu)音頻錄入 
    /////////////////////////////////////////////////////////       
    AudioCapture();
    
virtual ~AudioCapture();
    
    
/////////////////////////////////////////////////////////
    //! 捕獲,停止捕獲音頻數(shù)據(jù) 
    /////////////////////////////////////////////////////////     
    virtual void CaptureData() = 0;    
    
virtual void StopCapture() = 0;
    
       DECLARE_OBJECT(AudioCapture)       
};
只有2個(gè)函數(shù)
一個(gè)是音頻數(shù)據(jù)分批錄入
一個(gè)就是停止錄入音頻數(shù)據(jù)
那么該指針從哪里獲取呢?
當(dāng)然是AudioDevice了

如下(這是蓋莫音頻引擎的中樞)
/////////////////////////////////////////////////////////
//! 定義音頻設(shè)備基類
/////////////////////////////////////////////////////////
class AudioDevice : public Object 
{
public:
    
/////////////////////////////////////////////////////////
    //! 初始化,卸載音頻設(shè)備 
    /////////////////////////////////////////////////////////       
    virtual bool Init(const  engine_string &devicename,
                      uint16 eax_effect_num, 
                      
uint   output_freq) = 0
    
virtual bool Deinit() = 0;        
    
/////////////////////////////////////////////////////////
    //! 獲取音頻引擎版本號(hào)
    /////////////////////////////////////////////////////////
    virtual const char* GetVerson() const = 0;

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

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

    
/////////////////////////////////////////////////////////
    //! 抓取音頻音源指針(最大可獲取255個(gè)音源)
    /////////////////////////////////////////////////////////
    virtual AudioSource*  GetAudioSource() = 0;

    
/////////////////////////////////////////////////////////
    //! 獲取聽(tīng)者指針 
    /////////////////////////////////////////////////////////
    virtual AudioListener* GetAudioListener() = 0
    
    
/////////////////////////////////////////////////////////
    //! 獲取音頻捕獲設(shè)備指針(參數(shù)為音頻名字)(當(dāng)前僅僅支持wav格式)(全局唯一) 
    /////////////////////////////////////////////////////////     
    virtual RefPtr<AudioCapture> GetAudioCapture(const engine_string& name = "capture")const = 0;     
    
    
/////////////////////////////////////////////////////////
    //! 獲取音頻設(shè)備列表個(gè)數(shù) 
    /////////////////////////////////////////////////////////
    virtual uint16 GetAudioDeviceNumber() = 0;  
    
virtual engine_string GetDeviceByIndex(uint8 index) = 0;  
    
    
/////////////////////////////////////////////////////////
    //! 獲取默認(rèn)設(shè)備名 
    /////////////////////////////////////////////////////////    
    virtual engine_string GetDefaultDeviceName()const = 0;   
    
    DECLARE_OBJECT(AudioDevice)
};

那么如何使用蓋莫音頻引擎錄入音頻呢?
如下:
/*!==========================================================================
 *
 *  蓋莫游戲引擎(GaiMo Game Engine)
 *
 *  版權(quán)所有 (C) 2009-2009 成都蓋莫軟件技術(shù)工作室 保留所有權(quán)利
 *  Copyright (C) 成都蓋莫軟件技術(shù)工作室.  All Rights Reserved.
 *
 *  了解更多情況,請(qǐng)?jiān)L問(wèn) 
http://www.gaimo.net
 ***************************************************************************
*/
#include 
<GEngine/Gaimo.hpp>

//! 使用蓋莫游戲引擎內(nèi)核命名空間 
using namespace core;
using namespace std;
 
int Main()
{
    RefPtr
<Device> device = InitDevice("音頻捕獲");
    
//! 獲取音頻設(shè)備指針
    RefPtr<core::AudioDevice> audiodevice = device->GetAudioDevice();
    
//! 獲取音頻設(shè)備個(gè)數(shù)
    uint16 number = audiodevice->GetAudioDeviceNumber(); 
    
for(int i = 0; i < number ; i++
    {
        std::cout
<<audiodevice->GetDeviceByIndex(i)<<std::endl;        
    }  
    
//! 初始化音頻設(shè)備 
    engine_string audiodeviceinde = audiodevice->GetDeviceByIndex(0);
    cout
<<"初始化音頻設(shè)備"<<audiodevice->Init(audiodeviceinde,4,0)<<endl;  
    
    
//! 獲取音頻錄入指針
    RefPtr<AudioCapture> audiocapture = audiodevice->GetAudioCapture("capture"); 
    
    
//! 獲取錄制開(kāi)始時(shí)間
    float time = device->GetTime(); 
    
    BEGIN_LOOP(device)
        
//! 錄制時(shí)間10秒 
        if(device->GetTime() > time +10)
            
break
        audiocapture
->CaptureData(); 
          
    END_LOOP(device)
    
    audiocapture
->StopCapture();
    
return EXIT_SUCCESS;
}
步驟就是從設(shè)備指針獲取音頻管理器指針
從音頻管理器指針獲取音頻錄入指針
然后在錄入過(guò)程中調(diào)用數(shù)據(jù)錄入函數(shù)
停止錄入的時(shí)候調(diào)用StopAudioCapture即可!

當(dāng)然這是基于蓋莫游戲引擎的音頻錄入
過(guò)些天我要發(fā)布一個(gè)單獨(dú)的蓋莫音頻引擎sdk(第三次發(fā)布)

題外話
在蓋莫游戲引擎2.1.2中音頻部分需要增加的功能就是對(duì)midi,mid.mod系列音樂(lè)文件的支持了
(不過(guò)聽(tīng)人說(shuō)這個(gè)解碼似乎不太好處理)

到時(shí)候歡迎下載啊
posted on 2010-04-24 18:18 ccsdu2009 閱讀(1251) 評(píng)論(2)  編輯 收藏 引用 所屬分類: Game引擎
Comments
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲欧洲日韩综合二区| 国产欧美日韩不卡| 久久久精品午夜少妇| 99ri日韩精品视频| 欧美激情精品久久久久久| 欧美一区二区三区免费视| 亚洲精品视频一区二区三区| 国产欧美成人| 国产精品久久久久久久久久ktv | 欧美国产精品久久| 久久福利一区| 午夜精品久久久久久久蜜桃app| 亚洲精品永久免费| 激情综合久久| 国产主播一区二区| 国产欧美视频一区二区| 欧美视频中文字幕在线| 欧美日韩a区| 欧美激情精品久久久久久黑人| 久久国产精品久久w女人spa| 亚洲欧美国产va在线影院| 99国产精品| 一本色道久久综合精品竹菊| 亚洲精品一区二区三区四区高清| 欧美成人精品h版在线观看| 久久综合中文色婷婷| 久久精品亚洲一区| 久久九九热免费视频| 久久国产99| 久久久国产一区二区| 久久精品二区| 久久久久久一区二区| 久久琪琪电影院| 久久久青草婷婷精品综合日韩| 欧美一区二视频| 久久久久www| 久久综合色婷婷| 欧美成人亚洲成人| 亚洲第一精品夜夜躁人人爽| 免费久久99精品国产自| 欧美国产三区| 亚洲激情视频网| 亚洲免费精彩视频| 亚洲特黄一级片| 羞羞视频在线观看欧美| 久久国产黑丝| 裸体一区二区三区| 欧美精品一区二区三区在线播放| 欧美女同在线视频| 欧美三级免费| 国产日本亚洲高清| 亚洲福利电影| 一本色道88久久加勒比精品| 亚洲私人影吧| 欧美自拍丝袜亚洲| 欧美成人国产| 亚洲激情婷婷| 亚洲女同性videos| 久久久亚洲欧洲日产国码αv| 久久综合综合久久综合| 欧美激情一区二区三区在线视频观看 | 亚洲第一天堂无码专区| 91久久精品国产91性色| 亚洲一区精品电影| 久久精品女人| 欧美黑人国产人伦爽爽爽| 亚洲免费播放| 欧美主播一区二区三区| 欧美高清不卡| 国产网站欧美日韩免费精品在线观看| 激情亚洲成人| 亚洲午夜激情在线| 久热精品视频在线观看| 亚洲精品中文字幕在线| 午夜精品av| 欧美激情精品久久久久久黑人| 国产精品热久久久久夜色精品三区| 红桃视频国产精品| 宅男噜噜噜66一区二区66| 久久国产精品毛片| 亚洲精品美女久久久久| 欧美一区二视频| 欧美日韩亚洲成人| 在线免费高清一区二区三区| 国产精品99久久久久久久女警| 久久蜜桃精品| 中文av字幕一区| 欧美承认网站| 精品动漫3d一区二区三区| 亚洲欧美成人一区二区三区| 免费视频一区| 亚洲欧美日韩国产一区| 欧美久久综合| 激情久久久久久久久久久久久久久久| 亚洲色图在线视频| 免费日韩成人| 香蕉乱码成人久久天堂爱免费| 欧美精品123区| 亚洲国产成人tv| 久久久久国产成人精品亚洲午夜| 99热这里只有成人精品国产| 麻豆精品网站| 精品999网站| 欧美在线地址| 亚洲丝袜av一区| 欧美日韩在线播放一区| 亚洲激情自拍| 麻豆av一区二区三区| 午夜精品久久久久久久久 | 在线观看视频一区二区| 欧美一区二区视频观看视频| 99re热这里只有精品免费视频| 老司机午夜精品| 狠狠色狠狠色综合日日tαg | 国产日本亚洲高清| 亚洲免费一级电影| 99在线|亚洲一区二区| 欧美国产日韩视频| 亚洲人www| 欧美韩日精品| 两个人的视频www国产精品| 黄色精品一区| 久久男人av资源网站| 性欧美1819性猛交| 国产日韩欧美在线播放| 欧美一区二区三区四区在线 | 亚洲欧美日本伦理| 一级成人国产| 国产精品地址| 午夜国产不卡在线观看视频| 正在播放亚洲| 国产精品欧美久久久久无广告| 亚洲自拍啪啪| 亚洲欧美另类久久久精品2019| 国产精品美女久久久浪潮软件| 亚洲欧洲av一区二区三区久久| 亚洲一区日韩| 国产小视频国产精品| 久久综合五月天婷婷伊人| 久久午夜av| 亚洲精品孕妇| 亚洲视频axxx| 国产欧美一区二区精品性色| 久久精品视频导航| 久久婷婷丁香| 一区二区激情视频| 亚洲午夜伦理| 韩国av一区| 亚洲激情二区| 国产精品久久午夜| 久久久欧美一区二区| 狂野欧美性猛交xxxx巴西| 日韩一级不卡| 亚洲免费影视| 亚洲国产精品尤物yw在线观看| 91久久久久久| 国产精品尤物| 欧美激情aⅴ一区二区三区| 欧美日韩视频在线一区二区| 欧美伊人久久久久久午夜久久久久| 欧美一区二区三区精品电影| 亚洲国产精品久久久| 99热免费精品在线观看| 国产女人精品视频| 欧美国产一区二区三区激情无套| 欧美区日韩区| 久久人人精品| 欧美日韩精品在线| 久久久久免费视频| 欧美日韩高清一区| 久久三级福利| 欧美日韩成人一区二区| 久久久久久久久久久久久久一区 | 久久伊人亚洲| 亚洲一区三区电影在线观看| 欧美与黑人午夜性猛交久久久| 亚洲精品在线电影| 欧美一级视频免费在线观看| 亚洲久色影视| 欧美在线999| 中文一区二区| 乱人伦精品视频在线观看| 亚洲欧美日韩精品久久久| 麻豆成人精品| 欧美在线视频观看免费网站| 欧美国产亚洲精品久久久8v| 欧美在线你懂的| 欧美日韩视频在线一区二区观看视频| 久久这里只有精品视频首页| 欧美性jizz18性欧美| 米奇777超碰欧美日韩亚洲| 国产精品久久久久久久久久久久 | 久久精品首页| 欧美私人网站| 亚洲国产高清在线| 激情五月综合色婷婷一区二区| 亚洲视频网站在线观看| 亚洲免费福利视频| 久久综合精品国产一区二区三区| 欧美一区二区三区在|