Table des matières:

Jouez au Bluetooth sur Sonos à l'aide de Raspberry Pi : 25 étapes
Jouez au Bluetooth sur Sonos à l'aide de Raspberry Pi : 25 étapes

Vidéo: Jouez au Bluetooth sur Sonos à l'aide de Raspberry Pi : 25 étapes

Vidéo: Jouez au Bluetooth sur Sonos à l'aide de Raspberry Pi : 25 étapes
Vidéo: 🎙 Créez votre JUKEBOX 🎶 connecté avec un RASPBERRY PI ! Votre lecteur musical 🎶 à la maison ! 2024, Juillet
Anonim
Image
Image
Jouez au Bluetooth sur Sonos à l'aide de Raspberry Pi
Jouez au Bluetooth sur Sonos à l'aide de Raspberry Pi

J'ai déjà écrit un instructable décrivant comment ajouter une entrée auxiliaire ou analogique à Sonos à l'aide d'un Raspberry Pi. Un lecteur a demandé s'il serait possible de diffuser de l'audio Bluetooth de son téléphone vers Sonos. Il est facile de le faire à l'aide d'un dongle Bluetooth branché sur la ligne d'entrée du Sonos Play:5 ou Sonos CONNECT plus cher; Cependant, vous perdez la fidélité en convertissant le bluetooth (numérique) en analogique puis en numérique et si vous ne possédez qu'un des haut-parleurs Sonos les moins chers, ce n'est pas une option. Cette instructable décrit comment configurer un Raspberry Pi pour diffuser de l'audio Bluetooth sur n'importe quel haut-parleur Sonos.

REMARQUE: Gardez à l'esprit que nous allons transmettre l'audio Bluetooth au Raspberry Pi et le convertir en un flux mp3 avant de l'envoyer à Sonos, il y aura donc un délai de quelques secondes. Si vous l'utilisez pour regarder une vidéo, l'audio sera désynchronisé.

Étape 1:

Ce dont vous aurez besoin:

Raspberry PI 3 modèle B (il existe un modèle B+ plus récent et plus rapide, mais je suis resté avec le modèle B ordinaire car j'ai lu des problèmes avec le verrouillage du B+ et les radios wifi et bluetooth du B+ ont un blindage métallique autour d'eux pour faire ils sont conformes à la FCC lorsqu'ils sont installés dans un autre appareil, mais je voulais une portée Bluetooth maximale et j'avais peur que le blindage puisse l'entraver)

Un ordinateur de bureau ou portable avec un lecteur de carte microSD

Moniteur ou téléviseur avec entrée HDMI (pour la configuration initiale uniquement)

Clavier et souris USB ou Bluetooth (pour la configuration initiale uniquement)

Boîtier en plastique Raspberry Pi (j'utilise un boîtier en plastique pour ce projet afin de maximiser la portée Bluetooth)

Carte mémoire flash Kingston 8 Go microSDHC classe 4

Alimentation 5V

Étape 2:

Image
Image
Image
Image

Accédez à https://www.raspberrypi.org/downloads/raspbian/ sur votre ordinateur habituel et téléchargez "RASPBIAN STRETCH WITH DESKTOP".

Allez également sur https://etcher.io/ et téléchargez Etcher et installez-le.

REMARQUE: dans mon précédent instructable, j'ai décrit comment télécharger NOOBS pour installer Raspbian; cependant, cette méthode est un peu plus rapide. De toute façon c'est bien.

Étape 3:

Image
Image
Image
Image

Exécutez Etcher, cliquez sur Sélectionner une image et recherchez le fichier zip. Cliquez sur Sélectionner un lecteur et accédez à la carte microSD, puis cliquez sur Flash !

Étape 4:

Image
Image
Image
Image
Image
Image
Image
Image

REMARQUE: Certaines de ces prochaines étapes sont similaires à mon instructable précédent, alors allez-y si vous avez déjà configuré le mot de passe root, l'IP statique et le VNC.

Insérez la carte microSD dans la fente pour carte SD sous le Raspberry Pi. Connectez un câble HDMI du Raspberry Pi à votre moniteur ou téléviseur. Connectez le clavier USB, la souris et enfin le câble d'alimentation Micro USB. Après le démarrage, le bureau Raspbian apparaîtra. Il vous guidera à travers plusieurs paramètres, mais je vous recommande de NE PAS vérifier les mises à jour. Cliquez sur Ignorer. J'ai continué à recevoir une erreur "blueman.bluez.errors. DBusFailedError: Protocol not available" lorsque j'essayais de coupler Bluetooth après l'installation de toutes les mises à jour, j'ai donc dû tout recommencer.

ASTUCE: si vous ne voulez pas de l'heure militaire, faites un clic droit sur l'horloge et sélectionnez Paramètres de l'horloge numérique et modifiez le format de l'horloge de %R à %r

Étape 5:

Image
Image
Image
Image
Image
Image

Ensuite, nous allons activer le serveur VNC intégré. Cela rend les choses tellement plus faciles car vous pouvez simplement copier et coller des commandes via VNC plutôt que de les taper. Sélectionnez Menu GUI > Préférences > Configuration Raspberry Pi > Interfaces. Cliquez sur Activé à côté de VNC, puis sur OK. Après quelques secondes, une icône VNC apparaîtra dans la barre des tâches. Cliquez dessus puis sur l'icône du menu en haut à droite (boîte avec 3 lignes horizontales) puis sur Options. Dans les options de sécurité, définissez le cryptage sur "Préférer désactivé" et l'authentification sur "mot de passe VNC", puis cliquez sur Appliquer. Une boîte de mot de passe apparaîtra. Entrez "raspberry" (sans les guillemets) pour le mot de passe dans chaque case et cliquez sur OK.

Étape 6:

Image
Image
Image
Image
Image
Image

Avant d'aller plus loin, nous devons attribuer une adresse IP statique. Si l'adresse IP de votre Pi est attribuée au hasard par le serveur DHCP de votre routeur, l'adresse IP pourrait changer plus tard et vous ne pourriez pas vous connecter via VNC (ou Sonos d'ailleurs). Faites un clic droit sur l'icône des connexions réseau dans la barre des tâches (la petite icône de flèche haut et bas) et sélectionnez "Paramètres réseau sans fil et filaire". Faites un clic gauche sur la case en haut à droite et sélectionnez "eth0" pour configurer la connexion Ethernet ou "wlan0" pour le sans fil. Je conseillerais d'attribuer une adresse IP statique à un seul ou à l'autre. J'ai eu un problème lorsque j'ai configuré mon Pi pour la première fois où j'ai attribué la même adresse IP statique aux deux connexions et le sans fil de mon Pi verrouillé et je n'ai pas pu le faire fonctionner correctement, j'ai donc dû tout recommencer pour installer le système d'exploitation. Quoi qu'il en soit, entrez l'adresse IP souhaitée dans le champ Adresse IP et entrez l'adresse IP de votre routeur dans les champs Routeur et Serveurs DNS. Cliquez sur Appliquer et fermer.

REMARQUE: il peut être plus facile d'attribuer une adresse IP statique à l'aide de la fonction de réservation IP DHCP de votre routeur s'il en a une. Vous aurez peut-être besoin de l'adresse MAC du Pi ou elle peut simplement apparaître dans une liste d'appareils connectés sur la page d'administration de votre routeur. Si vous avez besoin de l'adresse MAC, tapez la commande "ifconfig eth0" dans la fenêtre du terminal pour Ethernet ou "ifconfig wlan0" pour le WiFi. Chose intéressante, l'adresse MAC WiFi apparaîtra sur la ligne commençant par "éther"

Étape 7:

Image
Image
Image
Image
Image
Image

Ensuite, nous devons définir la résolution d'écran par défaut. Cela peut sembler idiot vu que nous sommes déjà connectés à un moniteur, mais plus tard, lorsque vous vous connectez via VNC sans moniteur connecté (sans tête, comme on dit), il reviendra à la résolution par défaut de 640x480 du Pi qui est un très petit écran à travailler avec! Sélectionnez Menu GUI > Préférences > Configuration Raspberry Pi > Définir la résolution. Réglez-le sur 1280x720 ou supérieur et cliquez sur OK et Oui pour redémarrer.

Étape 8:

Image
Image
Image
Image
Image
Image

Vous voudrez peut-être changer le nom de votre Pi, surtout si vous en avez plusieurs sur votre réseau. J'ai renommé le mien "BluetoothPi" pour le rendre facilement identifiable. Il vous demandera de redémarrer après l'avoir renommé.

Étape 9:

Image
Image
Image
Image
Image
Image
Image
Image

À ce stade, vous voudrez peut-être commencer à utiliser VNC pour contrôler le Pi. Ouvrez à nouveau le panneau de configuration VNC sur le bureau Raspbian et recherchez l'adresse IP sous "Connectivité". Installez et exécutez une visionneuse VNC sur votre ordinateur habituel et utilisez cette adresse IP pour vous connecter et entrez « framboise » (sans les guillemets) comme mot de passe. J'ai utilisé TightVNC pour Windows. Après vous être connecté, vous pouvez enregistrer la connexion VNC du Pi en tant que raccourci sur votre bureau pour vous connecter rapidement à l'avenir en contournant l'écran de connexion. Vous recevrez un avertissement concernant l'enregistrement du mot de passe dans le raccourci. Pour copier et coller dans la fenêtre du terminal du Pi, sélectionnez ou mettez en surbrillance le texte ou les commandes sur votre ordinateur habituel, appuyez sur Ctrl-C (appuyez littéralement sur les touches Ctrl et C de votre clavier en même temps) ou faites un clic droit et sélectionnez "Copier ", puis activez la fenêtre de visualisation VNC du Pi et faites un clic droit dans la fenêtre du terminal à droite sur le curseur et sélectionnez Coller.

Étape 10:

Image
Image
Image
Image

Ensuite, nous allons installer deux programmes, Darkice et Icecast2. Darkice est ce qui encode notre source audio Bluetooth dans un flux mp3 et Icecast2 est ce qui le servira à Sonos en tant que flux Shoutcast. Copiez et collez chacune de ces lignes dans la fenêtre du terminal une par une, suivies de la touche Entrée à chaque fois:

wget

mv darkice_1.0.1-999~mp3+1_armhf.deb?raw=true darkice_1.0.1-999~mp3+1_armhf.deb

sudo apt-get install libmp3lame0 libtwolame0

sudo dpkg -i darkice_1.0.1-999~mp3+1_armhf.deb

Étape 11:

Image
Image
Image
Image
Image
Image
Image
Image

Maintenant, installez Icecast2. Tapez "sudo apt-get install icecast2" suivi de enter. Après son installation, une fenêtre apparaîtra vous demandant si vous souhaitez configurer Icecast2. Appuyez sur la touche fléchée gauche et entrez pour sélectionner Oui. Sur le deuxième écran, appuyez sur la touche fléchée vers le bas et entrez pour sélectionner OK pour utiliser le nom d'hôte par défaut "localhost". Sur les trois écrans suivants, appuyez sur la flèche vers le bas et appuyez sur la touche Entrée pour accepter d'utiliser « hackme » comme source, relais et mot de passe d'administration par défaut. Même si nous acceptons tous les paramètres par défaut, ces étapes doivent être effectuées pour activer le serveur Icecast2.

sudo apt-get install icecast2

Étape 12:

Image
Image
Image
Image
Image
Image

Ensuite, nous devons exécuter le gestionnaire de fichiers GUI en tant qu'utilisateur root. Pour ce faire, sélectionnez Menu GUI > Exécuter. Tapez "sudo pcmanfm" et appuyez sur Entrée. Cela ouvrira le gestionnaire de fichiers (l'équivalent de l'explorateur de fichiers pour nous, utilisateurs de Windows) dans le répertoire de base (/home/pi) et vous verrez le fichier d'installation darkice que nous avons précédemment téléchargé. Faites un clic droit dans un espace vide et sélectionnez Créer un nouveau puis Vider le fichier. Nommez-le "darkice.cfg" et cliquez sur OK. Ensuite, faites un clic droit sur ce fichier nouvellement créé et choisissez de l'ouvrir avec Leafpad (l'équivalent du bloc-notes Windows). Copiez les lignes ci-dessous et collez-les dans Leafpad, puis cliquez sur Fichier et Enregistrer. Vous remarquerez que la ligne "qualité" est commentée avec un # devant elle. Il n'est utilisé que si vous définissez "bitrateMode = vbr" (débit binaire variable). Vous ne pouvez pas définir une valeur de qualité lors de l'utilisation de cbr (débit binaire constant) ou le flux va bégayer et sauter. Inversement, si vous décidez d'utiliser vbr, vous devez commenter la ligne "bitrate = 160" et décommenter la ligne "quality".

REMARQUE: le débit binaire mp3 de la plus haute qualité que vous pouvez obtenir est de 320 kbit/s; Cependant, les radios WiFi et Bluetooth du Raspberry Pi sont sur la même puce, donc si vous maximisez la bande passante des deux, l'audio Bluetooth peut bégayer ou se bloquer. Nous allons modifier un paramètre plus tard qui remédiera à cela, mais cela limite quelque peu la bande passante WiFi, j'ai donc réduit le débit audio pour ce projet à 160 kbps car je prévois de le garder exclusivement sur le WiFi. Si vous utilisez Ethernet, ce n'est pas un problème et vous pouvez régler le débit binaire en toute sécurité à 320 kbps.

[general]duration = 0 # durée en s, 0 pour toujours bufferSecs = 1 # buffer, en secondes reconnect = yes # se reconnecter si déconnecté

[saisir]

device = phone # nom du périphérique bluetooth sampleRate = 44100 # taux d'échantillonnage 11025, 22050 ou 44100 bitsPerSample = 16 # bits channel = 2 # 2 = stéréo

[icecast2-0]

bitrateMode = cbr # débit binaire constant ('cbr' constant, 'abr' moyen) #quality = 1.0 # 1.0 est la meilleure qualité (à utiliser uniquement avec vbr) format = mp3 # format. Choisissez 'vorbis' pour OGG Vorbis bitrate = 160 # bitrate server = localhost # ou IP port = 8000 # port pour IceCast2 access password = hackme # source password pour le serveur IceCast2 mountPoint = rapi.mp3 # point de montage sur le serveur IceCast2.mp3 ou nom.ogg = BluetoothPi

Étape 13:

Image
Image
Image
Image
Image
Image
Image
Image

Ensuite, nous devons suivre les mêmes étapes que précédemment pour créer un fichier vide appelé "darkice.sh". Un fichier.sh est l'équivalent d'un fichier.bat ou batch pour DOS ou Windows. Ouvrez à l'aide de Leafpad, copiez et collez les lignes ci-dessous et enregistrez. Si vous avez suivi mon instructable précédent, vous remarquerez que la ligne qui commence Darkice est un peu différente. J'ai dû intégrer le code dans une boucle car chaque fois que Darkice perd le signal audio Bluetooth, il s'arrête de fonctionner et ne redémarre pas automatiquement même lorsque l'audio est redémarré. J'ai beaucoup étudié ce problème et bien qu'il existe des moyens compliqués d'exécuter automatiquement un script chaque fois qu'un périphérique Bluetooth est connecté, Darkice s'arrêtera parfois chaque fois que le signal audio est perdu même si le périphérique Bluetooth est toujours connecté (par exemple, si vous fermez le YouTube app sur votre téléphone) c'est donc le moyen le plus simple et le plus fiable de s'assurer que Darkice fonctionne chaque fois que l'audio Bluetooth est présent. Si Darkice est déjà en cours d'exécution, la commande est ignorée.

#!/bin/bashwhile:; faire sudo /usr/bin/darkice -c /home/pi/darkice.cfg; dormir 5; terminé

Étape 14:

Image
Image

Ensuite, nous devons exécuter une commande pour rendre le fichier darkice.sh exécutable. Ouvrez la fenêtre du terminal et tapez "sudo chmod 777 /home/pi/darkice.sh" et appuyez sur Entrée. Il est maintenant temps de démarrer le service serveur Icecast2. Tapez "sudo service icecast2 start" et appuyez sur Entrée.

sudo chmod 777 /home/pi/darkice.sh

démarrage du service sudo icecast2

Étape 15:

Image
Image
Image
Image
Image
Image
Image
Image

Ensuite, nous devons dire à Darkice de démarrer automatiquement chaque fois que le Pi est démarré (le serveur Icecast2 fonctionne en tant que service et démarre déjà automatiquement après le démarrage). Nous devons d'abord sélectionner l'éditeur de texte à utiliser. Dans la fenêtre du terminal, tapez "select-editor" et appuyez sur Entrée. Tapez "2" pour sélectionner l'éditeur nano et appuyez sur Entrée. Tapez ensuite "crontab -e" et entrez. Maintenez ensuite la flèche vers le bas enfoncée pour faire défiler jusqu'en bas du fichier texte qui apparaît et ajoutez cette ligne "@reboot sleep 10 && sudo /home/pi/darkice.sh". Appuyez ensuite sur Ctrl-X pour quitter et le message "Enregistrer le tampon modifié ?" s'affichera. Appuyez sur la touche Y pour Oui, puis sur Entrée pour confirmer le nom de fichier généré automatiquement.

select-editor

crontab -e

@reboot sleep 10 && sudo /home/pi/darkice.sh

Étape 16:

Image
Image
Image
Image
Image
Image

Associez votre téléphone au Raspberry Pi à l'aide de l'icône Bluetooth sur le bureau. Il est important de mettre le Bluetooth du Pi en mode découverte, puis de le coupler à partir de votre téléphone. Si vous mettez votre téléphone en mode découverte et essayez de le coupler À PARTIR du Pi, il peut se connecter mais vous donner une erreur indiquant qu'il n'y a aucun service sur votre téléphone que le Pi peut utiliser, ce qui est vrai. Nous essayons d'envoyer l'audio AU Pi, pas l'inverse. Une fois le couplage effectué, exécutez cette commande dans la fenêtre du terminal pour révéler l'adresse MAC Bluetooth de votre appareil connecté:

sudo bluetoothctl

Étape 17:

Image
Image
Image
Image
Image
Image

Pour que Darkice puisse utiliser le périphérique Bluetooth comme entrée audio PCM, nous devons créer un fichier dans le dossier "etc" appelé "asound.conf" (etc/asound.conf). Cliquez plusieurs fois sur la flèche vers le haut du gestionnaire de fichiers pour accéder au répertoire racine, puis double-cliquez sur le dossier "etc" pour l'ouvrir. Faites défiler vers le bas et faites un clic droit dans un espace vide et créez un fichier vide appelé "asound.conf" et copiez et collez les lignes ci-dessous avec l'adresse MAC de votre appareil substituée à la mienne bien sûr et enregistrez.

pcm.phone { tapez plug slave.pcm { tapez bluealsa device "50:F0:D3:7A:94:C4" profile "a2dp" } }

Étape 18:

Image
Image
Image
Image
Image
Image

Les radios WiFi et Bluetooth sur le Raspberry Pi sont sur la même puce, donc si vous maximisez la bande passante des deux, l'audio Bluetooth peut bégayer ou geler. Certains appellent cela un bogue et certains disent que c'est juste une limitation matérielle. Nous allons modifier un paramètre qui remédiera à cela. Le mérite de la publication de ce correctif revient à "pelwell" à l'adresse https://github.com/raspberrypi/linux/issues/1402 Exécutez à nouveau sudo pcmanfm pour ouvrir le gestionnaire de fichiers et accédez à /lib/firmware/brcm. Double-cliquez sur le fichier texte "brcmfmac43430-sdio.txt" pour l'ouvrir et ajoutez ces lignes en bas et enregistrez.

# Paramètres de coexistence Bluetooth expérimentaux de Cypressbtc_mode=1 btc_params8=0x4e20 btc_params1=0x7530

Étape 19:

Image
Image
Image
Image
Image
Image

Cliquez sur l'icône du menu GUI et sélectionnez Arrêter et redémarrer. Si vous avez suivi toutes ces étapes avec précision, votre serveur audio Bluetooth démarrera automatiquement entre 30 secondes et une minute après avoir cliqué sur redémarrer. AVANT de pouvoir l'ajouter à Sonos, vous devez connecter le Bluetooth de votre téléphone au Pi (en appuyant simplement dessus dans les paramètres Bluetooth de votre téléphone puisqu'il est déjà couplé) et commencer à lire l'audio d'une sorte et augmenter le volume. N'oubliez pas que vous n'entendrez aucun son provenant du haut-parleur de votre téléphone, car il pense qu'il est connecté à un haut-parleur Bluetooth externe. Un moyen visuel de savoir si Icecast reçoit l'audio Bluetooth de Darkice consiste à ouvrir https://192.168.86.107:8000 dans un navigateur Web avec l'adresse IP de votre Pi substituée à la mienne. Icecast est toujours en cours d'exécution, vous verrez donc toujours la page d'état, mais si Darkice reçoit également l'audio Bluetooth, vous verrez également le point de montage et le descripteur de flux. Déconnectez votre bluetooth et actualisez la page et elle redeviendra vierge.

Étape 20:

Image
Image
Image
Image

Vous devez utiliser l'application de contrôleur de bureau Sonos pour ajouter un flux personnalisé à Sonos. Cliquez sur Gérer > Ajouter une station de radio et entrez l'url du flux qui, dans mon cas, était "https://192.168.86.107:8000/rapi.mp3". Saisissez également un nom de station et cliquez sur OK.

Étape 21:

Image
Image

Pour écouter la station de radio personnalisée que nous venons d'ajouter, sélectionnez "Radio by Tunein" puis "Mes stations de radio". DOUBLE-CLIC GAUCHE pour lire ou clic DROIT pour modifier ou ajouter la station à vos favoris Sonos.

Étape 22:

Image
Image
Image
Image

Après avoir ajouté la station de radio personnalisée, elle sera immédiatement disponible dans votre application Sonos. Ouvrez l'application, appuyez sur « Mon Sonos » en bas, faites défiler jusqu'à « Stations » et appuyez sur « Tout afficher ». Faites défiler jusqu'à ce que vous voyiez votre station nouvellement créée. Appuyez dessus et il commencera à jouer dans les pièces que vous avez sélectionnées. Rappelez-vous, si vous ̶ déconnecter le Bluetooth de la PI Ensuite, le flux sera IceCast ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ Si vous commutateur audio des applications il peut ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ de reprendre l'écoute sur SONOS, VOUS amené à redémarrer la lecture audio sur votre téléphone à nouveau et jouer sur PUSH ̶t̶h̶e̶ ̶S̶o̶n̶o̶s̶ ̶a̶p̶p̶ ̶a̶g̶a̶i̶n̶.̶ <---Ceci a été corrigé; voir mise à jour ci-dessous. Bonne chance et merci pour la lecture!

Étape 23: MISE À JOUR: FIXE MAINTENANT LE STREAM CONNECTÉ LORSQUE BLUETOOTH SE DÉCONNECTE

Ainsi, le streaming Bluetooth fonctionnait parfaitement avec cette configuration SAUF que Sonos se déconnectait du serveur Icecast chaque fois que Darkice perdait l'audio Bluetooth, par exemple lorsque vous changez d'application audio ou tout simplement déconnectez Bluetooth, ce qui était pénible car vous deviez à nouveau obtenir le streaming audio Bluetooth avant vous pouvez même appuyer sur le bouton de lecture dans l'application Sonos. Cela est devenu un énorme problème lorsque j'essayais de diffuser de l'audio sur Sonos à partir de l'application WatchESPN de mon téléphone, qui est uniquement en plein écran. Le flux Sonos ne démarre pas si vous n'avez pas démarré l'audio Bluetooth en premier ! Pouah! Je me suis arraché les cheveux en essayant de trouver une solution élégante pour cela. J'ai essayé un autre encodeur mp3 appelé liquidsoap qui a la possibilité d'envoyer un son silencieux en cas de perte de connexion, mais je n'ai pas pu le faire fonctionner avec bluealsa. J'ai essayé de mélanger le flux bluealsa avec un flux alsa de carte son fictive secondaire en utilisant dsnoop et asym pour essayer de faire croire à Icecast qu'il y avait toujours un signal audio présent, mais alsa ne vous permet vraiment pas de beaucoup manipuler l'audio Bluetooth. J'ai ensuite commencé à étudier l'utilisation d'un point de montage de secours à l'aide d'un fichier mp3 silencieux dans Icecast, mais Sonos verrait le nom du point de montage changer et se déconnecter. J'utilisais un fichier test.mp3 et je l'ai accidentellement désigné comme le nom du point de montage principal une fois au lieu du nom de secours et j'ai remarqué que Sonos passait simplement à la lecture de ce fichier lorsqu'il s'est déconnecté du flux bluetooth "rapi.mp3". Eurêka ! Il ne reviendrait pas automatiquement au flux Bluetooth lorsqu'il serait à nouveau disponible, ce qui m'a amené à penser pourquoi ne pas simplement utiliser le même nom de point de montage ? Vous devez donc créer un fichier mp3 silencieux et lui donner le même nom que le flux mp3 Darkice, "rapi.mp3", et le coder en dur comme point de montage principal dans le fichier de configuration Icecast2. Ce qui se passe, c'est que chaque fois que Sonos perd la connexion au flux Darkice/bluetooth rapi.mp3, il commence simplement à boucler l'autre fichier rapi.mp3 silencieux jusqu'à ce que le flux Bluetooth revienne en ligne. De cette façon, vous n'avez pas besoin d'activer l'audio Bluetooth avant d'appuyer sur lecture dans Sonos. Voici comment procéder…

Étape 24:

Image
Image
Image
Image
Image
Image

Nous devons d'abord installer ffmpeg pour créer un fichier mp3 silencieux. Vous pouvez enregistrer un fichier.wav silencieux à partir d'une carte son externe et le convertir en mp3 en utilisant lame, mais comme je n'ai pas d'entrée de carte son externe pour ce projet, l'utilisation de ffmpeg était la solution la plus simple. Ouvrez la fenêtre du terminal et tapez " sudo apt-get install ffmpeg " et appuyez sur Entrée:

sudo apt-get install ffmpeg

Après son installation, copiez et collez cette longue ligne pour encoder un fichier mp3 silencieux d'une durée d'une seconde:

sudo ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -b:a 160k -t 1 /usr/share/icecast2/web/rapi.mp3

Ouvrez le gestionnaire de fichiers en tant que root en utilisant "sudo pcmanfm" et accédez à "/etc/icecast2". Faites un clic droit sur "icecast.xml" et ouvrez à l'aide de Leafpad et collez ces lignes juste sous la ligne supérieure "":

/rapi.mp3

Enregistrez et redémarrez et vous devriez maintenant pouvoir démarrer votre station Bluetooth Sonos personnalisée avant même d'avoir connecté votre téléphone au Bluetooth !

Étape 25: Addenda

Addenda
Addenda
Addenda
Addenda
Addenda
Addenda
Addenda
Addenda

Je voulais que le Raspberry Pi et l'alimentation 110V AC à 5V DC soient autonomes dans un seul boîtier afin que je puisse facilement le déplacer dans la maison, mais j'ai été surpris de constater qu'un tel boîtier n'existe pas. Je pourrais en imprimer un en 3D plus tard, mais entre-temps, je suis passé à un autre boîtier Raspberry Pi et j'ai trouvé un chargeur mural USB fin et un câble court. Le chargeur avait un revêtement caoutchouté sur lequel je ne pouvais pas coller de ruban VHB transparent, mais il s'est avéré que c'était un autocollant facilement amovible; Cependant, cela a créé un petit renfoncement qui a rendu le ruban VHB trop fin, j'ai donc utilisé du velcro.

Conseillé: