Chargement en cours archives/radio_event.py 0 → 100644 +37 −0 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff from time import sleep from vlc import EventType, Media, MediaPlayer, MediaParseFlag, Meta def _media_cb(event, *unused): # XXX callback ... never called print(event) p = MediaPlayer() # cmd1 = "sout=file/ts:%s" % outfile media = Media("http://live.leanstream.co/CJOTFM-MP3") # , cmd1) # media = Media("http://direct.francemusique.fr/live/francemusique-midfi.mp3") # media.get_mrl() p.set_media(media) p.play() e = p.event_manager() e.event_attach(EventType.MediaMetaChanged, _media_cb, media) e.event_attach(EventType.MediaParsedChanged, _media_cb, media) # define the meta data to show meta = {Meta.Album: None, Meta.Genre: None, Meta.NowPlaying: None} while True: # loop forever # XXX using MediaParseFlag.local is not any different media.parse_with_options(MediaParseFlag.network, 2) # 2 sec timeout # XXX media.get_parsed_status() always returns .skipped for k in meta.keys(): v = media.get_meta(k) if v != meta[k]: # print("{} - {}".format(k, v)) print("{}".format(v)) meta[k] = v sleep(2) data/radios.csv +6 −5 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -5,11 +5,12 @@ No,Pays,Type,Nom,Url,Logo 4,France,Informations,France Info,http://direct.franceinfo.fr/live/franceinfo-midfi.mp3,france-info.jpeg 5,France,Généraliste,France Inter,http://direct.franceinter.fr/live/franceinter-midfi.mp3,france-inter.png 6,France,Généraliste,Europe 1,http://mp3lg4.tdf-cdn.com/9240/lag_180945.mp3,europe-1.jpeg 7,UK,Rock,Dépèche Mode,http://streaming.radionomy.com/wwwdepechemodebe-radio, 7,UK,Rock,Dépèche Mode,http://streaming.radionomy.com/wwwdepechemodebe-radio,radio.png 8,DE,Celtic,Live Ireland ch1,http://66.90.73.250:8080,live-ireland.png 9,DE,Celtic,Bretagne Blog,http://laut.fm/bretagneblog, 10,DE,Celtic,Highlander Radio Live Stream,http://50.7.71.27:9657, 11,DE,Celtic,Celtic Moon,http://streaming211.radionomy.com:80/CelticMoon, 9,DE,Celtic,Bretagne Blog,http://laut.fm/bretagneblog,radio.png 10,DE,Celtic,Highlander Radio Live Stream,http://50.7.71.27:9657,radio.png 11,DE,Celtic,Celtic Moon,http://streaming211.radionomy.com:80/CelticMoon,radio.png 12,DE,Celtic-punk,Celtic-Folk-Punk,http://streaming211.radionomy.com:80/Celtic-Folk-Punk, 13,DE,Hard-rock,100% Hardrock,http://streaming207.radionomy.com:80/100-HARD-ROCK, 14,DE,Rock,Virgin Rock 70,http://icy.unitedradio.it/VirginRock70.mp3, No newline at end of file 14,DE,Rock,Virgin Rock 70,http://icy.unitedradio.it/VirginRock70.mp3,radio.png 15,FR,Classic,Frane Musique,http://direct.francemusique.fr/live/francemusique-midfi.mp3, No newline at end of file main.py +1 −1 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -5,7 +5,7 @@ # import ---------------------------------- import csv from rw_pupitre import Pupitre from pupitre import Pupitre # installer le paquet python-vlc : sudo pip3 install python-vlc from vlc import Instance Chargement en cours poub.py +23 −30 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff from time import sleep from vlc import EventType, Media, MediaPlayer, MediaParseFlag, Meta import csv def _media_cb(event, *unused): # XXX callback ... never called print(event) logos = [["", "", "", "", ""], ["", "", "", "", ""], ["", "", "", "", ""], ["", "", "", "", ""]] p = MediaPlayer() # cmd1 = "sout=file/ts:%s" % outfile media = Media("http://live.leanstream.co/CJOTFM-MP3") # , cmd1) # media.get_mrl() p.set_media(media) p.play() def radios_display(): # récupération de la liste des radios (+infos) with open("./data/radios.csv", 'r', encoding='utf8') as radios_file: radios_list = csv.DictReader(radios_file) radios_list = [dict(ligne) for ligne in radios_list] # transforme en liste de dictionnaires compteur = 0 for y in range(4): for x in range(5): try: if radios_list[compteur]['Logo'] != "": logos[y][x] = radios_list[compteur]['Logo'] else: logos[y][x] = "radio.png" except: logos[y][x] = "blank.png" compteur += 1 e = p.event_manager() e.event_attach(EventType.MediaMetaChanged, _media_cb, media) e.event_attach(EventType.MediaParsedChanged, _media_cb, media) for c in range(4): print(logos[c]) # define the meta data to show meta = {Meta.Album: None, Meta.Genre: None, Meta.NowPlaying: None} while True: # loop forever # XXX using MediaParseFlag.local is not any different media.parse_with_options(MediaParseFlag.network, 2) # 2 sec timeout # XXX media.get_parsed_status() always returns .skipped for k in meta.keys(): v = media.get_meta(k) if v != meta[k]: # print("{} - {}".format(k, v)) print("{}".format(v)) meta[k] = v sleep(2) radios_display() rw_pupitre.py→pupitre.py +8 −3 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff # Projet : WebRadioPi # Fichier : rw_pupitre.py # Fichier : pupitre.py # Auteur : Daniel SAZERAT (thorfin89@free.fr) # import ---------------------------------- Chargement en cours Chargement en cours @@ -28,6 +28,8 @@ class Pupitre: self.icon_sound = tk.PhotoImage(file="icons/sound_up.png") self.icon_mute = tk.PhotoImage(file="icons/mute.png") self.logo = tk.PhotoImage(file="images/radio.png") self.zones() # noinspection PyTypeChecker Chargement en cours Chargement en cours @@ -87,10 +89,13 @@ class Pupitre: # affichage des vignettes des radios for x_logos in range(5): for y_logos in range(4): self.logo = tk.PhotoImage(file="images/radio.png") btn_logo = ttk.Button(zone_logos, image=self.logo, command=self.switch_sound) btn_logo = tk.Button(zone_logos, image=self.logo, command=self.switch_sound) btn_logo.place(width=100, height=100, x=x_logos*100, y=y_logos*100) def switch_sound(self): # bascule on/off du son global mute Chargement en cours Chargement en cours
archives/radio_event.py 0 → 100644 +37 −0 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff from time import sleep from vlc import EventType, Media, MediaPlayer, MediaParseFlag, Meta def _media_cb(event, *unused): # XXX callback ... never called print(event) p = MediaPlayer() # cmd1 = "sout=file/ts:%s" % outfile media = Media("http://live.leanstream.co/CJOTFM-MP3") # , cmd1) # media = Media("http://direct.francemusique.fr/live/francemusique-midfi.mp3") # media.get_mrl() p.set_media(media) p.play() e = p.event_manager() e.event_attach(EventType.MediaMetaChanged, _media_cb, media) e.event_attach(EventType.MediaParsedChanged, _media_cb, media) # define the meta data to show meta = {Meta.Album: None, Meta.Genre: None, Meta.NowPlaying: None} while True: # loop forever # XXX using MediaParseFlag.local is not any different media.parse_with_options(MediaParseFlag.network, 2) # 2 sec timeout # XXX media.get_parsed_status() always returns .skipped for k in meta.keys(): v = media.get_meta(k) if v != meta[k]: # print("{} - {}".format(k, v)) print("{}".format(v)) meta[k] = v sleep(2)
data/radios.csv +6 −5 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -5,11 +5,12 @@ No,Pays,Type,Nom,Url,Logo 4,France,Informations,France Info,http://direct.franceinfo.fr/live/franceinfo-midfi.mp3,france-info.jpeg 5,France,Généraliste,France Inter,http://direct.franceinter.fr/live/franceinter-midfi.mp3,france-inter.png 6,France,Généraliste,Europe 1,http://mp3lg4.tdf-cdn.com/9240/lag_180945.mp3,europe-1.jpeg 7,UK,Rock,Dépèche Mode,http://streaming.radionomy.com/wwwdepechemodebe-radio, 7,UK,Rock,Dépèche Mode,http://streaming.radionomy.com/wwwdepechemodebe-radio,radio.png 8,DE,Celtic,Live Ireland ch1,http://66.90.73.250:8080,live-ireland.png 9,DE,Celtic,Bretagne Blog,http://laut.fm/bretagneblog, 10,DE,Celtic,Highlander Radio Live Stream,http://50.7.71.27:9657, 11,DE,Celtic,Celtic Moon,http://streaming211.radionomy.com:80/CelticMoon, 9,DE,Celtic,Bretagne Blog,http://laut.fm/bretagneblog,radio.png 10,DE,Celtic,Highlander Radio Live Stream,http://50.7.71.27:9657,radio.png 11,DE,Celtic,Celtic Moon,http://streaming211.radionomy.com:80/CelticMoon,radio.png 12,DE,Celtic-punk,Celtic-Folk-Punk,http://streaming211.radionomy.com:80/Celtic-Folk-Punk, 13,DE,Hard-rock,100% Hardrock,http://streaming207.radionomy.com:80/100-HARD-ROCK, 14,DE,Rock,Virgin Rock 70,http://icy.unitedradio.it/VirginRock70.mp3, No newline at end of file 14,DE,Rock,Virgin Rock 70,http://icy.unitedradio.it/VirginRock70.mp3,radio.png 15,FR,Classic,Frane Musique,http://direct.francemusique.fr/live/francemusique-midfi.mp3, No newline at end of file
main.py +1 −1 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -5,7 +5,7 @@ # import ---------------------------------- import csv from rw_pupitre import Pupitre from pupitre import Pupitre # installer le paquet python-vlc : sudo pip3 install python-vlc from vlc import Instance Chargement en cours
poub.py +23 −30 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff from time import sleep from vlc import EventType, Media, MediaPlayer, MediaParseFlag, Meta import csv def _media_cb(event, *unused): # XXX callback ... never called print(event) logos = [["", "", "", "", ""], ["", "", "", "", ""], ["", "", "", "", ""], ["", "", "", "", ""]] p = MediaPlayer() # cmd1 = "sout=file/ts:%s" % outfile media = Media("http://live.leanstream.co/CJOTFM-MP3") # , cmd1) # media.get_mrl() p.set_media(media) p.play() def radios_display(): # récupération de la liste des radios (+infos) with open("./data/radios.csv", 'r', encoding='utf8') as radios_file: radios_list = csv.DictReader(radios_file) radios_list = [dict(ligne) for ligne in radios_list] # transforme en liste de dictionnaires compteur = 0 for y in range(4): for x in range(5): try: if radios_list[compteur]['Logo'] != "": logos[y][x] = radios_list[compteur]['Logo'] else: logos[y][x] = "radio.png" except: logos[y][x] = "blank.png" compteur += 1 e = p.event_manager() e.event_attach(EventType.MediaMetaChanged, _media_cb, media) e.event_attach(EventType.MediaParsedChanged, _media_cb, media) for c in range(4): print(logos[c]) # define the meta data to show meta = {Meta.Album: None, Meta.Genre: None, Meta.NowPlaying: None} while True: # loop forever # XXX using MediaParseFlag.local is not any different media.parse_with_options(MediaParseFlag.network, 2) # 2 sec timeout # XXX media.get_parsed_status() always returns .skipped for k in meta.keys(): v = media.get_meta(k) if v != meta[k]: # print("{} - {}".format(k, v)) print("{}".format(v)) meta[k] = v sleep(2) radios_display()
rw_pupitre.py→pupitre.py +8 −3 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff # Projet : WebRadioPi # Fichier : rw_pupitre.py # Fichier : pupitre.py # Auteur : Daniel SAZERAT (thorfin89@free.fr) # import ---------------------------------- Chargement en cours Chargement en cours @@ -28,6 +28,8 @@ class Pupitre: self.icon_sound = tk.PhotoImage(file="icons/sound_up.png") self.icon_mute = tk.PhotoImage(file="icons/mute.png") self.logo = tk.PhotoImage(file="images/radio.png") self.zones() # noinspection PyTypeChecker Chargement en cours Chargement en cours @@ -87,10 +89,13 @@ class Pupitre: # affichage des vignettes des radios for x_logos in range(5): for y_logos in range(4): self.logo = tk.PhotoImage(file="images/radio.png") btn_logo = ttk.Button(zone_logos, image=self.logo, command=self.switch_sound) btn_logo = tk.Button(zone_logos, image=self.logo, command=self.switch_sound) btn_logo.place(width=100, height=100, x=x_logos*100, y=y_logos*100) def switch_sound(self): # bascule on/off du son global mute Chargement en cours