Përmbajtje:

Mbajtja Stoopid Simple Radio e internetit: KISSIR: 13 hapa
Mbajtja Stoopid Simple Radio e internetit: KISSIR: 13 hapa

Video: Mbajtja Stoopid Simple Radio e internetit: KISSIR: 13 hapa

Video: Mbajtja Stoopid Simple Radio e internetit: KISSIR: 13 hapa
Video: Белокурая крыша с мокрым подвалом ► 1 Прохождение Lollipop Chainsaw 2024, Nëntor
Anonim
Mbajtja Stoopid e thjeshtë e Radios në Internet: KISSIR
Mbajtja Stoopid e thjeshtë e Radios në Internet: KISSIR
Mbajtja Stoopid e thjeshtë e Radios në Internet: KISSIR
Mbajtja Stoopid e thjeshtë e Radios në Internet: KISSIR

Ndonjëherë thjesht duhet të jetë e prekshme. Asnjë ndërfaqe e asnjë lloji. Vetëm Buttons.

Raspberry Pi si një radio radio në internet nuk është asgjë e re, dhe ka shumë udhëzime se si të krijoni një radio player në internet duke përdorur një mjedër pi me ose pa një monitor për të transmetuar stacionet e internetit nga e gjithë bota. Nëse do të zgjidhnit të dilnit pa kokë (pa monitor), do të kishit ende nevojë për një mjet për të ndërlidhur pi player, zakonisht një ndërfaqe në internet nëse jo një mjet i drejtpërdrejtë i komunikimit me hostin, siç është ssh. Ky udhëzues do të jetë paksa i ndryshëm; ne do të përdorim shtypje të thjeshta të butonave për të dërguar komanda në pi, duke eleminuar kështu nevojën për një ndërfaqe në internet dhe një ekran LCD. Tingëllon mjaft lehtë, apo jo (?)

Ne do të fillojmë me një dizajn shumë themelor duke përdorur butona të koduar me ngjyra, secila ngjyrë do të përfaqësojë një stacion radioje në internet. Ne do të prezantojmë një kod python për të trajtuar shtypjen e butonit: Shtypi do të ekzekutojë një komandë për të luajtur një stacion radio të paracoduar në internet duke përdorur MPG123, një mjet i shkëlqyeshëm i linjës së komandës për të luajtur audio në pi-në tonë.

Aftësitë tuaja në python nuk kanë nevojë të avancohen. Në fakt unë shkova fjalë për fjalë nga "Përshëndetje Botërore" në shkrimin e kësaj, dhe siç do ta shihni, kam marrë hua shumë kod - kështu që nëse mund ta bëj dhe ta dokumentoj disi, askush tjetër nuk duhet të ketë asnjë problem.

Shkojme!

Furnizimet:

Materialet e nevojshme

  • Raspberry pi/ pi zero w me të gjitha fiksimet: Furnizimi me energji elektrike, kartë SD dhe Raspbian ose Raspbian lite.
  • Wi -Fi dhe qasje në internet
  • Një PC tjetër për të kryer disa shfletime në internet dhe aftësinë për të SSH në mjedër pi
  • Konvertuesi dixhital në analog (DAC) - opsional, por do të jeni mirënjohës.
  • Përforcues
  • Folësit
  • Teli i lidhjes dhe kërcyesit
  • Saldim dhe saldim
  • Perf Board për butonat
  • Butonat prekës: Normalisht të Hapur- një për çdo zhanër të muzikës, një buton energjie dhe një buton opsional të heshtjes (rekomandohen 7 butona)
  • Një njësi strehimi për të gjitha sa më sipër (opsionale por e rregullt)

Hapi 1: Parakushtet:

Parakushtet
Parakushtet

Ne do të fillojmë duke supozuar se ju keni konfiguruar tashmë mjedrën tuaj pi, DAC dhe përforcuesin, dhe gjithashtu do të supozojmë se keni qasje në internet. Për shkak të sasisë së zgjedhjeve të pajisjeve audio, preferencave dhe opsioneve për dëgjimin audio, ne do të supozojmë se konfigurimi juaj është tashmë i plotë: ju duhet të keni zë që del nga altoparlantët tuaj para se të filloni këtë projekt. Ne gjithashtu do të duhet të ssh te mjedra pi, kështu që duke përdorur konfigurimin pi, sigurohuni që ndërfaqet të kenë të aktivizuara ssh. Unë do të përdor Raspbian lite dhe ju rekomandoj që të keni një instalim të ri të kopjes më të fundit në një kartë të re sd të dedikuar për këtë projekt. Nëse është i suksesshëm, ne do të ndërtojmë një pajisje të pavarur që mund të lihet e ndezur 24/7 si një pajisje dëgjimi e dedikuar.

Hapi 2: Instaloni Python dhe Pip

Unë preferoj të ssh në pi duke përdorur një kompjuter të ndryshëm, dhe të kryej të gjitha funksionet e kërkuara duke përdorur një ssh sesion, por mendoj se është e mundur që fillimisht ta vendosni pi në një monitor, tastierë dhe miun dhe të punoni drejtpërdrejt në pi derisa të jetë duke punuar dhe pastaj të vendoset si i pavarur.

Së pari, le të bëjmë një kontroll rutinë të mirëmbajtjes së sistemit tonë dhe versionit python:

përditësim sudo apt-get

sudo apt-get upgrade

Sigurohuni që Python është i instaluar. Në një seancë terminale shkruani sa vijon në komandën e shpejtë:

python -përmbysje

Nëse shihni python 2.7.13 (ose më herët), le të instalojmë python 3.+:

sudo apt-get install python3

sudo apt-get instaloni python-pip

sudo apt-get install python3-pip

sudo pip3 install -upgrade pip

Hapi 3: Instaloni MPG123 dhe Adafruit Blinka

Tani që themeli është hedhur, vetëm disa instalime të tjera:

MPG123 është softueri audio që do të luajë muzikën tonë. Instalimi është vërtet i thjeshtë:

sudo apt-get install mpg123

Unë bëra shumë kërkime dhe gjeta një model të mrekullueshëm në faqen e internetit të Adafruit në lidhje me luajtjen e skedarëve të zërit duke përdorur shtypjet e butonave, kështu që në vend që të filloni nga e para, le të vazhdojmë në gjurmët që njerëzit në Adafruit tashmë kanë ndezur për ne. Programi i tyre kërkon që ne të instalojmë Adafruit Blinka:

$ sudo pip3 instaloni adafruit-blinka

Para se të shkojmë më tej, le të bëjmë një kontroll të shpejtë për t'u siguruar që kemi konfigurimin e Alsa -s:

aplay -përmbysje

rezultatet tona duhet të lexojnë: versionin 1.1.3 nga Jaroslav Kysela

Hapi 4: Rregulloni volumin në 50% në Alsamixer

Rregulloni volumin në 50% në Alsamixer
Rregulloni volumin në 50% në Alsamixer
Rregulloni volumin në 50% në Alsamixer
Rregulloni volumin në 50% në Alsamixer

Tani le të marrim një masë paraprake dhe të rregullojmë volumin tonë në 50% për të shmangur çdo surprizë shurdhuese:

Në komandën e shpejtë, shkruani alsamixer:

alsamixer

Nëse shikojmë një ekran me ngjyrë të kuqe të bardhë dhe jeshile, ose 100% vëllim maksimal, është një ide e mirë të ulim volumin në 50% për të ruajtur veshët e veshit. Ne gjithmonë mund të përshtatemi më vonë (lart ose poshtë) nëse është e nevojshme.

Hapi 5: Disa detyra shtëpie: Gjeni 5 stacione radio që ia vlen të dëgjohen

Disa detyra shtëpie: Gjeni 5 stacione radio që ia vlen të dëgjohen
Disa detyra shtëpie: Gjeni 5 stacione radio që ia vlen të dëgjohen
Disa detyra shtëpie: Gjeni 5 radio stacione që ia vlen të dëgjohen
Disa detyra shtëpie: Gjeni 5 radio stacione që ia vlen të dëgjohen

Do të na duhet një stacion për secilin buton. Në fakt, do të na duhet url për stacionin. Shtypja e butonit do të thërrasë url -në e stacionit të radios në internet në një kod të thjeshtë, një rresht. Sidoqoftë, ne po dalim përpara vetes, kështu që kemi disa detyra shtëpie për të bërë; gjeni 5 stacione radio dhe url -të e tyre. Gjetja e 5 stacioneve radio nuk është e vështirë, por gjetja e url -ve të tyre mund të jetë e ndërlikuar. Unë do të shpjegoj pse në një minutë.

SomaFm * është një burim i shkëlqyeshëm për të filluar, veçanërisht nëse nuk keni ndonjë ide se çfarë doni të dëgjoni akoma. Ata kanë një larmi të madhe zgjedhjesh muzikore eklektike, asnjëra prej të cilave nuk më duket ofenduese, asnjë reklamë dhe pjesa më e mirë: Ata ndajnë hapur url -të e tyre. Për të kapur url -në, klikoni mbi një imazh të stacionit që ju intereson, dhe në shiritin e navigimit në anën e majtë, klikoni "Lidhjet e drejtpërdrejta të transmetimit". Prej aty, gjeni seksionin MP3 dhe fshini url -në e shkallës më të lartë të riprodhimit (p.sh. 128 rrahje 64). Ngjitni url -në në një redaktues teksti ose fletore për momentin.

Si shembull, për të hequr Shkëmbinjtë e Krishtlindjeve, url -ja do të ishte: (nuk kemi nevojë për përshkrimin e serverit)

ice4.somafm.com/xmasrocks-128-mp3

Bëhet pak më dicier jashtë botës së SomaFm. Shumë stacione përdorin një ndërmjetës midis dëgjuesit dhe stacionit, qoftë për reklama, marketing ose ndoshta ndjekje - dhe unë në përgjithësi përpiqem t'i shmang këto lloj stacionesh. Meqenëse ndërmjetësit preferojnë që ta dëgjoni stacionin përmes tyre, zakonisht është goxha e vështirë të gjesh url -në; dhe aty hyn Vtuner.

*Do të isha i lirë nëse nuk kërkoja nga ju që të konsideroni të bëni një donacion për stacionin tuaj të preferuar të radios, pasi shumë nga stacionet mbështeten vetëm në mbështetjen e dëgjuesit.

Hapi 6: Opsionale: Rrëshqisni URL -të duke përdorur Vtuner

Opsionale: Rrëshqisni URL -të duke përdorur Vtuner
Opsionale: Rrëshqisni URL -të duke përdorur Vtuner
Opsionale: Rrëshqisni URL -të duke përdorur Vtuner
Opsionale: Rrëshqisni URL -të duke përdorur Vtuner

Tani vjen pjesa argëtuese…. Në faqen kryesore të Vtuner, shikoni lidhjen e tyre të madhe të listës së stacioneve në këndin e sipërm të djathtë. Zgjidhni një zhanër të muzikës që ju intereson dhe më pas renditeni me shpejtësinë më të madhe, ku do të shihni një listë stacionesh. Zgjidhni një stacion që mendoni se mund t'ju pëlqejë, klikoni në lidhjen ose butonin e luajtjes dhe provoni muzikën. Nëse nuk është për ju, mos u shqetësoni, përsëriteni procesin derisa të gjejmë një të përshtatshme për kënaqësi afatgjatë. Në ekranin tim, zgjodha versionin dixhital të impulsit të muzikës Country dhe në ekranin tjetër, vura re që po luante jashtë Kroacisë. Muzika Country nga Kroacia tingëllon mjaft interesante.

Më pëlqen. Por si mund ta marr url -në? Thjesht kryeni një klik të djathtë në hapësirën e bardhë në të djathtë të imazhit të stacionit, nën emrin e Stacionit, dhe zgjidhni "Shiko burimin e faqes" dhe lëvizni poshtë në rreth rreshtit 150. Ne po kërkojmë rreshtin që thotë "// Provo për të trajtuar akullin ". Dhe url -ja gjendet menjëherë nën të!

orion.shoutca.st:8110/stream

Mjaft i shkëlqyeshëm!

Përsëriteni këtë hap derisa të kemi të paktën 5 stacione në listën tonë.

Dy opsionale: Për një masë shtesë, nëse mund të gjeni 5 zhanre të muzikës për të cilat keni interes (në krahasim me 5 stacione), krijoni një listë të stacioneve radio për secilën zhanër dhe ruani listat si skedarë teksti. Ne do të kthehemi në këtë më vonë.

Hapi 7: Vendosni butonat tanë

Vendosni butonat tanë
Vendosni butonat tanë
Vendosni butonat tanë
Vendosni butonat tanë

Pjesa më e rëndësishme! Pluhuroseni hekurin e vjetër të saldimit ose të paktën futeni në prizë dhe piqni pluhurin. Timeshtë koha për të Solder. Unë jam duke përdorur 4 butona shtytës të çastit, të hapur normalisht. Unë do të ndërtoj një sërë butonash (foto e majtë) dhe do t'i lidh ato në një tabelë perfekte. Hardshtë e vështirë të thuash në foto, por drejtimi i kunjave të butonave janë të gjithë duke lëvizur Veri-Jug. Në anën e djathtë, ju mund të shihni se ku kam drejtuar një hekurudhë tokësore për telat e mia të tokës dhe bashkova disa kabllo kërcyesish meshkuj në anën e kundërt të secilit buton. Në vend që të ketë 7 lidhje tokësore, hekurudha do të na lejojë të ndajmë një lidhje tokësore me pi për të gjithë. Rezultati përfundimtar është një tabelë delikate e meshë që do të jetë e montuar nën pjesën e sipërme të radios duke përdorur disa vida përmes vrimave pilot të ofruara. Vetëm majat e butonave do të shfaqen përmes brazdës që kam prerë nga maja. Meqenëse sipërfaqja ime e sipërme është vetëm 1/4 e trashë, dua të jem i kujdesshëm për të mos e vidhosur. Ngjitësja mund të jetë e dobishme për ta mbajtur bordin e perfit të bashkangjitur në radio.

Hapi 8: Identifikoni kunjat tona GPIO

Identifikoni kunjat tona GPIO
Identifikoni kunjat tona GPIO
Identifikoni kunjat tona GPIO
Identifikoni kunjat tona GPIO

Në udhëzimet e mia të tjera të thjeshta, unë paraqita një përdorim të ri për kapelet e zërit të versionit 1 të Google AIY të vjetër. Në këtë udhëzim gjerësisht jopopullor (ose shumë të popullarizuar), unë përmenda se sa i impresionuar isha me modelin e vetë kapelës. Unë kam disa të shtrirë përreth, kështu që unë do të ndërtoj një prototip duke përdorur kapelën pasi ka si dac ashtu edhe përforcuesin në bord.

Le të identifikojmë tani gjashtë kunjat që do të presin shtypjet tona të butonave. Unë do t'ju kërkoj të përqendroheni në anën e majtë të kapelës Google AIY, ku thotë "servos". Ekziston një kolonë prej 6 vrimash për kunj ku do të lidh dhe përfundoj duke lidhur butonin tim mashkullor nga hapi ynë i mëparshëm. Nëse jeni duke punuar pa kapelën goj aiy, mos u shqetësoni, - fotografia në të djathtë do t'ju udhëheqë. Në secilin rast do të punojmë me kunjat gpio (BCM) 26, 06, 13, 05, 12 dhe 24 nga lart poshtë (ose 0-5). GPIO #24 do të rezervohet për një buton pauzë opsional.

Mos harroni të bashkëngjitni edhe lidhjen e tokëzimit.

Hapi 9: Kodi

Unë dyshoj se kodi do të ndryshojë shumë nga këtu, megjithatë për versionin e fundit të kodit python, ju lutemi vizitoni githubin tim. Unë kam bashkangjitur një kopje që nga 2019-18-12 e quajtur pytiful3.py.

Nuk është kodi më efikas që keni parë ndonjëherë, dhe është goxha i folur, por e përfundon punën.

Le të fillojmë duke krijuar një sandbox për të luajtur. Nga drejtoria jonë e shtëpisë, krijoni një direktori në pi mjedrën tonë të quajtur kissir:

mkdir kissir/

dhe kopjoni përmbajtjen e skedarit pytiful3.py në drejtori duke hapur skedarin shembull në një redaktues teksti dhe duke përdorur

sudo nano kissir/pytiful3.py

kopjoni / ngjisni përmbajtjen e skedarit në skriptin tonë të sapokrijuar python. Mos harroni të ruani punën tonë duke përdorur Ctrl-x, Y dhe hyni.

Nëse dëshironi një udhëtim të shpejtë të skenarit, ne importojmë modulet python që do të na duhen, dhe më pas përcaktojmë butonat tanë dhe caktojmë një pin gpio për secilin nga 7 butonat. Do të ketë 5 stacione radio (mos ngurroni të redaktoni sipas preferencës tuaj të stacionit), një buton ndalimi dhe një buton mbylljeje. Cikli i vërtetë funksionon dhe funksionon derisa të shtypet një buton, i cili në shumicën e rasteve do të ndalojë çdo riprodhim ekzistues të mpg123 dhe do të fillojë të luajë stacionin e caktuar në butonin që është shtypur. Butoni i pauzës/ndalimit nuk është me të vërtetë një buton pauzë, por më shumë një ndërprerës i vrasjes pasi nuk mund të vendosim pauzë radio në internet. Radio në internet nuk pret askënd.

Hapi 10: Provoni në Sandbox -in tonë

Provoni në Sandbox -in tonë
Provoni në Sandbox -in tonë

Para se të vendosim radion tonë, ndërsa jemi ende në ssh sesionin tonë, lundrojmë te dosja kissir ku ruhet skripti ynë. Ne thjesht mund ta ekzekutojmë skriptin nga linja e komandës me dorë duke shtypur:

python3 pytiful3.py

Nëse e shikuat kodin së pari, me siguri keni vënë re që kam lënë disa deklarata të shtypura në mënyrë që të mund të themi se çfarë po ndodh. Nëse gjithçka funksionoi mirë, do të kemi një kërkesë që thotë "Shtypni një buton". Kjo na tregon se skenari ynë po funksionon dhe kaloi një kontroll paraprak të kodit. Përpjekja ime fillestare kishte një lak të pafund të "muzikës së ndaluar - shtypni butonin për të vazhduar", dhe zbulova se kisha butonin tim të pauzës të ishte i mbyllur gjithmonë, në vend që të ishte normalisht i hapur. Shpresoj se keni pasur fat më të mirë me hapin e bashkimit.

Ctrl-C do të ndalojë shkrimin nëse keni nevojë të abortoni.

Pra, nëse shihni "Shtypni një buton", çfarë po presim? Zgjidhni një nga pesë butonat tanë të stacionit të radios.

Ka shumë mundësi që ju do të dëgjoni një altoparlant që të fillojë riprodhimin e muzikës, dhe unë nuk mund të ndihmoj me këtë për momentin. Mpg123 lejon një prapashtesë "--load 1" pas adresës së stacionit në komandën os.system, megjithatë nuk mund të them nëse ka bërë një ndryshim. Duhet të lejojë një tampon të vogël.

Një pjesë tjetër e kodit që mund të keni menduar: ekziston një flamur "-f 7000" pas thirrjes mpg123. Kjo zvogëlon volumin në një distancë të madhe të vëllimit maksimal. Vëllimi i plotë do të ishte 32K. Siç e kuptoj, shkalla e vëllimit nuk është një shkallë lineare, kështu që nuk mund të them se është vetëm një e pesta e vëllimit maksimal, por ende shumë e lartë. Më duhej ta bëja këtë sepse karta ime zanore - karta zanore e Google AIY, nuk luan ndonjëherë mirë me Alsamixer.

Vazhdoni të zgjidhni butonat sipas zgjedhjes tuaj, uluni, qetësohuni dhe shijoni komoditetin e dëgjimit tuaj tani për tani.

Hapi 11: Vendosni kodin tonë që të ekzekutohet automatikisht në boot

Pra, nëse gjithçka po funksionon mirë, dhe ju keni shijuar ndërmarrjen tonë të shpejtë të komandës së sandbox, tani është një kohë e mirë për të automatizuar ngarkimin e skenarit. Sigurohuni që jeni akoma në drejtorinë kissir dhe vendosni kodin e skriptit në koshin e përdoruesit:

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

Bëjeni të ekzekutueshëm:

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

Shkruani një skenar shell për ta ekzekutuar atë gjatë fillimit:

sudo nano pytiful3.sh

Dhe futni tekstin e mëposhtëm:

#! /bin/sh ### FILLIMI I INFORMACIONIT # Siguron: pytiful3.py # Kërkohet-Filloni: $ remote_fs $ syslog # Kërkohet-Ndaloni: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### INF INFITIMI I FUNDIT # sigurohuni që niveli i volumit të mos jetë i lartë TODO # Kryeni funksione specifike kur ju kërkohet nga rasti i sistemit "$ 1" në fillim) jehonë "Fillimi i pytiful3.py" /usr/local/bin/pytiful3.py &;; ndaloj) jehon "Ndalimi i pytiful3.py" pkill -f /usr/local/bin/pytiful3.py;; *) jehonë "Përdorimi: /etc/init.d/pytiful3.sh {start | stop}" dalja 1;; dalja esac 0

Zhvendoseni atë në init.d:

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

Bëjeni të ekzekutueshëm:

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

Regjistroni skriptin për t'u ekzekutuar gjatë fillimit:

sudo update-rc.d pytiful3.sh parazgjedhje

Hapi 12: Provoni përsëri

Tani që e kemi skriptin tonë të ngarkuar për të filluar gjatë fillimit, vetëm mos harroni se çdo ndryshim që bëjmë duhet të sillet në koshin e përdoruesit, dhe skripti ynë i bukur, kissir/pytiful3.py është vetëm një jetim tani. Por nga ana e ndritshme, ne kemi akoma një sandbox për të luajtur. Unë ndoshta do të vazhdoj të luaj me skenarin, të bëj ndryshime dhe ta ruaj atë si një version të ri në të ardhmen e afërt. Stillshtë ende një projekt pune.

Le të bëjmë një rindezje, të presim që pi të rindizet dhe pas rreth një minutë, shtypni përsëri një buton.

Nëse vëllimi juaj audio është shumë i ulët, mbani mend që kemi volumin alsamixer në 50%, kështu që ne mund ta rrisim atë në përputhje me rrethanat nga komanda e shpejtë.

Për fillestarët, një gjë që nevojitet është një vlerë globale e vëllimit, në vend që të duhet të ndryshoni nivelin e volumit 5 herë të ndryshme.

Hej, po në lidhje me atë listë të stacioneve radio që kemi bërë në hapin #6? Epo, rezulton se MPG123 ka një komandë të përzgjedhjes së rastësishme. Asshtë po aq e thjeshtë sa të krijoni një listë url të stacionit, dhe në vend që të thërrisni për një url radio stacioni, thjesht përdorni

"btn1234_choice = random.choice (btn1234)", menjëherë pas identifikimit të listës sonë të stacioneve, ku btn1234_choice është lista jonë. Mos harroni të përdorni kllapa katrore rreth listës sonë të stacioneve të ndara me presje. Thirrja e komandës së nënprocesit pastaj luan zgjedhjen tonë të rastësishme:

nënproces.call (['mpg123', '-q', btn1234_choice, "--para-ngarkim 1"])

Hapi 13: Bëjeni kutinë dhe ne jemi gati

Bëjeni kutinë dhe ne jemi gati
Bëjeni kutinë dhe ne jemi gati
Bëjeni kutinë dhe ne jemi gati
Bëjeni kutinë dhe ne jemi gati
Bëjeni kutinë dhe ne jemi gati
Bëjeni kutinë dhe ne jemi gati

Nëse keni arritur në këtë hap, puna është e plotë! Urime - sapo keni krijuar një radio -lojtar të pavarur në internet.

Në varësi të pajisjeve që keni (altoparlantë, dac dhe përforcues), mund të pyesni veten se si të fshehni disa prej telave të vendosura. Ndoshta një mësim tjetër për një ditë tjetër, por nëse planifikoni të bëni një njësi banimi për të futur disa tela, ju rekomandoj t'i jepni vetes shumë hapësirë shtesë.

Siç mund ta shihni në fotot e mësipërme - unë në fakt bëra dy puthje, njëra duke përdorur mbetjet e një aksidenti të ngjitur në përpjekjen time të parë (nga humori i deformuar vijnë dërrasat e shtrembëruara). Njësia e dytë përdor ngacmues të zërit në vend të altoparlantëve konvencionalë, dhe nëse e keni zgjedhur emrin e pajisjes në njërën nga pamjet e mia të ekranit, unë e kam quajtur atë slimbox.

Më dukej se ky projekt ishte mjaft argëtues. Te dyja here. Sigurisht që nuk është një projekt i vështirë, ndoshta pak kohë, por shumë shpërblyes. Shpresoj që edhe ju të kënaqeni me dëgjimin tuaj.

Recommended: