جدول المحتويات:
فيديو: قم بتشغيل نفس الموسيقى في غرف متعددة: 3 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
مرحبا جميعا،
لا أعرف عنك لكني أحب أن أحصل على نفس الموسيقى في كل شقتي دون رفع الصوت. لذلك بعد قليل من البحث حول هذه المشكلة ، قررت إنشاء العديد من مكبرات الصوت المتصلة جميعها عن طريق 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) من أجل استخدامها كمتحدث. هناك عدد لا حصر له من الأشياء التي يجب القيام بها لتحسين نظام الصوت متعدد الغرف هذا. على وجه الخصوص ، لا تتم مزامنة جميع مكبرات الصوت ، لذلك يكون لديك بعض الاختلاف عند التغيير من غرفة إلى أخرى.
آمل أن تحاول تحسين هذه التعليمات.
لا تتردد في طرح الأسئلة إذا كنت بحاجة إلى تفاصيل.
العبث جيد!
موصى به:
غرف عامة في خيوط مع مكعبات السكر: 11 خطوة
Generic Rooms in Twine With Sugarcube: مرحبًا ومرحبًا بكم في البرنامج التعليمي الخاص بي حول بناء Wumpus Hunt في Twine مع Sugarcube! Twine هي أداة بسيطة للغاية ، مصممة لإنشاء ألعاب مغامرات نصية! اختارت ابنة عمي الصغيرة المفضلة أن تصنع لعبة مع Twine لمشروعها الأول ،
Arduino يتحكم في مستشعر P.I.R متعدد على نفس الهيكل: 3 خطوات
Arduino يتحكم في مستشعر PIR المتعدد على نفس النطاق: سأخبرك اليوم بكيفية توصيل مستشعرات PIR متعددة مع Arduino Bord واحد ؛ هنا أيضًا استخدمت وحدة ترحيل ذات 4 قنوات للحصول على بعض الوظائف الإضافية. (أو يمكنك استخدام أكبر عدد ممكن من دبوس اردوين الخاص بك
كيفية جعل الموسيقى WS2812B LEDs تفاعلية مع أنماط متعددة: 4 خطوات
كيفية جعل الموسيقى التفاعلية WS2812B LEDs مع نمط متعدد: WS2812 ، WS2812B هو مصدر ضوء LED يتم التحكم فيه بذكاء. لديها شريحة تحكم داخلية ولها 4 دبابيس. V +، V-، Din & amp؛ للتحكم في مصابيح LED هذه ، نريد استخدام MCU مثل Arduino أو PIC أو Rasberry pie. لقد استخدمت Arduino UNO لهذا المشروع
كيفية قياس التردد العالي ودورة العمل في نفس الوقت باستخدام متحكم: 4 خطوات
كيفية قياس التردد العالي ودورة العمل في نفس الوقت باستخدام متحكم دقيق: أعرف ما هو رأيك: & quot؛ هاه؟ هناك الكثير من التعليمات حول كيفية استخدام ميكروكنترولر لقياس تردد الإشارة. تثاءب & quot؛ لكن انتظر ، هناك حداثة في هذا: أصف طريقة لقياس الترددات أعلى بكثير من الميكرو
كيفية عمل نسخة طبق الأصل من الصفيح الشهير ALTOIDS. (وإعادة التدوير في نفس الوقت): 7 خطوات
كيفية عمل نسخة طبق الأصل من الصفيح الشهير ALTOIDS. (وإعادة التدوير في نفس الوقت): مرحبًا هذا غير قابل للتدمير يتعلق بكيفية صنع صندوق معدني بنفس الحجم (أو أي حجم تريده) من قصدير Altoids. هل تعرف ماذا يعني هذا ؟؟؟؟ هذا يعني أنه يمكنك صنع علبك الخاصة ….. مهما كان الحجم الذي تريده