Warning: Undefined array key "DOKU_PREFS" in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/common.php on line 2082
pyqt5_radioweb [Les recettes Python de Tyrtamos]

Outils pour utilisateurs

Outils du site


pyqt5_radioweb

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
pyqt5_radioweb [2018/05/17 11:27]
tyrtamos
pyqt5_radioweb [2018/05/17 14:26]
tyrtamos
Ligne 2: Ligne 2:
  
 [développé sous Python v3.5 et PyQt5 v5.9 avec Windows 10] [développé sous Python v3.5 et PyQt5 v5.9 avec Windows 10]
- 
-[en cours de création!] 
  
 ===== Généralités ===== ===== Généralités =====
Ligne 9: Ligne 7:
 Python, que certains considèrent encore comme un "langage de script" (!) dispose, grâce à des bibliothèques comme PyQt5, de possibilités importantes dans le domaine multimédia. J'ai eu alors envie d'avoir un lecteur de radios internet pour mon propre usage, et comme ça marche très bien, je vais vous en faire profiter! Python, que certains considèrent encore comme un "langage de script" (!) dispose, grâce à des bibliothèques comme PyQt5, de possibilités importantes dans le domaine multimédia. J'ai eu alors envie d'avoir un lecteur de radios internet pour mon propre usage, et comme ça marche très bien, je vais vous en faire profiter!
  
-Je n'ai pas utilisé d'instructions spécifiques à l'un des OS courants (Windows, Linux, MacOS), aussi je pense que ça fonctionnera sur ces 3 OS. Cependant, j'ai fait le développement sous Windows 10, et j'ai pu voir que sous Linux, il pouvait y avoir des subtilités d'installation à résoudre avant que ça marche... Et je n'ai pas essayé sous MacOS.+Je n'ai pas utilisé d'instructions spécifiques à l'un des OS courants (Windows, Linux, MacOS), aussi je pense que ça fonctionnera sur ces 3 OS. Cependant, j'ai fait le développement sous Windows 10, et j'ai pu voir que sous Linux, il pouvait y avoir des subtilités d'installation à résoudre avant que ça marche... Je n'ai pas (encore) essayé sous Mac OS.
  
 ===== Téléchargement ===== ===== Téléchargement =====
Ligne 18: Ligne 16:
  
 Contenu: Contenu:
-* radiowebmini.py: le lecteur de radio internet minimum +  * radiowebmini.py: le lecteur de radio internet minimum 
-* radioweb.py: le lecteur de radio internet avec playlist +  * radioweb.py: le lecteur de radio internet avec playlist 
-* radioweb_tray.py: le même lecteur intégré dans la zone de notification +  * radioweb_tray.py: le même lecteur intégré dans la zone de notification 
-* icons8-tour-de-radio-50.png et icons8-tour-de-radio-50.ico: les icônes utilisées +  * icons8-tour-de-radio-50.png et icons8-tour-de-radio-50.ico: les icônes utilisées 
-* radioweb.txt: la liste des radios que j'ai retenues pour mon usage+  * radioweb.txt: la liste des radios que j'ai retenues pour mon usage
  
 +Je n'ai pas mis les scripts pour pyinstaller, mais il est facile de les récupérer ci-dessous par copier-coller. Je n'ai pas mis non plus les exécutables ".exe" qui sont générés par pyinstaller pour être sûr de ne pas diffuser de virus (on n'est plus sûr de rien de nos jours sur ce sujet...). 
  
 ===== Un lecteur de radio internet minimum ===== ===== Un lecteur de radio internet minimum =====
Ligne 31: Ligne 30:
 L'écoute de la radio internet utilise le module QtMultimedia de PyQt5. L'écoute de la radio internet utilise le module QtMultimedia de PyQt5.
  
-Le programme est prévu pour être lancé avec l'url de la radio internet en argument de la ligne de commande. Avec un bureau graphique (Windows, Linux, MacOS), on peut créer une icône sur le bureau, qui lancera le programme avec la radio souhaité en argument.+Le programme est prévu pour être lancé avec l'url (l'adresse web) de la radio internet en argument de la ligne de commande. Avec un bureau graphique (Windows, Linux, MacOS), on peut créer une icône sur le bureau, qui lancera le programme avec la radio souhaitée en argument.
  
 Bien que ce ne soit pas son but, ce programme accepte sans problème les fichiers audio locaux de type mp3! Dans le code, on regarde si le fichier existe sur disque, et si oui, on utilise QUrl.fromLocalFile(url) au lieu de QUrl(url), ce qui ajoutera %%"file:///"%% au début de l'adresse. Pour tenir compte de Windows, on en profite pour remplacer les éventuels %%'\'%% du chemin disque, par des '/'. Bien que ce ne soit pas son but, ce programme accepte sans problème les fichiers audio locaux de type mp3! Dans le code, on regarde si le fichier existe sur disque, et si oui, on utilise QUrl.fromLocalFile(url) au lieu de QUrl(url), ce qui ajoutera %%"file:///"%% au début de l'adresse. Pour tenir compte de Windows, on en profite pour remplacer les éventuels %%'\'%% du chemin disque, par des '/'.
Ligne 127: Ligne 126:
 </code> </code>
  
-Si ce programme s'appelle "radiowebmini.py", par exemple, il faudra pour écouter l'excellente radio "fréquence 3" faire dans une console (cmd.exe pour Windows):+Si ce programme s'appelle "radiowebmini.py", il faudra pour écouter l'excellente radio "fréquence 3" faire dans une console (cmd.exe pour Windows):
  
 <code python> <code python>
Ligne 135: Ligne 134:
 Il faut adapter cette ligne de code selon l'OS. Par exemple, sous Linux, il faut en général utiliser python3 pour avoir l'interpréteur Python version 3.x. etc... Il faut adapter cette ligne de code selon l'OS. Par exemple, sous Linux, il faut en général utiliser python3 pour avoir l'interpréteur Python version 3.x. etc...
  
-Au lancement, la radio démarre au bout de quelques secondes (mise en cache), et une petite fenêtre apparait dont la vocation est surtout de permettre l'arrêt du programme (et donc de l'écoute).+Au lancement, la radio démarre au bout de quelques secondes (temps de mise en cache), et une petite fenêtre apparait dont la vocation est de permettre l'arrêt du programme (et donc de l'écoute).
  
 {{::radiowebmini.jpg?274|}} {{::radiowebmini.jpg?274|}}
Ligne 155: Ligne 154:
 ==== Fichier des radios retenues ==== ==== Fichier des radios retenues ====
  
-Les radios sont dans le fichier "radioweb.txt" (encodé 'utf-8') et chaque ligne désigne une radio avec un format: "nom_radio | url_radio". Le séparateur '|' a été choisi parce qu'il a peu de chance de se retrouver dans un nom de radio ou dans son adresse web. Voilà par exemple mon fichier radioweb.txt avec toutes les radios qui m'intéressent:+Les radios sont dans le fichier "radioweb.txt" (encodé 'utf-8') et chaque ligne désigne une radio avec un format: "nom_radio | url_radio". Le séparateur '|' a été choisi parce qu'il a peu de chance de se retrouver dans un nom de radio ou dans son adresse web. Voilà par exemple mon fichier radioweb.txt avec toutes les radios que j'ai retenues pour mon usage:
  
 <code> <code>
Ligne 180: Ligne 179:
 Attention: ces adresses peuvent changer à tout moment! Alors, si une radio ne marche plus, cherchez une autre adresse sur le web, et mettez à jour votre fichier avec un simple éditeur de texte (avec encodage 'utf-8' pour les accents). Attention: ces adresses peuvent changer à tout moment! Alors, si une radio ne marche plus, cherchez une autre adresse sur le web, et mettez à jour votre fichier avec un simple éditeur de texte (avec encodage 'utf-8' pour les accents).
  
-Même si ce n'est pas le but du programme, les fichiers "audio" locaux type mp3 sont acceptés avec le même format. On peut par exemple avoir la ligne suivante (cas de Windows: aucun problème pour avoir des espaces dans le chemin ou pour conserver les %%'\'%% qui seront neutralisés dans le code):+Même si ce n'est pas le but du programme, les fichiers "audio" locaux type mp3 sont acceptés avec le même format. On peut par exemple avoir la ligne suivante (cas de Windows: aucun problème pour avoir des espaces ou des caractères accentués dans le cheminou pour conserver les %%'\'%% qui seront neutralisés dans le code):
  
 <code> <code>
Ligne 842: Ligne 841:
 Il faut, bien sûr, adapter les noms et adresses selon la configuration qu'on a, et ne pas oublier de copier à la main le fichier des radios "radioweb.txt" dans le même répertoire. Il faut, bien sûr, adapter les noms et adresses selon la configuration qu'on a, et ne pas oublier de copier à la main le fichier des radios "radioweb.txt" dans le même répertoire.
  
-Comme pyinstaller est multiplateforme, on devrait pouvoir faire quelque chose de similaire sous Linux et sous MacOS, mais je n'ai pas encore essayé.+Comme pyinstaller est multiplateforme, on devrait pouvoir faire quelque chose de similaire sous Linux et sous Mac OS, mais je n'ai pas encore essayé.
  
  
 Bonne écoute! Et amusez-vous bien! Bonne écoute! Et amusez-vous bien!
  
pyqt5_radioweb.txt · Dernière modification: 2018/05/17 15:01 de tyrtamos