Redio intanẹẹti tirẹ

Ọpọlọpọ wa nifẹ lati gbọ redio ni owurọ. Ati lẹhinna ni owurọ kan ti o dara Mo rii pe Emi ko fẹ lati tẹtisi awọn ile-iṣẹ redio FM agbegbe. Ko wunmi. Ṣugbọn aṣa naa yipada lati jẹ ipalara. Ati pe Mo pinnu lati rọpo olugba FM pẹlu olugba Intanẹẹti kan. Mo yara ra awọn ẹya lori Aliexpress ati pe mo ṣajọ olugba Intanẹẹti kan.

Nipa awọn Internet olugba. Okan ti olugba ni ESP32 microcontroller. Famuwia lati KA-redio. Awọn ẹya naa jẹ mi $ 12. Irọrun ti apejọ naa jẹ ki n ṣe apejọpọ ni ọjọ meji kan. Ṣiṣẹ daradara ati iduroṣinṣin. Ni awọn oṣu 10 ti iṣẹ, o tutu nikan ni awọn akoko meji, ati lẹhinna nikan nitori awọn adanwo mi. Irọrun ti o rọrun ati ero-daradara gba ọ laaye lati ṣakoso lati inu foonuiyara ati kọnputa. Ni ọrọ kan, eyi jẹ olugba Intanẹẹti iyalẹnu kan.

Ohun gbogbo dara. Ṣùgbọ́n ní òwúrọ̀ kùtùkùtù kan, mo wá parí èrò sí pé bí ó tilẹ̀ jẹ́ pé ní àyè sí ẹgbẹẹgbẹ̀rún àwọn ilé iṣẹ́ rédíò, kò sí ibùdókọ̀ tí ó fani mọ́ra. Ìpolówó àti àwàdà òmùgọ̀ tí àwọn tó ń polongo rẹ̀ ń ṣe ń bí mi nínú. N fo nigbagbogbo lati ibudo kan si ekeji. Mo fẹ Spotify ati Yandex.Music. Ṣugbọn ohun ibanuje ni pe wọn ko ṣiṣẹ ni orilẹ-ede mi. Ati pe Emi yoo fẹ lati gbọ wọn nipasẹ olugba Intanẹẹti.

Mo ranti igba ewe mi. Mo ni agbohunsilẹ ati awọn kasẹti mejila mejila. Mo paarọ awọn kasẹti pẹlu awọn ọrẹ. Ati pe o jẹ iyanu. Mo pinnu pe MO nilo lati sanwọle awọn ibi ipamọ ohun afetigbọ mi si olugba Intanẹẹti nikan. Nitoribẹẹ, aṣayan kan wa lati so ẹrọ orin ohun tabi iPod pọ si awọn agbohunsoke ati maṣe yọ ara rẹ lẹnu. Ṣugbọn eyi kii ṣe ọna wa! Mo korira awọn asopọ asopọ)

Mo bẹrẹ si wa awọn ojutu ti a ti ṣetan. Ifunni wa lori ọja lati ṣẹda redio Intanẹẹti tirẹ lati Radio-Tochka.com. Mo ṣe idanwo fun ọjọ 5. Ohun gbogbo ṣiṣẹ daradara pẹlu olugba intanẹẹti mi. Ṣugbọn iye owo naa ko wuni fun mi. Mo kọ aṣayan yii.

Mo ti san alejo gbigba 10 GB. Mo pinnu lati kọ iwe afọwọkọ kan lori nkan ti yoo san ṣiṣan ohun ti awọn faili mp3 mi. Mo pinnu lati kọ ni PHP. Mo yara kọ ọ ati ṣe ifilọlẹ. Ohun gbogbo ṣiṣẹ. O je itura! Ṣùgbọ́n ní ọjọ́ bíi mélòó kan lẹ́yìn náà, mo gba lẹ́tà kan láti ọ̀dọ̀ àwọn alábòójútó gbígbàlejò. O sọ pe opin ti awọn iṣẹju ero isise ti kọja ati iwulo lati ṣe igbesoke si idiyele ti o ga julọ. Iwe afọwọkọ naa ni lati paarẹ ati aṣayan yii kọ silẹ.

