高手来看:声音文件组合问题

Firec 2003-08-21 12:06:23
如何将多个wav文件在内存中组合储存起来?望高手赐教。
...全文
36 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
copy_paste 2003-08-21
  • 打赏
  • 举报
回复
多个wave文件
1:选择组合后wave文件的格式,因为有可能多个wave文件,有不同的格式
2:
先写入目标wave格式,wave文件格式见后面。
while FileCount > 0 do
begin
读wave文件的头格式,读出它的wave数据格式(TWaveFormatEx)
如果和目标数据格式相同,则直接将wave文件的数据文件写入到文件尾
不同,则转换数据格式。
Dec(FileCount)
end;

读wave格式
我只知道PCM的wave格式,其它的不知
PCM的一般是58字节,你到这里看它的格式:
http://expert.csdn.net/Expert/TopicView1.asp?id=2117712
通过它,可以读出一个wave文件的TWaveFormatEx,和它的数据文件。
则后看Format是否和目标的Format是否相同,相同,则直接写入文件
不同,则进入转换处理

转换:
acmStreamOpen(...);
acmStreamPrepareHeader(...);
acmStreamConvert(...);
acmStreamUnPrepareHeader(...);
acmStreamClose(...);

转换后,将转换后的数据写入到目标文件就行了。


代码偶就不会写了,你找找资料看看。
那些acm函数你到playicq,应该很多关于msacm.pas的,还有还有acmConvertor就是这个例子,看看无妨。
Firec 2003-08-21
  • 打赏
  • 举报
回复
望告之,在线等待

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