Spisu treści:

Graj przez Bluetooth na Sonos za pomocą Raspberry Pi: 25 kroków
Graj przez Bluetooth na Sonos za pomocą Raspberry Pi: 25 kroków

Wideo: Graj przez Bluetooth na Sonos za pomocą Raspberry Pi: 25 kroków

Wideo: Graj przez Bluetooth na Sonos za pomocą Raspberry Pi: 25 kroków
Wideo: THE WALKING DEAD SEASON 2 COMPLETE GAME 2024, Lipiec
Anonim
Image
Image
Graj przez Bluetooth na Sonos za pomocą Raspberry Pi
Graj przez Bluetooth na Sonos za pomocą Raspberry Pi

Wcześniej napisałem instrukcję opisującą, jak dodać wejście liniowe lub analogowe do Sonos za pomocą Raspberry Pi. Czytelnik zapytał, czy byłoby możliwe strumieniowe przesyłanie dźwięku bluetooth z jego telefonu do Sonos. Łatwo to zrobić za pomocą klucza bluetooth podłączonego do wejścia droższego Sonos Play:5 lub Sonos CONNECT; jednak tracisz wierność konwertując bluetooth (cyfrowy) na analogowy, a następnie z powrotem na cyfrowy, a jeśli posiadasz tylko jeden z tańszych głośników Sonos, nie jest to możliwe. Ta instrukcja opisuje, jak skonfigurować Raspberry Pi do strumieniowego przesyłania dźwięku Bluetooth do dowolnego głośnika Sonos.

UWAGA: Pamiętaj, że będziemy przesyłać dźwięk bluetooth do Raspberry Pi i konwertować go na strumień mp3 przed wysłaniem go do Sonos, więc wystąpi kilkusekundowe opóźnienie. Jeśli używasz tego do oglądania wideo, dźwięk nie będzie zsynchronizowany.

Krok 1:

Czego będziesz potrzebować:

Raspberry PI 3 Model B (dostępny jest nowszy, szybszy Model B+, ale utknąłem ze zwykłym Modelem B, ponieważ przeczytałem o problemach z blokowaniem B+, a radia Wi-Fi i Bluetooth B+ mają metalowe osłony wokół nich, aby są zgodne z FCC po zainstalowaniu w innym urządzeniu, ale chciałem mieć maksymalny zasięg Bluetooth i obawiałem się, że ekranowanie może to utrudnić)

Komputer stacjonarny lub laptop z czytnikiem kart microSD

Monitor lub telewizor z wejściem HDMI (tylko do wstępnej konfiguracji)

Klawiatura i mysz USB lub Bluetooth (tylko do wstępnej konfiguracji)

Plastikowa obudowa Raspberry Pi (używam plastikowej obudowy do tego projektu, aby zmaksymalizować zasięg bluetooth)

Karta pamięci flash Kingston 8 GB microSDHC klasy 4

Zasilanie 5 V

Krok 2:

Obraz
Obraz
Obraz
Obraz

Przejdź do https://www.raspberrypi.org/downloads/raspbian/ na swoim zwykłym komputerze i pobierz "RASPBIAN STRETCH WITH DESKTOP".

Przejdź również do https://etcher.io/ i pobierz Etcher i zainstaluj go.

UWAGA: W mojej poprzedniej instrukcji opisałem, jak pobrać NOOBS, aby zainstalować Raspbian; jednak ta metoda jest nieco szybsza. Tak czy inaczej jest w porządku.

Krok 3:

Obraz
Obraz
Obraz
Obraz

Uruchom Etcher i kliknij Wybierz obraz i przejdź do pliku zip. Kliknij Wybierz dysk i przejdź do karty microSD, a następnie kliknij Flash!

Krok 4:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

UWAGA: Niektóre z tych następnych kroków są podobne do moich poprzednich instrukcji, więc przejdź dalej, jeśli masz już hasło roota, statyczny adres IP i skonfigurowane VNC.

Włóż kartę microSD do gniazda kart SD na spodzie Raspberry Pi. Podłącz kabel HDMI z Raspberry Pi do monitora lub telewizora. Podłącz klawiaturę USB, mysz i wreszcie kabel zasilający Micro USB. Po uruchomieniu pojawi się pulpit Raspbian. Przeprowadzi Cię przez kilka ustawień, ale radzę NIE sprawdzać aktualizacji. Kliknij Pomiń. Ciągle otrzymywałem błąd „blueman.bluez.errors. DBusFailedError: Protocol not available” podczas próby sparowania bluetooth po zainstalowaniu wszystkich aktualizacji, więc musiałem zacząć wszystko od nowa.

WSKAZÓWKA: Jeśli nie chcesz czasu wojskowego, kliknij prawym przyciskiem myszy zegar i wybierz Ustawienia zegara cyfrowego i zmień format zegara z %R na %r

Krok 5:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Następnie włączymy wbudowany serwer VNC. To sprawia, że rzeczy są o wiele łatwiejsze, ponieważ możesz po prostu kopiować i wklejać polecenia za pomocą VNC, zamiast je wpisywać. Wybierz Menu GUI > Preferencje > Konfiguracja Raspberry Pi > Interfejsy. Kliknij Włączone obok VNC, a następnie OK. Po kilku sekundach na pasku zadań pojawi się ikona VNC. Kliknij go, a następnie ikonę menu w prawym górnym rogu (pole z 3 poziomymi liniami), a następnie Opcje. W opcjach Zabezpieczenia ustaw Szyfrowanie na „Preferuj wyłączone” i Uwierzytelnianie jako „Hasło VNC”, a następnie kliknij Zastosuj. Pojawi się okno z hasłem. Wpisz „malina” (bez cudzysłowów) jako hasło w każdym polu i kliknij OK.

Krok 6:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Zanim przejdziemy dalej, musimy przypisać statyczny adres IP. Jeśli adres IP twojego Pi jest losowo przypisywany przez serwer DHCP twojego routera, adres IP może się później zmienić i nie będziesz w stanie połączyć się przez VNC (lub Sonos w tym przypadku). Kliknij prawym przyciskiem myszy ikonę połączeń sieciowych na pasku zadań (mała ikona strzałki w górę iw dół) i wybierz "Ustawienia sieci bezprzewodowej i przewodowej". Kliknij lewym przyciskiem myszy w prawym górnym polu i wybierz „eth0”, aby skonfigurować połączenie Ethernet lub „wlan0” dla sieci bezprzewodowej. Radziłbym przypisać statyczny adres IP tylko jednemu lub drugiemu. Miałem problem, kiedy po raz pierwszy skonfigurowałem moje Pi, w którym przypisałem ten sam statyczny adres IP do obu połączeń, a moja sieć bezprzewodowa Pi została zablokowana i nie mogłem przywrócić jej poprawnej pracy, więc musiałem zacząć od początku instalacji systemu operacyjnego. W każdym razie wprowadź żądany adres IP w polu adresu IP i wprowadź adres IP routera w polu Router i serwery DNS. Kliknij Zastosuj i zamknij.

UWAGA: Łatwiejsze może być przypisanie statycznego adresu IP za pomocą funkcji rezerwacji adresu IP DHCP routera, jeśli taki posiada. Możesz potrzebować adresu MAC Pi lub może po prostu pojawić się na liście podłączonych urządzeń na stronie administratora routera. Jeśli potrzebujesz adresu MAC, wpisz polecenie „ifconfig eth0” w oknie terminala dla sieci Ethernet lub „ifconfig wlan0” dla Wi-Fi. Co ciekawe, adres MAC Wi-Fi pojawi się w wierszu zaczynającym się od „ether”

Krok 7:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Następnie musimy ustawić domyślną rozdzielczość ekranu. Może się to wydawać głupie, ponieważ jesteśmy już podłączeni do monitora, ale później, gdy połączysz się przez VNC bez podłączonego monitora (bez głowy, jak mówią), powróci do domyślnej rozdzielczości 640x480 Pi, która jest bardzo małym ekranem do pracować z! Wybierz Menu GUI > Preferencje > Konfiguracja Raspberry Pi > Ustaw rozdzielczość. Ustaw ją na 1280x720 lub wyższą i kliknij OK i Tak, aby ponownie uruchomić.

Krok 8:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Możesz zmienić nazwę swojego Pi, zwłaszcza jeśli masz więcej niż jedną w swojej sieci. Zmieniłem nazwę mojej "BluetoothPi", aby była łatwa do zidentyfikowania. Po zmianie nazwy poprosi Cię o ponowne uruchomienie.

Krok 9:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

W tym momencie możesz zacząć używać VNC do sterowania Pi. Otwórz ponownie panel sterowania VNC na pulpicie Raspbian i poszukaj adresu IP w sekcji „Łączność”. Zainstaluj i uruchom przeglądarkę VNC na swoim zwykłym komputerze i użyj tego adresu IP, aby się połączyć, i wprowadź „malina” (bez cudzysłowów) jako hasło. Użyłem TightVNC dla Windows. Po połączeniu możesz zapisać połączenie VNC Pi jako skrót na pulpicie, aby szybko połączyć się w przyszłości z pominięciem ekranu logowania. Otrzymasz ostrzeżenie o zapisaniu hasła w ramach skrótu. Aby skopiować i wkleić do okna terminala Pi, zaznacz lub zaznacz tekst lub polecenia na zwykłym komputerze, naciśnij Ctrl-C (dosłownie naciśnij jednocześnie klawisze Ctrl i C na klawiaturze) lub kliknij prawym przyciskiem myszy i wybierz „Kopiuj”, a następnie aktywuj okno przeglądarki VNC Pi i kliknij prawym przyciskiem myszy w oknie terminala na kursorze i wybierz Wklej.

Krok 10:

Obraz
Obraz
Obraz
Obraz

Następnie zainstalujemy dwa programy, Darkice i Icecast2. Darkice będzie kodować nasze źródło dźwięku bluetooth do strumienia mp3, a Icecast2 będzie dostarczać je do Sonos jako strumień Shoutcast. Skopiuj i wklej każdy z tych wierszy w oknie terminala pojedynczo, a następnie za każdym razem klawisz Enter:

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 zainstaluj libmp3lame0 libtwolame0

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

Krok 11:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Teraz zainstaluj Icecast2. Wpisz „sudo apt-get install icecast2”, a następnie enter. Po zainstalowaniu pojawi się okno z pytaniem, czy chcesz skonfigurować Icecast2. Naciśnij klawisz strzałki w lewo i wprowadź, aby wybrać Tak. Na drugim ekranie naciśnij klawisz strzałki w dół i wprowadź, aby wybrać OK, aby użyć domyślnej nazwy hosta „localhost”. Na kolejnych trzech ekranach naciśnij strzałkę w dół i wprowadź klucz, aby wyrazić zgodę na użycie "hackme" jako domyślnego źródła, przekaźnika i hasła administracyjnego. Mimo że zgadzamy się na wszystkie ustawienia domyślne, te kroki muszą zostać wykonane, aby aktywować serwer Icecast2.

sudo apt-get zainstaluj icecast2

Krok 12:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Następnie musimy uruchomić menedżera plików GUI jako użytkownik root. Aby to zrobić, wybierz Menu GUI > Uruchom. Wpisz „sudo pcmanfm” i naciśnij Enter. Spowoduje to otwarcie menedżera plików (odpowiednik eksploratora plików dla nas użytkowników Windows) do katalogu domowego (/home/pi) i zobaczysz pozostały plik instalacyjny darkice, który wcześniej pobraliśmy. Kliknij prawym przyciskiem myszy w pustym miejscu i wybierz Utwórz nowy, a następnie Opróżnij plik. Nazwij go "darkice.cfg" i kliknij OK. Następnie kliknij prawym przyciskiem myszy nowo utworzony plik i wybierz otwarcie go za pomocą Leafpad (odpowiednika notatnika Windows). Skopiuj poniższe linie i wklej je do Leafpad, a następnie kliknij Plik i Zapisz. Zauważysz, że wiersz „jakość” jest zakomentowany z # przed nim. Jest używany tylko wtedy, gdy ustawisz „bitrateMode = vbr” (zmienny bitrate). Nie możesz ustawić wartości jakości podczas korzystania z cbr (stała szybkość transmisji bitów), w przeciwnym razie strumień będzie się zacinał i przeskakiwał. I odwrotnie, jeśli zdecydujesz się użyć vbr, musisz zakomentować wiersz „bitrate = 160” i odkomentować wiersz „jakość”.

UWAGA: Najwyższa jakość bitrate mp3, jaką możesz mieć, to 320 kbps; jednak zarówno radia Wi-Fi, jak i Bluetooth na Raspberry Pi są na tym samym chipie, więc jeśli zmaksymalizujesz przepustowość obu, dźwięk Bluetooth może się zacinać lub zawieszać. Zamierzamy później zmienić ustawienie, które naprawi to, jednak ogranicza nieco przepustowość Wi-Fi, więc zmniejszyłem przepływność audio dla tego projektu do 160 kb / s, ponieważ planuję zachować go wyłącznie w Wi-Fi. Jeśli korzystasz z sieci Ethernet, nie stanowi to problemu i możesz bezpiecznie ustawić bitrate na 320 kb/s.

[ogólne]duration = 0 # czas trwania w s, 0 na zawsze bufferSecs = 1 # bufor, w sekundach reconnect = yes # reconnect jeśli rozłączony

[Wejście]

device = telefon # nazwa urządzenia bluetooth sampleRate = 44100 # częstotliwość próbkowania 11025, 22050 lub 44100 bitsPerSample = 16 # bitów channel = 2 # 2 = stereo

[lody2-0]

bitrateMode = cbr # stała szybkość transmisji bitów (stała 'cbr', średnia 'abr') #jakość = 1.0 # 1.0 to najlepsza jakość (używaj tylko z vbr) format = mp3 # format. Wybierz 'vorbis' dla OGG Vorbis bitrate = 160 # bitrate server = localhost # lub port IP = 8000 # port dla IceCast2 access password = hackme # source hasło dla IceCast2 server mountPoint = rapi.mp3 # punkt montowania na serwerze IceCast2.mp3 lub nazwa.ogg = BluetoothPi

Krok 13:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Następnie musimy wykonać te same kroki, co poprzednio, aby utworzyć pusty plik o nazwie „darkice.sh”. Plik.sh jest odpowiednikiem pliku.bat lub wsadowego dla systemu DOS lub Windows. Otwórz za pomocą Leafpad, skopiuj i wklej poniższe linie i zapisz. Jeśli postępowałeś zgodnie z moją poprzednią instrukcją, zauważysz, że linia, która zaczyna Darkice, wygląda trochę inaczej. Musiałem osadzić kod w pętli, ponieważ za każdym razem, gdy Darkice straci sygnał audio bluetooth, przestanie działać i nie uruchomi się automatycznie, nawet po ponownym uruchomieniu dźwięku. Dokładnie zbadałem ten problem i chociaż istnieją skomplikowane sposoby automatycznego uruchamiania skryptu po podłączeniu urządzenia Bluetooth, Darkice czasami zatrzymuje się, gdy sygnał audio zostanie utracony, nawet jeśli urządzenie Bluetooth jest nadal podłączone (np. po zamknięciu YouTube w telefonie), więc jest to najłatwiejszy i najbardziej niezawodny sposób na upewnienie się, że Darkice działa zawsze, gdy obecny jest dźwięk Bluetooth. Jeśli Darkice już działa, polecenie jest ignorowane.

#!/bin/bashwhile:; wykonaj sudo /usr/bin/darkice -c /home/pi/darkice.cfg; spać 5; Gotowe

Krok 14:

Obraz
Obraz

Następnie musimy uruchomić polecenie, aby plik darkice.sh był wykonywalny. Otwórz okno terminala i wpisz „sudo chmod 777 /home/pi/darkice.sh” i naciśnij enter. Teraz nadszedł czas na uruchomienie usługi serwera Icecast2. Wpisz „sudo service icecast2 start” i naciśnij Enter.

sudo chmod 777 /home/pi/darkice.sh

usługa sudo icecast2 start

Krok 15:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Następnie musimy powiedzieć Darkice, aby uruchamiał się automatycznie po uruchomieniu Pi (serwer Icecast2 działa jako usługa i uruchamia się automatycznie po uruchomieniu). Najpierw musimy wybrać, którego edytora tekstu użyć. W oknie terminala wpisz „select-editor” i naciśnij enter. Wpisz „2”, aby wybrać edytor nano i naciśnij Enter. Następnie wpisz "crontab -e" i wejdź. Następnie przytrzymaj klawisz strzałki w dół, aby przewinąć do samego dołu wyświetlonego pliku tekstowego i dodaj ten wiersz „@reboot sleep 10 && sudo /home/pi/darkice.sh”. Następnie naciśnij Ctrl-X, aby wyjść, a pojawi się monit „Zapisać zmodyfikowany bufor?”. Naciśnij klawisz Y, aby wybrać Tak, a następnie Enter, aby potwierdzić, że nazwa pliku jest generowana automatycznie.

wybierz-edytor

crontab -e

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

Krok 16:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Sparuj swój telefon z Raspberry Pi za pomocą ikony bluetooth na pulpicie. Ważne jest, aby ustawić Bluetooth Pi w trybie wykrywania, a następnie sparować z telefonem. Jeśli ustawisz telefon w trybie wykrywania i spróbujesz sparować go Z Pi, może się połączyć, ale wyświetli błąd informujący, że w Twoim telefonie nie ma usług, z których Pi może korzystać, co jest prawdą. Próbujemy wysłać dźwięk do Pi, a nie na odwrót. Po sparowaniu uruchom to polecenie w oknie terminala, aby wyświetlić adres MAC Bluetooth podłączonego urządzenia:

sudo bluetoothctl

Krok 17:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Aby Darkice mógł używać urządzenia bluetooth jako wejścia audio PCM, musimy utworzyć plik w folderze "etc" o nazwie "asound.conf" (etc/asound.conf). Kliknij kilka razy strzałkę w górę na menedżerze plików, aby przejść do katalogu głównego, a następnie kliknij dwukrotnie folder „etc”, aby go otworzyć. Przewiń w dół i kliknij prawym przyciskiem myszy w pustym miejscu i utwórz pusty plik o nazwie „asound.conf” i skopiuj i wklej poniższe linie z adresem MAC swojego urządzenia, który oczywiście zastąpiono moim i zapisz.

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

Krok 18:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Zarówno radia Wi-Fi, jak i Bluetooth w Raspberry Pi są na tym samym chipie, więc jeśli zmaksymalizujesz przepustowość obu, dźwięk Bluetooth może się zacinać lub zawieszać. Niektórzy nazywają to błędem, a niektórzy twierdzą, że to tylko ograniczenie sprzętowe. Zamierzamy zmienić ustawienie, które to naprawi. Kredyt za opublikowanie tej poprawki należy do „pelwell” na https://github.com/raspberrypi/linux/issues/1402 Uruchom ponownie sudo pcmanfm, aby otworzyć menedżera plików i przejdź do /lib/firmware/brcm. Kliknij dwukrotnie plik tekstowy „brcmfmac43430-sdio.txt”, aby go otworzyć, dodać te wiersze na dole i zapisać.

# Eksperymentalne parametry współistnienia Bluetooth z Cypressbtc_mode=1 btc_params8=0x4e20 btc_params1=0x7530

Krok 19:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Kliknij ikonę menu GUI i wybierz Zamknij i uruchom ponownie. Jeśli dokładnie wykonałeś wszystkie te kroki, serwer audio Bluetooth uruchomi się automatycznie w dowolnym miejscu od 30 sekund do minuty po kliknięciu ponownego uruchomienia. ZANIM będziesz mógł dodać go do Sonos, musisz podłączyć Bluetooth telefonu do Pi (po prostu dotykając go w ustawieniach Bluetooth telefonu, ponieważ jest już sparowany) i rozpocząć odtwarzanie pewnego rodzaju dźwięku i zwiększyć głośność. Pamiętaj, że z głośnika telefonu nie będzie słychać żadnego dźwięku, ponieważ wydaje się, że jest podłączony do zewnętrznego głośnika Bluetooth. Jednym wizualnym sposobem sprawdzenia, czy Icecast odbiera dźwięk Bluetooth z Darkice, jest otwarcie https://192.168.86.107:8000 w przeglądarce internetowej z adresem IP twojego Pi zastąpionym moim. Icecast jest zawsze uruchomiony, więc zawsze zobaczysz stronę stanu, ale jeśli Darkice również odbiera dźwięk bluetooth, zobaczysz również punkt montowania i deskryptor strumienia. Odłącz Bluetooth i odśwież stronę, a znów stanie się pusta.

Krok 20:

Obraz
Obraz
Obraz
Obraz

Aby dodać niestandardowy strumień do Sonos, musisz użyć aplikacji kontrolera komputerowego Sonos. Kliknij Zarządzaj > Dodaj stację radiową i wprowadź adres URL strumienia, który w moim przypadku brzmiał „https://192.168.86.107:8000/rapi.mp3”. Wprowadź również nazwę stacji i kliknij OK.

Krok 21:

Obraz
Obraz

Aby odtworzyć niestandardową stację radiową, którą właśnie dodaliśmy, wybierz „Radio by Tunein”, a następnie „Moje stacje radiowe”. Kliknij dwukrotnie lewym przyciskiem myszy, aby odtworzyć, lub kliknij prawym przyciskiem myszy, aby edytować lub dodać stację do ulubionych Sonos.

Krok 22:

Obraz
Obraz
Obraz
Obraz

Po dodaniu niestandardowej stacji radiowej będzie ona natychmiast dostępna w Twojej aplikacji Sonos. Otwórz aplikację, dotknij „Mój Sonos” na dole, przewiń w dół do „Stacje” i dotknij „Zobacz wszystko”. Przewiń w dół, aż zobaczysz swoją nowo utworzoną stację. Stuknij w nią, a zacznie grać w wybranych pokojach. Pamiętaj, ̶ odłączeniu urządzenia Bluetooth z PI THEN Icecasta Stream ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ jeśli przełącznik aplikacje audio, może on ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ RESUME uch na SONOS będziesz miał W celu ponownego uruchomienia odtwarzania dźwięku Telefon ponownie i Push Play na ̶t̶h̶e̶ ̶S̶o̶n̶o̶s̶ ̶a̶p̶p̶ ̶a̶g̶a̶i̶n̶.̶ <---To zostało naprawione; zobacz aktualizację poniżej. Powodzenia i dzięki za przeczytanie!

Krok 23: AKTUALIZACJA: NAPRAWIONO ZACHOWANIE POŁĄCZENIA STRUMIENIA PO ROZŁĄCZENIU BLUETOOTH

Tak więc przesyłanie strumieniowe Bluetooth działało idealnie z tą konfiguracją, Z WYJĄTKIEM, że Sonos rozłącza się z serwerem Icecast za każdym razem, gdy Darkice traci dźwięk przez Bluetooth, na przykład po przełączeniu aplikacji audio lub po prostu odłączeniu Bluetooth, co było uciążliwe, ponieważ wcześniej trzeba było ponownie przesyłać dźwięk przez Bluetooth możesz nawet nacisnąć przycisk odtwarzania w aplikacji Sonos. Stało się to ogromnym problemem, gdy próbowałem przesyłać strumieniowo dźwięk do Sonos z aplikacji WatchESPN mojego telefonu, która jest tylko na pełnym ekranie, więc nie mogłem nacisnąć przycisku odtwarzania w aplikacji Sonos po uruchomieniu dźwięku bluetooth, ale kiedy zamknąłem aplikację WatchESPN, Strumień Sonos nie uruchomiłby się, gdyby nie uruchomiono najpierw dźwięku Bluetooth! Ugh! Wyrywam sobie włosy, próbując wymyślić na to elegancką poprawkę. Wypróbowałem inny koder mp3 o nazwie Liquidsoap, który ma opcję wysyłania cichego dźwięku, gdy traci połączenie, ale nie mogłem go uruchomić z bluealsą. Próbowałem zmiksować strumień bluealsa z drugorzędnym strumieniem atrapy karty dźwiękowej za pomocą dsnoop i asym, aby spróbować oszukać Icecasta, aby pomyślał, że wciąż jest obecny sygnał audio, ale tak naprawdę nie pozwala na zbyt duże manipulowanie dźwiękiem bluetooth. Następnie zacząłem badać za pomocą awaryjnego punktu montowania, używając cichego pliku mp3 w Icecast, ale Sonos zauważyłby zmianę nazwy punktu montowania i rozłączenie. Używałem pliku test.mp3 i raz przypadkowo określiłem go jako nazwę głównego punktu montowania zamiast nazwy zastępczej i zauważyłem, że Sonos po prostu przełączył się na odtwarzanie tego pliku, gdy został odłączony od strumienia „rapi.mp3” bluetooth. Eureko! Nie przełączyłby się automatycznie z powrotem na strumień bluetooth, gdy stał się ponownie dostępny, więc zastanowiłem się, dlaczego nie użyć tej samej nazwy punktu montowania? Więc co musisz zrobić, to stworzyć cichy plik mp3 i nadać mu taką samą nazwę jak strumień mp3 Darkice, "rapi.mp3" i na stałe zakodować go jako główny punkt montowania w pliku konfiguracyjnym Icecast2. Dzieje się tak, że gdy Sonos traci połączenie ze strumieniem Darkice/bluetooth rapi.mp3, po prostu zaczyna zapętlać drugi cichy plik rapi.mp3, aż strumień bluetooth wróci do trybu online. W ten sposób nie musisz włączać dźwięku bluetooth, zanim zaczniesz grać w Sonos. Oto jak to zrobić…

Krok 24:

Obraz
Obraz
Obraz
Obraz
Obraz
Obraz

Najpierw musimy zainstalować ffmpeg, aby utworzyć cichy plik mp3. Mógłbyś nagrać cichy plik.wav z zewnętrznej karty dźwiękowej i przekonwertować go na mp3 używając lame, ale ponieważ nie mam wejścia zewnętrznej karty dźwiękowej do tego projektu, użycie ffmpeg było najprostszym rozwiązaniem. Otwórz okno terminala i wpisz „sudo apt-get install ffmpeg” i naciśnij Enter:

sudo apt-get zainstaluj ffmpeg

Po zainstalowaniu skopiuj i wklej tę długą linię, aby zakodować cichy plik mp3, który trwa tylko sekundę:

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

Otwórz Menedżera plików jako root, używając "sudo pcmanfm" i przejdź do "/etc/icecast2". Kliknij prawym przyciskiem myszy "icecast.xml" i otwórz za pomocą Leafpad i wklej te linie tuż pod górną linią "":

/rapi.mp3

Zapisz i uruchom ponownie, a teraz powinieneś być w stanie uruchomić niestandardową stację Bluetooth Sonos, zanim jeszcze podłączysz telefon do Bluetooth!

Krok 25: Dodatek

Uzupełnienie
Uzupełnienie
Uzupełnienie
Uzupełnienie
Uzupełnienie
Uzupełnienie
Uzupełnienie
Uzupełnienie

Chciałem, aby Raspberry Pi i zasilacz 110 V AC do 5 V DC były samowystarczalne w jednej obudowie, abym mógł z łatwością przenosić go po domu, ale byłem zaskoczony, że taki przypadek nie istnieje. Mogę wydrukować 3D później, ale w międzyczasie przerzuciłem się na inną obudowę Raspberry Pi i znalazłem cienką ładowarkę ścienną USB i krótki kabel. Ładowarka miała gumowaną powłokę, do której nie mogłem przykleić przezroczystej taśmy VHB, ale okazało się, że jest to naklejka, którą można łatwo usunąć; jednak stworzyło to małe wgłębienie, które sprawiło, że taśma VHB była zbyt cienka, więc użyłem rzepów.

Zalecana: