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 icon = QIcon("radio.png") # Adding item on the menu bar tray = QSystemTrayIcon() tray.setIcon(icon) tray.setVisible(True) # Creating the options menu = QMenu() # añadimos el json f = open("radios.json", "rb") jsonObject = json.load(f) f.close() # 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) menu.addAction(quit) # Adding options to the System Tray tray.setContextMenu(menu) app.exec()