Tartalomjegyzék:

Bluetooth lejátszása a Sonoson a Raspberry Pi használatával: 25 lépés
Bluetooth lejátszása a Sonoson a Raspberry Pi használatával: 25 lépés

Videó: Bluetooth lejátszása a Sonoson a Raspberry Pi használatával: 25 lépés

Videó: Bluetooth lejátszása a Sonoson a Raspberry Pi használatával: 25 lépés
Videó: How to listen to vinyl on Sonos 2024, Július
Anonim
Image
Image
Játsszon Bluetooth -ot a Sonoson a Raspberry Pi segítségével
Játsszon Bluetooth -ot a Sonoson a Raspberry Pi segítségével

Korábban írtam egy utasítást, amely leírja, hogyan adhat hozzá Aux vagy analóg vonali bemenetet a Sonoshoz Raspberry Pi segítségével. Egy olvasó megkérdezte, hogy lehetséges -e a Bluetooth -os hangot streamelni a telefonjáról a Sonos -ra. Ezt egyszerűen megteheti a drágább Sonos Play: 5 vagy Sonos CONNECT; azonban elveszíti a hűségét, ha a bluetooth -t (digitális) analóggá alakítja, majd visszaállítja digitálisra, és ha csak az egyik olcsóbb Sonos hangszóróval rendelkezik, akkor ez nem választható. Ez az útmutató leírja, hogyan állíthat be egy Raspberry Pi -t Bluetooth -audio továbbítására bármely Sonos hangszóróra.

MEGJEGYZÉS: Ne feledje, hogy Bluetooth hangot továbbítunk a Raspberry Pi -re, és mp3 -streammé alakítjuk, mielőtt elküldjük a Sonos -nak, így néhány másodperc késés következik be. Ha ezt videók megtekintésére használja, a hang nem lesz szinkronban.

1. lépés:

Amire szüksége lesz:

Raspberry PI 3 B modell (van egy újabb, gyorsabb B+ modell, de ragaszkodtam a szokásos B modellhez, mert olvastam néhány problémát a B+ lezárásával, valamint a B+ wifi és bluetooth rádióinak fém árnyékolása van körülöttük FCC -kompatibilisek, ha egy másik eszközbe telepítették őket, de maximális Bluetooth -hatótávolságot akartam, és attól tartottam, hogy az árnyékolás akadályozhatja)

Asztali vagy laptop számítógép microSD kártyaolvasóval

Monitor vagy TV HDMI bemenettel (csak a kezdeti beállításhoz)

USB vagy Bluetooth billentyűzet és egér (csak a kezdeti beállításhoz)

Műanyag Raspberry Pi tok (műanyag tokot használok ehhez a projekthez a Bluetooth hatótávolság maximalizálása érdekében)

Kingston 8 GB -os microSDHC Class 4 Flash memóriakártya

5V -os tápegység

2. lépés:

Kép
Kép
Kép
Kép

Nyissa meg a https://www.raspberrypi.org/downloads/raspbian/ webhelyet rendes számítógépén, és töltse le a "RASPBIAN STRETCH WITH DESKTOP" címet.

Látogasson el a https://etcher.io/ oldalra, töltse le és telepítse az Etcher programot.

MEGJEGYZÉS: Korábbi utasításomban leírtam, hogyan kell letölteni a NOOBS -t a Raspbian telepítéséhez; ez a módszer azonban egy kicsit gyorsabb. Akárhogy is jó.

3. lépés:

Kép
Kép
Kép
Kép

Futtassa az Etcher programot, és kattintson a Kép kiválasztása gombra, és keresse meg a zip fájlt. Kattintson a Meghajtó kiválasztása elemre, keresse meg a microSD kártyát, majd kattintson a Flash!

4. lépés:

Kép
Kép
Kép
Kép
Kép
Kép
Kép
Kép

MEGJEGYZÉS: A következő lépések némelyike hasonló az előző utasításomhoz, ezért ugorjon előre, ha már rendelkezik root jelszóval, statikus IP -vel és VNC -vel.

