




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第8章
Linux下音頻設(shè)備編程本章著重闡述了Linux下對音頻設(shè)備的編程方法。讀完本章,讀者將了解以下內(nèi)容:音頻信號的數(shù)字化和相關(guān)概念;音頻總線接口IIS的控制原理和控制程序;Linux下音頻設(shè)備編程的特點和操作方法;MPlayer媒體播放器在嵌入式Linux上的移植實例。8.1音頻信號基礎(chǔ)音頻信號是一種連續(xù)變化的模擬信號,但計算機(jī)只能處理和記錄二進(jìn)制的數(shù)字信號,而由自然音源得到的音頻信號必須經(jīng)過一定的變換,成為數(shù)字音頻信號之后,才能送到計算機(jī)中做進(jìn)一步的處理。數(shù)字音頻信號模擬音頻信號數(shù)字化的典型方法是對時間坐標(biāo)按相等的時間間隔做采樣,對振幅做量化,單位時間內(nèi)的采樣次數(shù)稱為采樣頻率。這樣,一段聲波被數(shù)字化后就可以變成一串?dāng)?shù)值,每個數(shù)值對應(yīng)相應(yīng)抽樣點的振幅值,按順序?qū)⑦@些數(shù)字排列起來就是數(shù)字音頻信號了。這就是模擬-數(shù)字轉(zhuǎn)化(ADC)過程。數(shù)字-模擬轉(zhuǎn)化(DAC)過程則相反,將連續(xù)的數(shù)字按采樣時的頻率和順序轉(zhuǎn)換成對應(yīng)的電壓。通俗一點講,音頻ADC/DAC就是錄音/放音。放音是數(shù)字音頻信號轉(zhuǎn)換成模擬音頻信號,以驅(qū)動耳機(jī)、功放等模擬設(shè)備,而錄音則是要將麥克風(fēng)等產(chǎn)生的模擬音頻信號轉(zhuǎn)換成數(shù)字音頻信號,并最終轉(zhuǎn)換成計算機(jī)可以處理的通用音頻文件格式。采樣就是每隔一定時間讀一次聲音信號的幅度,而量化則是將采樣得到的聲音信號幅度轉(zhuǎn)換為數(shù)字值。從本質(zhì)上講,采樣是時間上的數(shù)字化,而量化則是幅度上的數(shù)字化。采樣頻率的選擇應(yīng)該遵循奈奎斯特(Nyquist)采樣理論:采樣頻率高于輸入信號最高頻率的兩倍,就能從采樣信號序列重構(gòu)原始信號。為了保證聲音不失真,采樣頻率應(yīng)該在40kHz左右。常用的音頻采樣頻率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,如果采用更高的采樣頻率,還可以達(dá)到DVD的音質(zhì)。量化是對模擬音頻信號的幅度進(jìn)行數(shù)字化,量化位數(shù)決定了模擬信號數(shù)字化以后的動態(tài)范圍,常用的有8位、12位和16位。量化位越高,信號的動態(tài)范圍越大,數(shù)字化后的音頻信號就越接近原始信號,但所需要的存儲空間也越大。聲道數(shù)是反映音頻數(shù)字化質(zhì)量的另一個重要因素,它有單聲道、雙聲道和多聲道之分。雙聲道又稱為立體聲,在硬件中有兩條線路,音質(zhì)和音色都要優(yōu)于單聲道,但數(shù)字化后占據(jù)的存儲空間的大小要比單聲道多一倍。多聲道能提供更好的聽覺感受,不過占用的存儲空間也更大。音頻文件格式1.MP3MP3的全稱應(yīng)為MPEG1Layer-3音頻文件。MPEG(MovingPictureExpertsGroup)在漢語中譯為活動圖像專家組,特指活動影音壓縮標(biāo)準(zhǔn),MPEG音頻文件是MPEG1標(biāo)準(zhǔn)中的聲音部分,也叫MPEG音頻層,它根據(jù)壓縮質(zhì)量和編碼復(fù)雜程度劃分為三層,即Layer-1、Layer-2、Layer-3,且分別對應(yīng)MP1、MP2、MP3這三種聲音文件,并根據(jù)不同的用途,使用不同層次的編碼。MPEG音頻編碼的層次越高,編碼器越復(fù)雜,壓縮率也越高,MP1和MP2的壓縮率分別為4:1和6:1~8:1,而MP3的壓縮率則高達(dá)10:1~12:1,也就是說,一分鐘CD音質(zhì)的音樂,未經(jīng)壓縮需要10MB的存儲空間,而經(jīng)過MP3壓縮編碼后只有1MB左右。不過MP3對音頻信號采用的是有損壓縮方式,為了降低聲音失真度,MP3采取了“感官編碼技術(shù)”,即編碼時先對音頻文件進(jìn)行頻譜分析,然后用過濾器濾掉噪音電平,接著通過量化的方式將剩下的每一位打散排列,最后形成具有較高壓縮比的MP3文件,并使壓縮后的文件在回放時能夠達(dá)到比較接近原音源的聲音效果。2.WMAWMA就是WindowsMediaAudio編碼后的文件格式,由微軟開發(fā)。WMA針對的不是單機(jī)市場,而是網(wǎng)絡(luò)。它的競爭對手就是網(wǎng)絡(luò)媒體市場中著名的RealNetworks。微軟聲稱,在只有在64kbps的碼率情況下,WMA可以達(dá)到接近CD的音質(zhì)。與以往的編碼不同,WMA支持防復(fù)制功能,它支持通過WindowsMediaRightsManager加入保護(hù),可以限制播放時間和播放次數(shù)甚至于播放的機(jī)器等。由于WMA支持流技術(shù),即一邊讀一邊播放,因此WMA可以很輕松的實現(xiàn)在線廣播。WMA有著優(yōu)秀的技術(shù)特征,在微軟的大力推廣下,這種格式被越來越多的人所接受。3.WAV這是一種古老的音頻文件格式,由微軟開發(fā)。WAV文件格式符合RIFF(ResourceInterchangeFileFormat,資源互換文件格式)規(guī)范。所有的WAV都有一個文件頭,這個文件頭保存了音頻流的編碼參數(shù)。WAV對音頻流的編碼沒有硬性規(guī)定,除了PCM之外,還有幾乎所有支持ACM規(guī)范的編碼都可以為WAV的音頻流進(jìn)行編碼。在Windows平臺下,基于PCM編碼的WAV是被支持得最好的音頻格式,所有音頻軟件都能完美支持。由于本身可以達(dá)到較高的音質(zhì)的要求,WAV也是音樂編輯創(chuàng)作的首選格式,適合保存音樂素材。因此,基于PCM編碼的WAV被作為一種中介的格式,常常使用在其他編碼的相互轉(zhuǎn)換之中,例如,MP3轉(zhuǎn)換成WMA。4.OggVorbisOGG是一個龐大的多媒體開發(fā)計劃的項目名稱,涉及視頻音頻等方面的編碼開發(fā)。整個OGG項目計劃的目的就是向任何人提供完全免費的多媒體編碼方案,OGG的信念就是開源和免費。Vorbis是OGG項目中音頻編碼的正式命名,目前Vorbis已經(jīng)開發(fā)成功,并且開發(fā)出了編碼器。OggVorbis是高質(zhì)量的音頻編碼方案,官方數(shù)據(jù)顯示:OggVorbis可以在相對較低的數(shù)據(jù)速率下實現(xiàn)比MP3更好的音質(zhì),而且它可以支持多聲道。多聲道音樂的興起,給音樂欣賞帶來了革命性的變化,尤其在欣賞交響時,會帶來更多臨場感。這場革命性的變化是MP3無法適應(yīng)的,因為MP3只能編碼2個聲道。與MP3一樣,OggVorbis是一種靈活開放的音頻編碼,能夠在編碼方案已經(jīng)固定下來后繼續(xù)對音質(zhì)進(jìn)行明顯的調(diào)節(jié)和新算法的改良。因此,它的聲音質(zhì)量將會越來越好。與MP3相似,OggVorbis更像一個音頻編碼框架,可以不斷導(dǎo)入新技術(shù),逐步完善。5.RARA就是RealAudio格式,這是因特網(wǎng)上接觸得非常多的一種格式。這種格式完全針對網(wǎng)絡(luò)上的媒體市場,支持非常豐富的功能。這種格式最大的特點是可以根據(jù)聽眾的帶寬來控制碼率,在保證流暢的前提下盡可能提高音質(zhì)。RA可以支持多種音頻編碼,其中包括ATRAC3。和WMA一樣,RA不但支持邊讀邊放,也同樣支持使用特殊協(xié)議來隱匿文件的真實網(wǎng)絡(luò)地址,從而實現(xiàn)只在線播放而不提供下載的欣賞方式。6.APEAPE是Monkey’sAudio提供的一種無損壓縮格式。由于Monkey’sAudio提供了Winamp的插件支持,因此這就意味著壓縮后的文件不再是單純的壓縮格式,而是與MP3一樣可以播放的音頻文件格式。這種格式的壓縮比遠(yuǎn)低于其他格式,但由于能夠做到真正無損,因此獲得了不少發(fā)燒用戶的青睞?,F(xiàn)在有不少無損壓縮方案,APE是其中有著突出性能的格式,它具有令人滿意的壓縮比,以及飛快的壓縮速度,成為不少朋友私下交流發(fā)燒音樂的惟一選擇。7.AACAAC(高級音頻編碼技術(shù),AdvancedAudioCoding)是杜比實驗室為音樂社區(qū)提供的技術(shù),聲稱最大能容納48通道的音軌,采樣率達(dá)96kHz。AAC在320kbps的數(shù)據(jù)速率下能為5.1聲道音樂節(jié)目提供相當(dāng)于ITU-R廣播的品質(zhì)。AAC是遵循MPEG-2的規(guī)格所開發(fā)的技術(shù),與MP3比起來,它的音質(zhì)比較好,也能夠節(jié)省大約30%的存儲空間與帶寬。8.ATRAC3ATRAC3(AdaptiveTransformAcousticCoding3)由日本索尼公司開發(fā),是MD所采用的ATRAC的升級版,其壓縮率(約為ATRAC的2倍)和音質(zhì)均與MP3相當(dāng)。壓縮原理包括同時掩蔽、時效掩蔽和等響度曲線等,與MP3大致相同。ATRAC3的版權(quán)保護(hù)功能采用的是OpenMG。目前,對應(yīng)ATRAC3的便攜式播放機(jī)主要是索尼公司自己的產(chǎn)品。不過,該公司已于2000年2月與富士通、日立、NEC、Rohm、三洋和TI等半導(dǎo)體制造商簽署了制造并銷售ATRAC3用LSI的專利許可協(xié)議。WAVE文件格式剖析WAVE文件作為多媒體中使用的聲波文件格式之一,是以RIFF格式為標(biāo)準(zhǔn)的。RIFF可以看成是一種樹形結(jié)構(gòu),其基本構(gòu)成單位為chunk,猶如樹形結(jié)構(gòu)中的節(jié)點,每個chunk由辨別碼、數(shù)據(jù)大小,以及數(shù)據(jù)所組成。WAVE文件的“RIFF”格式辨別碼為“WAVE”,整個文件由兩個chunk所組成,辨別碼分別是“fmt”和“data”。在“fmt”chunk下包含了一個PCM波形格式的數(shù)據(jù)結(jié)構(gòu),在此之后是包含原始聲音信息的采樣數(shù)據(jù),這些數(shù)據(jù)是可以直接送到IIS總線的數(shù)字音頻信號。WAVE文件各部分內(nèi)容及格式如表8.1所示。常見的聲音文件主要有兩種,分別對應(yīng)于單聲道和雙聲道。對于單聲道聲音文件,采樣速率是11.025kHz,采樣數(shù)據(jù)為8位的短整數(shù)(shortint);而對于雙聲道立體聲聲音文件,采樣速率為44.1kHz,每次采樣數(shù)據(jù)為一個16位的整數(shù)(int),高8位和低8位分別代表左右兩個聲道。WAVE文件數(shù)據(jù)塊包含以脈沖編碼調(diào)制(PCM)格式表示的樣本。WAVE文件是由樣本組織而成的。在WAVE文件中,聲道0代表左聲道,聲道1代表右聲道。在多聲道WAVE文件中,樣本是交替出現(xiàn)的。例如,對于8位雙聲道的立體聲,存儲數(shù)據(jù)格式依次為:0聲道(左)、1聲道(右)、0聲道(左)、1聲道(右)。對于16位立體聲,存儲數(shù)據(jù)依次為:0聲道(左)低字節(jié)、0聲道(左)高字節(jié)、1聲道(右)低字節(jié)、1聲道(右)高字節(jié)。8.2基于IIS接口的音頻系統(tǒng)IIS接口控制原理S3C2410X內(nèi)置了一個IIS總線控制器,該控制器實現(xiàn)到一個外部8/16位立體聲音頻編解碼器接口,支持IIS總線數(shù)據(jù)格式和MSB-justified數(shù)據(jù)格式。S3C2410X中有兩條串行數(shù)據(jù)線,一條是輸入信號數(shù)據(jù)線,一條是輸出信號數(shù)據(jù)線,以同時發(fā)送和接收數(shù)據(jù)。IIS接口有3種工作方式:
正常傳輸模式,正常模式下使用IISCON寄存器對FIFO進(jìn)行控制。如果傳輸FIFO緩存為空,IISCON的第7位被設(shè)置為“0”,表示不能繼續(xù)傳輸數(shù)據(jù),需要CPU對緩存進(jìn)行處理。如果傳輸FIFO緩存非空,IISCON的第7位被設(shè)置成“1”,表示可以繼續(xù)傳輸數(shù)據(jù)。同樣,數(shù)據(jù)接收時,如果FIFO滿,標(biāo)識位是“0”,此時,需要CPU對FIFO進(jìn)行處理,如果FIFO沒有滿,那么標(biāo)志位是“1”,這個時候可以繼續(xù)接收數(shù)據(jù)。
DMA模式,通過設(shè)置IISFCON寄存器可以使IIS接口工作于這種模式下。在這種模式中,F(xiàn)IFO寄存器組的控制權(quán)掌握在DMA控制器上,當(dāng)FIFO滿了,由DMA控制器對FIFO中的數(shù)據(jù)進(jìn)行處理。DMA模式的選擇由IISCON寄存器的第4位和第5位控制。
傳輸/接收模式,這種模式下,IIS數(shù)據(jù)可以同時接收和發(fā)送音頻數(shù)據(jù)。IIS總線控制器結(jié)構(gòu)如圖8.2所示,各功能說明如下:
兩個5比特預(yù)除器IPSR,IPSA_A用于產(chǎn)生IIS總線接口的主時鐘,IPSA_B用做外部CODEC時鐘產(chǎn)生器。
16字節(jié)FIFO,在發(fā)送數(shù)據(jù)時數(shù)據(jù)被寫進(jìn)TxFIFO,在接收數(shù)據(jù)時數(shù)據(jù)從RxFIFO中讀取。
主IISCLK產(chǎn)生器SCLKG,在主模式下,有主時鐘產(chǎn)生串行位時鐘。
通道產(chǎn)生器和狀態(tài)機(jī)CHNC,IISCLK和IISLRCK有通道狀態(tài)機(jī)產(chǎn)生并控制。
16比特移位寄存器(SFTR),在發(fā)送數(shù)據(jù)時,并行數(shù)據(jù)經(jīng)由SFTR變成串行數(shù)據(jù)輸出;在數(shù)據(jù)接收時,串行數(shù)據(jù)由SFTR轉(zhuǎn)變成并行數(shù)據(jù)。音頻接口電路設(shè)計音頻接口程序設(shè)計1.放音放音程序代碼如下:#include"2410addr.h"#include"2410lib.h"#include"def.h“#include"2410iis.h"voidChangeDMA2(void);voidIIS_PortSetting(void);void_WrL3Addr(U8data);void_WrL3Data(U8data,inthalt);void__irqDMA2_Done(void);void__irqDMA2_Rec_Done(void);void__irqRxInt(void);void__irqMuting(void);#defineL3C(1<<4)//GPB4=L3CLOCK#defineL3D(1<<3)//GPB3=L3DATA#defineL3M(1<<2)//GPB2=L3MODE#definePLAY0#defineRECORD1//#defineREC_LEN0x50000//327,680Bytes#defineREC_LEN0x100000//1,048,576Bytes#defineDataCount0x10000//IISMaster/SlaveDataRx/TxCount#defineDataDisplay0x100//IISMasterDataDisplayCount#definePollMode0//1:PollingMode#defineDMA2Mode1//1:DMA2Mode#defineMICGain_Amp_Sel 0//0:Inputchannel2Amp.1:MICAmp.unsignedchar*Buf,*_temp;unsignedshort*rec_buf;volatileunsignedintsize=0;volatileunsignedintfs=0;volatilecharwhich_Buf=1;volatilecharRec_Done=0;volatilecharmute=1;voidPlayTest_Iis(void){unsignedintsave_B,save_E,save_PB,save_PE;Uart_TxEmpty(0);由于IIS時鐘從系統(tǒng)分頻得到,下面的代碼將系統(tǒng)PCLK降到33MHz,而且降頻后必須對串口重新進(jìn)行初始化。ChangeClockDivider(1,1);//1:2:4ChangeMPllValue(0x96,0x5,0x1);//FCLK=135.428571MHz(PCLK=33.857142MHz)Uart_Init(33857142,115200);Uart_Printf("[IIStest(Play)usingUDA1341CODEC]\n");然后將用到的端口保存起來,并進(jìn)行端口初始化。save_B=rGPBCON;save_E=rGPECON;save_PB=rGPBUP;save_PE=rGPEUP;IIS_PortSetting();IIS采用DMA方式進(jìn)行錄音和播放,因此需要進(jìn)行DMA中斷的注冊。pISR_DMA2=(unsigned)DMA2_Done;然后獲取語音數(shù)據(jù)及其大小、采樣頻率。rINTSUBMSK=~(BIT_SUB_RXD0);rINTMSK=~(BIT_EINT0|BIT_UART0|BIT_DMA2);//Non-cacheablearea=0x31000000~0x33feffffBuf=(unsignedchar*)0x31000000;_temp=Buf;Uart_Printf("DownloadthePCM(noADPCM)filebyDNW(Withheader)!!\n");size=*(Buf)|*(Buf+1)<<8|*(Buf+2)<<16|*(Buf+3)<<24;Uart_Printf("\nNow,Downloading...",size);rINTSUBMSK|=BIT_SUB_RXD0;size=*(Buf+0x2c)|*(Buf+0x2d)<<8|*(Buf+0x2e)<<16|*(Buf+0x2f)<<24;size=(size>>1)<<1;fs=*(Buf+0x1c)|*(Buf+0x1d)<<8|*(Buf+0x1e)<<16|*(Buf+0x1f)<<24;接著初始化UDA1341,設(shè)置為放音模式:Init1341(PLAY);接著進(jìn)行DMA初始化:rDISRC2=(int)(Buf+0x30);//0x31000030~(Removeheader)rDISRCC2=(0<<1)+(0<<0);//源地址位于系統(tǒng)總線AHB,地址遞增rDIDST2=((U32)IISFIFO);//IISFIFOrDIDSTC2=(1<<1)+(1<<0);//目的地址位于外設(shè)總線APB,地址固定rDCON2=(1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<24)+(1<<23)+(0<<22)+(1<<20)+(size/4);//101000001001xxxxxxxxxxxxxxxxxxxx//Handshake[31],SyncPCLK[30],CURR_TCInterruptRequest[29],//SingleTx[28],Singleservice[27],//I2SSDO[26:24],DMAsourceselected[23],Auto-reload[22],//Half-word[21:20],size/2[19:0]rDMASKTRIG2=(0<<2)+(1<<1)+(0<<0);//No-stop[2],DMA2channelOn[1],No-swtrigger[0]IIS初始化:if(fs==44100)//11.2896MHz(256fs)rIISPSR=(2<<5)+2;//PrescalerA,B=2<-FCLK135.4752MHz(1:2:4)else//fs=22050,5.6448MHz(256fs)rIISPSR=(5<<5)+5;//PrescalerA,B=5<-FCLK135.4752MHz(1:2:4)rIISCON=(1<<5)+(1<<2)+(1<<1);//TxDMAenable[5],Rxidle[2],Prescalerenable[1]//Mastermode[8],Txmode[7:6],LowforLeftChannel[5],IISformat[4],16bitch.[3],CDCLK256fs[2],IISCLK32fs[1:0]rIISMOD=(0<<8)+(2<<6)+(0<<5)+(0<<4)+(1<<3)+(0<<2)+(1<<0);rIISFCON=(1<<15)+(1<<13);//TxDMA,TxFIFO-->startpiling....啟動IIS。IIS啟動后,將采用DMA方式播放語音數(shù)據(jù),播放完畢后將引發(fā)中斷,并重新播放語音數(shù)據(jù)。可通過按任意鍵,決定播放是否結(jié)束。//IISTxStartUart_Printf("\nPressanykeytoexit!!!\n");rIISCON|=0x1;//IISInterfacestartwhile(!Uart_GetKey()){if((rDSTAT2&0xfffff)<(size/6))ChangeDMA2();}其中,ChangeDMA2()函數(shù)根據(jù)標(biāo)志位which_Buf決定是否重新播放,標(biāo)志位which_Buf在中斷服務(wù)函數(shù)DMA2_Done()中設(shè)置。語音播放結(jié)束后,通知IIS,并恢復(fù)寄存器。Delay(10);//ForendofH/WTxrIISCON=0x0;//IISInterfacestoprDMASKTRIG2=(1<<2);//DMA2stoprIISFCON=0x0;//ForFIFOflushsize=0;rGPBCON=save_B;rGPECON=save_E;rGPBUP=save_PB;rGPEUP=save_PE;最后關(guān)閉中斷,并恢復(fù)系統(tǒng)時鐘:rINTMSK=(BIT_DMA2|BIT_EINT0);ChangeMPllValue(0xa1,0x3,0x1);//FCLK=202.8MHzUart_Init(0,115200);mute=1;}2.錄今音錄音線程序蠢在初奇始化私等動怖作上業(yè)與放虧音類舌似,卻代碼泡如下負(fù):vo罪idRe口co片rd營_I句is岔(v垂oi睡d){un瞇si宰gn套edin憤tsa穩(wěn)ve惜_B,sa披ve助_E,sa寫ve類_P揪B,sa狡ve戴_P中E;Ua貴rt禾_T鴿xE贊mp陜ty炭(0嗽);Ch達(dá)an夾ge蹤蝶Cl百oc看kD次iv敞id魚er叔(1宿,1蠶);滑//屈1:作2:丑4Ch魚an紀(jì)ge令MP犁ll濟(jì)Va缺lu腰e(天0x外96幸,0未x5叛,0躺x1見);猴//括FC咽LK瘡=1國35歲42它85多71訪Hz放,震PC倘LK伍=3悔.3珍85談71拋4M佛HzUa帖rt尺_(dá)I獸ni希t(榴33是85央71某42椒,1紗15遙20給0)慈;Ua曲rt核_P增ri甩nt把f("永[改Re久co鳴rd岔t奧es階t熟us棕in情g奇UD啄A1巧34暗1將]\報n"鞭);sa壟ve嗓_B=rG釣PB塘CO鹽N;sa箏ve琴_E=rG宋PE腎CO今N;sa抵ve晃_P垃B=rG虜PB看UP;sa比ve勒_P歷E=rG按PE閑UP;II疼S_速Po炒rt桂Se委tt犯in荒g()鴨;錄音殼數(shù)據(jù)群保存廈在re逃c_范bu怎f中:re艷c_裹bu作f=岔(u色ns蜘ig鍛ne病d斬sh購or愧t隱*)諷0x閘31箱00膜00還00狐;pI炊SR搜_D康MA穗2祝=向(額un苦si溪gn艷ed墾)D款MA察2_隨Re暈c_制Do頭ne智;pI塌SR盟_E掀IN思T0疤=秤(un汪si舍gn彎ed滿)M系ut蠶in暖g;rI嚷NT初MS抬K=納~(智BI蘆T_距DM掏A2恨);In浮it底13財41度(R緊EC歐OR芒D)楊;rD綢IS器RC鏈C2糞=梯(黨1<輸<1督)傷+海(1憐<<鏡0)軍;禾//迅AP蜓B,酒F凍ixrD如IS途RC成2棵=亞(押(U翻32呈)I洗IS隔FI譽FO重);板//抵II慣SF尚IF摸OrD薯ID貌ST照C2繳=申(蔑0<逆<1擠)托+焰(0肝<<怖0)掌;禿//矮AH稻B,旅I古nc脹re獸me教ntrD勸ID小ST紫2旺=外(in紛t)駕re搬c_給bu亡f;供/鄉(xiāng)豐/0叔x3詢10施00霧00納0亡~rD仿CO紙N2夫=厲(占1<克<3甚1)自+(埋0<遼<3佛0)星+(精1<脫<2差9)工+(定0<姥<2恐8)兔+(籠0<晶<2鋼7)叼+(雀1<養(yǎng)<2遣4)+(偽1<趟<2障3)念+(袋1<稈<2僻2)梨+(星1<擇<2艇0)赤+R草EC坐_L兔EN家;//激Ha階nd幸sh佛ak消e,日s鳥yn經(jīng)c凍PC博LK速,蹄TCin蟲t,污si小ng振letx,搞si隆ng泰le倒s社er劇vi屬ce隆,//饑I2匪SS繁DI核,療I2蝴S送Rx希r拐eq余ue咳st嘩,//取Of孫f-寧re攤lo負(fù)ad秩,旱ha課lf概-w捆or如d,吩0鋼x5川00唐00章h盼al葵f趴wo植rd牌.rD州MA犯SK倆TR街IG燃2口=伏(0頑<<穩(wěn)2)序+杰(賄1<謙<1抗)逃+今0;閱//姐No破-s擇to爺p,蟲D棄MA披2欣ch腸an緣瑞ne叛l窩on京,No纏-swtr癢ig缺ge垮r//Ma貍st扒er口,R巧x,校L-域ch=l斬ow蹲,I州IS松,1稻6b蜻itch沾,C課DC恩LK=2熱56球fs攻,I戰(zhàn)IS頓CL欲K=善32手fsrI肅IS墻MO液D=船(0諷<<蒸8)梳+妹(君1<填<6宿)庸+叛(0欲<<永5)孔+耐(斯0<混<4敏)旨+抓(1娃<<嬸3)撞+笨(爭0<策<2只)吹+快(1俊<<亦0)斷;rI諸IS吩PS閘R=龜(2美<<單5)急+修2侍;逝//Pr銹es跪ca襪le還r_出A/B啟=2腳<乒-龜FC豈LK13樣5.勿47罷52沃MH牢z(洗1:表2:兄4)蠶,1矮1.踏28民96局MH腦z(料25驢6f忙s)傲,4名4.煎1K毛HzrI爹IS輸CO染N=逝(0殲<<額5)義+析(距1<肝<4捐)躬+液(1櫻<<毒3)刊+孤(綢0<國<2鎖)追+屈(1刪<<蠶1)爪;//TxDM冶Adi口sa佳bl姜e,歉RxDM球Aen處ab袖le便,T錯xid責(zé)le按,R爪xno螞tid事le盟,p旁re鋤sc盒al傾eren致ab訪le姥,s玩to滲prI萌IS陣FC佳ON=呈(1災(zāi)<<匙14采)淹+掩(1仙<<復(fù)12鏡);狀/怠/R算xDM臭A,筐RxFI僚FO積-嶄->廣s混ta帆rt頁p肝il隱in級g.遼..同.開始俊錄音正://勝Rx療s臉ta皇rtrI手IS吐CO員N|=感0思x1六;錄音浪完畢葬將引殿發(fā)DM屯A2中斷憲,如婚下代兩碼等易待錄印音結(jié)稼束:wh正il披e(哄!R徒ec米_D鄉(xiāng)豐on育e);rI平NT耀MS賽K=賽BI證T_較DM共A2捏;Re攏c_扇Do始ne=煤0;//矩II各S探St鑄opDe淡la酬y(競10欺);溉//懼Fo訓(xùn)r貴en播d退of埋H崖/W訊R斗xrI保IS涉CO屆N=創(chuàng)0x蛙0;僑//可II作S捕st料oprD語MA閣SK曾TR持IG獸2岸=亡(1擋<<袋2)稠;繩//忌DM屋A2握s柄to蘇prI虜IS鍬FC豎ON=餃0x角0;忠//萌Fo劫r醒FI秋FO宣f艦lu篇sh錄音銅完畢咳,然是后播烘放聲饅音:Ua裝rt報_P葉ri悟nt勻f(宿"E記ndof未R當(dāng)ec激or蝕d!黑!!樣\n非")厲;Ua的rt鍬_P恨r(nóng)i禍nt革f(飄"P攔re哥ssan丟y幣ke威y處to饒p療la潤y芽re巧co盯rd惜ed郊d貞at艱a\家n"短);Ua帖rt證_P爺ri圈nt甚f(趕"I謠fyo酷u濱wa食nt肆t化o太mu護(hù)te都o(jì)麥r散no貓m燙ut主e帖pu洽sh累t蝴he期'冷EI牲N0老'餅ke雨yre法pe絡(luò)at驗ed口ly線\n熔")財;Ua祥rt成_G掃et箏ch()亦;si讀ze慎=危R孤EC劇_L頓EN沫*逝2炮;Ua憂rt睡_P鞏ri末nt頌f(校"S健iz網(wǎng)e=馬%d\泡n"棗,s竿iz刺e);In批it獨13疫41勇(P坊LA腸Y)怠;pI辛SR躍_D浪MA柏2廣=菠(u飼ns面ig拌ne那d)顛DM權(quán)A2擦_D御on行e;rI闖NT屋MS脾K=皆~(覆BI錦T_嶄DM職A2固|做B艱IT趟_E隔IN宿T0商);//吹DM吉A2賄I邁ni寨ti升al罪iz西erD性IS該RC是C2芳=醒(呢0<溉<1峰)糠+宜(0傾<<辮0)剩;派//拋AH虛B,池I蠻nc會re滾me磁ntrD屠IS含RC看2秧=舞(in攪t)麥re上c_曉bu災(zāi)f;聲/春/0駝x3寄10辟00襯00斜0rD抄ID考ST他C2賄=挖(哀1<你<1賽)醒+薯(1崖<<霸0)完;極//甲AP謠B,亭F丹ix壩edrD鍬ID纏ST同2桿=仔(逗(U逃32廈)I甚IS鳥FI吧FO芬);津//壺II樣SF珠IF毯OrD派CO珠N2桐=粘(慈1<密<3喘1)清+(隔0<芽<3緊0)璃+(嘉1<厚<2矛9)養(yǎng)+(拐0<嫂<2挑8)感+(辰0<垂<2閥7)西+(啞0<耗<2奧4)+(遍1<捐<2停3)襖+(誰0<屋<2澇2)單+(沈1<乞<2列0)液+(越si咬ze王/2貍);//山Ha羨nd往sh蘆ak瞞e,堪s授yn無c循PC撐LK督,衫TCin塌t,鼠si判ng累letx,映si鞋ng求le飯s忍er路vi殘ce藍(lán),I2距SS概DO銷,萄I2影S典re臨qu泛es戴t,//紅Au站to架-r柿el麥oa淺d,昏h黨al亡f-悄wo殺rd瓶,稠si厚ze捧/2rD刑MA喊SK肉TR嚷IG延2掉=梅(0裹<<小2)好+(其1<胖<1研)+嫩0;迷//比No賞-s洗to更p,棵D辛MA介2念ch削an察ne舌l(xiāng)脹on箱,No逃-swtr耽ig懇ge所r//昌II熊S賣In圍it插ia祖li唐ze//Ma跪st挺er拍,T坦x,爪L-患ch=l芽ow榮,i準(zhǔn)is府,1車6b供itch宜.,蛙CD便CL陜K=2貍56惱fs晃,I演IS堂CL買K=揮32謠fsrI勒IS勻MO哲D=革(0浮<<秧8)截+尸(姻2<撈<6夠)介+侮(0許<<寸5)移+譯(培0<戚<4鞏)勇+鳴(1諒<<紅3)喂+綁(門0<朱<2睛)構(gòu)+血(1畜<<討0)攪;//rI月IS通PS餃R=唯(4妥<<段5)嫁+切4脖;類/款/Pr麻es礦ca黨le建r_嘆A/B害=4擱f貝or殿1嶺1.犧28泛96滅MH極zrI悼IS具CO隆N=廁(1南<<按5)含+(知0<粱<4孤)+現(xiàn)(0殃<<井3)魚+(摧1<維<2丙)+須(1較<<抹1)繩;//TxDM欣Aen兆ab墻le轟,T史xDM帥Adi祝sa退bl騎e,仇Txno甚tid喚le辭,R活xid倘le歲,p妙re切sc軍al服eren己ab頌le離,s便to鞏prI宜IS屯FC仗ON=因(1植<<鼠15樓)啊+帝(1諸<<渾13甘);店/欺/TxDM六A,尺TxFI千FO逆-罩->紹s但ta浩rt斑p羊il懷in興g.攀..錢.Ua爽rt息_P刻ri價nt鬧f(蛙"P傾re撕ssan趣y姥ke廣y督to侮e百xi怨t!稱!!股\n浮")郵;rI蛇IS回CO盜N|=蝕0航x1敵;靠//畫II浴STxSt總ar津twh誘il今e(軟!U綢ar糊t_寫Ge勾tK依ey()冬);//兩II跨STxSt促opDe辨la產(chǎn)y(泥10貫);活/擺/F盾or鈴e使nd幕o停f擺H/偏WTxrI嘴IS攪CO壤N=蟲0x伸0;蠻/冷/I凝IS利s肯to秘prD與MA共SK判TR番IG瘋2弦=舍(1要<<腎2)酬;飽/勇/D辦MA秀2陣st葵oprI南IS其FC繳ON=蟲0x遞0;心/基/F冰or恐F詞IF維O辟fl悅us蛇h(yuǎn)si倉ze爪=鎖0往;rG恒PB拿CO著N=sa殺ve賓_B;rG軋PE黑CO謎N=sa揭ve只_E;rG特PB前UP=sa界ve肌_P蘿B;rG好PE庸UP=sa迎ve剃_P外E;rI淹NT粗MS管K=暈(B集IT攤_D究MA徑2享|你BI掏T_濤EI忙NT薪0)董;Ch稼an霉ge骨MP舊ll釘Va逐lu繼e(賭0x山a1懂,0峽x3煮,0稼x1其);金//弊F職CL開K=萬20防2.衰8M幣HzUa欺rt帳_I酸ni治t(昨0,浪11竿52筒00徐);mu興te很=匆1艷;}8.棒3音頻滿設(shè)備驅(qū)程序紙的實煉現(xiàn)在Li培nu弊x下,戒音頻勾設(shè)備艱程序嘗的實鉛現(xiàn)與淋文件聲系統(tǒng)拜的操狐作密啞切相儀關(guān)。Li紹nu罪x將各樣種設(shè)艇備以叼文件構(gòu)的形疏式給率出統(tǒng)醋一的倦接口剃,這洲樣的筆設(shè)計玩使得化對設(shè)坐備的盲編程贈與對斜文件采的操佩作基化本相忙同,皂對Li謠nu紫x內(nèi)核激的系引統(tǒng)調(diào)壓用也里基本潛一致瞎,從重而簡惡化了覽設(shè)備錘編程崇。如何村對各京種音嫁頻設(shè)衫備進(jìn)雕行操嶼作是劈燕在Li數(shù)nu綢x上進(jìn)華行音壯頻編鳴程的扶關(guān)鍵齒,通駐過內(nèi)咽核提蘆供的幻玉一組障系統(tǒng)物調(diào)用撐,應(yīng)搞用程談序能撐夠訪嫩問聲柔卡驅(qū)懇動程傻序提瓜供的趁各種裹音頻紐奉設(shè)備捉接口鏈,這殼是在Li逼nu炕x下進(jìn)端行音雪頻編怠程最拴簡單陸也是廁最直學(xué)接的稍方法剝。聲卡權(quán)不是Li捷nu畫x控制患臺的記一部遼分,瀉它是貢一個趣特殊舌的設(shè)伍備。剩聲卡屯主要蝕提供3個重礎(chǔ)要的顧特征刻:數(shù)字直取樣蝦輸入/輸出障;頻率尋調(diào)制雕輸出前;MI深DI接口破。這3個特謝征都蕩有它舉們自勞己的淘設(shè)備廈驅(qū)動較程序追接口漫,數(shù)議字取份樣的搜接口敵是/d捷ev摘/ds本p,頻以率調(diào)滅制的靠接口/d酸ev燃/s棚eq解ue忌nc糟er,而MI纏DI接口好是/d政ev沖/m榴id樓i?;焐纫粼O(shè)賽備(燥如音鏈量、襖平衡吧或者倆貝斯厲)可遍以通希過/d懸ev憑/m盲ix啊er接口屢來控嫁制。伸為了煎滿足監(jiān)兼容纏性的擺需要欺,還栗提供寬了一刮個/d汗ev康/a悠ud呈io設(shè)備掘,該繭設(shè)備母可用銀于讀SU各N_砌la山w的聲該音數(shù)潛據(jù),倉但它個是映亦射到店數(shù)字押取樣鞏設(shè)備義的。音頻拉編程輛接口程序蘇員可軌以使村用io發(fā)ct掛l()來操粘作這悠些設(shè)星備,io綢ct村l()請求恭是在li亦nu恥x/陷so筆un毯dc工ar叨d.延h中定劑義的銳,它任們以SN假DC啊TL樣_開頭嫁。首集先使悄用op景en系統(tǒng)漲調(diào)用河建立哨起與撥硬件婆間的爭聯(lián)系骨,此平時返桌回的皮文件耗描述斑符將涼作為債隨后撿操作炮的標(biāo)濫識;棗接著敘使用re大ad系統(tǒng)碰調(diào)用各從設(shè)撒備接悶收數(shù)搶據(jù),勇或者揭使用wr癥it近e系統(tǒng)缸調(diào)用投向設(shè)碗備寫飼入數(shù)惡據(jù),姻而其子他所季有不勞符合銅讀/寫這浮一基頑本模宇式的劃操作認(rèn)都可正以由io語ct專l系統(tǒng)血調(diào)用灰來完案成;爆最后匪,使戰(zhàn)用cl偉os抵e系統(tǒng)叛調(diào)用換告訴Li掃nu雷x內(nèi)核茶不會括再對罪該設(shè)雅備做部進(jìn)一珍步的珠處理途。1.op屑en系統(tǒng)短調(diào)用系統(tǒng)墾調(diào)用op療en可以娛獲得分對聲遠(yuǎn)卡的絕訪問撫權(quán),囑同時程還能油為隨廉后的冊系統(tǒng)加調(diào)用研做好逐準(zhǔn)備南,其衫函數(shù)喬原型繁如下鍋所示潤:in甚top嶄en認(rèn)(c胞on微stch王ar元*船pa至th炮na館me揪,in檢tfl軌ag攪s,in賄tmo鬧de返);參數(shù)pa顧th嚼na噴me是將裹要被筐打開具的設(shè)浪備文君件的歪名稱尼,對塔于聲紙卡來頌講一哨般是/d聰ev姻/ds寺p。參河數(shù)fl累ag肉s用來勿指明棋應(yīng)該傷以什扯么方腐式打卸開設(shè)俯備文乘件,突它可世以是O_袖RD穗ON幼LY、O_皇WR泛ON殖LY或者O_秋RD趁WR,分甘別表滋示以病只讀業(yè)、只父寫或肚者讀炎寫的剪方式封打開練設(shè)備存文件屯;參暫數(shù)mo習(xí)de通常宅是可為選的思,它壟只有勁在指釘定的貸設(shè)備鮮文件虛不存跌在時溫才會獲用到但,指賊明新坦創(chuàng)建是的文毫件應(yīng)郵該具錫有怎艇樣的擴(kuò)權(quán)限份。如螞果op華en系統(tǒng)井調(diào)用竟能夠茄成功采完成帖,它你將返來回一景個正儀整數(shù)智作為泡文件隸標(biāo)志他符,沃在隨餡后的產(chǎn)系統(tǒng)俊調(diào)用立中需磨要用鉤到該豆標(biāo)志卸符。鎮(zhèn)如果op捉en系統(tǒng)遵調(diào)用葵失敗封,它惰將返凍回1,同宇時還聯(lián)會設(shè)買置全考局變兩量er琴rn秀o,指糠明是些什么器原因殖導(dǎo)致值了錯悲誤的港發(fā)生主。2.re矮ad系統(tǒng)津調(diào)用re嫩ad用來送從聲跪卡讀區(qū)取數(shù)嗽據(jù):in重tre亮ad薄(i新ntfd,持ch旅ar蔬*bu底f,si泥ze彈_tco凝un妖t)搏;參數(shù)fd是設(shè)室備文亭件的忘標(biāo)志惕符,鞋它是唐通過率之前層的op千en系統(tǒng)莊調(diào)用彼獲得包的;殊參數(shù)bu麻f是指站向緩磁沖區(qū)委的字飄符指菜針,繼它用鐮來?;畲鎻镍B聲卡半獲得減的數(shù)麻據(jù);暑參數(shù)co愁un室t則用耽來限撒定從小聲卡姑獲得極的最悅大字眾節(jié)數(shù)度。如造果re啊ad系統(tǒng)甲調(diào)用肌成功毒完成透,它乳將返影回從遇聲卡匠實際奮讀取盟的字簽節(jié)數(shù)振,通僻常情花況會催比co玻un規(guī)t的值惕小一云些;榮如果re榆ad系統(tǒng)偷調(diào)用囑失敗泡,它墾將返肉回1,同培時還旋會設(shè)戚置全立局變秒量er看rn達(dá)o,來碌指明鑼是什筋么原局因?qū)Х钢铝松戾e誤悔的發(fā)麗生。3.wr特it請e系統(tǒng)遮調(diào)用wr嘩it覽e用來淡向聲溝卡寫煎入數(shù)孫據(jù),卡其函挖數(shù)原千型如贈下所慘示:si驅(qū)ze棵_twr途it中e(宿in聾tfd,波co垃ns妨t掩ch疾ar斑*bu鑼f,si晨ze拒_tco肌un盛t)嗓;系統(tǒng)有調(diào)用wr既it調(diào)e和系見統(tǒng)調(diào)丙用re暖ad在很婆大程兔度是謙類似例的,秤差別爺只在謝于wr烘it將e是向哀聲卡終寫入仗數(shù)據(jù)案,而re毛ad則是淺從聲漲卡讀禁入數(shù)句據(jù)。將參數(shù)fd同樣竹是設(shè)挪備文濱件的新標(biāo)志格符,息它也刷是通虹過之寶前的op匙en系統(tǒng)歇調(diào)用煤獲得杠的;活參數(shù)bu禮f是指偵向緩本沖區(qū)閘的字伯符指腥針,愚它保馳存著婦即將晴向聲逼卡寫系入的知數(shù)據(jù)弟;參井?dāng)?shù)co弄un夫t則用旨來限銜定向債聲卡暑寫入怨的最繞大字綱節(jié)數(shù)拒。如果wr駝it完e系統(tǒng)邁調(diào)用然成功剛完成閥,它朽將返菌回向起聲卡攔實際吧寫入拋的字國節(jié)數(shù)手;如屋果wr很it炒e系統(tǒng)疲調(diào)用窯失敗滲,它擱將返凍回1,同編時還漿會設(shè)添置全賽局變赴量er燃rn與o,來柏指明館是什母么原舉因?qū)谥铝遂o錯誤令的發(fā)隱生。惰無論乳是re棄ad還是wr潔it朱e,一富旦調(diào)戀用之略后,Li緩nu摘x內(nèi)核游就會非阻塞愁當(dāng)前象應(yīng)用腰程序潛,直考到數(shù)好據(jù)成因功地釘從聲賞卡讀鑄出或服者寫女入為挎止。4.io幅ct下l系統(tǒng)棚調(diào)用系統(tǒng)趟調(diào)用io沸ct賤l可以馳對聲括卡進(jìn)掃行控戒制,流凡是喬對設(shè)燙備文迅件的薪操作鞋不符佩合讀/寫基設(shè)本模溫式的周,都且是通蜜過io院ct閣l來完齊成的療,它挺可以聰影響際設(shè)備耍的行狐為,剪或者揀返回嗽設(shè)備各的狀骨態(tài),客其函詞數(shù)原槽型如重下所雙示:in賴tio山ct兔l(蛙in叨tfd,in邀tre盈qu延es討t,舅.快..委);參數(shù)fd是設(shè)虜備文匆件的躺標(biāo)志階符,攻它是仰在設(shè)般備打倦開時太獲得茫的;禍如果邊設(shè)備染比較晝復(fù)雜奸,那扔么對幅它的蜂控制攀請求裳相應(yīng)設(shè)地也稱會有猜很多黨種,額參數(shù)re商qu知es圖t的目亞的就隆是用糞來區(qū)遍分不鏡同的枯控制躁請求夸;通查常說笨來,剩在對茄設(shè)備繼進(jìn)行順控制墨時還初需要貢有其摔他參鵝數(shù),廣這要說根據(jù)配不同每的控糕制請贏求才悉能確考定,柿并且躬可能究是與蜻硬件艘設(shè)備貌直接慨相關(guān)轟的。5.cl銳os起e系統(tǒng)夕調(diào)用當(dāng)應(yīng)雕用程躲序使風(fēng)用完暑聲卡煤之后擾,需騾要用cl局os哨e系統(tǒng)寶調(diào)用兩將其盡關(guān)閉乳,以跑便及丑時釋茂放占酷用的音硬件舌資源涼,其籠函數(shù)競原型腰如下涉所示翠:in地tcl視os籮e(歉in蛙tfd);參數(shù)fd是設(shè)雕備文伸件的遲標(biāo)志湖符,吊它是爹在設(shè)葬備打姿開時罩獲得勸的。捉一旦劑應(yīng)用剛程序鞋調(diào)用詠了cl喊os口e系統(tǒng)瓶調(diào)用恩,Li腫nu鋤x內(nèi)核蛇就會病釋放慚與之欄相關(guān)褲的各弄種資合源,絕因此透建議凡在不箏需要框的時詢候盡樹量及印時關(guān)肺閉已冒經(jīng)打探開的寇設(shè)備藏。音頻反設(shè)備晚文件/d溝ev僚/sn好ds廈ta汽t設(shè)備妨文件/d胃ev戶/sn咱ds舟ta吊t是聲咳卡驅(qū)涉動程晨序提悠供的乘最簡屢單的沖接口營,通塘常它弦是一疑個只虎讀文粉件,傷作用紐奉也僅杠僅只薪限于救匯報抖聲卡伴的當(dāng)崖前狀胸態(tài)。刺一般鎮(zhèn)說來鑄,/d填ev驢/sn屯ds梢ta厚t是提滔供給劇最終辭用戶泳來檢臂測聲車卡的溝,不敘宜用漁于程特序當(dāng)詢中,緊因為焰所有再的信雀息都貿(mào)可以鉗通過io文ct瞞l系統(tǒng)濫調(diào)用贊來獲猶得。/d遇ev娘/ds冒p聲卡敬驅(qū)動燦程序熊提供斧的/d霸ev焦/ds模p是用譽于數(shù)軍字采膊樣和爐數(shù)字母錄音香的設(shè)饒備文貓件,追它對駝于Li拆nu激x下的斥音頻譽編程降來講贊非常握重要盆。向妨該設(shè)禍備寫暮數(shù)據(jù)慕即意趴味著夫激活民聲卡牛上的D/調(diào)A轉(zhuǎn)換堡器進(jìn)描行放蓄音,甲而從跑該設(shè)煎備讀擾數(shù)據(jù)騾則意業(yè)味著掌激活宏聲卡著上的A/栽D轉(zhuǎn)換希器進(jìn)對行錄擺音。速目前橋,許班多聲術(shù)卡都航提供礎(chǔ)有多僅個數(shù)恥字采嚷樣設(shè)期備,匙它們廣在Li轎nu蔽x下可傾以通參過/d勝ev趟/ds浮p等設(shè)視備文口件進(jìn)勸行訪磚問。/d逆ev憶/a岔ud鏟io/d坐ev東/a崇ud舊io類似碼于/d光ev合/ds岡p,它碰兼容釣于Su撇n工作脫站上熄的音創(chuàng)頻設(shè)務(wù)備,新使用冬的是mu-l怨aw編碼候方式禾。由傅于設(shè)刺備文們件/d祝ev激/a統(tǒng)ud椅io主要剩出于青對兼竭容性草的考響慮,再所以輩在新榴開發(fā)建的應(yīng)以用程頑序中栽最好飯不要辣嘗試煩用它淡,而曠應(yīng)該豬以/d掩ev亞/ds笑p進(jìn)行恨替代核。對獅于應(yīng)豬用程葬序來慨說,砌同一此時刻串只能振使用/d戶ev等/a雨ud嚴(yán)io或者/d粉ev宰/ds這p其中得之一不,因執(zhí)為它嘉們是梯相同機(jī)硬件半的不剝同軟尋件接送口。/d勾ev瘡/m繪ix蒜er在聲墨卡的缺硬件是電路野中,滾混音茶器(mi曉xe峽r)是投一個華很重?zé)捯募兘M成甜部分蒸,它段的作昨用是賭將多弄個信術(shù)號組血合或帆者疊扔加在脈一起巾,對淡于不說同的寧聲卡盛來說攜,其摘混音青器的短作用努可能鼠各不草相同趨。運挑行在Li勉nu光x內(nèi)核熄中的鹽聲卡警驅(qū)動決程序爭一般騾都會盲提供/d唉ev幣/m植ix鞏er這一糠設(shè)備走文件予,它胃是應(yīng)鈴用程慘序?qū)夯煲粝鬟M(jìn)頂行操嬸作的兔軟件欣接口半。/d變ev渠/s遣eq乳ue饑nc嶼er目前佳大多鍬數(shù)聲寸卡驅(qū)嘩動程膛序還滅會提球供/d眉ev顧/s故eq葛ue嗎nc雷er設(shè)備歇文件溜,用頁來對軋聲卡逃內(nèi)建莫的波同表合絡(luò)成器跡進(jìn)行圣操作旨,或嚇者對MI昨DI總線唱上的便樂器今進(jìn)行之控制驅(qū),通搶常只臟用于密計算撓機(jī)音醉樂軟拼件中夾。音頻稅設(shè)備留編程幼設(shè)計1.DS暈P編程DS最P是數(shù)奧字信誓號處樣理器頑(Di揭gi座ta扣l悉Si映gn柏al叢P移ro罷ce滔ss寇or)的嘴簡稱貼,它貌用來脈進(jìn)行此數(shù)字沿信號釘處理薯的特伐殊芯環(huán)片,劣聲卡蚊使用娛它來完實現(xiàn)朵模擬赤信號丸和數(shù)湖字信源號的漿轉(zhuǎn)換謊。聲瘋卡中坡的DS拔P設(shè)備出實際釀上包之含兩適個組舉成部陣分:奔在以手只讀粱方式籍打開朵時,寨能夠室使用A/朗D轉(zhuǎn)換鎮(zhèn)器進(jìn)仗行聲零音的錘輸入箏;而畜在以敢只寫稈方式真打開反時,句則能目夠使魚用D/煉A轉(zhuǎn)換蒙器進(jìn)豪行聲蛇音的只輸出領(lǐng)。嚴(yán)私格說勇來,Li交nu蘇x下的掩應(yīng)用屯程序冒要么軋以只幅讀方臉式打捏開/d鑰ev劉/ds準(zhǔn)p輸入成聲音泊,要季么以坊只寫仔方式?jīng)r打開/d他ev抗/ds妄p輸出盤聲音仇,但孔事實菊上,拿某些曠聲卡技驅(qū)動麗程序竄仍允敵許以奔讀寫鄭的方鄉(xiāng)豐式打領(lǐng)開/d漠ev延/ds此p,以摩便同出時進(jìn)玻行聲嚷音的繩輸入扁和輸田出。在從DS輔P設(shè)備牧讀取速數(shù)據(jù)夫時,票從聲國卡輸帥入的抵模擬貢信號鳳經(jīng)過A/脊D轉(zhuǎn)換采器變菌成數(shù)包字采楚樣后躁的樣露本,阿保存盯在聲斑卡驅(qū)牲動程前序的集內(nèi)核得緩沖止區(qū)中棵,當(dāng)孟應(yīng)用呼程序悉通過re宣ad系統(tǒng)攝調(diào)用叉從聲望卡讀塌取數(shù)肯據(jù)時榨,保朵存在孝內(nèi)核辣緩沖揀區(qū)中烈的數(shù)摩字采旗樣結(jié)遭果將鞠被復(fù)胞制到翻應(yīng)用駛程序殼所指逗定的渾用戶濫緩沖頌區(qū)中奪。需趣要指方出的斑是,巡壽聲卡苗采樣屈頻率卡是由喬內(nèi)核房誠中的捏驅(qū)動灑程序辰所決庭定的部,而混不取驗決于僵應(yīng)用療程序撞從聲思卡讀腦取數(shù)稀據(jù)的舅速度衛(wèi)。如架果應(yīng)幸用程臥序讀系取數(shù)觸據(jù)的支速度題過慢槽,以忽致低啊于聲嫌卡的譯采樣丟頻率膝,那毀么多貿(mào)余的吳數(shù)據(jù)持將會晝被丟圖棄;肥如果梁讀取糟數(shù)據(jù)齒的速掠度過竊快,艙以致體高于橡聲卡回的采待樣頻匠率,后那么梁聲卡煙驅(qū)動萬程序只將會遺阻塞住那些忽請求債數(shù)據(jù)蓮的應(yīng)屬用程摔序,廊直到甚新的送數(shù)據(jù)嚷到來備為止玻。在向DS腐P設(shè)備珍寫入就數(shù)據(jù)映時,餐數(shù)字?jǐn)_信號倆會經(jīng)頁過D/轎A轉(zhuǎn)換宮器變湖成模蜘擬信啦號,直然后瀉產(chǎn)生霸出聲艱音。吐應(yīng)用周程序秩寫入掃數(shù)據(jù)打的速煉度同鍛樣應(yīng)麥該與登聲卡陷的采香樣頻計率相尋匹配扔,過壁慢的歡話會歪產(chǎn)生桐聲音繩暫停共或者板停頓僑的現(xiàn)斥象,怪而過達(dá)快的涌話又霉會被尾內(nèi)核梅中的冷聲卡紅驅(qū)動夜程序借阻塞賽,直室到硬絞件有權(quán)能力乞處理蹤蝶新的躍數(shù)據(jù)調(diào)為止催。無論議是從播聲卡組讀取燒數(shù)據(jù)悲,或擴(kuò)是向套聲卡襯寫入粉數(shù)據(jù)鉗,事谷實上具都具槳有特訊定的令格式慶,默恒認(rèn)為8位無蠢符號撿數(shù)據(jù)腫、單拴聲道化、8k呼Hz采樣膨率,航如果歌默認(rèn)絡(luò)值無伐法達(dá)走到要識求,掀可以訪通過io賤ct或l系統(tǒng)且調(diào)用肌來改桌變它婚們。姜通常品情況晚下,途在應(yīng)短用程腥序中魄打開辛設(shè)備很文件/d唱ev今/ds富p之后盜,接倍著就稠應(yīng)該載為其榆設(shè)置據(jù)恰當(dāng)零的格療式,沿然后級才能鑒從聲秋卡讀仔取或體者寫牢入數(shù)杏據(jù)。對聲詞卡進(jìn)寧行編落程時市,首賞先要弓做的師是打費開與供之對擾應(yīng)的罵硬件穴設(shè)備褲,這勾是借拳助于op霞en系統(tǒng)侄調(diào)用肆來完彎成的訴,并奇且一卷般情愉況下縱使用樣的是/d總ev辟/ds見p文件勵。采裹用何池種模列式對吼聲卡毅進(jìn)行皆操作師也必霧須在芬打開植設(shè)備杏時指獸定,磁對于簡不支千持全盒雙工諷的聲蹈卡來周說,繞應(yīng)該激使用決只讀妄或者姜只寫霞的方獵式打菠開,得只有晌那些妥支持蛾全雙南工的前聲卡畢,才毒能以碎讀寫貿(mào)的方泳式打驕開,城并且部還要既依賴駝于驅(qū)妻動程闊序的捎具體枝實現(xiàn)回。Li聾nu月x允許肌應(yīng)用蔑程序登多次割打開克或者鍵關(guān)閉穴與聲覆卡對餡應(yīng)的司設(shè)備白文件糧,從款而能床夠很驢方便癥地在頭放音閑狀態(tài)菜和錄朱音狀迎態(tài)之變間進(jìn)部行切以換,裕建議裙在進(jìn)鋼行音滴頻編草程時觸只要善有可效能就幻玉盡量球使用菌只讀戴或者識只寫咬的方型式打棗開設(shè)沖備文咱件,患因為察這樣徹不僅浪能夠膏充分博利用嘉聲卡蜂的硬冰件資怒源,輝而且談還有貓利于散驅(qū)動卵程序雁的優(yōu)躁化。膚下面劑的代似碼示宮范了憤如何這以只茶寫方濕式打四開聲樣卡進(jìn)抬行放礦音操俯作:in涌tha建nd榴le午=腳o另pe灶n(染"/亡de墊v/ds師p",果O夫_W胃RO茅NL斷Y)益;if真(悔ha鉤nd貨le黎=虛=新-1衰)羽{pe天rr嘉or騙("谷op自en/d船ev紙/ds撿p")墾;re騎tu克rn拳-玻1;}運行曬在Li脾nu極x內(nèi)核松中的米聲卡辯驅(qū)動言程序籠專門謙維護(hù)擱了一僚個緩返沖區(qū)別,其矮大小脆會影腿響到斷放音攝和錄辰音時肥的效綁果,續(xù)使用io麥ct漠l系統(tǒng)六調(diào)用乘可以量對它堆的尺址寸進(jìn)陣行恰雖當(dāng)?shù)目拊O(shè)置勻。調(diào)怠節(jié)驅(qū)憂動程銅序中叨緩沖議區(qū)大耽小的炒操作引不是寬必需鋤的,秘如果戴沒有川特殊燃的要寬求,泰一般綠采用矮默認(rèn)綠的緩問沖區(qū)妙大小松就可乎以了蛛。但回需要船注意垮的是夢,緩干沖區(qū)凝大小楊的設(shè)啟置通薪常應(yīng)堂緊跟閑在設(shè)傳備文佩件打考開之輩后,榮這是爛因為紹對聲坑卡的望其他成操作互有可反能會胸導(dǎo)致列驅(qū)動扛程序革無法驢再修犁改其錄緩沖混區(qū)的抖大小陣。下嘉面的端代碼貧示范至了怎晚樣設(shè)心置聲堵卡驅(qū)哲動程頂序中亡的內(nèi)妨核緩爽沖區(qū)很的大安?。篿n壟tse鬧tt償in維g茶=護(hù)0x扭nn承nn槽ss蠶ss捧;in揭tre漏su澆lt蕩=io菌ct財l(姥ha魚nd森le,棵SN最DC滋TL絨_D我SP僻_S梳ET挖FR化AG炭ME常NT武,抖&s幼et返ti讀ng屈);if福(甲re煮su考lt鵲=岸=怨-1確)催{pe刊rr擁or市("昨io凝ct屬lbu你ff頌er守s搶iz鐘e"闊);re景tu甩rn買-嫂1;}在設(shè)術(shù)置緩與沖區(qū)獅大小優(yōu)時,庸參數(shù)se勻tt接in噸g實際立上由朵兩部姨分組坐成,扯其低16位標(biāo)揭明緩排沖區(qū)滅的尺析寸,謠相應(yīng)席的計租算公范式為bu吐ff幕er柏_s施iz兄e=冊2^拋ss隸ss,即支若參泰數(shù)se舒tt借in等g低16位的柏值為16,那斧么相
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育培訓(xùn)檔口租賃合同
- T-ZJCX 0046-2024 簾子線直捻機(jī)
- 二零二五年度公車私用行為規(guī)范與責(zé)任追究協(xié)議
- 二零二五年度全新碼頭租賃協(xié)議及倉儲服務(wù)合作協(xié)議
- 2025年度果園租賃與農(nóng)業(yè)科技研發(fā)合同
- 二零二五年度廣告代理合同解除與權(quán)益調(diào)整協(xié)議
- 2025年度高科技企業(yè)計件工資勞動合同
- 2025年度智能合同履約跟蹤與風(fēng)險控制管理辦法
- 2025年度消防設(shè)施定期維護(hù)與消防通道清理合同
- 二零二五年度美發(fā)店員工勞動健康保險與意外傷害合同
- 學(xué)校食品安全長效管理制度
- 滋補品項目效益評估報告
- 提綱作文(解析版)- 2025年天津高考英語熱點題型專項復(fù)習(xí)
- 2025年南京機(jī)電職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點試題含答案解析
- 2025年春新人教版歷史七年級下冊全冊課件
- 2025年浙江臺州機(jī)場管理有限公司招聘筆試參考題庫含答案解析
- 《中式風(fēng)格陳設(shè)》課件
- 《汽車空調(diào)工作原理》課件
- 2024年鄭州黃河護(hù)理職業(yè)學(xué)院單招職業(yè)技能測試題庫及解析答案
- 2025屆廣東省佛山一中石門中學(xué)高考沖刺押題(最后一卷)數(shù)學(xué)試卷含解析
- 2024-2030年中國氣象服務(wù)行業(yè)深度調(diào)查及投資戰(zhàn)略建議報告
評論
0/150
提交評論