网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
生成一个波文件
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

Type  

TPCMWaveHeader = record  

  rID : array[0..3] of char; { ''RIFF'' Identifier }  

  rLen : longint;  

  wID : array[0..3] of char; { ''WAVE'' Identifier }  

  fId : array[0..3] of char; { ''fmt '' Identifier }  

  fLen : longint; { Fixed, must be 16 }  

  wFormatTag : word; { Fixed, must be 1 }  

  nChannels : word; { Mono=1, Stereo=2 }  

  nSamplesPerSec : longint; { SampleRate in Hertz }  

  nAvgBytesPerSec : longint;  

  nBlockAlign : word;  

  nBitsPerSample : word; { Resolution, e.g. 8 or 16 }  

  dId : array[0..3]of char; { ''data'' Identifier }  

  dLen : longint; { Number of following data bytes }  

end;  

  

procedure WritePCMWaveFile(Filename : string; Resolution, Channels, Samplerate, Samples : integer; Data : Pointer);  

var h : TPCMWaveHeader;  

  f : file;  

  databytes : integer;  

begin  

  DataBytes:=Samples;  

  DataBytes:=DataBytes*Channels; { double if stereo }  

  DataBytes:=DataBytes*(Resolution div 8); { double if 16 Bit }  

  

  

  FillChar(h,SizeOf(TPCMWaveHeader),#0);  

  with h do  

  begin  

  rID[0]:=''R'';  

  rID:=''I'';  

  rID:=''F'';  

  rID:=''F''; { 1st identifier }  

  rLen:=DataBytes+36;  

  wID[0]:=''W'';  

  wID:=''A'';  

  wID:=''V'';  

  wID:=''E''; { 2nd identifier }  

  fId[0]:=''f'';  

  fId:=''m'';  

  fId:=''t'';  

  fID:=Chr($20); { 3rdidentifier ends with a space character }  

  fLen:=$10; { Fixed, must be 16 }  

  wFormatTag:=1; { Fixed, must be 1 }  

  nChannels:=Channels; { Channels }  

  nSamplesPerSec:=SampleRate; { Sample rate in Hertz }  

  nAvgBytesPerSec:=SampleRate*Channels*trunc(Resolution div 8);  

  nBlockAlign:=Channels*(Resolution div 8); { Byte order, see below }  

  nBitsPerSample:=Resolution;  

  dId[0]:=''d'';  

  dId:=''a'';  

  dId:=''t'';  

  dId:=''a''; { Data identifier }  

  dLen:=DataBytes; { number of following data bytes }  

  end;  

  AssignFile(f,filename);  

  ReWrite(f,1);  

  BlockWrite(f,h,SizeOf(h));  

  BlockWr
  • 下一篇资讯: 去掉TWebBrowser的滚动条
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号