Redio yako ya mtandaoni

Wengi wetu tunapenda kusikiliza redio asubuhi. Na kisha asubuhi moja nzuri niligundua kuwa sitaki kusikiliza vituo vya redio vya FM vya ndani. Sivutiwi. Lakini tabia hiyo iligeuka kuwa yenye madhara. Na niliamua kubadilisha kipokeaji cha FM na kipokea mtandao. Nilinunua haraka sehemu kwenye Aliexpress na nikakusanya mpokeaji wa Mtandao.

Kuhusu mpokeaji wa Mtandao. Moyo wa mpokeaji ni kidhibiti kidogo cha ESP32. Firmware kutoka KA-redio. Sehemu zilinigharimu $12. Urahisi wa kukusanyika uliniruhusu kuikusanya katika siku kadhaa. Inafanya kazi vizuri na kwa utulivu. Katika miezi 10 ya kazi, iliganda mara kadhaa tu, na kisha kwa sababu ya majaribio yangu. Kiolesura cha urahisi na kilichofikiriwa vizuri hukuruhusu kudhibiti kutoka kwa smartphone na kompyuta. Kwa neno moja, hii ni mpokeaji mzuri wa mtandao.

Kila kitu ni sawa. Lakini asubuhi moja mapema nilifikia mkataa kwamba licha ya kupata makumi ya maelfu ya vituo vya redio, hakukuwa na vituo vya kuvutia. Nilikerwa na matangazo na vicheshi vya kijinga vya watangazaji. Kuruka mara kwa mara kutoka kituo kimoja hadi kingine. Ninapenda Spotify na Yandex.Music. Lakini jambo la kusikitisha ni kwamba hawafanyi kazi katika nchi yangu. Na ningependa kuwasikiliza kupitia kipokea mtandao.

Nilikumbuka utoto wangu. Nilikuwa na kinasa sauti na kaseti dazeni mbili. Nilibadilishana kaseti na marafiki. Na ilikuwa ya ajabu. Niliamua kuwa nilihitaji kutiririsha kumbukumbu zangu za sauti kwa kipokezi cha Mtandao pekee. Bila shaka, kuna chaguo la kuunganisha mchezaji wa sauti au iPod kwa wasemaji na usijali. Lakini hii sio njia yetu! Sipendi viunganishi vya kuunganisha)

Nilianza kutafuta suluhisho zilizotengenezwa tayari. Kuna toleo sokoni la kuunda redio yako ya mtandao kutoka kwa Radio-Tochka.com. Niliijaribu kwa siku 5. Kila kitu kilifanya kazi vizuri na kipokeaji changu cha mtandao. Lakini bei haikuwa ya kuvutia kwangu. Nilikataa chaguo hili.

Nimelipa mwenyeji GB 10. Niliamua kuandika hati juu ya kitu ambacho kinaweza kutiririsha mtiririko wa sauti wa faili zangu za mp3. Niliamua kuiandika katika PHP. Niliiandika haraka na kuizindua. Kila kitu kilifanya kazi. Ilikuwa poa! Lakini siku chache baadaye nilipokea barua kutoka kwa usimamizi wa mwenyeji. Ilisema kuwa kikomo cha dakika za processor kilizidishwa na hitaji la kusasisha hadi ushuru wa juu. Hati ilibidi kufutwa na chaguo hili kutelekezwa.

Ilifanyikaje? Siwezi kuishi bila redio. Ikiwa hawakuruhusu kuendesha hati kwenye mwenyeji wa mtu mwingine, basi unahitaji seva yako mwenyewe. Ambapo nitafanya kile ambacho nafsi yangu inatamani.

Nina netbook ya kale bila betri (CPU - 900 MHz, RAM - 512 Mb). Mzee huyo tayari ana miaka 11. Inafaa kwa seva. Ninaweka Ubuntu 12.04. Kisha mimi huweka Apache2 na php 5.3, samba. Seva yangu iko tayari.

Niliamua kujaribu Icecast. Nilisoma sana juu yake. Lakini niliona ni vigumu. Na niliamua kurudi chaguo na hati ya PHP. Siku kadhaa zilitumika kutatua hati hii. Na kila kitu kilifanya kazi nzuri. Kisha niliandika pia hati ya kucheza podikasti. Na niliipenda sana hivi kwamba niliamua kufanya mradi mdogo. Inaitwa IWScast. Iliyotumwa kwenye github.

Redio yako ya mtandaoni

Kila kitu ni rahisi sana. Ninakili faili za mp3 na faili ya index.php kwenye folda ya mizizi ya Apache /var/www/ na huchezwa kwa nasibu. Takriban nyimbo 300 zinatosha kwa takriban siku nzima.
Faili ya index.php ndiyo hati yenyewe. Hati husoma majina yote ya faili za MP3 kwenye saraka hadi safu. Huunda mtiririko wa sauti na kubadilisha majina ya faili za MP3. Kuna wakati unasikiliza wimbo na unaupenda. Unadhani nani anaimba? Kwa hali kama hiyo, kuna rekodi ya majina ya nyimbo zilizosikilizwa kwenye logi log.txt
Kamilisha msimbo wa hati

<?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);
}
?>

Ikiwa unahitaji nyimbo kuchezwa kwa mpangilio, basi unahitaji kutoa maoni kwenye mstari katika index.php

shuffle($files); //Random on

Kwa podikasti ninazotumia /var/www/podcast/ Kuna index nyingine ya hati.php. Ina kukariri wimbo wa podcast. Wakati mwingine unapowasha kipokezi cha Mtandao, wimbo unaofuata wa podikasti unachezwa. Pia kuna logi ya nyimbo zilizochezwa.
Katika faili ya counter.dat, unaweza kubainisha nambari ya wimbo na uchezaji wa podikasti utaanza kutoka kwayo.

Aliandika vichanganuzi kwa upakuaji kiotomatiki wa podikasti. Inachukua nyimbo 4 za hivi punde kutoka kwa RSS na kuzipakua. Haya yote hufanya kazi vizuri kwenye simu mahiri, kisanduku cha kuweka-juu cha IPTV, au kwenye kivinjari.

Asubuhi nyingine ilikuja kwangu kuwa itakuwa nzuri kukumbuka nafasi ya kucheza kwenye wimbo. Lakini bado sijui jinsi ya kufanya hivyo katika PHP.

Hati inaweza kupakuliwa github.com/iwsys/IWScast

Chanzo: mapenzi.com

Kuongeza maoni