Utilitaires
Scripts
Divers
Jeux
Rechercher
Quillevere.net
Techniques informatiques
Si les utilitaires proposés sur ce site vous plaisent et que vous désirez remercier l'auteur, vous pouvez faire un don, via le site sécurisé Paypal, en cliquant sur l'icône ci-dessous.

Une interface web pour les lecteurs Eversolo DMP

01/12/2024

Le lecteur Eversolo DMP-A6 est un 'streamer' haut de gamme, un appareil capable de se connecter sur différentes plateformes musicales, de recenser les fichiers audios trouvés sur un réseau local ou sur son disque interne afin de présenter sur son écran en façade une interface d'écoute musicale. Cependant, il manque à cet appareil un pilotage par le navigateur, depuis un réseau local.

J'apprécie beaucoup cet appareil : il permet vraiment de gérer sa bibliothèque musicale (au niveau écoute seulement), d'écouter des web radios facilement, et sans publicité. Son interface est également claire et présente différentes façons d'écouter de la musique (par titre, genre, année, artiste...). Le logiciel n'est pas exempt de bugs mais des mises à jour régulières les corrigent.

Pour piloter l'appareil, il y a plusieurs possibilités :

  • directement depuis son écran tactile
  • depuis l'application dédiée, qui reprend les fonctions, en l'installant sur une tablette ou un téléphone Android/iOS et ceci sans devoir créer un compte Google.

Le pilotage depuis un ordinateur n'est donc pas disponible, à moins d'installer l'APK de l'application sur son système d'exploitation, mais cela n'est pas toujours compatible. C'est pour cette raison que j'ai créé une interface web dédiée à cet appareil.

Interface web pour lecteur Eversolo DMP

Pour ce projet, je suis parti de l'interface créée par neoheresy, sur audiosciencereview.com, que je trouvais intéressante mais qui n'était qu'en mode envoi. Cette interface ne connait pas par exemple le statut des entrées/sorties ni le titre actuellement joué :

Après remaniement complet du code, elle se présente ainsi :

Elle offre les fonctionnalités suivantes :

  • Éteindre, redémarrer l'appareil
  • Changer l'affichage, éteindre l'écran
  • Passer à la musique suivante, revenir à la musique précédente, pause et reprise
  • Modification du volume : réduire, augmenter, couper ou sélectionner immédiatement un volume
  • Affichage des informations du titre joué : pochette de l'album, titre, artiste, album, caractéristiques techniques du fichier (canaux, fréquence d'échantillonnage, taille du fichier...)
  • Durée du titre totale, écoulée et navigation dans la position du titre
  • Affichage et modification de la source musicale (lecteur, bluetooth, USB, prise optique, prise coaxiale)
  • Affichage et modification de la sortie musicale (XLR, RCA, HDMI, prise optique, USB)
  • Affichage d'un message si le lecteur ne répond pas
  • Lecture d'un album dans l'ordre des pistes ou aléatoirement
  • Lecture d'un titre immédiatement ou après la chanson en cours
  • Navigation par :
    • albums de l'artiste affiché
    • titres de l'artiste affiché
    • titres de l'album affiché
    • albums de la bibliothèque

Elle permet donc d'éteindre l'appareil ou de changer de titre lorsqu'on est dans une autre pièce, avec un PC sous la main, sans avoir de téléphone avec l'application à côté de soi.

Contraintes techniques

Les navigateurs bloquent par défaut les appels aux ressources présentes sur un autre nom de domaine que le lieu d'hébergement des fichiers, à moins que le serveur appelé ne renvoie une information d'autorisation d'appel CORS (Cross-Origin resource sharing) via un en-tête "Access-Control-Allow-Origin". Cela n'est pas le cas pour les API de l'appareil.

Pour contourner ce blocage, il est possible d'utiliser un proxy. J'en ai donc réalisé un en PHP, en quelques lignes de code, mais qui nécessite du coup l'installation d'Apache et de PHP.

Il est possible de le faire directement sur l'appareil, en installant Termux puis Apache et PHP.

Cependant, il faut qu'Apache soit lancé au démarrage mais le lecteur d'Eversolo ne permet pas/ne propose pas cette possibilité. Android, le système présent sur l'appareil, semble verrouiller tout lancement au démarrage...

Installation du logiciel

Le logiciel fourni ici requiert de disposer de son propre serveur PHP (sur un NAS par exemple). Il a seulement été testé sur DMP-A6.

  • Sur votre serveur, créez le répertoire dédié (par exemple "eversolo-dmp") dans la partie web.
  • Téléchargez l'archive du projet et décompressez-là dans le répertoire créé :
    v. 1.0 : eversolo_panel_1_0.7z(60 Ko)
    v. 1.1 : eversolo_panel_1_1.7z(288 Ko)
    v. 1.2 : eversolo_panel_1_2.7z(230 Ko)
  • Modifiez le fichier js/config.js afin d'indiquer l'adresse IP du streamer et l'adresse IP du proxy (celle-ci est au final celle du serveur).

  • Sur votre serveur, créez un nouvel hôte virtuel. Par exemple, sur un NAS Synology, vous pouvez lancer Web Station et créer un hôte virtuel qui écoute un port spécifique.
  • Sur un PC, accédez à l'URL de votre NAS, avec le port correspondant (ici http://192.168.0.1:8080). Vous devriez voir l'interface s'afficher.

Si le lecteur Eversolo n'est pas allumé ou si l'IP indiquée pour le lecteur est incorrecte, vous devriez avoir l'écran suivant :

Dernière modification le 01/12/2024 - Quillevere.net

Commentaires

Aucune inscription n'est requise si vous souhaitez
janv. 01
2025

Il y avait bien une coquille dans le fichier proxy. Elle ne s'affichait que selon certains paramétrages du serveur. Je l'ai corrigée dans la version 1.2

Eric
janv. 01
2025

OK j'ai trouvé, c est le cache du navigateur qui était en cause, avec navigateur jamais utilisé .. cela fonctionne parfaitement Désolé tout est OK :)

MADMIKE92
janv. 01
2025

Bonjour Utilisateur de la version 1.0 , avec succès sur apache/php sur un raspberry PI J'ai voulu testé la 1.1 ce jour Voici ma config (ips et config inchangées entre la 1.0 et 1.1) pi@raspberrypi:/var/www/html/dmpa6/js $ cat config.js /* Eversolo DMP-A6 - Interface WEB Eric Quillévéré 2024 v 1.1 (26/12/2024) */ // IP of player const IP_DMP='192.168.1.60'; // IP of proxy (for CORS calls). Can be the same as current server const IP_PROXY='192.168.1.14'; const PORT_PROXY='8181'; const SHOW_COVERS_ON_SEARCH=true; // Show covers on search by albums (grid otherwise) const USE_PROXY_FOR_COVERS=true; // Use proxy for loading covers (faster because browser can use cache) const LAZY_LOADING=true; // Load covers with lazy loading (faster) // Proxy to access title information const URL_PROXY='http://' IP_PROXY ':' PORT_PROXY '/proxy/?url='; J'ai un message d erreur dans les logs APache [Wed Jan 01 12:15:53.194649 2025] [:error] [pid 31049] [client 192.168.1.49:50927] PHP Notice: Undefined variable: sURL in /var/www/html/dmpa6/proxy/index.php on line 12, referer: http://192.168.1.14:8181/ Sur Chrome via http://192.168.1.14:8181/ la page s'affiche globalement (icônes et mise en page pétée nouvelles fonctions inaccessibles) avec ceci DMP player is not detected on IP 192.168.1.60, with PROXY 192.168.1.14. 01/01/2025, 12:15:28 Sur Safari via http://192.168.1.14:8181/ la page n'affiche que le logo et ce message et rien d 'autre DMP player is not detected on IP 192.168.0.100, with PROXY 192.168.0.1. 01/01/2025, 12:20:11 J'ai relancé Apache , et le PI sans succés Je pense qu'il y a un petit soucis dans le code, mais cela dépasse mes compétences techniques ;) Merci en tout cas pour ce super outil, et meilleurs voeux pour 2025 Cdt madmike31@hotmail.com

MADMIKE92
déc. 14
2024

Testé ce jour, sur un raspberry PI avec Apache&Php, ça marche au top super , merci !!!

MADMIKE92

Rechercher sur le site

fr en rss RSS info Informations