进来做关于音频方面的项目,由于是初学者,难免纸上谈来,发现音频这块确实鼻祖了,难怪入门有些困难,但是也就那么回事,下面分析汇总一下各种音频格式的文件
首先来说说WAV格式的文件吧
比特率是176kbps,而1ch中为22050Byte/s,换算一下就是22050*8/1024 == 176kbps
提取数据出来
#include <iostream>
#include <fstream>
using namespace std;
struct wav_struct
{
unsigned long file_size;
unsigned short channel;
unsigned long frequency;
unsigned long bps;
unsigned short sample_num_bit;
unsigned long data_size;
unsigned char *data;
};
int main(int argc,char **argv)
{
fstream fs;
wav_struct wav;
fs.open("output.wav,ios::binary|ios::in");
fs.seek(0,ios::end);
wav.file_size = fs.tell();
fs.seek(0x14);
fs.read((char *)&wav.channel,sizeof(wav.channel));
fs.seek(0x18);
fs.read((char *)&wav.frequencyl,sizeof(wav.frequency));
fs.seek(0x1c);
fs.read((char *)&wav.bps,sizeof(wav.bps));
fs.seek(0x22);
fs.read((char *)&wav.sample_num_bit,sizeof(wav.sample_num_bit));
fs.seek(0x28);
fs.read((char *)&wav.data_size,sizeof(wav.data_size));
wav.data = new unsigned char[wav.data_size];
fs.seek(0x2c);
fs.read((char *),wav.data,sizeof(char *)*wav.data_size);
fs.close();
delete[] wav.data;
}