
14.04.2015, 16:59
|
Новичок
|
|
Регистрация: 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;
|