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
player.set_media(radio_flux) # on charge le flux
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
while True: # boucle principale
......
......@@ -4,12 +4,13 @@
# import ----------------------------------
from vlc import Instance
from vlc import Media, MediaPlayer, Meta
''' installer le paquet python-vlc :
$ sudo pip3 install python-vlc
installer aussi l'application VLC '''
from pupitre import Pupitre # gestion de l'interface sous Tkinter
from pupitre import Pupitre # gestion de l'interface sous Tkinter
# classes ---------------------------------
......@@ -21,11 +22,13 @@ class Radio(Pupitre):
def radio_flux(self, flux):
print(flux)
media = self.instance.media_new(flux)
self.player.set_media(media)
self.media = self.instance.media_new(flux)
self.player.set_media(self.media)
self.radio_play()
self.now_playing_info()
def radio_play(self):
self.radio_on = True
self.player.play()
def radio_pause(self):
......@@ -33,6 +36,7 @@ class Radio(Pupitre):
def flux_stop(self):
self.player.stop()
self.radio_on = False
def volume(self, vol_potar):
# on récupère la valeur du potentiomètre de volume
......@@ -74,7 +78,8 @@ class Radio(Pupitre):
print(self.num_radio_selected)
# 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()
if self.num_radio_selected == -1:
......
......@@ -2,17 +2,15 @@ from time import sleep
from vlc import Media, MediaPlayer, Meta
player = MediaPlayer()
radio_flux = Media("http://live.leanstream.co/CJOTFM-MP3") # on définit le flux
player.set_media(radio_flux) # on charge le flux
media = Media("http://live.leanstream.co/CJOTFM-MP3") # on définit le flux
player.set_media(media) # on charge le flux
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
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é
info_display = flux_info[4:len(flux_info) - 3] # on 'nettoie' le titre (caractères au début et à la fin)
......
......@@ -7,9 +7,11 @@ import tkinter as tk
from tkinter import ttk, Scale, HORIZONTAL
from PIL import Image, ImageTk
import csv
from vlc import Media, MediaPlayer, Meta
mute = False # le son n'est pas coupé au démarrage
bg_color, bg_color_light = "#206080", "#2F6F8F" # couleur de fond
radio_on = False # mémorise le fait d'écouter une radio ou pas
bg_color, bg_color_light = "#206080", "#2F6F8F" # couleur de fond
# Chargement du fichier CSV contenant les informations : Nom, Pays, Type, Url, Logo
with open("./data/radios.csv", 'r', encoding='utf-8-sig') as radios_file:
......@@ -110,6 +112,10 @@ class Pupitre:
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)
# 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
# - on charge la configuration du volume sauvegardée
lecture = open("webradiopi.cfg", "r")
......@@ -220,5 +226,24 @@ class Pupitre:
self.lbl_info_radio.place(width=270, height=30, x=10, y=270)
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
# self.root.after(2000, self.now_playing_info)
self.root.mainloop()
38
\ No newline at end of file
42
\ 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