Wave文件头的第$18~$19和$1C~$1D字节记录WAVE的采样频率
WAVFile.pas单元
===============================================================================
unit WAVFile;
interface
uses
Classes, SysUtils;
const
{ Used with ChannelMode property }
CHANNEL_MODE_MONO = 1; { Index for mono mode }
CHANNEL_MODE_STEREO = 2; { Index for stereo mode }
{ Channel mode names }
CHANNEL_MODE: array [0..2] of string = ('Unknown', 'Mono', 'Stereo');
type
{ Class TWAVFile }
TWAVFile = class(TObject)
private
{ Private declarations }
FValid: Boolean;
FChannelModeID: Byte;
FSampleRate: Word;
FBitsPerSample: Byte;
FFileSize: Cardinal;
procedure FResetData;
function FGetChannelMode: string;
function FGetDuration: Double;
public
{ Public declarations }
constructor Create; { Create object }
function ReadFromFile(const FileName: string): Boolean; { Load header }
property Valid: Boolean read FValid; { True if header valid }
property ChannelModeID: Byte read FChannelModeID; { Channel mode code }
property ChannelMode: string read FGetChannelMode; { Channel mode name }
property SampleRate: Word read FSampleRate; { Sample rate (hz) }
property BitsPerSample: Byte read FBitsPerSample; { Bits per sample }
property FileSize: Cardinal