Internetowe radio *.ogg

0

Witam. Jak dokładnie działa radio internetowe? Chciałbym zrobić odtwarzacz czegoś takiego nadawanego w formacie *.ogg za pomocą C#. Wie ktoś jak to zrobić?

0

Nie wiem jak w ogg jak się bawiłem w pisanie czegoś takiego na Androida (to była zabawa a nie komercyjna aplikacja) to do otwierania MP3 podeszłesz następująco:
W osobnym wątku otwieram strumień z radiem. Odczytuję określoną ilość bajtów (ważne żeby to była wielokrotność bitrate) zapisuję do pliku i ustawiam plik w kolejce.
Główny wątek pobiera plik z kolejki odtwarza go i po odtworzeniu usuwa.
Powiem że działało tak sobie przy szybkim łączu (WiFi + ADSL nie najtańszy) dało się tego słuchać co kilkanaście minut następowało "zacięcie". Na wolnym łączu niestety słuchało się kilkusekundowych fragmentów.
Zakładam że trzeba dynamicznie dobierać rozmiar bufora - pliku na początku odtwarzać małymi porcjami tak żeby użytkownik nie czekał za długo na rozpoczęcie grania po czym powoli go powiększać. Jednak tego nie implementowałem.

0

No dodam od siebie że do tego wszystkiego dochodzi jeszcze kompresja dźwieku, którą autor też może włączyć do projektu.

0

Rozumiem, że chcesz odtwarzać istniejące stacje radiowe.

Po pierwsze, musisz dokładnie poznać protokół danego systemu nadającego takie radio, np. Icecast.

Moim zdaniem, dane dźwiękowe przesyłane z wykorzystaniem UDP, są to małe pakiety dźwiękowe z stemplem czasowym o zadanej długości dźwięku, odbiorca buforuje otrzymane pakiety, jeżeli danego pakietu nie otrzyma, to w jego miejsce wstawia ciszę. Po stronie nadawcy, każdy odbiorca to osobne połączenie, więc nadawca musi dysponować przepustowością będącą bitrate pomnożoną przez liczbę podłączonych radiosłuchaczy.

Potem oczywiście będzie potrzebna jakaś biblioteka, która pozwala dekompresować OGG Vorbis.

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