Мазмуну:

Жөнөкөй Интернет Радиосу: KISSIR: 13 кадам
Жөнөкөй Интернет Радиосу: KISSIR: 13 кадам

Video: Жөнөкөй Интернет Радиосу: KISSIR: 13 кадам

Video: Жөнөкөй Интернет Радиосу: KISSIR: 13 кадам
Video: В ЭФИРЕ РУССКОГО РАДИО ✬ ЛУЧШИЕ ПЕСНИ ✬ СБОРНИК ХИТОВ ✬ 2024, Декабрь
Anonim
Жөнөкөй Интернет Радиосу: KISSIR
Жөнөкөй Интернет Радиосу: KISSIR
Жөнөкөй Интернет Радиосу: KISSIR
Жөнөкөй Интернет Радиосу: KISSIR

Кээде жөн эле тийүү керек. Эч кандай интерфейс жок. Жөн гана баскычтар.

Интернет -радио ойноткуч катары Raspberry Pi - бул жаңы нерсе эмес жана дүйнө жүзү боюнча интернет станцияларын агылтуу үчүн монитор менен же мониторсуз малина пи менен интернет радио ойноткучту кантип түзүү боюнча көптөгөн көрсөтмөлөр бар. Эгерде сиз башсыз (мониторсуз) жүрүүнү чечсеңиз, сизге пи -плеерди интерфейстөө каражаты керек болот, адатта, веб -интерфейс, эгерде ssh сыяктуу хост менен түз байланышуу каражаты болбосо. Бул көрсөтмө бир аз башкача болот; биз пи буйруктарды жөнөтүү үчүн жөнөкөй баскычтарды колдонобуз, ошентип веб -интерфейске жана ЖК экранга болгон муктаждыкты жок кылабыз. Оңой угулат, туурабы (?)

Биз түстүү коддолгон баскычтарды колдонуу менен эң негизги дизайн менен баштайбыз, ар бир түс интернет радиостанциясын билдирет. Биз баскычты басуу үчүн кээ бир питон кодун киргизебиз: Басма сөз биздин пиодо аудио ойнотуу үчүн мыкты командалык линия куралы болгон MPG123 аркылуу алдын ала коддолгон интернет радиостанциясын ойнотуу үчүн буйрукту аткарат.

Сиздин питон жөндөмүңүздү өркүндөтүүнүн кажети жок. Чынында мен "Hello Worldдон" муну жазууга өттүм, жана сиз көрүп тургандай, мен көп кодду карызга алдым - эгер мен муну кыла алсам жана аны бир аз документтештирсем, башка эч кимде эч кандай көйгөй болбошу керек.

Кеттик!

Берилиштер:

Керектүү материалдар

  • Raspberry pi/ pi zero w бардык оңдоолор менен: Электр менен камсыздоо, SD карта жана Raspbian же Raspbian lite.
  • Wifi жана интернетке кирүү мүмкүнчүлүгү
  • Башка веб -браузерди жана малина пи үчүн SSH жөндөмүн аткаруу үчүн
  • Digital to Analog Converter (DAC) - милдеттүү эмес, бирок сиз ыраазы болосуз.
  • Күчөткүч
  • Баяндамачылар
  • Hookup зым жана секиргичтер
  • Лампочка жана ширетүүчү
  • Баскычтар үчүн Perf Board
  • Тактилдик баскычтар: Адатта Ачык- музыканын ар бир жанры үчүн, кубат баскычы жана кошумча үнсүз баскычы (7 баскыч сунушталат)
  • Жогоруда айтылгандардын бардыгы үчүн турак жай (милдеттүү эмес, бирок тыкан)

1-кадам: Алдын ала шарттар:

Алдын ала талаптар
Алдын ала талаптар

Биз сиздин малина пи, DAC жана күчөткүчүңүздү мурунтан эле орноттуңуз деп ойлоп баштайбыз, ошондой эле сизде интернетке кирүү мүмкүнчүлүгү бар деп ойлойбуз. Аудио жабдуулардын тандоолорунун, каалоолорунун жана аудио угуу мүмкүнчүлүктөрүнүн санына байланыштуу, биз сиздин орнотууңуз бүтүп калды деп болжолдойбуз: бул долбоорду баштоодон мурун динамиктериңизден үн чыгып турушу керек. Бизге малина pi үчүн ssh керек болот, андыктан pi конфигурациясын колдонуп, ssh иштетилгенин текшериңиз. Мен Raspbian lite колдонуп жатам жана бул долбоорго арналган жаңы sd картка акыркы нускасынын жаңы орнотулушун сунуштайм. Эгер ийгиликтүү болсо, анда биз 24/7 атайын угуу түзмөгү катары иштей турган жалгыз жабдык курабыз.

2 -кадам: Python жана Pip орнотуңуз

Мен башка компьютерди колдонуп пшке ssh кылууну жана ssh сессиясынын жардамы менен бардык керектүү функцияларды аткарууну артык көрөм, бирок менимче, алгач пиди мониторго, клавиатурага жана чычканга орнотуп, пи түзмөгүнө чейин иштөөгө болот. иштеп, анан өзүнчө жайгаштырылат.

Биринчиден, биздин системаны жана python версиясын үзгүлтүксүз тейлөөнү текшерип көрөлү:

sudo apt-get update

sudo apt-get жогорулатуу

Python орнотулганын текшериңиз. Терминал сеансында буйрук сабында төмөнкүлөрдү териңиз:

питон -версия

Эгерде сиз python 2.7.13 (же андан мурунку) көрсөңүз, python 3.+орнотолу.

sudo apt-get python3 орнотуу

sudo apt-get python-pip орнотуу

sudo apt-get python3-pip орнотуу

sudo pip3 орнотуу -пипти жаңыртуу

3 -кадам: MPG123 жана Adafruit Blinka орнотуңуз

Эми пайдубал түптөлдү, дагы бир нече орнотуулар:

MPG123 - бул биздин музыканы ойной турган аудио программа. Орнотуу чынында эле жөнөкөй:

sudo apt-get орнотуу mpg123

Мен көп изилдөөлөрдү жүргүздүм жана Adafruit веб -сайтынан баскычтарды басуу аркылуу үн файлдарын ойнотуу жөнүндө сонун шаблон таптым, андыктан нөлдөн баштоо эмес, Adafruitтеги адамдар биз үчүн күйүп кеткен жолду уланта берели. Алардын программасы Adafruit Blinka орнотуубузду суранат:

$ sudo pip3 adafruit-blinka орнотуңуз

Андан ары кетүүдөн мурун, Alsa орнотуусу бар экенине ынануу үчүн тез текшерип көрөлү:

aplay -версия

биздин жыйынтыктар окулушу керек: 1.1.3 версиясы Жарослав Кисела

4 -кадам: Көлөмдү Alsamixerде 50% га тууралаңыз

Көлөмдү Alsamixerде 50% га тууралаңыз
Көлөмдү Alsamixerде 50% га тууралаңыз
Көлөмдү Alsamixerде 50% га тууралаңыз
Көлөмдү Alsamixerде 50% га тууралаңыз

Эми кандайдыр бир укмуштуудай күтүлбөгөн нерселерди болтурбоо үчүн алдын ала чара көрүп, көлөмүбүздү 50% га тууралайлы:

Буйрук сабында alsamixer териңиз:

alsamixer

Эгерде биз кызыл ак жана жашыл экранды, же 100% максималдуу көлөмдү карап турган болсок, кулагыбыздын үнүн сактап калуу үчүн үндү 50% га чейин түшүрүү жакшы идея. Керек болсо, биз ар дайым кийинчерээк (өйдө же ылдый) тууралай алабыз.

5 -кадам: Кээ бир үй тапшырмалары: Угууга татыктуу 5 радиостанцияны табыңыз

Кээ бир үй тапшырмалары: Угууга татыктуу 5 радиостанцияны табыңыз
Кээ бир үй тапшырмалары: Угууга татыктуу 5 радиостанцияны табыңыз
Кээ бир үй тапшырмалары: Угууга татыктуу 5 радиостанцияны табыңыз
Кээ бир үй тапшырмалары: Угууга татыктуу 5 радиостанцияны табыңыз

Бизге ар бир баскыч үчүн бир станция керек болот. Чынында, бизге станция үчүн url керек болот. Баскычты басуу интернет радиостанциясынын url -ге жөнөкөй, бир сап код менен чалат. Ошентсе да биз өзүбүздөн алдыга чыгып жатабыз, андыктан үй тапшырмаларыбыз бар; 5 радиостанцияны жана алардын urlдерин табыңыз. 5 радиостанцияны табуу кыйын эмес, бирок алардын urlдерин табуу татаал болушу мүмкүн. Себебин бир мүнөттө түшүндүрөм.

SomaFm * - бул баштоо үчүн эң сонун булак, айрыкча азырынча уккусу келген нерселериңиз жок болсо. Алардын эклектикалык музыканын ар кандай түрлөрү бар, мен эч кимди таарынтпайм, эч кандай жарнамасы жок жана эң жакшы жери: Алар url'дерин ачык бөлүшүшөт. URL'ди кармоо үчүн, сизди кызыктырган бекеттин сүрөтүн чыкылдатыңыз жана сол жактагы навигация тилкесинен "Түз агым шилтемелерин" чыкылдатыңыз. Ал жерден MP3 бөлүмүн таап, ойнотуунун эң жогорку ылдамдыгынын url'ин кырып алыңыз (б.а. 128 сокку 64). URL'ди азырынча текст редакторуна же блокнотко чаптаңыз.

Мисал катары, Рождество роктарын кырып салуу үчүн, url мындай болмок: (бизге сервердин сүрөттөмөсүнүн кереги жок)

ice4.somafm.com/xmasrocks-128-mp3

Бул SomaFm дүйнөсүнөн бир аз башкача болот. Көптөгөн станциялар жарнама, маркетинг же мүмкүн байкоо үчүн болобу, угуучу менен станциянын ортосунда ортомчу колдонушат - мен көбүнчө мындай станциялардан оолак болууга аракет кылам. Ортомчулар алар аркылуу станцияны угууну каалашкандыктан, адатта url табуу абдан кыйын; жана бул жерде Vtuner кирет.

*Мен сизден сүйүктүү радиоңузга кайрымдуулук кылууну суранбасам, капа болмокмун, анткени көптөгөн станциялар угармандардын колдоосуна гана таянат.

6 -кадам: Кошумча: URL'ди Vtuner колдонуу менен кырып салыңыз

Кошумча: Vtuner'ди колдонуу менен URLди кырып салыңыз
Кошумча: Vtuner'ди колдонуу менен URLди кырып салыңыз
Кошумча: Vtuner'ди колдонуу менен URLди кырып салыңыз
Кошумча: Vtuner'ди колдонуу менен URLди кырып салыңыз

Эми кызыктуу бөлүгү келет …. Vtuner үй баракчасында, станциялардын чоң тизмесинин оң жактагы жогорку бурчундагы шилтемесин караңыз. Сизди кызыктырган музыка жанрын тандап, анан эң ылдамдыкта сорттоңуз, анда сиз станциялардын тизмесин көрөсүз. Сизге жагат деп ойлогон бекетти тандаңыз, шилтемени же ойнотуу баскычын чыкылдатып, музыканын үлгүсүн алыңыз. Эгерде бул сиз үчүн эмес болсо, тынчсызданбаңыз, биз узак мөөнөттүү ырахатка ылайыктуусун тапмайынча, процессти кайталаңыз. Скриншотумда мен Country музыкасынын санарип импульстук версиясын тандадым жана кийинки экранда анын Хорватиядан чыгып жатканын байкадым. Хорватиядан келген Country Music абдан кызыктуу угулат.

Бул мага жакты. Бирок мен кантип url алам? Станциянын аталышынын астындагы бекеттин сүрөтүнүн оң жагындагы боштукту оң баскыч менен чыкылдатыңыз жана "Барактын булагын көрүү" тандап, болжол менен 150 -сапка чейин ылдый жылдырыңыз. "" Деген сапты издеп жатабыз музду иштетүү ". Жана url дароо табылат!

orion.shoutca.st:8110/stream

Аябай кооз!

Биздин тизмеде жок дегенде 5 станция болгонго чейин бул кадамды кайталаңыз.

Кош кошумча: Эгер сиз кызыккан 5 музыканын жанрын тапсаңыз (5 станциядан айырмаланып), ар бир жанр үчүн радиостанциялардын тизмесин түзүңүз жана тизмелерди текст файлдары катары сактаңыз. Биз бул нерсеге кийинчерээк кайрылабыз.

7 -кадам: Биздин баскычтарды орнотуңуз

Биздин баскычтарды орнотуу
Биздин баскычтарды орнотуу
Биздин баскычтарды орнотуу
Биздин баскычтарды орнотуу

