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 :
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.
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 :
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.
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...
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.
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 :
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 |
RSS | Informations |