فهرست مطالب:
- مرحله 1:
- گام 2:
- مرحله 3:
- مرحله 4:
- مرحله 5:
- مرحله 6:
- مرحله 7:
- مرحله 8:
- مرحله 9:
- مرحله 10:
- مرحله 11:
- مرحله 12:
- مرحله 13:
- مرحله 14:
- مرحله 15:
- مرحله 16:
- مرحله 17:
- مرحله 18:
- مرحله 19:
- مرحله 20:
- مرحله 21:
- مرحله 22:
- مرحله 23: به روز رسانی: هنگامی که BLUETOOTH قطع می شود ، STREAM ثابت نگه داشته می شود
- مرحله 24:
- مرحله 25: الحاقیه
تصویری: بلوتوث را در Sonos با استفاده از Raspberry Pi پخش کنید: 25 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:56
من قبلاً یک دستورالعمل نوشتم که در آن نحوه افزودن یک خط جانبی aux یا آنالوگ به Sonos با استفاده از Raspberry Pi توضیح داده شد. خواننده ای پرسید که آیا امکان پخش صدای بلوتوث از تلفن او به Sonos وجود دارد یا خیر. انجام این کار با استفاده از دانگل بلوتوث متصل به خط گرانتر Sonos Play: 5 یا Sonos CONNECT آسان است. با این حال ، شما وفاداری خود را از طریق تبدیل بلوتوث (دیجیتال) به آنالوگ و بازگشت به دیجیتال از دست می دهید و اگر تنها یکی از بلندگوهای ارزان قیمت Sonos را دارید ، این گزینه نیست. این دستورالعمل نحوه تنظیم Raspberry Pi برای پخش صدای بلوتوث به هر بلندگوی Sonos را توضیح می دهد.
توجه: در نظر داشته باشید که ما قبل از ارسال به Sonos ، صدای بلوتوث را به Raspberry Pi منتقل می کنیم و آن را به جریان mp3 تبدیل می کنیم تا چند ثانیه تأخیر داشته باشد. اگر از این دستگاه برای تماشای ویدیو استفاده می کنید ، صدا هماهنگ نمی شود.
مرحله 1:
آنچه شما نیاز دارید:
Raspberry PI 3 Model B (مدل B+ جدیدتر و سریعتر موجود است ، اما من از مدل B معمولی استفاده کردم ، زیرا برخی از مشکلات قفل شدن B+ را خوانده ام و همچنین رادیوهای wifi و bluetooth B+ دارای محافظ فلزی در اطراف آنها هستند هنگام نصب در دستگاه دیگر ، FCC سازگار است ، اما من حداکثر برد بلوتوث را می خواستم و می ترسیدم که محافظ بتواند مانع آن شود)
رایانه رومیزی یا لپ تاپ با کارت خوان microSD
مانیتور یا تلویزیون با ورودی HDMI (فقط برای راه اندازی اولیه)
صفحه کلید و ماوس USB یا بلوتوث (فقط برای راه اندازی اولیه)
کیف پلاستیکی Raspberry Pi
فلش مموری Kingston 8 گیگابایت microSDHC کلاس 4
منبع تغذیه 5 ولت
گام 2:
در رایانه معمولی خود به آدرس https://www.raspberrypi.org/downloads/raspbian/ بروید و "RASPBIAN STRETCH WITH DESKTOP" را بارگیری کنید.
همچنین به https://etcher.io/ رفته و Etcher را بارگیری کرده و نصب کنید.
توجه: در دستورالعمل قبلی من نحوه بارگیری NOOBS را برای نصب Raspbian توضیح دادم. با این حال ، این روش کمی سریعتر است. درهر صورت خوب است.
مرحله 3:
Etcher را اجرا کرده و روی Select image کلیک کرده و به فایل فشرده بروید. روی Select drive کلیک کرده و به کارت microSD بروید و سپس روی Flash کلیک کنید!
مرحله 4:
توجه: برخی از این مراحل بعدی شبیه به دستورالعمل قبلی من است ، بنابراین اگر قبلاً رمز عبور ریشه ، IP ثابت و VNC را تنظیم کرده اید ، از این کار خودداری کنید.
کارت microSD را در شکاف کارت SD در قسمت زیرین Raspberry Pi قرار دهید. کابل HDMI را از رزبری پای به مانیتور یا تلویزیون خود وصل کنید. صفحه کلید USB ، ماوس و در نهایت کابل برق Micro USB را وصل کنید. پس از بوت شدن ، دسکتاپ Raspbian ظاهر می شود. چندین تنظیم را به شما نشان می دهد ، اما توصیه می کنم برای به روزرسانی ها چک نکنید. روی رد شدن کلیک کنید. وقتی سعی می کردم بعد از نصب همه به روزرسانی ها بلوتوث را جفت کنم ، خطای "blueman.bluez.errors. DBusFailedError: DBusFailedError: پروتکل در دسترس نیست" را دریافت کردم ، بنابراین مجبور شدم همه چیز را از نو شروع کنم.
نکته: اگر زمان سربازی نمی خواهید روی ساعت راست کلیک کنید و تنظیمات ساعت دیجیتال را انتخاب کنید و قالب ساعت را از٪ R به٪ r تغییر دهید
مرحله 5:
در مرحله بعد سرور VNC داخلی را فعال می کنیم. این کار را بسیار ساده تر می کند زیرا می توانید دستورات را به جای تایپ کردن به سادگی از طریق VNC کپی و جایگذاری کنید. GUI Menu> Preferences> Raspberry Pi Configuration> Interfaces را انتخاب کنید. روی Enabled در کنار VNC و سپس OK کلیک کنید. پس از چند ثانیه نماد VNC در نوار وظیفه ظاهر می شود. روی آن و سپس نماد منو در بالا سمت راست (کادر با 3 خط افقی) و سپس Options کلیک کنید. در گزینه های امنیتی ، رمزگذاری را روی "Prefer off" و Authentication را به عنوان "گذرواژه VNC" تنظیم کنید ، سپس روی Apply کلیک کنید. یک کادر رمز عبور ظاهر می شود. در هر کادر ، "تمشک" (بدون نقل قول) را وارد کنید و روی OK کلیک کنید.
مرحله 6:
قبل از هرگونه پیشرفت ، باید یک آدرس IP ثابت را تعیین کنیم. اگر آدرس IP Pi شما به طور تصادفی توسط سرور DHCP روتر شما تعیین شده است ، آدرس IP ممکن است بعدا تغییر کند و شما نمی توانید از طریق VNC (یا در این مورد Sonos) متصل شوید. روی نماد اتصالات شبکه در نوار وظیفه (نماد پیکان بالا و پایین) راست کلیک کرده و "تنظیمات شبکه بی سیم و سیم" را انتخاب کنید. چپ روی کادر بالا سمت راست کلیک کنید و "eth0" را برای پیکربندی اتصال اترنت یا "wlan0" برای بی سیم انتخاب کنید. من توصیه می کنم یک IP ثابت را فقط به یکی یا دیگری اختصاص دهید. وقتی Pi را برای اولین بار تنظیم کردم ، جایی که آدرس IP ثابت را به هر دو اتصال اختصاص دادم ، دچار مشکل شدم و وایرلس Pi من قفل شد و نتوانستم آن را به درستی کار کنم ، بنابراین مجبور شدم از ابتدا نصب سیستم عامل را شروع کنم. به هر حال ، آدرس IP مورد نظر خود را در قسمت آدرس IP وارد کنید و آدرس IP روتر خود را در هر دو قسمت Router و DNS Servers وارد کنید. روی اعمال و بستن کلیک کنید.
توجه: اگر بتوانید آدرس IP ثابت را با استفاده از ویژگی رزرو DHCP IP روتر خود تعیین کنید ، آسان تر است. ممکن است به آدرس MAC Pi نیاز داشته باشید یا فقط در لیستی از دستگاه های متصل در صفحه مدیریت روتر شما نشان داده شود. اگر به آدرس MAC نیاز دارید ، دستور "ifconfig eth0" را در پنجره پایانه اترنت یا "ifconfig wlan0" را برای WiFi وارد کنید. جالب است بدانید که آدرس MAC WiFi در خطی که با "اتر" شروع می شود نشان داده می شود
مرحله 7:
در مرحله بعد باید رزولوشن پیش فرض صفحه را تنظیم کنیم. این ممکن است احمقانه به نظر برسد که چگونه ما قبلاً به مانیتور متصل شده ایم ، اما بعداً وقتی از طریق VNC بدون مانیتور متصل می شوید (همانطور که می گویند بدون سر) ، به وضوح پیش فرض 640x480 Pi که یک صفحه بسیار کوچک است ، باز می گردد. کار با! GUI Menu> Preferences> Raspberry Pi Configuration> Set Resolution را انتخاب کنید. آن را روی 1280x720 یا بالاتر تنظیم کنید و برای راه اندازی مجدد روی OK و Yes کلیک کنید.
مرحله 8:
ممکن است بخواهید نام Pi خود را تغییر دهید ، به ویژه اگر بیش از یک در شبکه خود دارید. نام خودم را "BluetoothPi" تغییر دادم تا به راحتی قابل تشخیص باشد. پس از تغییر نام ، از شما درخواست راه اندازی مجدد می کند.
مرحله 9:
در این مرحله ممکن است بخواهید از VNC برای کنترل Pi استفاده کنید. مجدداً کنترل پنل VNC را روی دسکتاپ Raspbian باز کنید و آدرس IP را در بخش "اتصال" جستجو کنید. یک نمایشگر VNC را بر روی رایانه معمولی خود نصب و اجرا کنید و از آن آدرس IP برای اتصال و وارد کردن "تمشک" (بدون نقل قول) به عنوان رمز عبور استفاده کنید. من از TightVNC برای ویندوز استفاده کردم. پس از اتصال ، می توانید اتصال VNC Pi را به عنوان میانبر روی دسکتاپ خود ذخیره کنید تا در آینده با دور زدن صفحه ورود به سیستم ، سریعاً متصل شوید. در مورد ذخیره رمز عبور در میانبر هشدار دریافت خواهید کرد. برای کپی و چسباندن در پنجره پایانه Pi ، متن یا دستورات رایانه معمولی خود را انتخاب یا برجسته کنید ، Ctrl-C را فشار دهید (به معنای واقعی کلمه کلیدهای Ctrl و C را همزمان از صفحه کلید خود فشار دهید) یا راست کلیک کرده و "Copy "، سپس پنجره نمایشگر VNC Pi را فعال کرده و در داخل پنجره ترمینال راست در مکان نما کلیک راست کرده و Paste را انتخاب کنید.
مرحله 10:
در مرحله بعد ما قصد داریم دو برنامه Darkice و Icecast2 را نصب کنیم. Darkice چیزی است که منبع صوتی بلوتوث ما را در یک جریان mp3 رمزگذاری می کند و Icecast2 همان چیزی است که به Sonos به عنوان یک جریان Shoutcast خدمت می کند. هر یک از این خطوط را تک تک در پنجره ترمینال کپی و جایگذاری کنید و هر بار کلید 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 libmp3lame0 libtwolame0 را نصب کنید
sudo dpkg -i darkice_1.0.1-999 ~ mp3+1_armhf.deb
مرحله 11:
اکنون Icecast2 را نصب کنید. عبارت "sudo apt-get install icecast2" و سپس enter را تایپ کنید. پس از نصب پنجره ای ظاهر می شود که می پرسد آیا می خواهید Icecast2 را پیکربندی کنید. کلید فلش سمت چپ را زده و وارد کنید تا Yes را انتخاب کنید. در صفحه دوم کلید پیکان رو به پایین را فشار دهید و برای انتخاب OK برای استفاده از نام میزبان پیش فرض "localhost" وارد شوید. در سه صفحه بعدی پیکان رو به پایین را فشار داده و کلید را وارد کنید تا موافقت کنید که از "hackme" به عنوان منبع پیش فرض ، رله و رمز مدیریت استفاده کنید. حتی اگر ما با همه تنظیمات پیش فرض موافقت می کنیم ، این مراحل باید فعال شوند تا سرور Icecast2 فعال شود.
sudo apt-get icecast2 را نصب کنید
مرحله 12:
در مرحله بعد باید مدیر فایل GUI را به عنوان کاربر اصلی اجرا کنیم. برای این کار ، GUI Menu> Run را انتخاب کنید. عبارت "sudo pcmanfm" را تایپ کرده و enter را بزنید. با این کار فایل منیجر (معادل فایل اکسپلورر برای ما کاربران ویندوز) به فهرست اصلی (/home/pi) باز می شود و فایل نصب باقی مانده darkice را که قبلاً بارگیری کرده ایم مشاهده خواهید کرد. در یک فضای خالی راست کلیک کرده و Create New و سپس Empty File را انتخاب کنید. نام آن را "darkice.cfg" بگذارید و روی تأیید کلیک کنید. سپس روی آن فایل تازه ایجاد شده راست کلیک کرده و انتخاب کنید تا با Leafpad (معادل دفترچه یادداشت Windows) باز شود. خطوط زیر را کپی کرده و در Leafpad چسبانده و سپس روی File و Save کلیک کنید. متوجه خواهید شد که خط "کیفیت" با یک # در جلوی آن کامنت گذاری شده است. فقط در صورت استفاده از "bitrateMode = vbr" (نرخ بیت متغیر) استفاده می شود. هنگام استفاده از cbr (نرخ بیت ثابت) نمی توانید مقدار کیفیت تعیین کنید ، در غیر این صورت جریان دچار لکنت و رد می شود. در مقابل ، اگر تصمیم دارید از vbr استفاده کنید ، باید خط "bitrate = 160" را کامنت کنید و خط "کیفیت" را کامنت نکنید.
توجه: بالاترین کیفیت بیت ریت mp3 که می توانید داشته باشید 320 کیلوبیت بر ثانیه است. با این حال ، هر دو رادیو وای فای و بلوتوث در رزبری پای روی یک تراشه هستند ، بنابراین اگر پهنای باند هر دو را بیشتر کنید ، صدای بلوتوث می تواند لکنت یا یخ بزند. ما بعداً تنظیماتی را تغییر می دهیم که این مشکل را برطرف می کند اما پهنای باند WiFi را تا حدودی محدود می کند ، بنابراین من نرخ بیت صوتی این پروژه را به 160 کیلوبیت بر ثانیه کاهش دادم زیرا قصد دارم آن را منحصراً روی WiFi نگه دارم. اگر از اترنت استفاده می کنید مشکلی نیست و می توانید با خیال راحت نرخ بیت را روی 320 کیلوبیت بر ثانیه تنظیم کنید.
[عمومی] مدت = 0 # مدت زمان در ثانیه ، 0 بافر برای همیشه Secs = 1 # بافر ، در ثانیه اتصال مجدد = بله # اتصال مجدد در صورت قطع
[ورودی]
دستگاه = تلفن # نام نمونه دستگاه بلوتوث نرخ = 44100 # نرخ نمونه 11025 ، 22050 یا 44100 بیت PerSample = 16 # بیت کانال = 2 # 2 = استریو
[icecast2-0]
bitrateMode = cbr # نرخ بیت ثابت ('cbr' ثابت ، 'abr' average) #quality = 1.0 # 1.0 بهترین کیفیت است (فقط با vbr استفاده کنید) قالب = فرمت mp3 #. 'vorbis' را برای OGG Vorbis bitrate = 160 # سرور bitrate = localhost # یا پورت IP = 8000 # پورت برای رمز عبور دسترسی IceCast2 = hackme # رمز عبور منبع برای سرور IceCast2 mountPoint = rapi.mp3 # نقطه سوار بر روی سرور IceCast2.mp3 یا.ogg name = BluetoothPi
مرحله 13:
در مرحله بعد برای ایجاد یک فایل خالی به نام "darkice.sh" باید مراحل مشابه را دنبال کنید. یک فایل.sh معادل یک فایل.bat یا دسته ای برای DOS یا Windows است. با استفاده از Leafpad باز کنید ، خطوط زیر را کپی و جایگذاری کرده و ذخیره کنید. اگر دستورالعمل قبلی من را دنبال کنید متوجه خطی می شوید که Darkice شروع می کند کمی متفاوت به نظر می رسد. من مجبور شدم کد را در یک حلقه جاسازی کنم زیرا هر زمان که Darkice سیگنال صوتی بلوتوث را از دست می دهد ، اجرا متوقف می شود و حتی وقتی صدا دوباره راه اندازی می شود ، به طور خودکار راه اندازی نمی شود. من این مشکل را بسیار مورد بررسی قرار دادم و در حالی که راههای پیچیده ای برای اجرای خودکار اسکریپت در هر زمان اتصال دستگاه بلوتوث وجود دارد ، Darkice گاهی اوقات زمانی که سیگنال صوتی از بین می رود حتی اگر دستگاه بلوتوث همچنان متصل باشد متوقف می شود (به عنوان مثال اگر YouTube را ببندید برنامه روی تلفن شما) بنابراین این ساده ترین و مطمئن ترین راه برای اطمینان از اجرای Darkice در هر زمان که صدای بلوتوث وجود دارد ، است. اگر Darkice در حال اجرا است ، فرمان نادیده گرفته می شود.
#!/bin/bash while:؛ do sudo/usr/bin/darkice -c /home/pi/darkice.cfg؛ خواب 5 ؛ انجام شده
مرحله 14:
در مرحله بعد باید یک فرمان اجرا کنیم تا فایل darkice.sh قابل اجرا شود. پنجره ترمینال را باز کرده و عبارت "sudo chmod 777 /home/pi/darkice.sh" را تایپ کرده و Enter را بزنید. اکنون زمان شروع سرویس سرور Icecast2 فرا رسیده است. عبارت "sudo service icecast2 start" را تایپ کرده و enter را بزنید.
sudo chmod 777 /home/pi/darkice.sh
شروع سرویس sudo icecast2
مرحله 15:
در مرحله بعد باید به Darkice بگوییم که هر زمان Pi بوت می شود به طور خودکار شروع به کار کند (سرور Icecast2 به عنوان یک سرویس اجرا می شود و پس از بوت شدن به طور خودکار شروع می شود). ابتدا باید انتخاب کنیم از کدام ویرایشگر متن استفاده کنیم. در پنجره ترمینال "select-editor" را تایپ کرده و enter را بزنید. "2" را برای انتخاب ویرایشگر نانو تایپ کرده و Enter را بزنید. سپس عبارت "crontab -e" را تایپ کرده و وارد کنید. سپس کلید پیکان رو به پایین را پایین نگه دارید تا به انتهای فایل متنی که ظاهر می شود بروید و این خط "@reboot sleep 10 && sudo /home/pi/darkice.sh" را اضافه کنید. سپس Ctrl-X را فشار دهید تا خارج شود و در آن پیام "ذخیره بافر تغییر یافته؟" برای تأیید نام فایل به طور خودکار ، کلید Y را برای Yes و سپس Enter بزنید.
انتخاب-ویرایشگر
crontab -e
@reboot sleep 10 && sudo /home/pi/darkice.sh
مرحله 16:
تلفن خود را با Raspberry Pi با استفاده از نماد بلوتوث روی دسکتاپ جفت کنید. مهم است که بلوتوث Pi را در حالت کشف قرار دهید و سپس از تلفن خود جفت شوید. اگر تلفن خود را در حالت کشف قرار دهید و سعی کنید آن را از Pi جفت کنید ، ممکن است متصل شود اما خطایی به شما بدهد که می گوید هیچ سرویسی در تلفن شما وجود ندارد که Pi بتواند از آن استفاده کند ، درست است. ما سعی می کنیم صدا را به Pi ارسال کنیم ، نه برعکس. پس از جفت شدن ، این دستور را در پنجره ترمینال اجرا کنید تا آدرس MAC بلوتوث دستگاه متصل شما نشان داده شود:
sudo bluetoothctl
مرحله 17:
برای اینکه Darkice بتواند از دستگاه بلوتوث به عنوان ورودی صوتی PCM استفاده کند ، باید یک فایل در پوشه "etc" به نام "asound.conf" (etc/asound.conf) ایجاد کنیم. روی فلش بالا در مدیریت فایل چند بار کلیک کنید تا به فهرست اصلی بروید و سپس روی پوشه "etc" دوبار کلیک کنید تا باز شود. پایین بروید و در یک فضای خالی راست کلیک کنید و یک فایل خالی به نام "asound.conf" ایجاد کنید و خطوط زیر را با آدرس MAC دستگاه خود جایگزین کنید و ذخیره کنید.
pcm.phone {type plug slave.pcm {type bluealsa device "50: F0: D3: 7A: 94: C4" profile "a2dp"}}
مرحله 18:
هر دو رادیو وای فای و بلوتوث در رزبری پای روی یک تراشه هستند ، بنابراین اگر پهنای باند هر دو را بیشتر کنید ، صدای بلوتوث می تواند لکنت داشته یا منجمد شود. برخی آن را اشکال می نامند و برخی می گویند این فقط یک محدودیت سخت افزاری است. ما در حال تغییر تنظیماتی هستیم که این مشکل را برطرف می کند. اعتبار ارسال این مشکل به "pelwell" در https://github.com/raspberrypi/linux/issues/1402 باز می شود تا sudo pcmanfm را باز کنید تا مدیر پرونده باز شود و به آدرس/lib/firmware/brcm بروید. روی فایل متنی "brcmfmac43430-sdio.txt" دوبار کلیک کنید تا باز شود و این خطوط را به پایین اضافه کرده و ذخیره کنید.
# پارامترهای تجربی تجربی بلوتوث از Cypressbtc_mode = 1 btc_params8 = 0x4e20 btc_params1 = 0x7530
مرحله 19:
روی نماد منوی GUI کلیک کنید و Shutdown and Reboot را انتخاب کنید. اگر تمام این مراحل را به طور دقیق دنبال کرده اید ، سرور صوتی بلوتوث شما پس از کلیک روی راه اندازی مجدد ، از 30 ثانیه تا یک دقیقه به طور خودکار شروع به کار می کند. قبل از اینکه بتوانید آن را به Sonos اضافه کنید ، باید بلوتوث تلفن خود را به Pi وصل کنید (به سادگی در تنظیمات بلوتوث تلفن خود روی آن ضربه بزنید) زیرا شروع به پخش صدا و افزایش صدا می کند. به یاد داشته باشید که هیچ صدایی از بلندگوی تلفن خود نمی شنوید زیرا فکر می کند به بلندگوی بلوتوث خارجی متصل شده است. یکی از راه های بصری برای تشخیص اینکه Icecast صدای بلوتوث را از Darkice دریافت می کند این است که https://192.168.86.107:8000 را در مرورگر وب با IP Pi خود جایگزین IP من کنید. Icecast همیشه در حال اجرا است بنابراین همیشه صفحه وضعیت را خواهید دید ، اما اگر Darkice همچنین صدای بلوتوث دریافت می کند ، نقطه اتصال و توصیف جریان را نیز مشاهده خواهید کرد. بلوتوث خود را قطع کرده و صفحه را تازه کنید تا دوباره خالی شود.
مرحله 20:
برای اضافه کردن یک جریان سفارشی به Sonos ، باید از برنامه کنترل دسکتاپ Sonos استفاده کنید. روی مدیریت> افزودن ایستگاه رادیویی کلیک کنید و url جریان را وارد کنید که در مورد من "https://192.168.86.107:8000/rapi.mp3" بود. همچنین نام ایستگاه را وارد کرده و روی OK کلیک کنید.
مرحله 21:
برای پخش ایستگاه رادیویی سفارشی که تازه اضافه کردیم ، "Radio by Tunein" و سپس "ایستگاه های رادیویی من" را انتخاب کنید. برای پخش دوبار کلیک چپ یا راست کلیک برای ویرایش یا افزودن ایستگاه به موارد دلخواه Sonos خود کنید.
مرحله 22:
پس از اضافه کردن ایستگاه رادیویی سفارشی ، بلافاصله در برنامه Sonos شما در دسترس خواهد بود. برنامه را باز کنید ، روی "My Sonos" در پایین ضربه بزنید ، به پایین "Stations" بروید و روی "See All" ضربه بزنید. پایین بروید تا ایستگاه تازه ایجاد شده خود را ببینید. روی آن ضربه بزنید و بازی در اتاق های انتخابی شما شروع می شود. به یاد داشته باشید، ̶ اگر اتصال شما قطع خود را بلوتوث از PI سپس IceCast به پخش خواهد کرد ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ اگر شما سوئیچ های صوتی برنامه های آن ممکن است ̶d̶i̶s̶c̶o̶n̶n̶e̶c̶t̶.̶ برای از سرگیری گوش دادن بر روی SONOS گرفتند به راه اندازی مجدد بازی های صوتی خود را در تلفن دوباره و فشار بازی بر روی ̶t̶h̶e̶ ̶S̶o̶n̶o̶s̶ ̶a̶p̶p̶ ̶a̶g̶a̶i̶n̶.̶ <--- این مشکل برطرف شده است ؛ به روز رسانی زیر را ببینید موفق باشید و ممنون که خواندید!
مرحله 23: به روز رسانی: هنگامی که BLUETOOTH قطع می شود ، STREAM ثابت نگه داشته می شود
بنابراین جریان بلوتوث با این تنظیم کاملاً کار می کرد مگر اینکه Sonos هر زمان که Darkice صدای بلوتوث را از دست می داد ، از سرور Icecast قطع می کرد ، مانند زمانی که برنامه های صوتی را عوض می کردید یا فقط بلوتوث را به سادگی قطع می کردید که این امر دردآور بود زیرا شما مجبورید قبل از آن بار دیگر جریان صوتی بلوتوث را دریافت کنید. حتی می توانید دکمه پخش را در برنامه Sonos فشار دهید.این مشکل زمانی ایجاد می شد که من سعی می کردم از برنامه WatchESPN تلفن خود که تمام صفحه است صدا را به Sonos منتقل کنم ، فقط به صورت تمام صفحه است ، بنابراین پس از شروع صدای بلوتوث ، نتوانستم دکمه پخش را در برنامه Sonos بزنم ، اما وقتی برنامه WatchESPN را بستم ، جریان Sonos شروع نمی شود مگر اینکه ابتدا صدای بلوتوث را شروع کرده باشید! اوف! من موهایم را کشیده ام و سعی می کنم یک راه حل زیبا برای این کار بیاورم. من یک رمزگذار mp3 دیگر به نام liquidsoap را امتحان کردم که می تواند هنگام قطع ارتباط صدا بدون صدا ارسال کند ، اما نتوانستم آن را با bluealsa کار کنم. من سعی کردم با استفاده از dsnoop و asym جریان Bluealsa را با یک کارت صدا دوم ساختگی alsa مخلوط کنم تا فکر کنم هنوز یک سیگنال صوتی وجود دارد اما alsa واقعاً به شما اجازه نمی دهد تا صدای بلوتوث را خیلی دستکاری کنید. سپس با استفاده از یک نقطه اتصال جایگزین با استفاده از یک فایل صامت mp3 در Icecast ، تحقیق را شروع کردم ، اما Sonos نام نقطه اتصال را تغییر می دهد و قطع می شود. من از یک فایل test.mp3 استفاده می کردم و به طور تصادفی آن را یک بار به جای نام اصلی به عنوان نقطه اتصال اصلی معرفی کردم و متوجه شدم Sonos به سادگی با پخش آن فایل از جریان bluetooth "rapi.mp3" قطع شد. اوریکا! هنگامی که دوباره در دسترس قرار گرفت ، به طور خودکار به جریان بلوتوث بر نمی گردد ، بنابراین من به این فکر افتادم که چرا فقط از نام نقطه اتصال مشابه استفاده نکنم؟ بنابراین کاری که باید انجام دهید این است که یک فایل mp3 بی صدا ایجاد کنید و نام آن را با جریان mp3 Darkice ، "rapi.mp3" بگذارید و آن را به عنوان نقطه اتصال اصلی در فایل پیکربندی Icecast2 انتخاب کنید. اتفاقی که می افتد این است که هر زمان که Sonos ارتباط خود را با جریان Darkice/bluetooth rapi.mp3 قطع می کند ، فقط شروع به حلقه کردن فایل دیگر rapi.mp3 خاموش می کند تا زمانی که جریان بلوتوث دوباره آنلاین شود. به این ترتیب لازم نیست قبل از پخش در Sonos صدای بلوتوث را پخش کنید. در اینجا نحوه انجام آن…
مرحله 24:
ابتدا باید ffmpeg را نصب کنیم تا یک فایل mp3 بی صدا ایجاد شود. شما می توانید یک فایل.wav خاموش را از یک کارت صدا خارجی ضبط کرده و با استفاده از lame به mp3 تبدیل کنید ، اما از آنجا که من ورودی کارت صدا خارجی برای این پروژه ندارم ، استفاده از ffmpeg ساده ترین راه حل بود. پنجره ترمینال را باز کرده و عبارت "sudo apt-get install ffmpeg" را تایپ کرده و Enter را بزنید:
sudo apt-get ffmpeg را نصب کنید
پس از نصب ، این خط طولانی را کپی و جایگذاری کنید تا یک فایل mp3 بی صدا که فقط یک ثانیه طول می کشد رمزگذاری شود:
sudo ffmpeg -f lavfi -i anullsrc = channel_layout = stereo: sample_rate = 44100 -b: a 160k -t 1 /usr/share/icecast2/web/rapi.mp3
با استفاده از "sudo pcmanfm" File Manager را به صورت root باز کنید و به "/etc/icecast2" بروید. روی "icecast.xml" راست کلیک کرده و با استفاده از Leafpad باز کنید و این خطوط را درست در بالای خط "" بچسبانید:
/rapi.mp3
ذخیره و راه اندازی مجدد کنید و اکنون باید بتوانید ایستگاه بلوتوث Sonos سفارشی خود را قبل از اینکه حتی تلفن خود را به بلوتوث متصل کرده باشید ، راه اندازی کنید!
مرحله 25: الحاقیه
من می خواستم منبع تغذیه Raspberry Pi و 110V AC تا 5V DC در یک مورد مستقل باشد تا بتوانم به راحتی آن را در خانه جابجا کنم ، اما از اینکه چنین موردی وجود ندارد تعجب کردم. ممکن است بعداً یکی را پرینت سه بعدی کنم ، اما در همین حین به استفاده از کیف Raspberry Pi دیگر روی آوردم و یک شارژر دیواری USB نازک و کابل کوتاه پیدا کردم. شارژر دارای روکش لاستیکی بود که من نمی توانستم نوار VHB شفاف را به آن بچسبانم ، اما معلوم شد که یک برچسب است که به راحتی قابل جدا شدن است. با این حال ، این یک حفره کوچک ایجاد کرد که نوار VHB را بسیار نازک کرد ، بنابراین من از velcro استفاده کردم.
توصیه شده:
از Gestures برای کنترل پخش YouTube با آردوینو استفاده کنید: 5 مرحله
از Gestures برای کنترل پخش YouTube با Arduino: StoryYouTube فقط به شما اجازه می دهد هر بار که روی دکمه راست کلیک می کنید ، 5 ثانیه سریع حرکت کنید. بنابراین تصمیم گرفتم با استفاده از آردوینو و پایتون یک کنترلر بسازم تا هر زمان که دستم را تکان می دهم 20 ثانیه سریعتر به من کمک کند
صحبت کردن با آردوینو - پخش MP3 با آردوینو بدون هیچ ماژولی - پخش فایل Mp3 از Arduino با استفاده از PCM: 6 مرحله
صحبت کردن با آردوینو | پخش MP3 با آردوینو بدون هیچ ماژولی | پخش فایل MP3 از آردوینو با استفاده از PCM: در این دستورالعمل نحوه پخش یک فایل mp3 با arduino بدون استفاده از هیچ ماژول صوتی را یاد می گیریم ، در اینجا ما از کتابخانه PCM برای Arduino استفاده می کنیم که PCM 16 بیتی با فرکانس 8kHZ پخش می کند ، بنابراین اجازه دهید این کار را انجام دهیم
پخش سی دی بدون پخش کننده سی دی ، با استفاده از هوش مصنوعی و یوتیوب: 10 مرحله (همراه با تصاویر)
پخش سی دی بدون پخش کننده سی دی ، با استفاده از هوش مصنوعی و یوتیوب: آیا می خواهید سی دی های خود را پخش کنید اما دیگر سی دی پلیر ندارید؟ آیا وقت نداشتید سی دی های خود را پاره کنید؟ آنها را پاره کرد اما در صورت نیاز فایل ها در دسترس نیستند؟ مشکلی نیست. بگذارید هوش مصنوعی (هوش مصنوعی) سی دی شما را شناسایی کند و یوتیوب آن را پخش کند! من یک برنامه Android برای شما نوشتم
پخش صدا و پخش ویدئو با استفاده از Raspberry Pi 3 .: 6 مرحله
پخش صوتی و پخش ویدئو با استفاده از Raspberry Pi 3: اصلی ترین ابزار این پروژه پخش صدا به Raspberry Pi 3 از هر دستگاهی است که به شبکه WiFi مشترک متصل شده است و تهیه ویدیو از Raspberry Pi 3 به هر دستگاه متصل به یک شبکه WiFi مشترک
خودتان را متقاعد کنید که فقط از یک اینورتر 12 ولت به AC برای سیمهای LED استفاده کنید به جای اینکه آنها را برای 12 ولت دوباره وصل کنید: 3 مرحله
خودتان را متقاعد کنید که فقط از یک اینورتر 12 ولت به AC برای سیمهای LED استفاده کنید به جای اینکه آنها را برای 12 ولت دوباره وصل کنید: برنامه من ساده بود. من می خواستم یک سیم نور LED دیواری را به قطعات تقسیم کنم و سپس آن را دوباره سیم کشی کنم تا 12 ولت خاموش شود. روش جایگزین استفاده از اینورتر قدرت بود ، اما همه می دانیم که آنها بسیار ناکارآمد هستند ، درست است؟ درست؟ یا هستند؟