Helyezze be a microSD -kártyát a Raspberry Pi alján található SD -kártya nyílásba. Csatlakoztassa a Raspberry Pi HDMI -kábelét a monitorhoz vagy a TV -hez. Csatlakoztassa az USB billentyűzetet, egeret és végül a Micro USB tápkábelt. Indítás után megjelenik a Raspbian asztal. Ez számos beállításon keresztül vezet, de azt javaslom, hogy NE ellenőrizze a frissítéseket. Kattintson a Kihagyás gombra. Folyamatosan a "blueman.bluez.errors. DBusFailedError: Protocol not available" hibaüzenetet kaptam, amikor megpróbáltam párosítani a Bluetooth -ot az összes frissítés telepítése után, így újra kellett kezdenem.

TIPP: Ha nem akarja a katonai időt, kattintson jobb gombbal az órára, válassza a Digitális óra beállításai lehetőséget, és módosítsa az óra formátumát %R értékről %r értékre

5. lépés:

Kép
Kép
Kép
Kép
Kép
Kép

Ezután engedélyezzük a beépített VNC szervert. Ez annyival megkönnyíti a dolgokat, hogy egyszerűen másolhatja és beillesztheti a parancsokat a VNC -n keresztül, ahelyett, hogy gépelné őket. Válassza a GUI menü> Beállítások> Raspberry Pi konfiguráció> Felületek lehetőséget. Kattintson a VNC melletti Engedélyezett, majd az OK gombra. Néhány másodperc múlva egy VNC ikon jelenik meg a tálcán. Kattintson rá, majd a jobb felső sarokban található menüikonra (3 vízszintes vonallal ellátott doboz), majd az Opciók gombra. A Biztonsági beállítások menüben állítsa a Titkosítás beállítást „Előnyben részesítve”, a Hitelesítést pedig „VNC jelszó” értékre, majd kattintson az Alkalmaz gombra. Egy jelszómező jelenik meg. Írja be a jelszó jelszavát "málna" (idézőjelek nélkül) minden mezőbe, majd kattintson az OK gombra.

6. lépés:

Kép
Kép
Kép
Kép
Kép
Kép

Mielőtt továbbmennénk, hozzá kell rendelnünk egy statikus IP -címet. Ha a Pi IP -címét véletlenszerűen hozzárendeli az útválasztó DHCP -kiszolgálója, akkor az IP -cím később megváltozhat, és nem tud csatlakozni a VNC -n (vagy a Sonoson keresztül). Kattintson a jobb gombbal a hálózati kapcsolatok ikonra a tálcán (a kis fel és le nyíl ikon), és válassza a "Vezeték nélküli és vezetékes hálózati beállítások" lehetőséget. A bal egérgombbal kattintson a jobb felső mezőre, és válassza az "eth0" lehetőséget az Ethernet-kapcsolat vagy a "wlan0" beállításához a vezeték nélküli kapcsolathoz. Azt tanácsolom, hogy csak egyikhez vagy másikhoz rendeljen statikus IP -t. Problémám adódott, amikor először beállítottam a Pi -t, ahol ugyanazt a statikus IP -címet rendeltem mindkét kapcsolathoz, és a Pi vezeték nélküli hálózatát lezártam, és nem tudtam visszaállítani a megfelelő működést, ezért el kellett kezdenem az operációs rendszer telepítését. Mindenesetre írja be a kívánt IP -címet az IP -cím mezőbe, és írja be az útválasztó IP -címét az Útválasztó és a DNS -kiszolgálók mezőbe is. Kattintson az Alkalmazás és bezárás gombra.

MEGJEGYZÉS: Könnyebb lehet statikus IP -címet rendelni az útválasztó DHCP IP -foglalási funkciójával, ha van ilyen. Szüksége lehet a Pi MAC -címére, vagy csak megjelenik a csatlakoztatott eszközök listájában az útválasztó adminisztrációs oldalán. Ha szüksége van a MAC -címre, akkor írja be az "ifconfig eth0" parancsot a terminál ablakába az Ethernet számára, vagy az "ifconfig wlan0" parancsot a WiFi -hez. Érdekes módon a WiFi MAC -cím megjelenik az "éter" betűvel kezdődő sorban

7. lépés:

Kép
Kép
Kép
Kép
Kép
Kép

Ezután be kell állítanunk az alapértelmezett képernyőfelbontást. Ez hülyeségnek tűnhet, ha úgy látjuk, hogy már csatlakoztatva vagyunk egy monitorhoz, de később, amikor VNC -n keresztül csatlakozik monitor nélkül (fejetlen, ahogy mondják), vissza fog térni a Pi alapértelmezett 640x480 felbontására, ami nagyon apró képernyő. dolgozik vele! Válassza a GUI menü> Beállítások> Raspberry Pi konfiguráció> Felbontás beállítását. Állítsa 1280x720 vagy nagyobb felbontásra, majd kattintson az OK és az Igen gombra az újraindításhoz.

8. lépés:

Kép
Kép
Kép
Kép
Kép
Kép

Érdemes megváltoztatni a Pi nevét, különösen, ha egynél több van a hálózaton. Az enyémet átneveztem "BluetoothPi" -re, hogy könnyen azonosítható legyen. Átnevezése után újraindítást kér.

9. lépés:

Kép
Kép
Kép
Kép
Kép
Kép
Kép
Kép

Ezen a ponton érdemes elkezdeni a VNC használatát a Pi vezérléséhez. Nyissa meg újra a VNC vezérlőpanelt a Raspbian asztalon, és keresse meg az IP -címet a "Kapcsolatok" alatt. Telepítsen és futtasson egy VNC nézőt a szokásos számítógépén, és használja ezt az IP -címet a csatlakozáshoz, és írja be a "málna" (idézőjelek nélkül) jelszót. TightVNC -t használtam a Windows számára. A csatlakoztatás után elmentheti a Pi VNC -kapcsolatát parancsikonként az asztalon, hogy gyorsan csatlakozhasson a jövőben, megkerülve a bejelentkezési képernyőt. Figyelmeztetést kap a jelszó mentéséről a parancsikonba. A Pi terminál ablakába történő másoláshoz jelölje ki vagy jelölje ki a szöveget vagy parancsokat a rendes számítógépén, nyomja meg a Ctrl-C billentyűt (szó szerint nyomja meg egyszerre a billentyűzet Ctrl és C billentyűit), vagy kattintson a jobb gombbal, és válassza a "Másolás" parancsot. ", majd aktiválja a Pi VNC megjelenítő ablakát, és kattintson a jobb gombbal a terminál ablakán belül a kurzorra, és válassza a Beillesztés lehetőséget.

10. lépés:

Kép
Kép
Kép
Kép

Ezután két programot telepítünk, a Darkice és az Icecast2. A Darkice fogja kódolni bluetooth audio forrásunkat mp3 -streambe, az Icecast2 pedig Shoutcast streamként fogja szolgálni a Sonosnak. Másolja és illessze be ezeket a sorokat egyenként a terminál ablakába, majd az Enter billentyűt minden alkalommal:

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

11. lépés:

Kép
Kép
Kép
Kép
Kép
Kép
Kép
Kép

Most telepítse az Icecast2 -t. Írja be a "sudo apt-get install icecast2" parancsot, majd az enter billentyűt. Telepítése után megjelenik egy ablak, amely megkérdezi, hogy szeretné -e konfigurálni az Icecast2 -t. Nyomja meg a bal nyílbillentyűt, és válassza az Igen lehetőséget. A második képernyőn nyomja meg a lefelé mutató nyílbillentyűt, és nyomja meg az OK gombot az alapértelmezett "localhost" gazdagépnév használatához. A következő három képernyőn nyomja meg a lefelé mutató nyilat, és írja be a billentyűt, hogy beleegyezzen a "hackme" alapértelmezett forrásként, továbbításként és adminisztrátori jelszóként való használatába. Annak ellenére, hogy minden alapértelmezett beállítással egyetértünk, ezeket a lépéseket el kell végezni az Icecast2 szerver aktiválásához.

sudo apt-get install icecast2

12. lépés:

Kép
Kép
Kép
Kép
Kép
Kép

Ezután root felhasználóként kell futtatnunk a GUI fájlkezelőt. Ehhez válassza a GUI menü> Futtatás parancsot. Írja be a "sudo pcmanfm" parancsot, és nyomja meg az Enter billentyűt. Ez megnyitja a fájlkezelőt (ami a Windows -felhasználók számára a fájlkezelő megfelelője) a saját könyvtárba (/home/pi), és látni fogja a korábban letöltött darkice telepítőfájlt. Kattintson a jobb gombbal egy üres helyre, és válassza az Új létrehozása, majd az Üres fájl lehetőséget. Nevezze el "darkice.cfg", majd kattintson az OK gombra. Ezután a jobb gombbal kattintson az újonnan létrehozott fájlra, és válassza ki a Leafpad (a Windows jegyzettömb megfelelője) megnyitását. Másolja az alábbi sorokat, illessze be őket a Leafpadba, majd kattintson a Fájl és Mentés gombra. Észre fogja venni, hogy a "minőségi" sor egy # -vel van megjegyezve. Csak akkor használható, ha a "bitrateMode = vbr" (változó bitráta) értéket állítja be. Nem állíthat be minőségi értéket cbr (állandó bitsebesség) használatakor, különben a stream akadozik és kihagy. Ezzel szemben, ha úgy dönt, hogy vbr -t használ, akkor ki kell írnia a "bitrate = 160" sort, és törölnie kell a "quality" sort.

MEGJEGYZÉS: A legmagasabb minőségű mp3 bitráta 320 kbps; mindazonáltal mind a WiFi, mind a Bluetooth rádiók a Raspberry Pi -n ugyanazon a chipen vannak, így ha mindkettő maximális sávszélességét kihasználja, a bluetooth hang dadoghat vagy lefagyhat. Később módosítani fogunk egy olyan beállítást, amely ezt orvosolja, azonban valamennyire korlátozza a WiFi sávszélességét, ezért csökkentettem a projekt hangsebességét 160 kbps -ra, mivel azt tervezem, hogy kizárólag WiFi -n tartom. Ha ethernetet használ, ez nem jelent problémát, és biztonságosan beállíthatja a bitrátát 320 kbps -ra.

[általános] időtartam = 0 # időtartam másodpercben, 0 örökre puffer

[bemenet]

eszköz = telefon # a Bluetooth -eszköz neve mintaRate = 44100 # mintavételi frekvencia 11025, 22050 vagy 44100 bit PerSample = 16 # bit csatorna = 2 # 2 = sztereó

[icecast2-0]

bitrateMode = cbr # állandó bitsebesség ('cbr' konstans, 'abr' átlag) #quality = 1.0 # 1.0 a legjobb minőségű (csak vbr -vel használható) format = mp3 # formátum. Válassza a 'vorbis' opciót az OGG Vorbis bitráta = 160 # bitráta szerver = localhost # vagy IP port = 8000 # portja számára az IceCast2 hozzáférési jelszóhoz = hackme # forrásjelszó az IceCast2 szerverhez mountPoint = rapi.mp3 # csatolási pont az IceCast2 kiszolgálón.mp3 vagy.ogg name = BluetoothPi

13. lépés:

Kép
Kép
Kép
Kép
Kép
Kép
Kép
Kép

Ezután ugyanazokat a lépéseket kell követnünk, mint korábban, hogy létrehozzunk egy üres "darkice.sh" nevű fájlt. Az.sh fájl a.bat vagy kötegelt fájl megfelelője DOS vagy Windows esetén. Nyissa meg a Leafpad segítségével, másolja és illessze be az alábbi sorokat, és mentse. Ha követte az előző utasítást, akkor észre fogja venni, hogy a Darkice kezdete egy kicsit másképp néz ki. Be kellett ágyaznom a kódot egy hurokba, mert valahányszor a Darkice elveszíti a Bluetooth audio jelet, leáll, és nem indul újra automatikusan, még akkor sem, ha a hangot újraindítják. Sokat kutattam ezt a problémát, és bár vannak bonyolult módok a szkriptek automatikus futtatására, amikor egy Bluetooth -eszköz csatlakoztatva van, a Darkice néha leáll, amikor az audiojel elveszik, még akkor is, ha a Bluetooth -eszköz továbbra is csatlakoztatva van (pl. alkalmazás a telefonon), így ez a legegyszerűbb és legmegbízhatóbb módja annak, hogy megbizonyosodjon arról, hogy a Darkice fut, amikor Bluetooth -audio van jelen. Ha a Darkice már fut, a parancs figyelmen kívül marad.

#!/bin/bashways:; do sudo/usr/bin/darkice -c /home/pi/darkice.cfg; aludni 5; Kész

14. lépés:

Kép
Kép

Ezután futtassunk egy parancsot a darkice.sh fájl végrehajthatóvá tételéhez. Nyissa meg a terminál ablakát, és írja be a "sudo chmod 777 /home/pi/darkice.sh" parancsot, és nyomja meg az Enter billentyűt. Most itt az ideje, hogy elindítsa az Icecast2 szerver szolgáltatást. Írja be a "sudo service icecast2 start" parancsot, és nyomja meg az Enter billentyűt.

sudo chmod 777 /home/pi/darkice.sh

sudo szolgáltatás icecast2 indítása

15. lépés:

Kép
Kép
Kép
Kép
Kép
Kép
Kép
Kép

Ezután meg kell mondanunk a Darkice -nak, hogy a Pi indításakor automatikusan induljon el (az Icecast2 szerver szolgáltatásként fut, és a rendszerindítás után már automatikusan elindul). Először ki kell választanunk, hogy melyik szövegszerkesztőt használjuk. A terminál ablakába írja be a "select-editor" parancsot, és nyomja meg az Enter billentyűt. Gépelje be a "2" -t a nano szerkesztő kiválasztásához, és nyomja meg az Enter billentyűt. Ezután írja be a "crontab -e" parancsot, és írja be. Ezután tartsa lenyomva a lefelé mutató nyilat, és görgessen egészen a megjelenő szövegfájl aljáig, majd adja hozzá ezt a sort: "@reboot sleep 10 && sudo /home/pi/darkice.sh". Ezután nyomja meg a Ctrl-X billentyűt a kilépéshez, és megjelenik a "Mentett puffer mentése?". Nyomja meg az Y gombot az Igen, majd az Enter billentyű megnyomásával, hogy megerősítse, hogy milyen fájlnév jön létre automatikusan.

kiválasztó-szerkesztő

crontab -e

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

16. lépés:

Kép
Kép
Kép
Kép
Kép
Kép

Párosítsa a telefont a Raspberry Pi -vel az asztalon található Bluetooth ikon segítségével. Fontos, hogy a Pi Bluetooth -ját felfedezési módba állítsa, majd párosítsa a telefonról. Ha felfedezési módba állítja a telefont, és megpróbálja párosítani a Pi -ből, akkor csatlakozhat, de hibaüzenetet kap, miszerint nincs olyan szolgáltatás a telefonon, amelyet a Pi tud használni, ami igaz. Próbálunk hangot küldeni a Pi -nek, és nem fordítva. A párosítás után futtassa ezt a parancsot a terminál ablakban, hogy felfedje a csatlakoztatott eszköz Bluetooth MAC -címét:

sudo bluetoothctl

17. lépés:

Kép
Kép
Kép
Kép
Kép
Kép

Annak érdekében, hogy a Darkice használhassa a Bluetooth -eszközt PCM audio bemenetként, létre kell hoznunk egy fájlt az "etc" mappában, az "asound.conf" (etc/asound.conf) néven. Kattintson néhányszor a felfelé mutató nyílra a fájlkezelőn, hogy feljusson a gyökérkönyvtárba, majd kattintson duplán az "etc" mappára a megnyitásához. Görgessen le, és kattintson a jobb gombbal egy üres helyre, és hozzon létre egy üres fájlt "asound.conf" néven, majd másolja és illessze be az alábbi sorokat a készülék MAC-címével, természetesen az enyémmel helyettesítve, és mentse.

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

18. lépés:

Kép
Kép
Kép
Kép
Kép
Kép

Mind a WiFi, mind a Bluetooth rádiók a Raspberry Pi -n ugyanazon a chipen vannak, így ha mindkettő maximális sávszélességét kihasználja, a bluetooth hang dadoghat vagy lefagyhat. Van, aki hibának nevezi, és van, aki azt mondja, hogy ez csak egy hardveres korlátozás. Meg fogunk változtatni egy beállítást, amely ezt orvosolja. A javítás közzétételéért járó elismerés a "pelwell" címet illeti: https://github.com/raspberrypi/linux/issues/1402 Futtassa újra a sudo pcmanfm fájlt a fájlkezelő megnyitásához, és keresse meg a/lib/firmware/brcm mappát. Kattintson duplán a "brcmfmac43430-sdio.txt" szövegfájlra a megnyitásához, majd adja hozzá ezeket a sorokat az aljához, és mentse.

# Kísérleti Bluetooth együttélési paraméterek Cypressbtc_mode = 1 btc_params8 = 0x4e20 btc_params1 = 0x7530

19. lépés:

Kép
Kép
Kép
Kép
Kép
Kép

Kattintson a GUI menü ikonjára, és válassza a Leállítás és újraindítás lehetőséget. Ha pontosan követte ezeket a lépéseket, akkor a Bluetooth audio szerver automatikusan elindul 30 másodperctől egy percig az újraindítás gombra kattintás után. Mielőtt hozzáadná a Sonos -hoz, csatlakoztatnia kell a telefon Bluetooth -ját a Pi -hez (egyszerűen koppintson rá a telefon Bluetooth -beállításaiban, mivel az már párosítva van), és el kell kezdenie valamilyen hang lejátszását, és növelnie kell a hangerőt. Ne feledje, hogy nem hall hangot a telefon hangszórójából, mert úgy gondolja, hogy külső Bluetooth -hangszóróhoz van csatlakoztatva. Az egyik vizuális módszer annak megállapítására, hogy az Icecast Bluetooth -hangot kap -e a Darkice -tól, ha megnyitja a https://192.168.86.107:8000 böngészőt, és a Pi IP -jét az enyém helyettesíti. Az Icecast mindig fut, így mindig látni fogja az állapotoldalt, de ha a Darkice Bluetooth -hangot is kap, akkor a csatolási pontot és a stream leírót is látni fogja. Húzza ki a bluetooth -ot, és frissítse az oldalt, és ismét üres lesz.

20. lépés:

Kép
Kép
Kép
Kép

A Sonos asztali vezérlő alkalmazást kell használnia egyéni adatfolyam hozzáadásához a Sonoshoz. Kattintson a Kezelés> Rádióállomás hozzáadása elemre, és írja be a folyam URL -jét, amely esetemben a "https://192.168.86.107:8000/rapi.mp3" volt. Adja meg az állomás nevét is, majd kattintson az OK gombra.

21. lépés:

Kép
Kép

Az imént hozzáadott egyedi rádióállomás lejátszásához válassza a "Radio by Tunein", majd a "My Radio Stations" lehetőséget. A BALRA DOUBLE-kattintással játszhat, vagy a JOBB-kattintással szerkesztheti vagy hozzáadhatja az állomást a Sonos kedvencekhez.

22. lépés:

Kép
Kép
Kép
Kép

Az egyéni rádióállomás hozzáadása után azonnal elérhető lesz a Sonos alkalmazásban. Nyissa meg az alkalmazást, érintse meg a "Saját Sonos" elemet alul, görgessen le az "Állomások" elemhez, és érintse meg a "Mindet" lehetőséget. Görgessen lefelé, amíg meg nem jelenik az újonnan létrehozott állomás. Koppintson rá, és elkezd játszani a kiválasztott szobákban. Ne felejtsük el, ̶ Ha leválasztja a Bluetooth a PI-akkor a icecast folyam ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ ha váltani audioalkalmazások Lehet ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ folytatásához figyel Sonos akkor el kell indítani Játék audio a telefon újra és PUSH Play on ̶T̶h̶e̶ ̶S̶o̶n̶o̶s̶ ̶a̶p̶p̶ ̶a̶g̶a̶i̶n̶.̶ <--- Ezt kijavították; lásd az alábbi frissítést. Sok sikert és köszönöm, hogy elolvastad!

23. lépés: FRISSÍTÉS: RÖGZÍTETT TARTÓ ÁRAM CSATLAKOZTATVA A BLUETOOTH LEÁLLÍTÁSOKOR

Tehát a Bluetooth streaming tökéletesen működött ezzel a beállítással. akár a lejátszás gombot is megnyomhatja a Sonos alkalmazásban. Ez óriási problémává vált, amikor hangot próbáltam továbbítani a Sonos -ra a telefonom WatchESPN alkalmazásából, amely csak teljes képernyős, így nem tudtam megnyomni a lejátszás gombot a Sonos alkalmazásban, miután elindítottam a bluetooth hangot, de amikor bezártam a WatchESPN alkalmazást, A Sonos adatfolyam csak akkor indulna el, ha először nem indította el a Bluetooth hangot! Uhh! Húztam a hajamat, és elegáns megoldást akartam találni erre. Kipróbáltam egy másik mp3 kódolót, az úgynevezett liquidsoap -ot, amely lehetőséget ad arra, hogy néma hangot küldjön, ha elveszíti a kapcsolatot, de nem tudtam elérni, hogy működjön a bluealsa -val. Megpróbáltam összekeverni a bluealsa adatfolyamot egy másodlagos dummy hangkártya alsa folyammal a dsnoop és asym használatával, hogy megpróbáljam becsapni az Icecastot, hogy azt gondolja, hogy még mindig van hangjel, de az alsa valóban nem teszi lehetővé a Bluetooth hangzás nagymértékű manipulálását. Ezután elkezdtem vizsgálódni egy tartalék csatolási pont használatával egy csendes mp3 fájl használatával az Icecast -ban, de a Sonos látta, hogy a csatolási pont neve megváltozik, és lekapcsolódik. Egy test.mp3 fájlt használtam, és véletlenül egyszer a fő csatolási pont nevének neveztem ki a tartalék helyett, és észrevettem, hogy a Sonos egyszerűen átváltott a fájl lejátszására, amikor leválasztották a bluetooth "rapi.mp3" adatfolyamról. Eureka! Nem kapcsolna vissza automatikusan a bluetooth adatfolyamra, amikor újra elérhetővé válik, így arra gondoltam, miért ne használhatnám ugyanazt a csatolási pont nevét? Tehát nem kell mást tennie, mint létrehoznia egy csendes mp3 fájlt, és ugyanazt a nevet adni neki, mint a Darkice mp3 adatfolyamnak, "rapi.mp3", és kemény kóddal megadni, mint az Icecast2 konfigurációs fájl fő csatolási pontját. Az történik, hogy amikor a Sonos elveszíti a kapcsolatot a Darkice/bluetooth rapi.mp3 adatfolyammal, csak elkezdi hurkolni a másik csendes rapi.mp3 fájlt, amíg a bluetooth adatfolyam vissza nem jön az internetre. Így nem kell bekapcsolnia a bluetooth -os hangot, mielőtt a Sonos játékba kezd. Íme, hogyan kell csinálni…

24. lépés:

Kép
Kép
Kép
Kép
Kép
Kép

Először telepítenünk kell az ffmpeg programot egy csendes mp3 fájl létrehozásához. Egy csendes.wav fájlt rögzíthet egy külső hangkártyáról, és béna segítségével mp3 -ba konvertálhatja, de mivel nincs külső hangkártya bemenetem ehhez a projekthez, az ffmpeg használata volt a legegyszerűbb megoldás. Nyissa meg a terminál ablakát, és írja be a "sudo apt-get install ffmpeg" parancsot, és nyomja meg az Enter billentyűt:

sudo apt-get install ffmpeg

A telepítés után másolja ki és illessze be ezt a hosszú sort egy csendes mp3 fájl kódolásához, amely csak egy másodpercig tart:

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

Nyissa meg a fájlkezelőt rootként a "sudo pcmanfm" használatával, és keresse meg az "/etc/icecast2" mappát. Kattintson a jobb gombbal az "icecast.xml" elemre, és nyissa meg a Leafpad segítségével, és illessze be ezeket a sorokat a "" felső sor alá:

/rapi.mp3

Mentse és indítsa újra, és most már képesnek kell lennie arra, hogy elindítsa az egyéni Sonos Bluetooth állomást, mielőtt még csatlakoztatta volna telefonját a Bluetooth -hoz!

25. lépés: Kiegészítés

Függelék
Függelék
Függelék
Függelék
Függelék
Függelék
Függelék
Függelék

Azt akartam, hogy a Raspberry Pi és a 110V AC-5V DC tápegység önálló legyen egy tokban, így könnyen mozgathatom a ház körül, de meglepődve tapasztaltam, hogy ilyen tok nem létezik. Lehet, hogy később kinyomtatok egy 3D-t, de közben áttértem egy másik Raspberry Pi tok használatára, és találtam egy vékony USB fali töltőt és egy rövid kábelt. A töltő gumírozott bevonattal volt ellátva, amelyhez nem tudtam ragasztani tiszta VHB szalagot, de kiderült, hogy ez egy könnyen eltávolítható matrica; azonban ez egy kis mélyedést hozott létre, ami miatt a VHB szalag túl vékony lett, ezért tépőzárat használtam.

Ajánlott: