Tartalomjegyzék:

Ugyanazt a zenét játszhatja több szobában: 3 lépés
Ugyanazt a zenét játszhatja több szobában: 3 lépés

Videó: Ugyanazt a zenét játszhatja több szobában: 3 lépés

Videó: Ugyanazt a zenét játszhatja több szobában: 3 lépés
Videó: MARIO x KALO BONE x KRETZ x VZS – Birkanyírás | Official Audio | 2024, Július
Anonim
Játssza ugyanazt a zenét több szobában
Játssza ugyanazt a zenét több szobában

Sziasztok, Nem tudom, ti hogy vagytok vele, de szeretem, ha ugyanazt a zenét hallgatom minden lakásomban anélkül, hogy túl hangosra fordítanám a hangot. Így a probléma egy kis kutatása után úgy döntöttem, hogy több hangszórót építek, amelyek mindegyike wifi -vel csatlakozik ugyanahhoz a zenei szerverhez, hogy ugyanazt a zenét egyszerre játsszák le több szobában és különösen a fürdőszobában.

A rendszer a GStreamer technológián alapul, amely néhány félelmetes szoftver, például a VLC alapja, és egy Raspberry Pi -t használó wifi -képes hangszóró.

Lépés: Hangszóró építése a fürdőszobához

Hangszóró építése a fürdőszobához
Hangszóró építése a fürdőszobához
Hangszóró építése a fürdőszobához
Hangszóró építése a fürdőszobához
Hangszóró építése a fürdőszobához
Hangszóró építése a fürdőszobához

Alkatrész lista:

  • fürdőszobai hangszóró
  • 2 W -os erősítő (12V -on működik)
  • a Raspberry Pi Zero (5V -on működik)
  • a Pimoroni Phat DAC
  • egy SD kártya
  • egy BE/KI gombot
  • 12V -os hálózati adapter + kompatibilis csatlakozó
  • DC/DC csökkentés (12v-> 5v)
  • egy elektromos doboz
  • néhány kábel

A konstrukció meglehetősen egyszerű.

Az elektronikus oldalon kövesse ezt az ASCII diagramot.

  • DC csatlakozó ON/OFF gombos erősítő
  • BE/KI gomb DC/DC lemenő Raspberry Pi
  • Raspberry Pi Phat DAC erősítő hangszóró

Mechanikai oldalon vágja el az összes szükséges lyukat az elektromos dobozban, tegyen bele mindent, és ennyi.

Ezzel a technikával bármilyen kívánt hangszórót létrehozhat.

2. lépés: A szoftver oldala

A szoftver minden oldala a nyílt forráskódú multimédiás keretrendszerre, a GStreamerre épül. Csak Linuxot használtam, de létezik különböző operációs rendszereken, ezért úgy gondolom, hogy minden más operációs rendszerhez is adaptálható.

Kezdetnek telepítenie kell a Raspbian Lite -t a Pi -re, a PHAT DAC -ra és a GStreamer 1.0 -ra a "jó" bővítményekkel. A zenei szerverként használt számítógépen ugyanaz a GStreamer szükséges. Nem részletezem ezeket a részeket, mert mások ezt jobban csinálták, mint én. Az utolsó dolog, amire szükség van, hogy a Pi -t és a zenekiszolgálót ugyanahhoz a hálózathoz kell csatlakoztatni kábellel vagy wifivel.

Annak ellenőrzéséhez, hogy a GStreamer helyesen van -e telepítve, használhatja ezeket a parancssorokat.

A hangszórón:

$ gst-launch-1.0 udpsrc port = 5000 caps = 'application/x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 1, csatornák = (int) 1, hasznos teher = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink

PC -n:

$ gst-launch-1.0 audiotestsrc! audioconvert! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", csatornák = 1, arány = 44100! rtpL16pay! udpsink host = RASPBERRYPI_IP port = 5000

Miután a "RASPBERRYPI_IP" helyett a jó IP -címet adta meg, szinuszos hangot kell hallania a hangszórón. Ezt nem sokáig szeretné hallani, ezért ne állítsa túl hangosan a hangerőt.

Néhány magyarázat: a számítógép szinuszos hangot állít elő az "audiotestsrc", "audioconvert! Audio/x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", csatornák = 1, arány = 44100" konvertálással a hang az "rtpL16pay" által értett jó formátumban, amely létrehozza az audiocsomagokat, és végül az "udpsink" elküldi a csomagokat az UDP protokoll használatával. A hangszórón ugyanaz, de fordítva, az "udpsrc" helyreállítja az audio fluxust, az "rtpL16depay" csomagok eltávolítása és az "audioconvert! Autoaudiosink" a hangot az automatikus hangkártya formátumához igazítja, és természetesen lejátszja.

Tehát most, hogy az alapvető dolgok működnek, ideje tovább lépni. A cél az alkalmazás hangjának lehallgatása annak érdekében, hogy elküldje azt a hálózaton keresztül.

- Hamis kimenetet hozunk létre

$ pactl load-module module-null-sink sink_name = multiHP

- Csatlakoztatunk egy bemenetet a hamis kimenethez (elnémítjuk a kiválasztott alkalmazást (bemenet))

$ pacmd list-sink (kimeneti lista)

$ pacmd list-sink-inputs (bemenetek listája)

$ pacmd move-sink-input %input %output (%bemenet és %kimenet cseréje a megfelelő listák egyikére)

- A hangkártyát max

$ pactl set-sink-volume 0 100%

- PC -n teszteljük a hamis kimenet helyreállításának módját (a hang helyreállítását)

$ gst-launch-1.0 pulsesrc eszköz = multiHP.monitor! audioconvert! autoaudiosink

Ismét hallania kell a kiválasztott alkalmazás hangját.

Nagy! Itt az ideje, hogy a végső parancssorba lépjünk. Itt vannak a parancssorok 2 hangszóró esetén, a hangot a PC is játssza.

Minden hangszórón:

$ gst-launch-1.0 udpsrc port = 5000 caps = 'application/x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 2, hasznos teher = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink

PC -n:

$ gst-launch-1.0 pulsesrc eszköz = multiHP.monitor! audioconvert! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", csatornák = 2, arány = 44100! rtpL16pay! tee név = t t. ! sor! udpsink host =%addrpi1 port = 5000 t. ! sor! udpsink host =%addrpi2 port = 5000 t. ! sor! audioconvert! autoaudiosink

3. lépés: Következtetés

Ez az oktatható csak az első lépés egy teljes projekthez. Csak az elv magyarázata volt. Most automatizálhat, ha elkészít egy szkriptet a Raspberry Pi rendszerindítón és a számítógépen. A GStreamer parancsot igényeinek megfelelően módosíthatja. Személyesen módosítottam az előző utasítást (VÉGRE VAN RÉGI RÁDIÓ) annak érdekében, hogy hangszóróként használhassam. Végtelen sok tennivaló van ezen többszobás hangrendszer fejlesztésére. Különösen az összes hangszóró nincs szinkronizálva, így némi eltérés tapasztalható, amikor szobából a másikba vált.

Remélem, megpróbálja javítani ezt az oktathatót.

Ne habozzon feltenni kérdéseket, ha részletekre van szüksége.

Jó barkácsoló!

Ajánlott: