Chargement en cours docs/solutions.md +0 −2 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -161,8 +161,6 @@ radio_flux = Media("http://live.leanstream.co/CJOTFM-MP3") # on définit le flu player.set_media(radio_flux) # on charge le flux player.set_media(radio_flux) # on charge le flux player.play() # on lance l'écoute de la radio player.play() # on lance l'écoute de la radio info_flux = player.event_manager() # on récupère l'information du flux memo_info = "" # pour mémoriser le titre memo_info = "" # pour mémoriser le titre while True: # boucle principale while True: # boucle principale Chargement en cours main.py +9 −4 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -4,6 +4,7 @@ # import ---------------------------------- # import ---------------------------------- from vlc import Instance from vlc import Instance from vlc import Media, MediaPlayer, Meta ''' installer le paquet python-vlc : ''' installer le paquet python-vlc : $ sudo pip3 install python-vlc $ sudo pip3 install python-vlc Chargement en cours @@ -21,11 +22,13 @@ class Radio(Pupitre): def radio_flux(self, flux): def radio_flux(self, flux): print(flux) print(flux) media = self.instance.media_new(flux) self.media = self.instance.media_new(flux) self.player.set_media(media) self.player.set_media(self.media) self.radio_play() self.radio_play() self.now_playing_info() def radio_play(self): def radio_play(self): self.radio_on = True self.player.play() self.player.play() def radio_pause(self): def radio_pause(self): Chargement en cours @@ -33,6 +36,7 @@ class Radio(Pupitre): def flux_stop(self): def flux_stop(self): self.player.stop() self.player.stop() self.radio_on = False def volume(self, vol_potar): def volume(self, vol_potar): # on récupère la valeur du potentiomètre de volume # on récupère la valeur du potentiomètre de volume Chargement en cours Chargement en cours @@ -74,7 +78,8 @@ class Radio(Pupitre): print(self.num_radio_selected) print(self.num_radio_selected) # changement de page automatique # changement de page automatique if (self.num_radio_selected + 1) % 20 == 0 and self.num_radio_selected != -1: # si le numéro est un multiple de 20 if ( self.num_radio_selected + 1) % 20 == 0 and self.num_radio_selected != -1: # si le numéro est un multiple de 20 self.page_back() self.page_back() if self.num_radio_selected == -1: if self.num_radio_selected == -1: Chargement en cours poub/info_now_playing.py +3 −5 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -2,17 +2,15 @@ from time import sleep from vlc import Media, MediaPlayer, Meta from vlc import Media, MediaPlayer, Meta player = MediaPlayer() player = MediaPlayer() radio_flux = Media("http://live.leanstream.co/CJOTFM-MP3") # on définit le flux media = Media("http://live.leanstream.co/CJOTFM-MP3") # on définit le flux player.set_media(radio_flux) # on charge le flux player.set_media(media) # on charge le flux player.play() # on lance l'écoute de la radio player.play() # on lance l'écoute de la radio info_flux = player.event_manager() # on récupère l'information du flux memo_info = "" # pour mémoriser le titre memo_info = "" # pour mémoriser le titre while True: # boucle principale while True: # boucle principale flux_info = radio_flux.get_meta(Meta.NowPlaying) # on récupère l'info sur le titre actuel flux_info = media.get_meta(Meta.NowPlaying) # on récupère l'info sur le titre actuel if flux_info and flux_info != memo_info: # si le titre donné et est différent de celui mémorisé if flux_info and flux_info != memo_info: # si le titre donné et est différent de celui mémorisé info_display = flux_info[4:len(flux_info) - 3] # on 'nettoie' le titre (caractères au début et à la fin) info_display = flux_info[4:len(flux_info) - 3] # on 'nettoie' le titre (caractères au début et à la fin) Chargement en cours pupitre.py +26 −1 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -7,8 +7,10 @@ import tkinter as tk from tkinter import ttk, Scale, HORIZONTAL from tkinter import ttk, Scale, HORIZONTAL from PIL import Image, ImageTk from PIL import Image, ImageTk import csv import csv from vlc import Media, MediaPlayer, Meta mute = False # le son n'est pas coupé au démarrage mute = False # le son n'est pas coupé au démarrage radio_on = False # mémorise le fait d'écouter une radio ou pas bg_color, bg_color_light = "#206080", "#2F6F8F" # couleur de fond bg_color, bg_color_light = "#206080", "#2F6F8F" # couleur de fond # Chargement du fichier CSV contenant les informations : Nom, Pays, Type, Url, Logo # Chargement du fichier CSV contenant les informations : Nom, Pays, Type, Url, Logo Chargement en cours Chargement en cours @@ -110,6 +112,10 @@ class Pupitre: self.lbl_radio_selected = ttk.Label(self.menu, background=bg_color_light) self.lbl_radio_selected = ttk.Label(self.menu, background=bg_color_light) self.lbl_radio_selected.place(width=225, height=225, x=33, y=33) self.lbl_radio_selected.place(width=225, height=225, x=33, y=33) # affiche les infos sur le titre en cours d'écoute self.now_playing = ttk.Label(self.menu, background=bg_color_light) self.now_playing.place(width=240, height=100, x=30, y=300) # potentiomètre de volume # potentiomètre de volume # - on charge la configuration du volume sauvegardée # - on charge la configuration du volume sauvegardée lecture = open("webradiopi.cfg", "r") lecture = open("webradiopi.cfg", "r") Chargement en cours Chargement en cours @@ -220,5 +226,24 @@ class Pupitre: self.lbl_info_radio.place(width=270, height=30, x=10, y=270) self.lbl_info_radio.place(width=270, height=30, x=10, y=270) self.lbl_info_radio.config(bg=bg_color) self.lbl_info_radio.config(bg=bg_color) def now_playing_info(self): if self.radio_on: flux_info = self.media.get_meta(Meta.NowPlaying) # on récupère l'info sur le titre actuel if flux_info: # on 'nettoie' le titre (caractères au début et à la fin) info_display = flux_info[4:len(flux_info) - 3] if info_display[0:3] == " - ": # si l'info commence par un tiret (pub, commentaire...) info = "** " + info_display[3:] + " **" else: info = info_display self.now_playing.config(text=info) self.root.after(2000, self.now_playing_info) def boucle(self): # boucle principale de tkinter def boucle(self): # boucle principale de tkinter # self.root.after(2000, self.now_playing_info) self.root.mainloop() self.root.mainloop() webradiopi.cfg +1 −1 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff 38 42 No newline at end of file No newline at end of file Chargement en cours
docs/solutions.md +0 −2 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -161,8 +161,6 @@ radio_flux = Media("http://live.leanstream.co/CJOTFM-MP3") # on définit le flu player.set_media(radio_flux) # on charge le flux player.set_media(radio_flux) # on charge le flux player.play() # on lance l'écoute de la radio player.play() # on lance l'écoute de la radio info_flux = player.event_manager() # on récupère l'information du flux memo_info = "" # pour mémoriser le titre memo_info = "" # pour mémoriser le titre while True: # boucle principale while True: # boucle principale Chargement en cours
main.py +9 −4 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -4,6 +4,7 @@ # import ---------------------------------- # import ---------------------------------- from vlc import Instance from vlc import Instance from vlc import Media, MediaPlayer, Meta ''' installer le paquet python-vlc : ''' installer le paquet python-vlc : $ sudo pip3 install python-vlc $ sudo pip3 install python-vlc Chargement en cours @@ -21,11 +22,13 @@ class Radio(Pupitre): def radio_flux(self, flux): def radio_flux(self, flux): print(flux) print(flux) media = self.instance.media_new(flux) self.media = self.instance.media_new(flux) self.player.set_media(media) self.player.set_media(self.media) self.radio_play() self.radio_play() self.now_playing_info() def radio_play(self): def radio_play(self): self.radio_on = True self.player.play() self.player.play() def radio_pause(self): def radio_pause(self): Chargement en cours @@ -33,6 +36,7 @@ class Radio(Pupitre): def flux_stop(self): def flux_stop(self): self.player.stop() self.player.stop() self.radio_on = False def volume(self, vol_potar): def volume(self, vol_potar): # on récupère la valeur du potentiomètre de volume # on récupère la valeur du potentiomètre de volume Chargement en cours Chargement en cours @@ -74,7 +78,8 @@ class Radio(Pupitre): print(self.num_radio_selected) print(self.num_radio_selected) # changement de page automatique # changement de page automatique if (self.num_radio_selected + 1) % 20 == 0 and self.num_radio_selected != -1: # si le numéro est un multiple de 20 if ( self.num_radio_selected + 1) % 20 == 0 and self.num_radio_selected != -1: # si le numéro est un multiple de 20 self.page_back() self.page_back() if self.num_radio_selected == -1: if self.num_radio_selected == -1: Chargement en cours
poub/info_now_playing.py +3 −5 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -2,17 +2,15 @@ from time import sleep from vlc import Media, MediaPlayer, Meta from vlc import Media, MediaPlayer, Meta player = MediaPlayer() player = MediaPlayer() radio_flux = Media("http://live.leanstream.co/CJOTFM-MP3") # on définit le flux media = Media("http://live.leanstream.co/CJOTFM-MP3") # on définit le flux player.set_media(radio_flux) # on charge le flux player.set_media(media) # on charge le flux player.play() # on lance l'écoute de la radio player.play() # on lance l'écoute de la radio info_flux = player.event_manager() # on récupère l'information du flux memo_info = "" # pour mémoriser le titre memo_info = "" # pour mémoriser le titre while True: # boucle principale while True: # boucle principale flux_info = radio_flux.get_meta(Meta.NowPlaying) # on récupère l'info sur le titre actuel flux_info = media.get_meta(Meta.NowPlaying) # on récupère l'info sur le titre actuel if flux_info and flux_info != memo_info: # si le titre donné et est différent de celui mémorisé if flux_info and flux_info != memo_info: # si le titre donné et est différent de celui mémorisé info_display = flux_info[4:len(flux_info) - 3] # on 'nettoie' le titre (caractères au début et à la fin) info_display = flux_info[4:len(flux_info) - 3] # on 'nettoie' le titre (caractères au début et à la fin) Chargement en cours
pupitre.py +26 −1 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -7,8 +7,10 @@ import tkinter as tk from tkinter import ttk, Scale, HORIZONTAL from tkinter import ttk, Scale, HORIZONTAL from PIL import Image, ImageTk from PIL import Image, ImageTk import csv import csv from vlc import Media, MediaPlayer, Meta mute = False # le son n'est pas coupé au démarrage mute = False # le son n'est pas coupé au démarrage radio_on = False # mémorise le fait d'écouter une radio ou pas bg_color, bg_color_light = "#206080", "#2F6F8F" # couleur de fond bg_color, bg_color_light = "#206080", "#2F6F8F" # couleur de fond # Chargement du fichier CSV contenant les informations : Nom, Pays, Type, Url, Logo # Chargement du fichier CSV contenant les informations : Nom, Pays, Type, Url, Logo Chargement en cours Chargement en cours @@ -110,6 +112,10 @@ class Pupitre: self.lbl_radio_selected = ttk.Label(self.menu, background=bg_color_light) self.lbl_radio_selected = ttk.Label(self.menu, background=bg_color_light) self.lbl_radio_selected.place(width=225, height=225, x=33, y=33) self.lbl_radio_selected.place(width=225, height=225, x=33, y=33) # affiche les infos sur le titre en cours d'écoute self.now_playing = ttk.Label(self.menu, background=bg_color_light) self.now_playing.place(width=240, height=100, x=30, y=300) # potentiomètre de volume # potentiomètre de volume # - on charge la configuration du volume sauvegardée # - on charge la configuration du volume sauvegardée lecture = open("webradiopi.cfg", "r") lecture = open("webradiopi.cfg", "r") Chargement en cours Chargement en cours @@ -220,5 +226,24 @@ class Pupitre: self.lbl_info_radio.place(width=270, height=30, x=10, y=270) self.lbl_info_radio.place(width=270, height=30, x=10, y=270) self.lbl_info_radio.config(bg=bg_color) self.lbl_info_radio.config(bg=bg_color) def now_playing_info(self): if self.radio_on: flux_info = self.media.get_meta(Meta.NowPlaying) # on récupère l'info sur le titre actuel if flux_info: # on 'nettoie' le titre (caractères au début et à la fin) info_display = flux_info[4:len(flux_info) - 3] if info_display[0:3] == " - ": # si l'info commence par un tiret (pub, commentaire...) info = "** " + info_display[3:] + " **" else: info = info_display self.now_playing.config(text=info) self.root.after(2000, self.now_playing_info) def boucle(self): # boucle principale de tkinter def boucle(self): # boucle principale de tkinter # self.root.after(2000, self.now_playing_info) self.root.mainloop() self.root.mainloop()
webradiopi.cfg +1 −1 Numéro de ligne d'origine Ligne d'origine Numéro de ligne de diff Ligne de diff 38 42 No newline at end of file No newline at end of file