public override void HandleCommand(int itemIndex) { if (itemIndex == 0) { string url; switch (Source.Number) { case 1: url = "http://www.radioswh.lv/eters/pedejas-50-dziesmas/"; break; case 2: url = "http://www.radioswhplus.lv/последние-50-песен/"; break; case 3: url = "http://old.radioswh.lv/rss/rock_playlist.html"; break; case 4: url = "http://www.spinfm.lv/eters/pedejas-50-dziesmas/"; break; default: url = "http://radioswhgold.lv/dziesmas"; break; } DefaultProgram.OpenPage(url); return; } if (itemIndex == archiveIndex) { DefaultProgram.OpenPage(string.Concat(Source.HomepageUrl, "player?archive=", TimeZoneInfo.ConvertTime(DateTime.UtcNow, Source.Timezone).ToString("yyyy-MM-dd"))); // Neņem vērā faktu, ka SpinFM nav brīvdienu arhīva un tas mēdz kavēties par nedēļu. return; } StudioWindow.Open("Tiešraide no studijas", videoUrl, 640, 360, @"chunklist_w([0-9]+)\.m3u8"); }
public override void HandleCommand(int itemIndex) { // http://www2.mixnews.lv/radio_mixfm/live/ ir rtmpt://live.mixnews.lv/live/mp4:mixfm, no kura iegūta m3u8 adrese // Tāpat http://www2.mixnews.lv/radio_baltcom/live/ lieto RTMP. StudioWindow.Open(Items[0], Source.Number == 2 ? "http://live.mixnews.lv/live/mp4:mixfm/playlist.m3u8":"http://live.mixnews.lv/live/mp4:baltkom/playlist.m3u8", 640, 360, @"chunklist\.m3u8\?wowzasessionid=[0-9]+"); }
public override void HandleCommand(int itemIndex) { // Atskaņotājs atrodas lapā http://echo.msk.ru/set/, kura ielāde sekojošo adresi. Flash versijā ar RTMP protokolu ir pieejamas vairākas plūsmas, bet M3U8 variantā tās visas saliktas vienā kadrā (dažreiz kadrs var attēlot arī vienu plūsmu). string sessionId; // Adresē mainās sesijas identifikators, tāpēc to katru reizi jāpārlādē. // Lai gan no lappuses var ņemt pilnu adresi, kopš reizes tā ir mainījusies Flash klientam, neatbilst patiesībai M3U8 versijai, tāpēc pagrābj tikai sesijas numuru. using (var client = new ProperWebClient()) sessionId = Regex.Match(client.DownloadString("http://echomsk.onlinetv.ru/widget/live/echomsk.html"), @"\.m3u8\?s=[a-z0-9]+").Value; StudioWindow.Open(Items[0], "http://prague1.setevisor.tv:1935/echomsk/_definst_/echomsk.stream/playlist" + sessionId, 640, 480, @"playlist\.m3u8\?[^\n]+"); // Aiz jautājumzīmes wowzasessionid un tā pati drošības sesija. }
public override void HandleCommand(int itemIndex) { switch (Source.Number) { case 1: StudioWindow.Open(Items[0], "http://185.8.60.8/capitalfm.m3u8", 720, 436, @"http://185\.8\.60\.8/hls-live/livepkgr/_definst_/capitalfmevent/capitalfmlive\.m3u8"); break; case 3: StudioWindow.Open(Items[0], "http://r.rigaradio.lv:443/live/playlist.m3u8", 852, 480, @"video2-2\/playlist\.m3u8"); // Sesijas numurs ir TS failu nevis atskaņošanas sarakstu nosaukumā. // http://api.rigaradio.lv/2/onair/stream/current.json ņemts no iPhone lietotnes un satur skaņas un bildes plūsmu adreses. // http://r.rigaradio.lv:443/live/playlist.m3u8 satur divas adreses, kuru apraksts ir vienāds, bet faktiski pirmajā ir mazāka bilde (480x270). Šeit lieto otro. break; } }
public override void HandleCommand(int itemIndex) { // Majakam ir triju kvalitāšu plūsmas, paņem labāko. Aiz jautājuma zīmes nāk tie paši parametri, kuri ir playlist adresē, bet to secība lēkā. StudioWindow.Open(Items[0], "http://testlivestream.rfn.ru/live/smil:mayak.smil/playlist.m3u8?auth=vh&cast_id=81", 768, 576, @"chunklist_b1600000\.m3u8\?[^\n]+"); }
public override void HandleCommand(int itemIndex) { StudioWindow.Open(Items[0], Source.Number == 1 ? "http://muste.radio.org.lv/livea/mp4:rez3.mp4_360p/playlist.m3u8":"http://muste.radio.org.lv/live/mp4:lr4h/playlist.m3u8", 640, 360, @"chunklist\.m3u8\?wowzasessionid=[0-9]+"); }