音频文件格式整理

进来做关于音频方面的项目,由于是初学者,难免纸上谈来,发现音频这块确实鼻祖了,难怪入门有些困难,但是也就那么回事,下面分析汇总一下各种音频格式的文件

首先来说说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;


}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值