发信人: teleme(PassWord)
整理人: teleme(2001-02-11 11:32:28), 站内信件
|
用Dephi对缓冲区进行初始化
发信人: fttp()
function TZounds.AppCreatBasicBuffer(lpDirectSound: IDIRECRTSOUND);
var ADirectSoundBuffer: IDIRECTSOUNDBUFFER; FileSize: Integer;
WaveFormatInfo: PWavFormatEx):Boolean;
var
BufferDesc: TDSBUFFERDESC;
br: HRESULT;
begin
FillChar(BufferDesc,sizeof(TDSBUFFERDESC),#0);
BufferDesc.dwSize := sizeof(TDSBUFFERDESC);
BufferDesc.dwFlags := DSBCAPS_CTRLDEFAULT or DSBCAPS_STATIC or
DSBCAPS_GETCURRENTPOSITION2;
BufferDesc.dwBufferBytes := FileSize;
BufferDesc.lpwfxFormat := WaveFormatInfo;
hr := lpDirectSound.CreatSoundBuffer(BufferDesc,ADirectSoundBuffer,n
il);
if(DS_OK = hr) then
begin
Result := TRUE;
Exit;
end;
end;
//可以用这种方式来调用下列方法:
AppCreateBasicBuffer(FDirectSound,FBufferInfo[Buffer].DirectSoundBuffe
r,
Size,FBufferInfo[Buffer].WaveFormatInfo)
//AppCreateBasicBuffer 方法是用来填写一条描述DirectSound缓冲区的纪录,
并把它传递给
IDirectSound接口的CreateSoundBuffer方法。
而以上调用使用了FBufferInfo结构的字段,作用是:
FBufferInfo.WaveFormatInfo结构在另一个用于获得读Wave文件所需信息
的过程中被填写。
|
|