日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀] 最近用libmad做了些mp3解碼的工作,順便也研究了一下windows下播放PCM音頻數(shù)據(jù)的雙緩沖用法。 libmad的調(diào)用在此暫略過(guò)不表。 libmad解碼出來(lái)的是16bit的PCM數(shù)據(jù),調(diào)用windows API可對(duì)其實(shí)現(xiàn)播放。不過(guò)

  最近用libmad做了些mp3解碼的工作,順便也研究了一下windows下播放PCM音頻數(shù)據(jù)的雙緩沖用法。

       libmad的調(diào)用在此暫略過(guò)不表。

       libmad解碼出來(lái)的是16bit的PCM數(shù)據(jù),調(diào)用windows API可對(duì)其實(shí)現(xiàn)播放。不過(guò)如果解碼一段播放一段,聽(tīng)起來(lái)會(huì)有一頓一頓的感覺(jué),不流暢,究其原因,是沒(méi)有使用雙緩沖。

       吭哧吭哧研究了半天,終于編碼實(shí)現(xiàn),播放出來(lái)的效果倒也很流暢。

       流程如下:

       1)聲明兩個(gè)WAVEHDR結(jié)構(gòu)waveHeader1,waveHeader2,并分別對(duì)其lpData參數(shù)分配緩沖buf1,buf2;

       2)聲明WAVEFORMATEX結(jié)構(gòu)waveFormat,以及HWAVEOUT結(jié)構(gòu)hWaveOut。調(diào)用函數(shù)
  waveOutOpen( &hWaveOut, WAVE_MAPPER, &waveFormat, (DWORD)waveOutProc, NULL, CALLBACK_FUNCTION );
  waveOutProc為回調(diào)函數(shù),在后面會(huì)提到。

       也說(shuō)一下waveFormat的各參數(shù)。根據(jù)MSDN解釋?zhuān)琻Channels為通道數(shù),nSamplesPerSec為采樣率, wFormatTag的值為WAVE_FORMAT_PCM,wBitsPerSample為16,nBlockAlign為 nChannels*wBitsPerSample/8,nAvgBytesPerSec為nSamplesPerSec*nBlockAlign;

       3)讀入buf1,buf2,并設(shè)置好相應(yīng)長(zhǎng)度;

       4)將waveHeader1,waveHeader2寫(xiě)入wave設(shè)備:
  waveOutPrepareHeader( hWaveOut, &waveHeader1, sizeof(WAVEHDR));
  waveOutPrepareHeader( hWaveOut, &waveHeader2, sizeof(WAVEHDR));

  waveOutWrite( hWaveOut, &waveHeader1, sizeof(WAVEHDR) );
  waveOutWrite( hWaveOut, &waveHeader2, sizeof(WAVEHDR) );

       5)關(guān)于回調(diào)
    void CALLBACK  waveOutProc( HWAVEOUT hwo,    
                   UINT uMsg,       
                   DWORD dwInstance,
                   DWORD dwParam1,  
                   DWORD dwParam2     )
    {
        if(uMsg == WOM_DONE)
       {
        LPWAVEHDR pWaveHeader = (LPWAVEHDR)dwParam1;//系統(tǒng)自動(dòng)識(shí)別是哪一個(gè)WAVEHDR播放完畢

        waveOutUnprepareHeader( hwo, pWaveHeader, sizeof(WAVEHDR) );//播放完后須調(diào)用此函數(shù)

        //此處填充WAVEHDR的lpdate緩沖

        waveOutPrepareHeader( hwo, pWaveHeader, sizeof(WAVEHDR));
        waveOutWrite( hwo, pWaveHeader, sizeof(WAVEHDR) );

        //...
       }
       return ;
    }

       6)播放完畢后,調(diào)用waveOutClose,釋放緩沖。其他的一些waveOut函數(shù),如waveOutPause、 waveOutReset等等,在做播放器的時(shí)候會(huì)用得到。若播放過(guò)程中終止,須先調(diào)用waveOutReset,再調(diào)用waveOutClose。

       本文為Windows Embedded征文比賽獲獎(jiǎng)文章。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

近日,一個(gè)存在于Windows Mark of the Web (MotW)中的零日漏洞被發(fā)現(xiàn),并正在被攻擊者積極利用。但有趣的是,在微軟官方還沒(méi)有對(duì)該漏洞做出修復(fù)之前,第三方平臺(tái)0patch就提供了該漏洞的修復(fù)補(bǔ)丁。據(jù)...

關(guān)鍵字: PATCH Windows 微軟 APP

洛杉磯2022年10月17日 /美通社/ -- 衛(wèi)澎資本(WestPark Capital),一家提供全方位服務(wù)的投資銀行和證券經(jīng)紀(jì)交易商,今天宣布完成Mobile Global Esports(NASDAQ:...

關(guān)鍵字: GLOBAL MOBILE SPORT API

(全球TMT2022年9月22日訊)Granite River Labs(簡(jiǎn)稱(chēng)"GRL")日前宣布,其位于中國(guó)東莞的實(shí)驗(yàn)室已獲英特爾公司(Intel? Corporation)授權(quán),可為Windows系統(tǒng)平臺(tái)開(kāi)展Thu...

關(guān)鍵字: Windows THUNDERBOLT ST OS

GRL東莞實(shí)驗(yàn)室將與上海和臺(tái)北實(shí)驗(yàn)室一同,提供Windows Host認(rèn)證服務(wù) 加利福尼亞州圣克拉拉市2022年9月22日 /美通社/ -- 高速信號(hào)和充電技術(shù)測(cè)...

關(guān)鍵字: Windows THUNDERBOLT USB OS

加利福尼亞州庫(kù)比蒂諾2022年9月15日 /美通社/ -- 全球領(lǐng)先的漫游和網(wǎng)絡(luò)服務(wù)、安全、風(fēng)險(xiǎn)管理、測(cè)試和服務(wù)保證以及用戶(hù)智能分析解決方案提供商Mobileum Inc.(...

關(guān)鍵字: MOBILE GARTNER PI BSP

(全球TMT2022年9月16日訊)思享無(wú)限公布截至2022年6月30日的2022年第二季度暨上半年財(cái)務(wù)業(yè)績(jī)。2022年第二季度,營(yíng)收同比增長(zhǎng)28.8%,從2021年同期的3.932億元人民幣增至5.065億元人民幣(...

關(guān)鍵字: ST GARTNER MOBILE OS

(全球TMT2022年9月8日訊)愛(ài)立信攜手谷歌成功展示靈活性更高的網(wǎng)絡(luò)切片技術(shù),推動(dòng)網(wǎng)絡(luò)切片發(fā)展。愛(ài)立信在與谷歌最近的一次合作中,與生態(tài)系統(tǒng)合作伙伴成功展示了愛(ài)立信網(wǎng)絡(luò)基礎(chǔ)設(shè)施可支持單臺(tái)Android 13設(shè)備上的多...

關(guān)鍵字: 摩托羅拉 愛(ài)立信 音頻 網(wǎng)絡(luò)切片

(全球TMT2022年9月8日訊)SGW Global和Motorola Mobility LLC宣布簽署一項(xiàng)多年期擴(kuò)展交易,授予SGW Global在全球范圍內(nèi)開(kāi)發(fā)和銷(xiāo)售摩托羅拉品牌家庭音頻產(chǎn)品的獨(dú)家權(quán)利。...

關(guān)鍵字: 摩托羅拉 音頻 GLOBAL LLC

(全球TMT2022年9月2日訊)音頻、視頻和協(xié)作解決方案企業(yè)Jabra宣布與富士膠片商業(yè)創(chuàng)新(原富士施樂(lè))合作,為亞太區(qū)客戶(hù)提供基于Jabra Evolve2 系列專(zhuān)業(yè)辦公耳麥及Speak系列全向麥的統(tǒng)一通訊解決方案...

關(guān)鍵字: 富士 通訊 音頻 EV

合作旨在促進(jìn)亞太區(qū)企業(yè)無(wú)縫統(tǒng)一通訊 上海2022年9月2日 /美通社/ -- 音頻、視頻和協(xié)作解決方案領(lǐng)軍企業(yè) Jabra 今日宣布與富士膠片商業(yè)創(chuàng)新(原富士施樂(lè))合作,為亞太區(qū)客戶(hù)提供基于Jabra Evolve2...

關(guān)鍵字: 富士 數(shù)字化 通訊 音頻

消費(fèi)電子

95976 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