Эң маанилүү бөлүгү! Эски ширеткичти чаңдан тазалаңыз же жок дегенде сайыңыз жана чаңды бышырыңыз. Солдун убактысы келди. Мен адатта ачылган 4 тиштүү баскычты колдонуп жатам. Мен бир топ баскычтарды курам (сол сүрөттө) жана аларды кандайдыр бир тактага бекитип коём. Сүрөттө айтуу кыйын, бирок баскычтардын тиштеринин багыты баары түндүк-түштүк багытында. Оң жактагы, сиз менин жердеги зымдарым үчүн жер темир жолун кайда иштеткенимди жана ар бир баскычтын карама -каршы жагына кээ бир эркек учтуу секирүүчү кабелдерди туташтырганымды көрө аласыз. 7 жерге туташуунун ордуна, темир жол баарына бир жерге байланышты пи менен бөлүшүүгө мүмкүндүк берет. Жыйынтык - бул пилоттук тешиктер аркылуу кээ бир бурамаларды колдонуу менен радионун чокусуна орнотулган назик вафли тактасы. Мен чокудан кесип алган оюк аркылуу топчунун чокулары гана пайда болот. Менин үстүңкү бетимдин калыңдыгы 1/4 дюйм болгондуктан, бурап кетпеш үчүн этият болгум келет. Желим перформанын радиосуна тиркелип турушу үчүн пайдалуу болушу мүмкүн.

8 -кадам: GPIO пиндерибизди аныктаңыз

Биздин GPIO казыктарыбызды аныктаңыз
Биздин GPIO казыктарыбызды аныктаңыз
Биздин GPIO казыктарыбызды аныктаңыз
Биздин GPIO казыктарыбызды аныктаңыз

Менин башка көрсөтмөмдө, мен эски Google AIY версиясы 1 үн шляпалары үчүн жаңы колдонууну сунуштадым. Бул популярдуу эмес (же тар популярдуу) көрсөтмөдө мен шляпанын өзүнүн дизайнына канчалык таасирленгенимди айттым. Менде бир нече нерселер бар, ошондуктан мен шляпаны колдонуп прототип түзөм, анткени анын бортунда да күчөткүч да бар.

Келгиле, азыр кнопкаларыбызды басуучу алты казыкты аныктайлы. Мен сизден Google AIY шляпасынын сол жагына көңүл бурууну суранам, анда "сервос" деп жазылган. Пин үчүн 6 көзөнөктөн турган мамыча бар, анда мен мурунку кадамыбыздан баштап эркек баскычымдын учтарын тиркеп, аларды ширетем. Эгер сиз Google aiy Voice шляпасыз иштесеңиз, тынчсызданбаңыз, - оң жактагы сүрөт сизди жетектейт. Кандай болбосун, биз gpio (BCM) казыктары 26, 06, 13, 05, 12 жана 24 менен жогорудан ылдыйга чейин иштейбиз (же 0-5). GPIO #24 кошумча тындыруу баскычы үчүн корголот.

Жерге туташууну да унутпаңыз.

9 -кадам: Код

Мен коддун бул жерден көп өзгөрүп кетеринен күмөн санайм, бирок python кодунун акыркы версиясы үчүн менин githubума баш багыңыз. Мен pytiful3.py деп аталган 2019-18-12 күнгө карата көчүрмөсүн тиркеп койдум.

Бул сиз көрө турган эң эффективдүү код эмес жана бул абдан ачык, бирок ал ишти бүтүрөт.

Келгиле, ойной турган кум коргонун түзүүдөн баштайлы. Үй каталогубуздан биздин малина пи боюнча kissir деп аталган каталог түзүңүз:

mkdir kissir/

жана pytiful3.py файлынын мазмунун каталогго көчүрүү, үлгү файлды текст редакторунда ачуу жана колдонуу менен

sudo nano kissir/pytiful3.py

файлдын мазмунун жаңы түзүлгөн python скриптине көчүрүү / коюу. Биздин жумушту Ctrl-x, Y аркылуу сактап, киргизүүнү унутпаңыз.

Эгерде сиз сценарий боюнча тез экскурсия кылгыңыз келсе, анда биз керектүү болгон питон модулдарын импорттойбуз, анан биз баскычтарыбызды аныктайбыз жана 7 баскычтын ар бирине gpio пин бекитебиз. 5 радиостанция болот (бекетиңизди каалагандай түзөтө аласыз), токтотуу баскычы жана өчүрүү баскычы. Чыныгы цикл бир баскыч басылганга чейин иштейт жана иштейт, ал көпчүлүк учурларда mpg123 ойнотууну токтотот жана басылган баскычка дайындалган станцияны ойной баштайт. Тыныгуу/токтотуу баскычы чындыгында тындыруу баскычы эмес, бирок биз интернет радиону токтото албаганыбыз үчүн өлтүргүчтүн мааниси көбүрөөк. Интернет радио эч кимди күтпөйт.

