如何合并多个wav文件?让多个短小的声音文件合并成一个声音文件一次播放,如何实现?
解决方案 »
- 谁用VB做过监控方面的软件没?
- 这种35(10) 30(05) 00(21) 05(81) 102(08) 以n(x)形式组成的字符,如何以n为判断条件对n(x)排序?
- CSDN查询用户在哪啊?
- 各位高手:能帮助实现保护软件知识产权的方法
- 焦急啊,向高手请教!
- 急!MSHFlexGrid控件显示数据的排序问题 马上结题
- VB菜鸟就教VB大虾!
- VB 连接 远程 web 服务器的MSSQL数据库问题
- 国产olap工具软件,功能直逼BO,Brio,解决报表与数据分析的完美解决方案,为您的软件添加一付翅膀——增加OLAP(数据仓库之在线分析)功能
- scroll bar的问题
- vb中继承及分辨率问题
- vb中如何进行内存管理啊?
比如 文件头+长度+正文+文件尾
能不能通过程序把文件分离,文件头文件尾不变,长度和正文相连接?
类似
文件一:AAA1024XIXIBBB
文件二:AAA2048HAHABBB
希望能两个文件连接之后变成AAA3072XIXIHAHABBB
而不是用COPY命令形成的AAA1024XIXIBBBAAA2048HAHABBB?
希望能两个文件连接之后变成AAA3072XIXIHAHABBB
而不是用COPY命令形成的AAA1024XIXIBBBAAA2048HAHABBB?
-----------------------------------------------------copy后面加/b是二进制拷贝,拷贝后的文件可不像sandrew(阿昕) 说的那样,楼主可以试试用我说的方法连接.mpg文件,没问题的!!!
我先把WAV文件的格式告诉你,然后,你就读第二个WAV文件数据,把数据放在第一个WAV文件尾。这样,就可以了。 在Windows环境下,大部分的多媒体文件都依循着一种结构来存放信息,这种结构称为"资源互换文件格式"(Resources lnterchange File Format),简称RIFF。例如声音的WAV文件、视频的AV1文件等等均是由此结构衍生出来的。RIFF可以看做是一种树状结构,其基本构成单位为chunk,犹如树状结构中的节点,每个chunk由"辨别码"、"数据大小"及"数据"所组成。 辨别码由4个ASCII码所构成,数据大小则标示出紧跟其后数据的长度(单位为Byte),而数据大小本身也用掉4个Byte,所以事实上一个chunk的长度为数据大小加8。一般而言,chunk本身并不允许内部再包含chunk,但有两种例外,分别为以"RIFF"及"L1ST"为辨别码的chunk。而针对此两种chunk,RIFF又从原先的"数据"中切出4个Byte。 此4个Byte称为"格式辨别码",然而RIFF又规定文件中仅能有一个以"RIFF"为辨别码的chunk。 只要依循此一结构的文件,我们均称之为RIFF档。此种结构提供了一种系统化的分类。如果和MS一DOS文件系统作比较,"RIFF"chunk就好比是一台硬盘的根目录,其格式辨别码便是此硬盘的逻辑代码(C:或D:),而"L1ST"chunk即为其下的子目录,其他的chunk则为一般的文件。至于在RIFF文件的处理方面,微软提供了相关的函数。视窗下的各种多媒体文件格式就如同在磁盘机下规定仅能放怎样的目录,而在该目录下仅能放何种数据。 WAV为WAVEFORM(波形)的缩写。"RIFF"的格式辨别码为"WAVE"。整个文件由两个chunk所组成:辨别码"fmt"(注意,最后一个是空白字符!)及"data"。 在"fmt"的chunk下包含了一个PCMWAVEFORMAT数据结构,其定义如下: typedef struct pcmwaveformat - tag { WAVEFORMAT wf ; WORD wBitsPerSample; } PCMWAVEFORMAT; typedef struct waveformat - tag { WORD wFormatTag ; WORD nChannels; DWORD nSamplesPerSec; DWORD nAvgBytesperSec; WORD nBlockAlign; } WAVEFORMAT; 其意义分别为: wFormatTag:记录着此声音的格式代号,例如WAVE_FORMAT_PCM,WAVE_F0RAM_ADPCM等等。 nChannels:记录声音的频道数。 nSamp1esPerSec:记录每秒取样数。 nAvgBytesPerSec:记录每秒的数据量。 nBlockA1ign:记录区块的对齐单位。 wBitsPerSample:记录每个取样所需的位元数。 "data"Chunk包含真正的声音数据。Window目前仅提供WAVE_FORMAT_PCM一种数据格式,所代表的意义是脉派编码调变(Pu1se Code Modulation)。针对此格式,Windows定义了在"data"的chunk中数据的存放情形,四种不同频道数及取样所需的位元数以及位元位置的安排。 "RIFF" 频道0 频道0 频道0 频道0 xxxx nChannels=1,wBitsPerSample=8 "WAVE" 频0(左) 频道1(右) 频道0(左) 频道1 (右) "fmt " nChannels=2,wBitsPerSample=8 sizeof(PCMWAVEFORMAT) struct of PCMWAVEFORMAT 频道0(低位) 频道0(高位) 频道0(低位)频道0(高位) "data" nChannels=1,wBitsPerSample=16 xxxx 频道0(低位) 频道0(高位) 频道0(低位)频道0(高位) (低位) (高位) (低位) (高位) wave form data nChannels=2,wBitsPerSample=16 第一排表示单声道8位元,第二排表示双声道8位元,第三排表示单声道16位元,第四排表示双声道16位元。8位元代表音量大小由8个位元所表示,16位元则代表音量大小由16个位元所表示。理论上8位元可以表示0~255,16位元可表示0~65536,不过windows却定16位元其值的范围从-32168~32167。此外尚有一点要注意的是,0并不一定代表无声,而是由中间的数值来决定,也就是在8位元时为128,16位元时为0才是无声。所以,若程序设计时需放入无声的数据,糯特别注意声音格式是16或是8位元,以放入适当的值。