wav转mp3 c语言源码,C/C++知识点之mp3格式转wav格式 附完整C++算法实现代码

该博客介绍了一个C++程序,用于将MP3文件解码为WAV格式,并计算加载和保存的耗时。程序包括MP3解码函数、WAV文件写入函数以及使用bench函数来衡量性能。
摘要由CSDN通过智能技术生成

auto const epoch = clock();

static double now()

{

return  (clock() - epoch);

};

template static double bench(const FN &fn)

{

auto took = -now();

return (fn(), took + now()) / 1000;

}

//写wav文件

void wavWrite_int16(char* filename, int16_t* buffer, int sampleRate, uint32_t totalSampleCount, int channels = 1) {

FILE* fp = fopen(filename, "wb");

if (fp == NULL) {

printf("文件打开失败.\n");

return;

}

//修正写入的buffer长度

totalSampleCount *= sizeof(int16_t)*channels;

int nbit = 16;

int FORMAT_PCM = 1;

int nbyte = nbit / 8;

char text[4] = { ‘R‘, ‘I‘, ‘F‘, ‘F‘ };

uint32_t long_number = 36 + totalSampleCount;

fwrite(text, 1, 4, fp);

fwrite(&long_number, 4, 1, fp);

text[0] = ‘W‘;

text[1] = ‘A‘;

text[2] = ‘V‘;

text[3] = ‘E‘;

fwrite(text, 1, 4, fp);

text[0] = ‘f‘;

text[1] = ‘m‘;

text[2] = ‘t‘;

text[3] = ‘ ‘;

fwrite(text, 1, 4, fp);

long_number = 16;

fwrite(&long_number, 4, 1, fp);

int16_t short_number = FORMAT_PCM;//默认音频格式

fwrite(&short_number, 2, 1, fp);

short_nu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值