freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

wav文件處理-文庫吧

2025-08-02 20:37 本頁面


【正文】 ORMAT; WAVEFORMAT 結(jié)構(gòu)定義如下: typedef struct { WORD wFormatag。//編碼格式,包括 WAVE_FORMAT_PCM, WAVEFORMAT_ADPCM等 WORD nChannls。//聲道數(shù),單聲道為 1,雙聲道為 2。 DWORD nSamplesPerSec。//采樣頻率; DWORD nAvgBytesperSec; //每秒的數(shù)據(jù)量; WORD nBlockAlign。//塊對齊; }WAVEFORMAT; data子塊包含 WAVE文件的數(shù)字化波形聲音數(shù)據(jù),其存放格式依賴于 fmt子塊中wFormatTag成員指定的格式種類,在多聲道 WAVE文件中,樣本是交替出現(xiàn)的。如 16bit的單聲道 WAVE文件和雙聲道 WAVE文件的數(shù)據(jù)采樣格式分別如圖四所示: 16位單聲道: 采樣一 采樣二 …… 低字節(jié) 高字節(jié) 低字 節(jié) 高字節(jié) …… 16位雙聲道: 采樣一 …… 左聲道 右聲道 …… 低字節(jié) 高字節(jié) 低字節(jié) 高字節(jié) …… 圖四、 WAVE 文件數(shù)據(jù)采樣格式 聲音文件的聲音數(shù)據(jù)的讀取操作 操作聲音文件,也就是將 WAVE文件打開,獲取其中的聲音數(shù)據(jù),根據(jù)所需要的聲音數(shù)據(jù)處理算法,進行相應(yīng)的數(shù)學運算,然后將結(jié)果重新存儲與 WAVE格式的文件中去??梢允褂?CFILE類來實現(xiàn)讀取操作,也可以使用另外一種方法,拿就是使用 Windows提供的多媒體處理函數(shù)(這些函數(shù)都以 mmino打頭)。這里就介紹如何使用這些相 關(guān)的函數(shù)來獲取聲音文件的數(shù)據(jù),至于如何進行處理,那要根據(jù)你的目的來選擇不同的算法了。 WAVE文件的操作流程如下: 1)調(diào)用 mminoOpen函數(shù)來打開 WAVE文件,獲取 HMMIO類型的文件句柄; 2)根據(jù) WAVE文件的結(jié)構(gòu),調(diào)用 mmioRead、 mmioWrite和 mmioSeek函數(shù)實現(xiàn)文件的讀、寫和定位操作; 3)調(diào)用 mmioClose函數(shù)來關(guān)閉 WAVE文件。 下面的函數(shù)代碼就是根據(jù) WAVE文件的格式,實現(xiàn)了讀取雙聲道立體聲數(shù)據(jù),但是在使用下面的代碼過程中,注意需要在程序中鏈接 ,并且 包含頭文件 。 BYTE * GetData(Cstring *pString) //獲取聲音文件數(shù)據(jù)的函數(shù), pString參數(shù)指向要打開的聲音文件; { if (pString==NULL) return NULL。 HMMIO file1。//定義 HMMIO文件句柄; file1=mmioOpen((LPSTR)pString,NULL,MMIO_READWRITE)。 //以讀寫模式打開所給的 WAVE文件; if(file1==NULL) { MessageBox(WAVE 文件打開失?。?)。 Return NULL。 } char style[4]。//定義一個四字節(jié)的數(shù)據(jù),用來存放文件的類型; mmioSeek(file1,8,SEEK_SET)。//定位到 WAVE文件的類型位置 mmioRead(file1,style,4)。 if(style[0]!=39。W39。||style[1]!=39。A39。||style[2]!=39。V39。||style[3]!=39。E39。) //判斷該文件是否為 WAVE文件格式 { MessageBox(該文件不 是 WAVE格式的文件! )。 Return NULL。 } PCMWAVEFORMAT format。 //定義 PCMWAVEFORMAT 結(jié)構(gòu)對象,用來判斷 WAVE文件格式; mmioSeek(file1,20,SEEK_SET)。 //對打開的文件進行定位,此時指向 WAVE文件的 PCMWAVEFORMAT結(jié)構(gòu)的數(shù)據(jù); mmioRead(file1,(char*)amp。format,sizeof(PCMWAVEFORMAT))。//獲取該結(jié)構(gòu)的數(shù)據(jù); if(!=2)//判斷是否是立體聲聲音; { MessageBox(該聲音文件不是雙通道立體聲文件 )。 return NULL。 } mmioSeek(file1,24+sizeof(PCMWAVEFORMAT),SEEK_SET)。 //獲取 WAVE文件的聲音數(shù)據(jù)的大??; long size。 mmioRead(file1,(char*)amp。size,4)。 BYTE *pData。 pData=(BYTE*)new char[size]。//根據(jù)數(shù)據(jù)的大小申請緩沖區(qū); mmioSeek(file1,28+sizeof(PCMWAVEFORMAT),SEEK_SET)。//對文件重新定位; mmioRead(file1,(char*)pData,size)。//讀取聲音數(shù)據(jù); mmioClose(file1, MMIO_FHOPEN)。//關(guān)閉 WAVE文件; return pData。 } 使用 MCI方法操作聲音
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1