客戶的需求是這樣的,做一個聲卡混音程序,實現(xiàn)將音箱要播放的聲音和話筒輸入的聲音合成為輸入,主要是用于嵌入式音頻播放產(chǎn)品,所以大家以后見了音效特別好的產(chǎn)品不要相信銷售人員的忽悠。。。“我們的產(chǎn)品音效好是用了XXX高科技材料,覺得處于國際領(lǐng)先水平...”,他們口中所謂的“高科技”,其實都是在軟件上做了文章而已。
其實要實現(xiàn)這樣的一個功能其實并不難,但我當時其實也是第一次做這樣的程序(國內(nèi)這個東西確實很好有人做過),心里也沒底,但是憑借我扎實的基礎(chǔ),再加上我在圖書館泡了一天之后,我很快就有了思路...主要有兩種方法可以實現(xiàn):
1.可以使用DirectXsound接口做.將輸出緩沖區(qū)音頻疊加到輸入緩沖區(qū);
2.可以調(diào)用ASIO音頻驅(qū)動,網(wǎng)上有很多教程.
這兩個方案都是只能基于wince系統(tǒng)的,linux下我暫時沒有找到一個很好的方案,但是最終我還是選擇了第一個,因為畢竟圖書館關(guān)于direct的開發(fā)資料比較多,開發(fā)難度相對來說容易控制,但由于我不能公布全部代碼,只能在這里梳理一下重要的幾個知識點和程序中需要用到的API。
其實我不怕大家嘲笑,在做這個項目之前我一直以為directx就只做3D處理的,但是在圖書館查了多媒體處理技術(shù)的相關(guān)書籍之后,才知道自己有多么無知。DirectX是由很多API組成的,按照性質(zhì)分類,可以分為四大部分,顯示部分、聲音部分、輸入部分和網(wǎng)絡(luò)部分。顯示部分擔任圖形處理的關(guān)鍵,分為Direct Draw(DDraw)和Direct 3D(D3D),前者主要負責2D圖像加速。它包括很多方面:我們播放mpg、DVD電影、看圖、玩小游戲等等都是用的DDraw,你可以把它理解成所有 劃線的部分都是用的DDraw。后者則主要負責3D效果的顯示,比如CS中的場景和人物、FIFA中的人物等等,都是使用了DirectX的Direct 3D。聲音部分中最主要的API是DirectSound,除了播放聲音和處理混音之外,還加強了3d音效,并提供了錄音功能,我所接的這個項目就是利用了DirectSound來解決的。。
API調(diào)用方面的話主要掌握3個方面,1.對音頻緩沖區(qū)的操作,2.對創(chuàng)建輔助緩沖區(qū),3利用directx實現(xiàn)混音程序,這三方面的書籍,dirextx的技術(shù)書籍我相信應(yīng)該都有,只要學會調(diào)用這三方面的API,做相關(guān)的音頻項目自然會便覺得很方便,不是什么高科技,在這里我不想貼代碼來忽悠大家,這東西又不是我自創(chuàng)的,花個幾十元錢去亞馬遜買本書大家都能學會,熟練以后,去游戲公司應(yīng)聘的話,月薪7K應(yīng)該不成問題。
我比較注重一些項目經(jīng)驗和設(shè)計思路,這樣才能夠助新手快速培養(yǎng)獨立完成項目的思路,因為我不是職業(yè)程序員,從事的工作也是電氣領(lǐng)域的工作,不會和大家搶工作,我接私活第一是為了接觸各個領(lǐng)域方面的技術(shù),拓展自己的專業(yè)視野,我大致了解一下開發(fā)流程即可,因為沒有必要過于深入,因為國內(nèi)所有領(lǐng)域說句老實話,核心技術(shù)都是國外的,除了一些逆向分析的黑客高手和一些科研工作者,一般人都很難了解,也沒有這個時間,對于我這樣一個業(yè)余的技術(shù)個體戶來講,我只要按時完成客戶給我的項目,能保證產(chǎn)品就可以了,暫時不會研究的那么深入,不過等過個幾年,等我的團隊日益成熟了,也許會做自己的獨立產(chǎn)品。
自己獨立接項目的另一個好處就是可以積累一定的社會人脈,讓社會來認可我的專業(yè)水平,我一直覺得做技術(shù)(不光是計算機,電氣、機械等其他專業(yè)領(lǐng)域一樣)和球星踢球很像,個人水平一旦被社會得到認可,身價自然水漲船高了,和比自己水平高一點的人一起做項目,技術(shù)能力自然很容易提高。
-
嵌入式
+關(guān)注
關(guān)注
5141文章
19537瀏覽量
315140 -
音頻
+關(guān)注
關(guān)注
29文章
3025瀏覽量
83056
原文標題:嵌入式er日常!我的第一個嵌入式項目....
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
【書籍評測活動NO.61】Yocto項目實戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)
入行嵌入式難度大不大?
嵌入式主板的概述與發(fā)展

評論