[Delphi Indy] Jak zrobić serwer pliku o zmiennej wielkości

0

Witam

Mam taki pewien problem.

Piszę prosty serwerek HTTP pliku, pliku którego wielkości się zmienia. Chodzi mi o taką sytuację np.
Ściągam sobie z internetu jakiś plik, wiem gdzie ten plik się ściąga, no i wiadomo że jego wielkość się zmienia co powiedzmy sekundę. Następnie uruchamiam serwer HTTP który będzie serwował ten ściągany plik, powiedzmy że plik jest mp3. Kolejną rzeczą jaką chce zrobić to we foobarze2000 chciałbym odsłuchać ten plik z mojego serwera przez foobar2000->Menu->Add Location... i adres np. http://localhost:8010/plik.mp3.

Oto moja procedura obsługi zdarzenia CommandGet serwera HTTP

PROCEDURE TF_Main.HTTPServerCommandGet(AThread: TIdPeerThread;  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
BEGIN
...
... // tutaj kod rozpoznający o jaki plik dokument chodzi w tym przypadku jest to plik.mp3 jak pisałem wyżej
...
     HTTPServer.ServeFile(AThread, AResponseInfo, "ściągany plik.mp3");
END;

No i problem jest w tym że foobar2000 zagra mi do momentu w którym zgłosił się do mojego serwera po plik, tzn tak jakby pobrał tylko tą wielkość pliku co w danym momencie jest ściągnięte.

I jak to zrobić?, żeby foobar2000 sobie odtwarzał ten plik jakby był cały,

Wiem że taki manewr działa co można sobie sprawdzić foobarem i podać mu jakiś plik mp3 gdzieś na serwerze i sobie będzie go ściągał i odtwarzał.

0

Widzę że mało popularny temat wywołałem, może trochę źle się wyraziłem :( ogólnie prosta to rzecz. Bo serwowanie pliku przez http przy pomocy Indy komponentów to pestka, tylko co zrobić kiedy ten plik serwowany zmienia swoją wielkość.
Wpadłem też znowu na inny pomysł, żeby uruchomić mały serwerek w Delphi , IceCast czyli radio, tam leci plik po kawałeczku. Znalazłem nawet gotowy taki serwer pod http://code.blitzaffe.com/pages/delphi/files/streaming_radio_library_58-50, ale on pobiera ze strumienia zewnętrznego dane, i serwuje sobie pod localhost:8000, tylko co musiałbym tam pozmieniać żeby dane pobierał z pliku i serwować go jako strumień radiowy...
Czy jest ktoś w stanie mi pomóc? A może ktoś coś takiego już napisał?

1 użytkowników online, w tym zalogowanych: 0, gości: 1