Показать сообщение отдельно
  #7  
Старый 14.04.2015, 16:59
ProDaNTe ProDaNTe вне форума
Новичок
 
Регистрация: 25.12.2011
Сообщения: 75
Репутация: 10
По умолчанию

Да, мой код очень грязный, но так как кода как такового там очень мало мне не доставляет это трудности, мне лишь интересует часть из нескольких строк про воспроизведение из потока
Код:
stop:Boolean;
Buffer: array [0..2047] of byte;
cli:integer;
Read:Cardinal;
  hUrl:HINTERNET;
  Header:String;
  Tim:TDateTime;
  memp,memn:Pointer;
  okplload:Boolean;
  kdob,pop:Int64;
  WHdr:TWAVHDR;
 
 
InternetReadFile(hUrl,@Buffer,sizeof(Buffer),Read);
 MusicBuffer.Write(Buffer,read);
PlaySize:=PlaySize+Read;
all:=all+Read;
 
 
if okplload=true then  begin
 
memp:=StreamToByteArray(kdob,MusicBuffer);
kdob:=MusicBuffer.Size;
BASS_ChannelLock(url_radio, true);
BASS_StreamPutData(url_radio,memp,MusicBuffer.Size-kdob);
BASS_ChannelLock(url_radio, false);
 BASS_ChannelPlay(url_radio, False);
 FreeMem(memp);
end;
 
if  (PlaySize>102400) and (okplload=false) then begin
 
kdob:= MusicBuffer.Size;
 memp:=StreamToByteArray(0,MusicBuffer);
 url_radio:=BASS_StreamCreateFile(True, memp, 0, MusicBuffer.Size, 0 {$IFDEF UNICODE} or BASS_UNICODE {$ENDIF});
  BASS_ChannelGetInfo(url_radio,WHdr.INFO);
  BASS_StreamFree(url_radio);
  FreeMem(memp);
   memp:=StreamToByteArray(0,MusicBuffer);
 url_radio:=BASS_StreamCreate(WHdr.INFO.freq, WHdr.INFO.chans, WHdr.INFO.flags, STREAMPROC_PUSH, NIL);
  BASS_ChannelLock(url_radio, true);
  BASS_StreamPutData(url_radio,memp,MusicBuffer.Size);
  BASS_ChannelLock(url_radio, false);
 BASS_ChannelPlay(url_radio, False);
 FreeMem(memp);
okplload:=true;
end;
Ответить с цитированием