جدول المحتويات:

قم بتشغيل نفس الموسيقى في غرف متعددة: 3 خطوات
قم بتشغيل نفس الموسيقى في غرف متعددة: 3 خطوات

فيديو: قم بتشغيل نفس الموسيقى في غرف متعددة: 3 خطوات

فيديو: قم بتشغيل نفس الموسيقى في غرف متعددة: 3 خطوات
فيديو: كيفية استخدام طريقة نيكولا تسلا | الرمز السري ٣٦٩لإظهار أي شيء تريده بشكل أسرع |سامح الحموري 2024, يوليو
Anonim
قم بتشغيل نفس الموسيقى في غرف متعددة
قم بتشغيل نفس الموسيقى في غرف متعددة

مرحبا جميعا،

لا أعرف عنك لكني أحب أن أحصل على نفس الموسيقى في كل شقتي دون رفع الصوت. لذلك بعد قليل من البحث حول هذه المشكلة ، قررت إنشاء العديد من مكبرات الصوت المتصلة جميعها عن طريق wifi بخادم الموسيقى نفسه لتشغيل نفس الموسيقى في وقت واحد في عدة غرف وخاصة في الحمام.

يعتمد النظام على تقنية GStreamer التي تعد أساس بعض البرامج الرائعة مثل VLC وعلى مكبر صوت مزود بإمكانية WiFi باستخدام Raspberry Pi.

الخطوة 1: بناء مكبر صوت للحمام

بناء مكبر صوت للحمام
بناء مكبر صوت للحمام
بناء مكبر صوت للحمام
بناء مكبر صوت للحمام
بناء مكبر صوت للحمام
بناء مكبر صوت للحمام

قائمة الأجزاء:

  • مكبر صوت في الحمام
  • مضخم صوت 2 وات (يعمل بجهد 12 فولت)
  • a Raspberry Pi Zero (يعمل على 5v)
  • أ بيموروني فات داك
  • بطاقة SD
  • زر تشغيل / إيقاف
  • محول طاقة 12 فولت + قابس متوافق
  • a DC / DC تنحي (12v-> 5v)
  • صندوق كهربائي
  • بعض الكابلات

البناء بسيط جدا.

على الجانب الإلكتروني ، اتبع مخطط ASCII هذا.

  • قابس تيار مستمر ON / OFF زر مكبر للصوت
  • زر التشغيل / الإيقاف 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 '! rtpL16 الدفع! صوتي! صوت تلقائي

على الكمبيوتر الشخصي:

اختبار الصوت gst-launch-1.0 $! صوتي! audio / x-raw، format = "(string) S16BE"، layout = "(string) interleaved"، channels = 1، rate = 44100! rtpL16 الدفع! مضيف udpsink = منفذ RASPBERRYPI_IP = 5000

بعد إدخال عنوان IP الجيد بدلاً من "RASPBERRYPI_IP" ، يجب أن تسمع صوتًا جيبيًا على السماعة. هذا ليس شيئًا تود سماعه لفترة طويلة ، لذلك لا ترفع مستوى الصوت كثيرًا.

بعض الشرح: ينتج الكمبيوتر الصوت الجيبي باستخدام "audiotestsrc" ، "audioconvert! audio / x-raw ، format =" (string) S16BE "، layout =" (string) interleaved "، القنوات = 1 ، rate = 44100" التحويل الصوت بالتنسيق الجيد الذي يفهمه "rtpL16pay" الذي ينشئ حزم الصوت وأخيرًا يرسل "udpsink" الحزم باستخدام بروتوكول UDP. على مكبر الصوت ، هو نفسه ولكنه مقلوب ، "udpsrc" يستعيد تدفق الصوت ، "rtpL16depay" de-packets و "audioconvert! autoaudiosink" يحول الصوت لمطابقة تنسيق بطاقة الصوت التلقائية وبالطبع تشغيله.

والآن بعد أن عملت العناصر الأساسية ، حان الوقت للمضي قدمًا. الهدف هو اعتراض صوت تطبيق ما لإرساله عبر الشبكة.

- نصنع مخرجات وهمية

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

- نقوم بتوصيل أحد المدخلات بالمخرجات المزيفة (إسكات التطبيق المحدد (الإدخال))

قوائم-أحواض قائمة $ pacmd (قائمة المخرجات)

$ pacmd list-sink-inputs (قائمة المدخلات)

$ pacmd move-sink-input٪ input٪ output (استبدل٪ input و٪ output بإحدى القوائم المقابلة)

- نضع بطاقة الصوت كحد أقصى

$ pactl مجموعة-حوض-حجم 0 100٪

- نختبر على الكمبيوتر طريقة استعادة المخرجات المزيفة (استعادة الصوت)

جهاز pulsesrc $ gst-launch-1.0 = شاشة متعددة HP. صوتي! صوت تلقائي

يجب أن تسمع مرة أخرى صوت التطبيق الذي حددته.

رائعة! حان الوقت الآن للذهاب إلى سطور الأوامر النهائية. فيما يلي أسطر الأوامر في حالة وجود مكبرين للصوت مع تشغيل الصوت أيضًا بواسطة الكمبيوتر.

على كل متحدث:

$ 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 '! rtpL16 الدفع! صوتي! صوت تلقائي

على الكمبيوتر الشخصي:

جهاز pulsesrc $ gst-launch-1.0 = شاشة متعددة HP. صوتي! audio / x-raw، format = "(string) S16BE"، layout = "(string) interleaved"، channels = 2، rate = 44100! rtpL16 الدفع! اسم tee = t t. ! طابور ! مضيف udpsink =٪ addrpi1 منفذ = 5000 طن. ! طابور ! مضيف udpsink =٪ منفذ addrpi2 = 5000 طن. ! طابور ! صوتي! صوت تلقائي

الخطوة الثالثة: الخاتمة

هذه التعليمات هي الخطوة الأولى فقط لمشروع كامل. كان فقط لشرح المبدأ. يمكنك الآن أتمتة عن طريق عمل بعض البرامج النصية على التمهيد Raspberry Pi وعلى جهاز الكمبيوتر. يمكنك تكييف أمر GStreamer حسب حاجتك. لقد قمت شخصيًا بتعديل التعليمات السابقة الخاصة بي (BRAND NEW OLD RADIO) من أجل استخدامها كمتحدث. هناك عدد لا حصر له من الأشياء التي يجب القيام بها لتحسين نظام الصوت متعدد الغرف هذا. على وجه الخصوص ، لا تتم مزامنة جميع مكبرات الصوت ، لذلك يكون لديك بعض الاختلاف عند التغيير من غرفة إلى أخرى.

آمل أن تحاول تحسين هذه التعليمات.

لا تتردد في طرح الأسئلة إذا كنت بحاجة إلى تفاصيل.

العبث جيد!

موصى به: