Eyakho irediyo ye-intanethi

Uninzi lwethu luyathanda ukumamela unomathotholo kusasa. Kwaye ngenye intsasa elungileyo ndaqonda ukuba andifuni kumamela izikhululo zikanomathotholo ze-FM. Andinamdla. Kodwa lo mkhwa waba yingozi. Kwaye ndaye ndagqiba ekubeni nditshintshe umamkeli we-FM kunye ne-Intanethi. Ngokukhawuleza ndathenga iinxalenye kwi-Aliexpress ndaza ndaqokelela umamkeli we-Intanethi.

Malunga nommkeli we-Intanethi. Intliziyo yomamkeli yi ESP32 microcontroller. I-Firmware evela kwi-KA-radio. Amalungu andixabisa i-$12. Ukuhlanganisana ngokulula kwandenza ndakwazi ukuyihlanganisa ngeentsuku ezimbalwa. Isebenza kakuhle kwaye ngokuzinzileyo. Kwiinyanga ezili-10 zomsebenzi, kwaba ngumkhenkce amatyeli ambalwa kuphela, emva koko ngenxa yovavanyo lwam. Ujongano olufanelekileyo kunye nolucingwe kakuhle lukuvumela ukuba ulawule kwi-smartphone kunye nekhompyuter. Ngamafutshane, lo ngumamkeli omangalisayo we-Intanethi.

Yonke into ilungile. Kodwa ngenye intsasa ndafikelela kwisigqibo sokuba nangona ndandikwazi ukufikelela kumashumi amawaka ezikhululo zikanomathotholo, kwakungekho zikhululo zinika umdla. Ndandicatshukiswa ziintengiso kunye neziqhulo zobudenge zabasasazi. Ukutsiba rhoqo ukusuka kwesinye isikhululo ukuya kwesinye. Ndiyayithanda iSpotify kunye neYandex.Music. Kodwa into ebuhlungu kukuba azisebenzi kwilizwe lam. Kwaye ndingathanda ukubamamela nge-Intanethi.

Ndakhumbula ubuntwana bam. Ndandineteyiphu yokurekhoda kunye neshumi elinesibini lekhasethi. Ndatshintshisa ngeekhasethi nabahlobo. Kwaye kwakumnandi. Ndigqibe ekubeni kufuneka ndisasaze uvimba wam womsindo kumamkeli we-Intanethi kuphela. Ngokuqinisekileyo, kukho ukhetho lokudibanisa umdlali we-audio okanye i-iPod kwizithethi kwaye ungakhathazeki. Kodwa oku akusiyo indlela yethu! Ndiyakucaphukela ukudibanisa iziqhagamshelo)

Ndaqalisa ukukhangela izisombululo esele zenziwe. Kukho unikezelo kwimarike ukwenza eyakho irediyo ye-Intanethi evela kwiRadio-Tochka.com. Ndayivavanya iintsuku ezi-5. Yonke into yasebenza kakuhle nesamkeli sam se-intanethi. Kodwa ixabiso lalingemnandanga. Ndalile olu khetho.

Ndihlawule ukubamba i-10 GB. Ndaye ndagqiba ekubeni ndibhale iskripthi kwinto eza kusasaza umjelo womsindo weefayile zam ze-mp3. Ndagqiba ekubeni ndiyibhale ngePHP. Ndikhawuleze ndayibhala ndayisungula. Yonke into yasebenza. Bekupholile! Kodwa emva kweentsuku ezimbalwa ndafumana ileta evela kumphathi wekhaya. Yathi umda wemizuzu yeprosesa igqithiwe kunye nesidingo sokunyuselwa kumrhumo ophezulu. Okushicilelweyo kuye kwafuneka kucinywe kwaye olu khetho luyekwa.

Ingaba yenzeke njani? Andikwazi ukuphila ngaphandle kwerediyo. Ukuba abakuvumeli ukuba uqhube iskripthi kwi-hosting yomnye umntu, ngoko ufuna iseva yakho. Apho ndiya kwenza unothanda umphefumlo wam.

Ndine-netbook yamandulo ngaphandle kwebhetri (CPU - 900 MHz, RAM - 512 Mb). Ixhego sele lineminyaka eyi-11. Ifanelekile kumncedisi. Ndifaka Ubuntu 12.04. Emva koko ndifaka i-Apache2 kunye nephp 5.3, samba. Iseva yam ilungile.

Ndagqiba ekubeni ndizame i-Icecast. Ndifunde kakhulu i-mana kuyo. Kodwa ndakufumanisa kunzima. Kwaye ndaye ndagqiba ekubeni ndibuyele kukhetho ngescript se-PHP. Iintsuku ezimbalwa zichithwe ukulungisa le script. Kwaye yonke into yasebenza kakuhle. Emva koko ndabhala iskripthi sokudlala iipodcasts. Kwaye ndayithanda kakhulu kangangokuba ndagqiba ekubeni ndenze iprojekthi encinci. Ibizwa ngokuba IWScast. Iposwe kwi github.

Eyakho irediyo ye-intanethi

Yonke into ilula kakhulu. Ndikopa iifayile ze-mp3 kunye nefayile ye index.php kwifolda yengcambu ye-Apache /var/www/ kwaye zidlalwa ngokungenamkhethe. Iingoma ezimalunga nama-300 zanele malunga nosuku lonke.
Ifayile ye index.php siscript ngokwaso. Iscript sifunda onke amagama eefayile zeMP3 kulawulo kuluhlu. Yenza i-audio stream kwaye isuse amagama eefayile zeMP3. Kukho amaxesha apho umamele ingoma kwaye uyayithanda. Ucinga ukuba ngubani oculayo? Kwimeko enjalo, kukho ushicilelo lwamagama engoma ezimanyelweyo kwilog.txt
Gqibezela ikhowudi yeskripthi

<?php
set_time_limit(0);
header('Content-type: audio/mpeg');
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("icy-br: 128 ");
header("icy-name: your name");
header("icy-description: your description"); 
$files = glob("*.mp3");
shuffle($files); //Random on

for ($x=0; $x < count($files);) {
  $filePath =  $files[$x++];
  $bitrate = 128;
  $strContext=stream_context_create(
   array(
     'http'=>array(
       'method' =>'GET',
       'header' => 'Icy-MetaData: 1',
       'header' =>"Accept-language: enrn"
       )
     )
   );
//Save to log 
  $fl = $filePath; 
  $log = date('Y-m-d H:i:s') . ' Song - ' . $fl;
  file_put_contents('log.txt', $log . PHP_EOL, FILE_APPEND);
  $fpOrigin=fopen($filePath, 'rb', false, $strContext);
  while(!feof($fpOrigin)){
   $buffer=fread($fpOrigin, 4096);
   echo $buffer;
   flush();
 }
 fclose($fpOrigin);
}
?>

Ukuba ufuna iingoma zidlalwe ngokulandelelana, ngoko kufuneka uphawule umgca kwi-index.php

shuffle($files); //Random on

Kwiipodcasts ndisebenzisa /var/www/podcast/ Kukho esinye iskripthi index.php. Ine podcast track ngentloko. Ngexesha elizayo xa uvula i-intanethi, ingoma elandelayo ye-podcast iyadlalwa. Kukwakho nelog yeengoma ezidlalwayo.
Kwifayile ye-counter.dat, ungakhankanya inombolo yengoma kunye nokudlalwa kwepodcast kuya kuqala kuyo.

Babhale abahlalutyi ukuze bakhuphele ngokuzenzekelayo iipodcasts. Kuthatha iingoma ezi-4 zakutsha nje kwi-RSS kwaye uzikhuphele. Konke oku kusebenza kakuhle kwi-smartphone, kwi-IPTV set-top box, okanye kwisikhangeli.

Ngenye intsasa kwafika kum ukuba kuya kuba kuhle ukukhumbula indawo yokudlala kwingoma. Kodwa okwangoku andikayazi indlela yokwenza oku kwi-PHP.

Iscript sinokukhutshelwa github.com/iwsys/IWScast

umthombo: www.habr.com

Yongeza izimvo