При записи звуковых данных в буфер DirectSound возникает ошибка. Данные находятся в памяти. При трассировке прораммы компилятором пропускается строка непосредственно копирования данных в буфер DS (Move(....)). В чем здесь может быть проблема? Код программы:
Procedure Samplу2DSBuffer(Buf: IDirectSoundBuffer; SParam: TSample);
var
Temp: Pointer;
Res: HResult;
AudioPtr1, AudioPtr2: Pointer;
AudioBytes1, AudioBytes2: LongWord;
begin
Res:= Buf.Lock(0, SParam.DataSize, AudioPtr1, AudioBytes1, AudioPtr2, AudioBytes2, 0);
if Res = DSERR_BUFFERLOST then
begin
Buf.Restore;
Buf.Lock(0, SParam.DataSize, AudioPtr1, AudioBytes1, AudioPtr2, AudioBytes2, 0)
end;
Move(SParam.Data^, AudioPtr1^, AudioBytes1);
if AudioPtr2 <> nil then
begin
Temp:=Sparam.Data;
Inc(Integer(Temp), AudioBytes1);
Move(Temp^, AudioPtr2^, AudioBytes2);
end;
Buf.UnLock(AudioPtr1, AudioBytes1, AudioPtr2, AudioBytes2);
end;
Буду благодарен за любые советы....