Bawo ni o ṣe ṣẹlẹ? Nko le gbe laisi redio. Ti wọn ko ba gba ọ laaye lati ṣiṣe iwe afọwọkọ lori alejo gbigba ẹnikan, lẹhinna o nilo olupin tirẹ. Nibiti emi o ṣe ohun ti ọkàn mi fẹ.

Mo ni ohun atijọ netbook lai batiri (CPU - 900 MHz, Ramu - 512 Mb). Omo odun mokanla ni baba agba na. Dara fun olupin kan. Mo fi Ubuntu 11 sori ẹrọ. Lẹhinna Mo fi Apache12.04 ati php 2 sori ẹrọ, samba. Olupin mi ti šetan.

Mo pinnu lati gbiyanju Icecast. Mo ka ọpọlọpọ mana lori rẹ. Sugbon mo ti ri o soro. Ati pe Mo pinnu lati pada si aṣayan pẹlu iwe afọwọkọ PHP kan. Awọn ọjọ meji ni wọn lo ṣiṣatunṣe iwe afọwọkọ yii. Ati ohun gbogbo ṣiṣẹ nla. Lẹhinna Mo tun kọ iwe afọwọkọ kan lati mu awọn adarọ-ese ṣiṣẹ. Ati pe Mo fẹran rẹ pupọ pe Mo pinnu lati ṣe iṣẹ akanṣe kekere kan. Ti a npe ni IWScast. Pipa lori github.

Redio intanẹẹti tirẹ

Ohun gbogbo rọrun pupọ. Mo daakọ awọn faili mp3 ati faili index.php sinu folda root Apache /var/www/ ati pe wọn dun laileto. Nipa awọn orin 300 to fun isunmọ gbogbo ọjọ naa.
Faili index.php jẹ iwe afọwọkọ funrararẹ. Awọn iwe afọwọkọ ka gbogbo awọn orukọ ti MP3 awọn faili ni a liana sinu ohun orun. Ṣẹda ṣiṣan ohun ati rọpo awọn orukọ ti awọn faili MP3. Awọn igba wa nigbati o gbọ orin kan ti o fẹran rẹ. Tani o ro pe o nkorin? Fun iru ọran bẹ, gbigbasilẹ wa ti awọn orukọ ti awọn orin ti a tẹtisi ninu log log.txt
Pari koodu akosile

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

Ti o ba nilo awọn orin lati dun ni ibere, lẹhinna o nilo lati sọ asọye ila ni index.php

shuffle($files); //Random on

Fun awọn adarọ-ese Mo lo /var/www/podcast/ Atọka iwe afọwọkọ miiran wa. O ni iranti orin adarọ-ese. Nigbamii ti o ba tan olugba Intanẹẹti, orin adarọ-ese atẹle yoo dun. Wa ti tun kan log ti dun awọn orin.
Ninu faili counter.dat, o le pato nọmba orin ati ṣiṣiṣẹsẹhin adarọ ese yoo bẹrẹ lati ọdọ rẹ.

Kọ parsers fun igbasilẹ adarọ-ese laifọwọyi. Yoo gba awọn orin 4 tuntun lati RSS ati ṣe igbasilẹ wọn. Gbogbo eyi ṣiṣẹ nla lori foonuiyara, IPTV apoti ṣeto-oke, tabi ni ẹrọ aṣawakiri kan.

Ni owurọ miiran o ṣẹlẹ si mi pe yoo jẹ nla lati ranti ipo ṣiṣiṣẹsẹhin lori orin kan. Ṣugbọn emi ko mọ sibẹsibẹ bi o ṣe le ṣe eyi ni PHP.

Awọn akosile le ti wa ni gbaa lati ayelujara github.com/iwsys/IWScast

orisun: www.habr.com

Fi ọrọìwòye kun