10 -кадам: Биздин Sandboxто тестирлөө

Биздин Sandboxто тестирлөө
Биздин Sandboxто тестирлөө

Биз радиобузду жайылтуудан мурун, ssh сессиябызда, скрипт сакталган kissir папкасына өтүңүз. Сценарийди буйрук сабынан кол менен иштете алабыз:

python3 pytiful3.py

Эгерде сиз алгач кодду карап чыксаңыз, анда мен эмне болуп жатканын айтып беришибиз үчүн кээ бир басма сөздөрдү калтырып кеткенимди байкадыңыз. Эгерде баары жакшы иштесе, бизде "Баскычты басуу" деген жазуу пайда болот. Бул бизге биздин скрипт иштеп жаткандыгын жана коддун алдын ала текшерүүсүнөн өткөндүгүн билдирет. Менин алгачкы аракетимде "музыка тындырылды - улантуу үчүн баскычты басыңыз" деген чексиз цикл болгон жана мен тыныгуу баскычым кадимкидей ачык эмес, дайыма жабык болушу керек экенин билдим. Сиз ширетүү кадамы менен ийгиликке жеттиңиз деп үмүттөнөбүз.

Ctrl-C сценарийди токтотот, эгерде аны токтотуу керек болсо.

Демек, эгер сиз "Баскычты басыңыз" дегенди көрсөңүз, биз эмнени күтүп жатабыз? Биздин беш радиостанциянын баскычтарынын бирин тандаңыз.

Балким, сиз музыканы ойнотууну баштоо үчүн спикердин үнүн угасыз, бирок мен азырынча жардам бере албайм. Mpg123 os.system командасындагы станция дарегинен кийин "-алдын ала жүктөө 1" суффиксине жол берет, бирок анын айырмасы бар экенин айта алган жокмун. Бул бир аз буферге жол бериши керек.

Сиз кызыктырган дагы бир код: mpg123 чалуусунан кийин "-f 7000" желеги бар. Бул көлөмдү максималдуу көлөмдүн алыс аралыкына чейин азайтат. Толук көлөмү 32K болмок. Мен түшүнгөндөй, көлөмдүн масштабы сызыктуу эмес, ошондуктан мен аны эң чоң көлөмдүн бештен бир бөлүгү деп айта албайм, бирок дагы эле катуу. Мен муну жасоого туура келди, анткени менин үн картам - Google AIY үн картасы, кээде Alsamixer менен жакшы ойнобойт.

Сиз тандаган баскычтарды тандап алууну улантыңыз, кайра отуруңуз, эс алыңыз жана азырынча угууңуздун ыңгайлуулугунан ырахат алыңыз.

11 -кадам: Биздин кодду жүктөөдө автоматтык түрдө иштей тургандай кылып орнотуңуз

Ошентип, эгерде баары жакшы иштеп жаткан болсо жана сиз биздин кум коргонуу буйругу менен иштөөнү жактырсаңыз, азыр скрипттин жүктөлүшүн автоматташтырууга ылайыктуу учур. Сиз дагы эле kissir каталогунда экениңизди текшериңиз жана скрипт кодун колдонуучунун кутусуна салыңыз:

sudo cp pytiful3.py/usr/local/bin/

Аны аткарылуучу кылуу:

sudo chmod +x /usr/local/bin/pytiful3.py

Баштоо учурунда иштетүү үчүн кабык скриптин жазыңыз:

sudo nano pytiful3.sh

Жана төмөнкү текстти киргизиңиз:

#! /bin/sh ### INIT INFO БАШТОО # Берет: pytiful3.py # Милдеттүү-Баштоо: $ remote_fs $ syslog # Милдеттүү-Токтоо: $ remote_fs $ syslog # Демейки-Баштоо: 2 3 4 5 # Демейки-Токтоо: 0 1 6 ### END INIT INFO # үндүн деңгээли катуу болбошун камсыз кылуу TODO # Системалык иштин "$ 1" учурда сураган учурда белгилүү бир функцияларды аткарыңыз) echo "Starting pytiful3.py" /usr/local/bin/pytiful3.py &;; токтотуу) echo "Stopping pytiful3.py" pkill -f /usr/local/bin/pytiful3.py;; *) echo "Useage: /etc/init.d/pytiful3.sh {start | stop}" чыгуу 1;; esac чыгуу 0

Аны init.dге жылдырыңыз:

sudo mv pytiful3.sh /etc/init.d/

Аны аткарылуучу кылуу:

sudo chmod +x /etc/init.d/pytiful3.sh

Баштоодо иштетүү үчүн скриптти каттаңыз:

sudo update-rc.d pytiful3.sh демейки

12 -кадам: Кайра сыноо

Эми бизде сценарий жүктөлүп баштаганда, биз киргизген бардык өзгөртүүлөрдү колдонуучунун кутусуна алып келүү керек экенин эстен чыгарбаңыз жана биздин кооз, kissir/pytiful3.py скрипти азыр жөн эле жетим. Бирок жакшы жагы, бизде дагы эле ойной турган кум коробкасы бар. Балким, мен сценарий менен ойной берем, өзгөртүүлөрдү киргизем жана жакынкы келечекте аны жаңы версия катары сактайм. Бул дагы эле иштеп жаткан долбоор.

Келгиле, өчүрүп -күйгүзөлү, пи кайра башталгыча күтө туруңуз жана бир мүнөттөн кийин дагы бир баскычты басыңыз.

Эгерде сиздин аудио үнүңүз өтө төмөн болсо, бизде alsamixer көлөмү 50%экенин унутпаңыз, андыктан биз аны буйрук сабынан ошого жараша көтөрө алабыз.

Жаңы баштагандар үчүн глобалдык көлөмдүн мааниси керек, анын ордуна үндүн деңгээлин 5 башка жолу өзгөртүү керек.

Эй, биз 6 -кадамда жасаган радиостанциялардын тизмеси жөнүндө эмне айтууга болот? Ооба, MPG123 туш келди тандоо буйругу бар экен. Бул станциянын url тизмесин түзүү сыяктуу жөнөкөй жана бир радиостанциянын urlине чалуунун ордуна, жөн гана колдонуңуз

"btn1234_choice = random.choice (btn1234)", станциялардын тизмесин аныктагандан кийин, btn1234_choice биздин тизме. Үтүр менен бөлүнгөн станциялардын тизмесинин айланасында төрт бурчтуу кашаанын колдонулганын унутпаңыз. Subprocess буйругу чалуусу биздин туш келди тандоону ойнойт:

subprocess.call (['mpg123', '-q', btn1234_choice, "-алдын ала жүктөө 1"])

13 -кадам: Кутуңуз, биз бүттүк

Box Up, жана биз бүттүк
Box Up, жана биз бүттүк
Box Up, жана биз бүттүк
Box Up, жана биз бүттүк
Box Up, жана биз бүттүк
Box Up, жана биз бүттүк

Эгер сиз бул кадамга жетсеңиз, иш аягына чыкты! Куттуктайбыз - сиз жөн гана өз алдынча интернет радио ойноткуч курдуңуз.

Колуңуздагы жабдууларга (динамиктер, дак жана күчөткүч) жараша, сиз зымдардын айрымдарын кантип жашырууну ойлонушуңуз мүмкүн. Балким, дагы бир күн үчүн башка бир нерсеге үйрөтүү мүмкүн, бирок эгер сиз кээ бир зымдарды туташтыруу үчүн турак жай жасоону пландап жатсаңыз, мен сизге кошумча бөлмө берүүнү сунуштайм.

Жогорудагы сүрөттөрдөн көрүнүп тургандай - мен чындыгында эки киссир жасадым, биринчиси менин биринчи аракетимдеги клейдин калдыктарын колдонуу менен (кыйшык тамашадан кыйшык тактайлар чыгат). Экинчи блок кадимки динамиктерди эмес, үн дүүлүктүргүчтөрүн колдонот, эгер сиз менин скриншотторумдун биринен түзмөктүн атын алсаңыз, мен аны slimbox деп атадым.

Мен бул долбоорду абдан кызыктуу деп таптым. Эки жолу. Албетте, татаал долбоор эмес, бир аз убакытты талап кылган, бирок абдан пайдалуу. Сизге да угуу жагат деп ишенем.

Сунушталууда: