電腦音頻錄製和播放

來源:互聯網
上載者:User

網路語音通訊技術研究

 

摘 要 本文講述了利用電腦進行聲音錄製和播放技術,以及資料在網路上傳輸的方法,並結合執行個體設計了一個網路語音通訊程式。
關鍵字 網路通訊,聲音錄製,聲音播放,GSM610語音壓縮
網路語音通訊是一項很實用的技術,由於這方面的資料較少,所以本文將結合程式對此作詳細介紹,要實現網路語音通訊,必須搞清楚以下幾個問題以及相應的編程方法:1.電腦如何錄音;2.電腦如何播放聲音;3.電腦之間如何進行資料轉送;4.聲音資料如何壓縮與解壓。

  1. 電腦錄音的原理 

電腦依靠音效卡來處理聲音,Windows把音效卡看作是錄音和放音裝置的組合體,錄音時首先要準備一個錄音隊列,隊列中包含錄音的基本參數,比如錄音
資料緩衝區的地址,緩衝區的大小等,為了使錄音過程平滑的進行,隊列中至少包含兩個以上資料緩衝區,當一個緩衝區錄完後,Windows系統會給應用程式
發送一個錄音結束的訊息,並自動開始轉入下一個緩衝區進行錄音,應用程式收到該訊息後應該釋放含有錄音資料的隊列,並取出該隊列所指向的緩衝區的聲音數
據,然後將該緩衝區再次加入錄音隊列,以便繼續進行錄音。Windows就是這樣利用這些資料緩衝區進行周而復始的錄入工作。使用到的函數說明如下:
waveInOpen() 開啟錄音裝置
waveInPrepareHeader()準備錄音緩衝區
waveInAddBuffer()將緩衝區加入錄音隊列
waveInStart()開始錄音
waveInUnprepareHeader()從錄音隊列中釋放緩衝區
waveInReset()複位錄音裝置
waveInClose()關閉錄音裝置

  1. 電腦播放聲音的原理 

同樣的道理放音時也有放音隊列和放音資料緩衝區,當使用者需要播放聲音時,先把聲音資料放入資料緩衝區,然後將緩衝區加入放音隊列,並向放音裝置發送
寫資料命令,音效卡就可以播放緩衝區中的聲音了。緩衝區中資料播放完成後系統會嚮應用程式發送放音完成的訊息,應用程式可以重複前面的工作,先釋放完成的隊
列,然後向緩衝區加入新的聲音資料,並再次將該緩衝區加入放音隊列,讓該隊列繼續工作。
waveOutOpen()開啟放音裝置
waveOutStart()開始放音
waveOutPrepareHeader()準備放音緩衝區
waveOutWrite()將資料寫到放音裝置上
waveOutUnprepareHeader()從放音隊列中釋放緩衝區
waveOutReset()複位放音裝置
waveOutClose()關閉放音裝置

...................................................(作者:倪建華)

轉載自http://www.comprg.com.cn/detail.asp?hw_id=91

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.