diff --git a/pyradiotray.py b/pyradiotray.py index 94fcd36..f8835a0 100644 --- a/pyradiotray.py +++ b/pyradiotray.py @@ -1,6 +1,8 @@ import json from PyQt6.QtGui import QIcon, QAction from PyQt6.QtWidgets import QApplication, QMenu, QSystemTrayIcon +from PyQt6.QtMultimedia import QAudioOutput, QMediaPlayer +from PyQt6.QtCore import QUrl app = QApplication([]) app.setQuitOnLastWindowClosed(False) # Adding an icon @@ -11,15 +13,40 @@ tray.setIcon(icon) tray.setVisible(True) # Creating the options menu = QMenu() -# añadimos las opciones del json +# añadimos el json f = open("radios.json", "rb") jsonObject = json.load(f) f.close() -opciones = list() -for i in jsonObject: - opciones.append(i["nombre"]) -for num in opciones: - menu.addAction(num) + + +# reproductor +player = QMediaPlayer() +audio_output = QAudioOutput() +player.setAudioOutput(audio_output) +audio_output.setVolume(100) + + +# escuchar la radio +def escuchar(url): + player.stop() + player.setSource(QUrl.fromLocalFile(url)) + player.play() + + +# Asigna las acciones de las emisoras +for i, item in enumerate(jsonObject): + print(i, item) + globals()['action%s' % i] = QAction(item["nombre"]) + globals()['action%s' % i].triggered.connect( + lambda checked, url=item["url"]: escuchar(url) + ) + menu.addAction(globals()['action%s' % i]) + + +# TODO: Agregar opciones, pausar, parar, y continuar +# (cuando esté pausado se pueda continuar y cuando esté reproduciendo +# que se puede pausar) y con iconos + # To quit the app quit = QAction("Quit") quit.triggered.connect(app.quit)