精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● Delphi>>其他>>用Dephi对缓冲区进行初始化

主题:用Dephi对缓冲区进行初始化
发信人: 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文件所需信息 
的过程中被填写。 


                           
 

[关闭][返回]