Ħafna minna nħobbu nisimgħu r-radju filgħodu. U mbagħad filgħodu sabiħa indunajt li ma ridtx nisma’ stazzjonijiet tar-radju FM lokali. Mhux interessat. Iżda l-vizzju rriżulta li kien ta 'ħsara. U ddeċidejt li nissostitwixxi r-riċevitur FM b'riċevitur tal-Internet. Malajr xtrajt partijiet fuq Aliexpress u mmuntajt riċevitur tal-Internet.
Dwar ir-riċevitur tal-Internet. Il-qalba tar-riċevitur hija l-mikrokontrollur ESP32. Firmware minn KA-radju. Il-partijiet jiswewni $12. Il-faċilità ta 'assemblaġġ ippermettietni biex niġborha fi ftit jiem. Jaħdem tajjeb u stabbli. F'10 xhur ta 'xogħol, ffriżat biss ftit drabi, u mbagħad biss minħabba l-esperimenti tiegħi. Interface konvenjenti u maħsub sew jippermettilek tikkontrolla minn smartphone u kompjuter. Fi ftit kliem, dan huwa riċevitur tal-Internet mill-isbaħ.
Kollox tajjeb. Iżda filgħodu kmieni wasalt għall-konklużjoni li minkejja li kelli aċċess għal għexieren ta’ eluf ta’ stazzjonijiet tar-radju, ma kienx hemm stazzjonijiet interessanti. Iddejjaqni r-reklamar u ċ-ċajt stupidu tal-preżentaturi. Qbeż kontinwament minn stazzjon għall-ieħor. Jogħġobni Spotify u Yandex.Music. Imma l-ħaġa diqa hija li ma jaħdmux f'pajjiżna. U nixtieq nismagħhom permezz tar-riċevitur tal-Internet.
Ftakart fi tfuliti. Kelli tape recorder u żewġ tużżani cassettes. Bdilt il-cassettes mal-ħbieb. U kien meraviljuż. Iddeċidejt li kelli bżonn nistrimja l-arkivji awdjo tiegħi biss lil riċevitur tal-Internet. Naturalment, hemm għażla li tikkonnettja awdjo player jew iPod mal-kelliema u ma tinkwieta. Imma dan mhux il-mod tagħna! Ddejjaqni nqabbad il-konnetturi)
Bdejt infittex soluzzjonijiet lesti. Hemm offerta fis-suq biex toħloq ir-radju tal-Internet tiegħek stess minn Radio-Tochka.com. Ittestjajtu għal 5 ijiem. Kollox ħadem tajjeb mar-riċevitur tal-internet tiegħi. Imma l-prezz ma kienx attraenti għalija. Irrifjutajt din l-għażla.
Ħallast hosting 10 GB. Iddeċidejt li nikteb skript fuq xi ħaġa li tixxandar il-fluss awdjo tal-fajls mp3 tiegħi. Iddeċidejt li nikteb fil-PHP. Malajr ktibtha u nedietha. Kollox ħadem. Kien jibred! Imma ftit tal-jiem wara rċevejt ittra mill-amministrazzjoni ospitanti. Qal li l-limitu tal-minuti tal-proċessur inqabeż u l-ħtieġa li jiġi aġġornat għal tariffa ogħla. L-iskrittura kellha titħassar u din l-għażla abbandunata.
Kif ġara? Ma nistax ngħix mingħajr radju. Jekk ma jippermettux li tmexxi l-iskrittura fuq l-hosting ta 'xi ħadd ieħor, allura għandek bżonn is-server tiegħek. Fejn se nagħmel dak li tixtieq ruħi.
Għandi netbook tal-qedem mingħajr batterija (CPU - 900 MHz, RAM - 512 Mb). L-anzjan diġà għandu 11-il sena. Adattat għal server. Ninstalla Ubuntu 12.04. Imbagħad ninstalla Apache2 u php 5.3, samba. Is-server tiegħi huwa lest.
Iddeċidejt li nipprova Icecast. Qrajt ħafna mana fuqha. Imma sibtha diffiċli. U ddeċidejt li nirritorna għall-għażla bi skript PHP. Għaddew ftit jiem biex jiddibaggjaw dan l-iskritt. U kollox ħadem mill-aqwa. Imbagħad ktibt ukoll script biex nilgħab podcasts. U tant għoġobni li ddeċidejt li nagħmel proġett żgħir. Imsejjaħ IWScast.
Kollox huwa sempliċi ħafna. Nikkopja l-fajls mp3 u l-fajl index.php fil-folder tal-għeruq tal-Apache /var/www/ u jindaqqu b’mod każwali. Madwar 300 kanzunetta huma biżżejjed għal madwar il-ġurnata kollha.
Il-fajl index.php huwa l-iskript innifsu. L-iskrittura jaqra l-ismijiet kollha tal-fajls MP3 f'direttorju f'firxa. Joħloq fluss awdjo u jissostitwixxi l-ismijiet tal-fajls MP3. Hemm drabi meta tisma’ kanzunetta u togħġobkom. Min taħseb li qed ikanta? Għal każ bħal dan, hemm reġistrazzjoni tal-ismijiet tal-binarji mismugħa fil-log log.txt
Imla l-kodiċi tal-iskrittura
<?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);
}
?>
Jekk għandek bżonn li l-binarji jintlagħbu fl-ordni, allura trid tikkummenta l-linja f'index.php
shuffle($files); //Random on
Għall-podcasts nuża /var/www/podcast/ Hemm script index.php ieħor. Għandu memorizzazzjoni tal-binarji tal-podcast. Il-ħin li jmiss li tixgħel ir-riċevitur tal-Internet, tindaqq it-track tal-podcast li jmiss. Hemm ukoll log tal-binarji lagħbu.
Fil-fajl counter.dat, tista 'tispeċifika n-numru tal-binarju u l-plejbek tal-podcast se jibda minnu.
Kiteb parsers għat-tniżżil awtomatiku tal-podcasts. Huwa jieħu l-aħħar 4 binarji minn RSS u jniżżelhom. Dan kollu jaħdem tajjeb fuq smartphone, IPTV set-top box, jew fil-browser.
L-oħra filgħodu ġratli li jkun kbir li tiftakar il-pożizzjoni tal-plejbek fuq track. Imma għadni ma nafx kif tagħmel dan fil-PHP.
L-iskrittura tista' titniżżel
Sors: www.habr.com