ʻO kāu lekiō pūnaewele ponoʻī

Nui ko mākou makemake e hoʻolohe i ka lekiō i ke kakahiaka. A i kekahi kakahiaka maikaʻi, ʻike wau ʻaʻole wau makemake e hoʻolohe i nā lekiō FM kūloko. ʻAʻole hoihoi. Akā, ua lilo ka maʻamau i mea pōʻino. A ua hoʻoholo wau e pani i ka mea hoʻokipa FM me kahi mea hoʻokipa pūnaewele. Ua kūʻai koke au i nā ʻāpana ma Aliexpress a hōʻuluʻulu i kahi mea hoʻokipa pūnaewele.

E pili ana i ka mea lawe pūnaewele. ʻO ka puʻuwai o ka mea hoʻokipa ka microcontroller ESP32. Firmware mai KA-lekiō. ʻO nā ʻāpana he $12 iaʻu. ʻO ka maʻalahi o ka hui ʻana i ʻae iaʻu e hōʻuluʻulu iā ia i nā lā ʻelua. Hana maikaʻi a paʻa. I loko o 10 mau mahina o ka hana, ua maloʻo ʻelua mau manawa, a laila no kaʻu mau hoʻokolohua. ʻO kahi maʻalahi a noʻonoʻo maikaʻi ʻia e hiki ai iā ʻoe ke hoʻokele mai kahi kelepona a me ka kamepiula. Ma kahi huaʻōlelo, he mea hoʻokipa pūnaewele maikaʻi kēia.

Pono nā mea a pau. Akā, i kekahi kakahiaka nui, ua hiki iaʻu ke hoʻoholo, ʻoiai ʻo ka loaʻa ʻana o nā ʻumi kaukani o nā lekiō, ʻaʻohe mea hoihoi. Ua huhū au i ka hoʻolaha ʻana a me nā ʻakaʻaka naʻaupō a nā mea hōʻike. E lele mau ana mai kekahi kahua a i kekahi. Makemake au iā Spotify a me Yandex.Music. Akā ʻo ka mea kaumaha, ʻaʻole lākou e hana ma koʻu ʻāina. A makemake au e hoʻolohe iā lākou ma o ka mea hoʻokipa pūnaewele.

Hoʻomanaʻo wau i koʻu wā kamaliʻi. Ua loaʻa iaʻu kahi mea hoʻopaʻa leo a me ʻelua kakini cassette. Ua hoʻololi au i nā cassette me nā hoaaloha. A he mea kupanaha. Ua hoʻoholo wau e pono iaʻu e hoʻoheheʻe i kaʻu waihona leo i kahi mea hoʻokipa pūnaewele wale nō. ʻOiaʻiʻo, aia kahi koho e hoʻohui i kahi mea hoʻokani leo a i ʻole iPod i nā mea haʻi'ōlelo a ʻaʻole hopohopo. Akā ʻaʻole kēia ko mākou ala! Ua inaina au i ka hoʻohui ʻana)

Ua hoʻomaka wau e ʻimi i nā hoʻonā i hana ʻia. Aia kahi hāʻawi ma ka mākeke e hana i kāu lekiō Pūnaewele mai Radio-Tochka.com. Ua hoʻāʻo au iā ia no 5 mau lā. Ua hana maikaʻi nā mea a pau me kaʻu mea hoʻokipa pūnaewele. Akā, ʻaʻole maikaʻi ke kumukūʻai iaʻu. Ua hōʻole au i kēia koho.

Ua uku au i ka hoʻokipa ʻana i ka 10 GB. Ua hoʻoholo wau e kākau i kahi palapala ma kahi mea e kahe ai ke kahawai leo o kaʻu mau faila mp3. Ua hoʻoholo wau e kākau ma PHP. Ua kākau koke wau a hoʻomaka. Ua hana nā mea a pau. Ua ʻoluʻolu! Akā i kekahi mau lā ma hope mai ua loaʻa iaʻu kahi leka mai ka hoʻokele hoʻokipa. Ua ʻōlelo ʻia ua ʻoi aku ka palena o nā minuke kaʻina hana a me ka pono e hoʻonui i ka uku kiʻekiʻe. Pono e holoi ʻia ka palapala a haʻalele ʻia kēia koho.

Pehea i hiki mai ai? ʻAʻole hiki iaʻu ke ola me ka lekiō. Inā ʻaʻole lākou e ʻae iā ʻoe e holo i ka palapala ma kahi hoʻokipa o kekahi, a laila pono ʻoe i kāu kikowaena ponoʻī. Ma kahi aʻu e hana ai i ka mea a koʻu ʻuhane i makemake ai.

Loaʻa iaʻu kahi netbook kahiko me ka ʻole o ka pila (CPU - 900 MHz, RAM - 512 Mb). He 11 makahiki ka ʻelemakule. Kūpono no kahi kikowaena. Hoʻokomo wau iā Ubuntu 12.04. A laila hoʻokomo wau iā Apache2 a me php 5.3, samba. Ua mākaukau kaʻu kikowaena.

Ua hoʻoholo wau e hoʻāʻo iā Icecast. Heluhelu nui au i ka mana ma ia mea. Akā ua paʻakikī iaʻu. A ua hoʻoholo wau e hoʻi i ke koho me kahi palapala PHP. ʻElua mau lā i hoʻopau ʻia i kēia palapala. A hana maikaʻi nā mea a pau. A laila kākau pū wau i kahi palapala e pāʻani i nā podcast. A makemake nui wau ia mea a ua hoʻoholo wau e hana i kahi papahana liʻiliʻi. Ua kapa ʻia ʻo ia ʻo IWScast. Kau ʻia ma github.

ʻO kāu lekiō pūnaewele ponoʻī

He mea maʻalahi loa nā mea a pau. Hoʻopili au i nā faila mp3 a me ka faila index.php i loko o ka waihona kumu Apache /var/www/ a hoʻokani ʻia lākou. Ma kahi o 300 mau mele i lawa no ka lā holoʻokoʻa.
ʻO ka faila index.php ka palapala ponoʻī. Heluhelu ka palapala i nā inoa a pau o nā faila MP3 i loko o kahi papa kuhikuhi i loko o kahi array. Hoʻokumu i kahi kahawai leo a hoʻololi i nā inoa o nā faila MP3. Aia kekahi manawa ke hoʻolohe ʻoe i kahi mele a makemake ʻoe. ʻO wai kou manaʻo e hīmeni ana? No ia hihia, aia kahi hoʻopaʻa inoa o nā mele i hoʻolohe ʻia ma ka log log.txt
Hoʻopiha i ke code script

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

Inā makemake ʻoe e hoʻokani ʻia nā mele, a laila pono ʻoe e haʻi i ka laina ma index.php

shuffle($files); //Random on

No nā podcasts aʻu e hoʻohana ai /var/www/podcast/ Aia kekahi palapala index.php. Loaʻa iā ia ka memorization track podcast. I ka manawa aʻe e hoʻā ʻoe i ka mea hoʻokipa pūnaewele, hoʻokani ʻia ke mele podcast aʻe. Aia kekahi moʻolelo o nā mele i hoʻokani ʻia.
Ma ka waihona counter.dat, hiki iā ʻoe ke kuhikuhi i ka helu track a e hoʻomaka ka pāʻani podcast mai ia mea.

Ua kākau i nā parser no ka hoʻoiho ʻana i nā podcast. Lawe ia i nā mele 4 hou loa mai RSS a hoʻoiho iā lākou. Hana maikaʻi kēia mau mea āpau ma kahi kelepona, IPTV set-top box, a i ʻole ma kahi polokalamu kele.

I kekahi kakahiaka aʻe, ua manaʻo wau he mea maikaʻi loa ka hoʻomanaʻo ʻana i ke kūlana pāʻani ma ke ala. Akā ʻaʻole wau ʻike pehea e hana ai i kēia ma PHP.

Hiki ke hoʻoiho ʻia ka palapala github.com/iwsys/IWScast

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka