Мазмұны:

Бірдей музыканы бірнеше бөлмеде ойнаңыз: 3 қадам
Бірдей музыканы бірнеше бөлмеде ойнаңыз: 3 қадам

Бейне: Бірдей музыканы бірнеше бөлмеде ойнаңыз: 3 қадам

Бейне: Бірдей музыканы бірнеше бөлмеде ойнаңыз: 3 қадам
Бейне: Жігітім дұрыстап тықпаса не істеу керек? 2024, Шілде
Anonim
Бірдей музыканы бірнеше бөлмеде ойнаңыз
Бірдей музыканы бірнеше бөлмеде ойнаңыз

Бәріне сәлем, Мен сен туралы білмеймін, бірақ мен дыбысты қатты бұрмай -ақ, менің пәтерімнің бәрінде бірдей музыканы ұнатамын. Осы мәселе бойынша біраз зерттеуден кейін мен бір музыканы бір уақытта бірнеше бөлмеде, атап айтқанда ванна бөлмесінде ойнау үшін бір музыкалық серверге wifi арқылы қосылған бірнеше динамиктер құруды шештім.

Жүйе VLC сияқты керемет бағдарламалық қамтамасыз етудің негізі болып табылатын GStreamer технологиясына негізделген және Raspberry Pi көмегімен wifi мүмкіндігі бар динамикке негізделген.

1 -қадам: Жуынатын бөлме үшін динамик құру

Жуынатын бөлме үшін динамик құру
Жуынатын бөлме үшін динамик құру
Жуынатын бөлме үшін динамик құру
Жуынатын бөлме үшін динамик құру
Жуынатын бөлме үшін динамик құру
Жуынатын бөлме үшін динамик құру

Бөлімдер тізімі:

  • ваннаға арналған спикер
  • 2 Вт күшейткіш (12В жұмыс істейді)
  • a Raspberry Pi Zero (5В жұмыс істейді)
  • Pimoroni Phat DAC
  • SD картасы
  • ҚОСУ/ӨШІРУ түймесі
  • 12 В қуат адаптері + үйлесімді штепсель
  • DC/DC төмендету (12v-> 5v)
  • электр қорабы
  • кейбір кабельдер

Құрылыс өте қарапайым.

Электрондық жағында осы ASCII диаграммасын орындаңыз.

  • Тұрақты токты қосу/өшіру түймесінің күшейткіші
  • ҚОСУ/ӨШІРУ түймесі DC/DC төмендететін Raspberry Pi
  • Raspberry Pi Phat DAC күшейткіш динамигі

Механикалық жағынан, электр қорабына қажет барлық тесіктерді кесіңіз, бәрін ішіне салыңыз және бәрі осында.

Бұл техниканы қолдана отырып, сіз қалаған динамиктерді жасай аласыз.

2 -қадам: Бағдарламалық қамтамасыз ету жағы

Бағдарламалық қамтамасыз етудің барлық жағы GStreamer ашық бастапқы мультимедиялық негізіне негізделген. Мен тек Linux қолдандым, бірақ ол әр түрлі ОЖ -де бар, сондықтан мен бәрін басқа ОЖ үшін бейімдеуге болады деп ойлаймын.

Бастау үшін сізге Raspbian Lite -ді Pi, PHAT DAC және GStreamer 1.0 -ді «жақсы» плагиндермен орнату керек. Музыкалық сервер ретінде пайдаланылатын компьютерде сізге бірдей GStreamer қажет. Мен бұл бөліктерді егжей -тегжейлі айтпаймын, себебі басқалары мұны меннен жақсы жасады. Соңғы нәрсе - Pi мен музыкалық сервер кабель немесе wifi арқылы бір желіге қосылуы керек.

GStreamer дұрыс орнатылғанын тексеру үшін сіз осы командалық жолдарды пайдалана аласыз.

Динамикте:

$ 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, арналар = (int) 1, пайдалы жүктеме = (int) 96 '! rtpL16depay! аудио түрлендіру! автоаудиосинк

Компьютерде:

$ gst-launch-1.0 audiotestsrc! аудио түрлендіру! audio/x-raw, format = «(string) S16BE», layout = «(string) interleaved», арналар = 1, жылдамдық = 44100! rtpL16pay! udpsink хост = RASPBERRYPI_IP порты = 5000

«RASPBERRYPI_IP» орнына жақсы IP мекенжайын қойғаннан кейін динамиктен синусоидалы дыбыс естілуі керек. Бұл сізге ұзақ естуді ұнатпайтын нәрсе емес, сондықтан дыбыс деңгейін тым қатты қоймаңыз.

Кейбір түсініктеме: ДК синусоидальды дыбысты «audiotestsrc», «audioconvert! Audio/x-raw, format =» (string) S16BE «, layout =» (string) interleaved «, арналар = 1, rate = 44100» түрлендіру арқылы шығарады. «rtpL16pay» түсінетін жақсы форматтағы дыбыс, ол аудио пакеттерді жасайды және соңында «udpsink» пакеттерді UDP протоколы арқылы жібереді. Динамикте бұл бірдей, бірақ төңкерілген, «udpsrc» дыбыс ағынын қалпына келтіреді, «rtpL16depay» пакетін жояды және «аудио түрлендіру! Автоаудиосинк» дыбысты автоматты дыбыстық картаның форматына сәйкес түрлендіреді және, әрине, ойнатады.

Енді негізгі заттар жұмыс істейтіндіктен, әрі қарай жүрудің уақыты келді. Мақсат - қосымшаның дыбысын желі арқылы жіберу үшін оны ұстап алу.

- Біз жалған шығыс жасаймыз

$ pactl load-module module-null-sinkink_name = multiHP

- Біз кірісті жалған шығысқа қосамыз (таңдалған қосымшаның үнін өшіреміз)

$ pacmd тізім-раковиналар (шығыс тізімі)

$ pacmd list-sink-inputs (кірістер тізімі)

$ pacmd move-sink-input %input %output (%кіріс пен %шығуды сәйкес тізімдердің біріне ауыстырыңыз)

- Біз дыбыстық картаны максимумға қоямыз

$ pactl жиынтық-раковина-көлемі 0 100%

- Біз компьютерде жалған шығуды қалпына келтіру әдісін тексереміз (дыбысты қалпына келтіру)

$ gst-launch-1.0 pulsesrc құрылғы = multiHP.monitor! аудио түрлендіру! автоаудиосинк

Сіз таңдаған қосымшаның дыбысын қайтадан естуіңіз керек.

Тамаша! Енді соңғы командалық жолдарға көшудің уақыты келді. Міне, ДК ойнайтын дыбысы бар 2 динамик жағдайындағы командалық жолдар.

Әр спикерде:

$ 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, пайдалы жүктеме = (int) 96 '! rtpL16depay! аудио түрлендіру! автоаудиосинк

Компьютерде:

$ gst-launch-1.0 pulsesrc құрылғы = multiHP.monitor! аудио түрлендіру! audio/x-raw, format = «(string) S16BE», layout = «(string) interleaved», арналар = 2, rate = 44100! rtpL16pay! футболка аты = t t. ! кезек! udpsink хост =%addrpi1 порты = 5000 т. ! кезек! udpsink хост =%addrpi2 порты = 5000 т. ! кезек! аудио түрлендіру! автоаудиосинк

3 -қадам: Қорытынды

Бұл нұсқаулық толық жобаның алғашқы қадамы ғана. Бұл принципті түсіндіру үшін ғана болды. Енді сіз Raspberry Pi жүктелуінде және компьютерде сценарий жасау арқылы автоматтандыра аласыз. Сіз GStreamer пәрменін қажеттілікке қарай бейімдей аласыз. Мен динамик ретінде пайдалану үшін бұрынғы нұсқаулықты (BRAND NEW OLD RADIO) жеке өзгерттім. Бұл көп бөлмелі дыбыстық жүйені жақсарту үшін шексіз көп нәрсе қажет. Атап айтқанда, барлық динамиктер синхрондалмаған, сондықтан сіз бөлмеден екіншісіне ауысқанда сізде өзгеріс болады.

Сіз бұл нұсқаулықты жақсартуға тырысасыз деп үміттенемін.

Мәліметтер қажет болса, сұрақ қоюдан тартынбаңыз.

Жақсы пысық!

Ұсынылған: