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