Commit 38496142 authored by Thorfin89's avatar Thorfin89

Info OK - reste à soigner l'apparence

parent 76688c27
...@@ -161,8 +161,6 @@ radio_flux = Media("http://live.leanstream.co/CJOTFM-MP3") # on définit le flu ...@@ -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
......
...@@ -4,6 +4,7 @@ ...@@ -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
...@@ -21,11 +22,13 @@ class Radio(Pupitre): ...@@ -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):
...@@ -33,6 +36,7 @@ class Radio(Pupitre): ...@@ -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
...@@ -74,7 +78,8 @@ class Radio(Pupitre): ...@@ -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:
......
...@@ -2,17 +2,15 @@ from time import sleep ...@@ -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)
......
...@@ -7,8 +7,10 @@ import tkinter as tk ...@@ -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
...@@ -110,6 +112,10 @@ class Pupitre: ...@@ -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")
...@@ -220,5 +226,24 @@ class Pupitre: ...@@ -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()
38 42
\ No newline at end of file \ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment