Files
pyRadioTray/pyradiotray.py
2023-07-06 20:07:31 +02:00

57 lines
1.4 KiB
Python

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()