Показать сообщение отдельно
Старый 17.03.2012, 11:40   #28
duser
Новичок
 
Регистрация: 09.03.2012
Сообщений: 12
Поблагодарил: 2
Поблагодарили 0 раз за 0 сообщений
Репа: 0
Да никак не получается с параллельным проигрыванием...
---------------------------------------------------------------------
Здравствуйте Autumnus...

Вроде бы этот код должен воспроизвести RAW PCM из буфера..., или я не правильно делаю???

procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
...


bufStream := 'RIFF WAVEfmt '+#$10+#0+#0+#0+#01+#0+#01+#0+#$40+#$1F+#0+#0+#$80 +#$3E+#0+#0+#02+#0+#$10+#0+'data ';

ApdComPort1.GetBlock(buf, Count);

with TMemoryStream.Create do begin
try
SetSize(44 + Count);
Seek(0, soFromBeginning);
WriteBuffer(bufStream[1], 44);
Seek(44, soFromBeginning);
WriteBuffer(buf, Count);
Seek(4, soFromBeginning);
dk:=Count-8;
WriteBuffer(dk, 4);
Seek(40, soFromBeginning);
WriteBuffer(Count, 4);
Seek(0, soFromBeginning);

PlaySound(Memory, 0, SND_MEMORY or SND_SYNC);
finally
Free;
end;
end;
...
end;

Последний раз редактировалось Vasilio; 19.03.2012 в 13:32. Причина: Сообщения, идущие подряд, объединены.
duser вне форума   Ответить с цитированием Вверх