高手救命呀!!!怎样编程把几个WAVE文件合并成一个文件。

时间:2022-03-17 15:24:11
想把几个Wave文件用编程的方式合并成一个文件,我头都想大了,还是不行请高手指教。

12 个解决方案

#1


建立进程,执行bat文件;

bat文件使用dos命令;

dos命令:
copy a.wav + b.wav +c.wav + .....+最后一个.wav  new.wav /b

#2


不会帮你UP,

#3


思路:
你可以用文件指针,打开一个文件,然后再用第二个指针打开第二个文件,将这个文件的内容追加到另外一个文件内容之后,应该是可以的.

#4


wave文件由文件头和语音数据正文组成,如果是相同格式的wave文件,则可以先打开(创建)目标文件,读取文件头,再将源文件的语音数据正文追加到目标文件的最后,再修改目标文件的文件头,将长度增加。
多个文件同理。

我想你应该问,wave文件的格式是怎么样的?
这个在网上找一下,汗牛充栋,呵呵。找不到再问我吧。

#5


wave 格式有很大区别,采样、频频、位数、通道共四项。如果都相同那么你拷贝合并就可以,如果不同就要转换了,这就比较麻烦。

#6


gz

#7


简单的文件合并是很可笑的。

研究一下,Multimedia API Reference,或者找找现成的控件,也许有。

#8


用声音文件编辑工具GoldWave

#9


你们说的文件格试我知道呀,但是我从另外一个文件里的DATA块里读出数据,然后再把它写入目标文件的DATA块后,没有反映呀原来的声音文还是可以听,而且和以前一样。不过我没有用修改他的文件大小,就是了,能不能告诉我怎么样去修改他的大小?我读出来是用PCMWAVEFORMAT 格式读出的,好像没有函数可能重设文件大小的。能不能提供一下?还有就是,有没有人用过 waveOutWrite函数播放过音频?有的话帮我给个代码?先谢了。

#10


文件头里面有两个域,一个是数据块大小,另外一个是文件大小,都必须增加。
至于放音,MSDN里面有例子,不算太复杂的。

#11


先用waveOutOpen打开音频设备,再用waveOutPrepareHeader往里送声音数据的buffer,再调用waveOutWrite就可以出声了,放完后再调用waveOutUnprepareHeader就可以了。

#12


这个问题我忆知道了谢谢大家的支持。

#1


建立进程,执行bat文件;

bat文件使用dos命令;

dos命令:
copy a.wav + b.wav +c.wav + .....+最后一个.wav  new.wav /b

#2


不会帮你UP,

#3


思路:
你可以用文件指针,打开一个文件,然后再用第二个指针打开第二个文件,将这个文件的内容追加到另外一个文件内容之后,应该是可以的.

#4


wave文件由文件头和语音数据正文组成,如果是相同格式的wave文件,则可以先打开(创建)目标文件,读取文件头,再将源文件的语音数据正文追加到目标文件的最后,再修改目标文件的文件头,将长度增加。
多个文件同理。

我想你应该问,wave文件的格式是怎么样的?
这个在网上找一下,汗牛充栋,呵呵。找不到再问我吧。

#5


wave 格式有很大区别,采样、频频、位数、通道共四项。如果都相同那么你拷贝合并就可以,如果不同就要转换了,这就比较麻烦。

#6


gz

#7


简单的文件合并是很可笑的。

研究一下,Multimedia API Reference,或者找找现成的控件,也许有。

#8


用声音文件编辑工具GoldWave

#9


你们说的文件格试我知道呀,但是我从另外一个文件里的DATA块里读出数据,然后再把它写入目标文件的DATA块后,没有反映呀原来的声音文还是可以听,而且和以前一样。不过我没有用修改他的文件大小,就是了,能不能告诉我怎么样去修改他的大小?我读出来是用PCMWAVEFORMAT 格式读出的,好像没有函数可能重设文件大小的。能不能提供一下?还有就是,有没有人用过 waveOutWrite函数播放过音频?有的话帮我给个代码?先谢了。

#10


文件头里面有两个域,一个是数据块大小,另外一个是文件大小,都必须增加。
至于放音,MSDN里面有例子,不算太复杂的。

#11


先用waveOutOpen打开音频设备,再用waveOutPrepareHeader往里送声音数据的buffer,再调用waveOutWrite就可以出声了,放完后再调用waveOutUnprepareHeader就可以了。

#12


这个问题我忆知道了谢谢大家的支持。