日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt 对 wav 音频文件进行剪切

發布時間:2024/5/8 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt 对 wav 音频文件进行剪切 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原理: 保存文件頭,再截取數據, 最后將兩者進行拼接

#pragma pack(push,1)// WAV格式struct WaveHeader {// RIFF 頭;char riff_fileid[4]; // "RIFF" 大端 "RIFF"塊(0x52494646),標記為RIFF文件格式quint32 riff_fileLen; // 塊數據域大小(Chunk Size),即從下一個地址開始,到文件末尾的總字節數,或者文件總字節數-8// 數據類型標識符;char waveid[4]; // "WAVE" 類型碼(Form Type),WAV文件格式標記,即"WAVE"四個字母// 格式塊中的塊頭;char fmt_chkid[4]; //"fmt" 子塊(0x666D7420),注意末尾的空格quint32 fmt_chkLen; // 子塊數據域大小 // 格式塊中的塊數據;quint16 wFormatTag; /* format type */ // 編碼格式(Audio Format),1代表PCM無損格式quint16 nChannels; /* number of channels (i.e. mono, stereo, etc.) */ // 聲道數(Channels),1或2quint32 nSamplesPerSec; /* sample rate */ // 傳輸速率(Byte Rate),每秒數據字節數,SampleRate * Channels * BitsPerSample / 8quint32 nAvgBytesPerSec; /* for buffer estimation */ // 每秒數據大小 每個采樣所需的字節數BlockAlign,BitsPerSample*Channels/8quint16 nBlockAlign; /* block size of data */ // 單個采樣位深(Bits Per Sample),可選8、16或32quint16 wBitsPerSample; // "data"子塊 (0x64617461)char data_chkid[4]; //"DATA" // 子塊數據域大小(SubChunk Size) 至此,共44字節大小 quint32 data_chkLen; // PCM音頻數據WaveHeader(){initHeader();}// 初始化WAV格式void initHeader(quint16 nChannelCnt = 2, quint32 nSampleRate = 44100, quint16 nBitsPerSample = 16){strcpy(riff_fileid, "RIFF");riff_fileLen = 36;strcpy(waveid, "WAVE");strcpy(fmt_chkid, "fmt ");fmt_chkLen = 16;wFormatTag = 1;nChannels = nChannelCnt;nSamplesPerSec = nSampleRate;wBitsPerSample = nBitsPerSample;nBlockAlign = nChannels * wBitsPerSample / 8; // 每秒數據大小(字節) = 采樣率 * 聲道數 * sample比特數 / 8nAvgBytesPerSec = nBlockAlign * nSamplesPerSec;strcpy(data_chkid, "data");data_chkLen = 0;}void setDataSize(int len){riff_fileLen += len;data_chkLen += len;} };#define WaveHeaderLength sizeof(WaveHeader)#pragma pack(pop) #include <QCoreApplication> #include <QFile> #include <QDebug>#include <fstream>int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);const qint64 SIZE = 1024 * 800;QString filename = "E:\\test.wav";QFile file(filename);file.open(QIODevice::ReadOnly);QFile fileSave("E:\\save_test.wav");fileSave.open(QIODevice::WriteOnly | QIODevice::Truncate);char data[SIZE];int nHeadSize = sizeof(WaveHeader);char* dataHead = new char[nHeadSize];int nReadHD = file.read(dataHead, nHeadSize);qint64 fileSize = file.size();qint64 seekPos = fileSize / 5; // 文件的起始位置// 11K、22K等的WAV文件要從數據的偶數字節截取才行。// 而8、16K等可從任意位置截取。// 因此將截取位置點調整在偶數就可以了。if(0 != seekPos % 2)seekPos -= 1;file.seek(seekPos);// file.seek(8024010);qDebug()<<file.pos();WaveHeader* pHead = (WaveHeader*)dataHead;pHead->data_chkLen = fileSize / 2 - seekPos; // 保存文件長度fileSave.write(dataHead, nHeadSize);// 文件的終止位置 fileSize / 2for (int i = 0; i < (fileSize / 2); i++){int nLen = file.read(data, SIZE);if(nLen > 0)fileSave.write(data, SIZE);elsebreak;}fileSave.close();file.close();delete dataHead;return a.exec(); }

總結

以上是生活随笔為你收集整理的Qt 对 wav 音频文件进行剪切的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天操天天弄 | 国产又黄又猛又粗 | 国产成人精品免费 | 高潮无码精品色欲av午夜福利 | 精品一区二区三区四区视频 | 中文字幕精品一区二区精 | 国产精品老熟女视频一区二区 | 久久亚洲AV成人无码一二三 | 极品白嫩的小少妇 | 国产精品网站视频 | 一级在线看 | 中文字幕免费高清在线观看 | 午夜视频福利在线观看 | 人妻妺妺窝人体色www聚色窝 | 日韩色综合网 | 中文字幕国产日韩 | 日本一区二区欧美 | 欧美激情视频一区二区三区 | 国产福利一区视频 | 日产久久久久久 | 日本xx视频免费观看 | 噼里啪啦动漫高清在线观看 | 欧美极品少妇xxxxⅹ猛交 | 国产毛片毛片毛片毛片毛片 | 久久综合一本 | 亚洲精品在线视频观看 | 黄色片链接 | 丝袜老师扒开让我了一夜漫画 | 激情无码人妻又粗又大 | 国产精品伦一区二区三级古装电影 | 欧美色图亚洲视频 | 91精品国产乱码久久 | 亚洲综合五月 | 欧美视频在线一区二区三区 | 国产成人区 | 91视频影院| 国产探花一区 | 风韵多水的老熟妇 | 看免费毛片 | 91波多野结衣 | 国产精品成人久久久 | 国产大片黄 | 国产剧情av引诱维修工 | 超碰在线播放97 | 蜜臀久久精品 | 人妻av一区二区 | 天天综合亚洲 | 中文字幕一区二区三区不卡 | va在线 | 超碰综合在线 | 成人在线影视 | 青青操国产视频 | 嫩草av91| 一级片视频在线观看 | 免费成人福利视频 | 久草资源站| 亚洲自拍中文 | 在线观看色视频 | 亚洲国产三级 | 夜夜操操操 | 初高中福利视频网站 | 日本一区二区不卡视频 | 色av一区| 色综合天天综合网天天看片 | 日韩视频在线观看一区 | 国产精品99久久久久久动医院 | 午夜欧美精品久久久久久久 | 色婷婷一区二区三区 | juliaann欧美二区三区 | 久久久精品久久久久 | 免费av动漫| 日韩亚洲视频在线观看 | 日本黄色大片免费看 | 国内偷拍精品视频 | 少妇高潮喷水在线观看 | 国产精品永久免费视频 | 欧美另类在线播放 | 天天干天天操天天玩 | 日本高清不卡码 | 精品盗摄一区二区三区 | a级片网址 | 亚洲一区和二区 | 国产妇女馒头高清泬20p多 | 69精品久久久久久久 | av免费成人 | 国产在线v | 一区二区久久精品66国产精品 | 日韩精品一区二区三区丰满 | 在线观看免费中文字幕 | 怡春院在线视频 | 亚洲欧美日韩第一页 | 性少妇mdms丰满hdfilm | 国产精品啪啪啪视频 | 91视频在线免费观看 | 色久av| 成年人网站在线 | 天堂精品一区二区三区 | 久久精品中文字幕 | 中文字幕免费在线观看 |