C语言wav语音头文件,如何给mp3文件添加wav头文件

已经问了一个多星期了,实在不想问这个转换问题了,原以为就快解决了,但又遇到了问题。o(︶︿︶)o 唉,纠结。微软的ppt可以读取MP3文件,但是当插入mp3文件的时候不能将mp3文件作为一个对象插入到ppt中,插入的只是一个路径,而wav文件却可以,因为它只允许wav文件这样做,但是,如果将MP3文件用代码直接转换成wav文件,文件将是原来mp3的数倍大小,而且转换速度也不容乐观;我找资料了解到了ppt读取wav文件的特点,只读取它的头部(这是我在一个牛人的博客里面看到的),所以我想将每个mp3文件加一个wav文件头。

各位大虾,我现在已经知道了如何读取mp3文件,知道如何操作mp3文件了,但是现在面临一个问题了,如何给mp3文件添加文件头,我看了一下wav文件的文件头格式,有42个字节,有的可能还有44个字节,格式是这样的

RIFF10018WAVEfmt16111102518data9981,数字代表一些值,字母是wav文件的一些标志,当我将这一行代码插入到每个MP3文件的时候,把mp3文件在此插入到ppt中,仍旧是个地址,没有插入整个MP3对象,请问这是什么原因。谢谢。

由于此问题困扰太久,急需解决,所以多给点分了,呵呵

下面是我的代码:

private FileStream fs;

//MP3文件路径

string filename = "F:\\1.mp3";

//42个字节的wav文件头部

byte[] wavhead = new byte[42] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite);

wavhead = System.Text.Encoding.GetEncoding("GBK").GetBytes("RIFF10018WAVEfmt16111102518data9981");

fs.Seek(0, SeekOrigin.Begin);

fs.Write(wavhead, 0, wavhead.Length);

fs.Read(head, 0, head.Length);

fs.Seek(-128, SeekOrigin.End);

fs.Read(tail, 0, 128);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值