Wave 文件(6): 获取 Wave 文件的波形数据

读取函数及测试代码:

 
 
 Unit1;




  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;


  TForm1 = (TForm)
    Button1: TButton;
     Button1Click(Sender: TObject);
  ;


  Form1: TForm1;





 MMSystem;

 GetWaveData(FilePath: ;  stream: TMemoryStream): Boolean;

  hFile: HMMIO;
  ckiRIFF,ckiData: TMMCKInfo;

  Result := False;
  hFile := mmioOpen(PChar(FilePath), , MMIO_READ);
   hFile =   Exit;

  ZeroMemory(@ckiRIFF, SizeOf(TMMCKInfo));
  ZeroMemory(@ckiData, SizeOf(TMMCKInfo));
  ckiData.ckid := mmioStringToFOURCC(, );

    mmioDescend(hFile, @ckiRIFF, , MMIO_FINDRIFF);

     (ckiRIFF.ckid = FOURCC_RIFF) 
     (ckiRIFF.fccType = mmioStringToFOURCC(,)) 
     (mmioDescend(hFile, @ckiData, @ckiRIFF, MMIO_FINDCHUNK) = MMSYSERR_NOERROR) 
    
      stream.Size := ckiData.cksize;
      Result := (mmioRead(hFile, stream.Memory, ckiData.cksize) = ckiData.cksize);
    ;
  mmioClose(hFile, );
;

 TForm1.Button1Click(Sender: TObject);

  FilePath = ;

  stream: TMemoryStream;

  stream := TMemoryStream.Create;

   GetWaveData(FilePath, stream) 
    ShowMessageFmt(, [stream.Size]); 

  stream.Free;
;

.

转载于:https://www.cnblogs.com/lzh-boy/archive/2010/01/13/1646579.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值