ืคืืืข ืคืื โโืืื ืื ืืื ืฆื ืืขืจื ืฆื ืื ืจืึทืืืึธ ืืื ืืขืจ ืืึธืจืื. ืืื ืืขืืึธืื ืืืื ืฉืืื ืืึธืจืื ืืื ืืืื ืืขืืขื ืึทื ืืื ืืึธื ื ืืฉื ืืืขืื ืฆื ืืขืจื ืฆื ืืืืข ืขืคืขื ืจืึทืืืึธ ืกืืืืฉืึทื ื. ื ืืฉื ืืื ืืจืขืกืืจื. ืืืขืจ ืืขืจ ืืขืืืืืื ืืืื ืืื ืืื ืืจืืืกืืขืืืืื ืฆื ืืืื ืฉืขืืืขื. ืืื ืืื ืืึทืฉืืึธืกื ืฆื ืคืึทืจืืืึทืื ืื ืขืคืขื ืืคื ืขืืขืจ ืืื ืึทื ืืื ืืขืจื ืขื ืืคื ืขืืขืจ. ืืื ืืขืฉืืืื ื ืืขืงืืืคื ืคึผืึทืจืฅ ืืืืฃ Aliexpress ืืื ืคืืจืืืืื ืึทื ืืื ืืขืจื ืขื ืืคื ืขืืขืจ.
ืืืขืื ืื ืืื ืืขืจื ืขื ืืคื ืขืืขืจ. ืื ืืึทืจืฅ ืคืื ืื ืืคื ืขืืขืจ ืืื ืื ESP32 ืืืงืจืึธืงืึธื ืืจืึธืืืขืจ. ืคืืจืืืืึทืจืข ืคึฟืื ืงืึท-ืจืึทืืืึธ. ืื ืคึผืึทืจืฅ ืงืึธืกืื ืืืจ $ 12. ืื ืื ืคืื ืคึฟืึทืจืืึทืืืื ื ืืึธื ืืืจ ืืขืจืืืืื ืฆื ืึทืกืขืืืึทื ืขืก ืืื ืึท ืคึผืึธืจ ืคืื ืืขื. ืึทืจืืขื ืืขืืื ื ืืื ืกืืึทืืื. ืืื 10 ืืืฉืื ืคืื ืึทืจืืขื, ืขืก ืคืจืึธืืข ืืืืื ืึท ืคึผืึธืจ ืคืื ืืื, ืืื ืืขืืึธืื ืืืืื ืืืืึทื ืคืื ืืืื ืืงืกืคึผืขืจืึทืืึทื ืฅ. ื ืืึทืงืืืขื ืืื ืืขืืื ื-ืืขืืจืึทืื ืฆืืืื ื ืึทืืึทืื ืืืจ ืฆื ืงืึธื ืืจืึธืืืจื ืคึฟืื ืึท ืกืืึทืจืืคืึธื ืข ืืื ืงืึธืืคึผืืืืขืจ. ืืื ืืืื ืืืึธืจื, ืืึธืก ืืื ืึท ืืืื ืืขืจืืขื ืืื ืืขืจื ืขื ืืคื ืขืืขืจ.
ืึทืืฅ ืืื ืืื. ืืืขืจ ืืืื ืคืจืืืึธืจืื ืืื ืืื ืืขืงืืืขื ืฆื ืืขืจ ืืืืกืคืืจ, ืึทื ืืจืึธืฅ ืืขื ืืืึธืก ืืื ืืึธื ืฆืืืจืื ืฆื ืฆืขื ืืืืงืขืจ ืืืืื ืืขืจ ืจืึทืืืึธ ืกืืืืฉืึทื ื, ืืขื ืขื ื ืืฉื ืืขืืืขื ืงืืื ืืื ืืขืจืขืกืึทื ืืข ืกืืื ืฆืืขืก. ืื ืืึทื ืฆืข ืืึทื ืฆืข ืืื ืื ื ืึทืจืืฉืข ืืืืฆื ืคึฟืื ืื ืคึผืจืขืืขื ืืึทื ืื ืืึธื ืืื ืืื ืืขืืจืฒื. ืงืขืกืืืืขืจ ืฉืคึผืจืื ืืขื ืคืื ืืืื ืกืืึทื ืฆืืข ืฆื ืื ืืขืจื. ืืื ืืื Spotify ืืื Yandex.Music. ืึธืืขืจ ืื ืืจืืืขืจืืง ืืึทื ืืื ืึทื ืืื ืืึธื ื ืื ืึทืจืืขืื ืืื ืืืื ืืึทื ื. ืืื ืืื ืืืึธืื ืืื ืฆื ืืขืจื ืฆื ืืื ืืืจื ืื ืืื ืืขืจื ืขื ืืคื ืขืืขืจ.
ืืื ืืื ืืขืืขื ืงื ืืืื ืงืื ืืืืื. ืืื ืืื ืืขืืื ื ืืขืืคึพืืืืขืจืื ืืื ืฆืฐืฒ ืืืฅ ืงืืกืขืื. ืืื ืืื ืืืืกืืขืืืื ืงืืกืขืื ืืื ืคืจืืื ื. ืืื ืขืก ืืื ืืขืืืขื ืืืื ืืขืจืืขื. ืืื ืืึทืฉืืึธืกื ืึทื ืืื ืืืจืฃ ืฆื ืกืืจืืืื ื ืืืื ืึทืืืืึธ ืึทืจืงืืืืื ืืืืื ืฆื ืึทื ืืื ืืขืจื ืขื ืืคื ืขืืขืจ. ืคืื ืงืืจืก, ืขืก ืืื ืึทื ืึธืคึผืฆืืข ืฆื ืคืึทืจืืื ืื ืึทื ืึทืืืืึธ ืฉืคึผืืืขืจ ืึธืืขืจ ืืคึผืึธื ืฆื ืื ืกืคึผืืงืขืจื ืืื ืืึธื ื ืื ืืึธืจื. ืึธืืขืจ ืืึธืก ืืื ื ืืฉื ืืื ืืืขืจ ืืืขื! ืืื ืืึทืก ืงืึทื ืขืงืืื ื ืงืึทื ืขืงืืขืจื)
ืืื ืื ืืขืืืืื ืงืืงื ืคึฟืึทืจ ืคืึทืจืืืง ืกืึทืืืฉืึทื ื. ืขืก ืืื ืึท ืคืึธืจืฉืืึธื ืืืืฃ ืืขื ืืึทืจืง ืฆื ืฉืึทืคึฟื ืืืื ืืืืืขื ืข ืืื ืืขืจื ืขื ืจืึทืืืึธ ืคึฟืื Radio-Tochka.com. ืืื ืืขืกืืขื ืขืก ืคึฟืึทืจ 5 ืืขื. ืึทืืฅ ืืขืืจืืขื ืคืืึทื ืืื ืืืื ืืื ืืขืจื ืขื ืืคื ืขืืขืจ. ืืืขืจ ืื ืคึผืจืืึทื ืืื ื ืืฉื ืึทืืจืึทืงืืืื ืฆื ืืืจ. ืืื ืืืงืืืื ื ืืขื ืึธืคึผืฆืืข.
ืืื ืืึธืื ืืึทืฆืึธืื ืืึธืกืืื ื 10 ืืืืืืืื. ืืื ืืึทืฉืืึธืกื ืฆื ืฉืจืืึทืื ืึท ืฉืจืืคื ืืืืฃ ืขืคึผืขืก ืืืึธืก ืืืึธืื ืกืืจืืืื ื ืื ืึทืืืืึธ ืืืึทื ืคืื ืืืื mp3 ืืขืงืขืก. ืืื ืืึทืฉืืึธืกื ืฆื ืฉืจืืึทืื ืขืก ืืื PHP. ืืื ืืขืฉืืืื ื ืืขืฉืจืืื ืขืก ืืื ืืึธื ืืฉื ืขืก. ืึทืืฅ ืืขืืจืืขื. ืขืก ืืื ืืขืืืขื ืงืื! ืืืขืจ ืึท ืคึผืึธืจ ืคืื ืืขื ืฉืคึผืขืืขืจ ืืื ืืืงืืืขื ืึท ืืจืืื ืคืื ืื ืืึธืกืืื ื ืึทืืืื ืืกืืจืึทืฆืืข. ืขืก ืืื ืืขืืืื ืึทื ืื ืืืืื ืคืื ืคึผืจืึทืกืขืกืขืจ ืืื ืื ืืื ืืงืกืืืื ืืื ืื ื ืืื ืฆื ืึทืคึผืืจืืื ืฆื ืึท ืืขืืขืจ ืฆืึธื. ืื ืฉืจืืคื ืืื ืฆื ืืืื ืืืืกืืขืืขืงื ืืื ืืขื ืึธืคึผืฆืืข ืคืืจืืืื.
ืืื ืืื ืขืก ืืขืฉืขื? ืืื ืงืขื ื ืืฉื ืืขืื ืึธื ืจืึทืืืึธ. ืืืื ืืื ืืึธื ื ืื ืืึธืื ืืืจ ืืืืคื ืื ืฉืจืืคื ืืืืฃ ืขืืขืฆืขืจ ืึทื ืืขืจืฉ ืก ืืึธืกืืื ื, ืืืจ ืืึทืจืคึฟื ืืืื ืืืืืขื ืข ืกืขืจืืืขืจ. ืืืื ืืื ืืืขื ืืึธื ืืืึธืก ืืืื ื ืฉืื ืืืื.
ืืื ืืึธืื ืึทื ืืืืข ื ืขืืืึธืึธืง ืึธื ืึท ืืึทืืึทืจืืืข (ืงืคึผื - 900 ืืื, ืืึทืจืึทื - 512 ืื). ืืขืจ ืึทืืืขืจ ืืื ืฉืืื 11 ืืึธืจ ืึทืื. ืคึผืึทืกืืง ืคึฟืึทืจ ืึท ืกืขืจืืืขืจ. ืืื ืื ืกืืึทืืืจื Ubuntu 12.04. ืืขืจื ืึธื ืืื ืื ืกืืึทืืืจื Apache2 ืืื ืคืคึผ 5.3, ืกืึทืืืึท. ืืืื ืกืขืจืืืขืจ ืืื ืืจืืื.
ืืื ืืึทืฉืืึธืกื ืฆื ืคึผืจืืืืจื Icecast. ืืื ืืืืขื ืขื ืึท ืคึผืืึทืฅ ืคืื ืืึทื ืึท ืืืืฃ ืขืก. ืืืขืจ ืืื ืืขืคืื ืขื ืขืก ืฉืืืขืจ. ืืื ืืื ืืึทืฉืืึธืกื ืฆื ืฆืืจืืงืงืืืขื ืฆื ืื ืึธืคึผืฆืืข ืืื ืึท PHP ืฉืจืืคื. ื ืคึผืึธืจ ืคืื ืืขื ืืขื ืขื ืคืืจืืจืืื ืืืืึทืืื ื ืืขื ืฉืจืืคื. ืืื ืึทืืฅ ืืขืืจืืขื ืืจืืืก. ืืขืจื ืึธื ืืื ืืืื ืืขืฉืจืืื ืึท ืฉืจืืคื ืฆื ืฉืคึผืืื ืคึผืึธืืงืึทืกืฅ. ืืื ืืื ืืืืงื ืขืก ืึทืืื ืคืื ืึทื ืืื ืืึทืฉืืึธืกื ืฆื ืืึธื ืึท ืงืืืื ืคึผืจืืืขืงื. ืืขืจืืคึฟื ืขืก IWScast.
ืึทืืฅ ืืื ืืืืขืจ ืคึผืฉืื. ืืื ื ืึธืืืึทืื ืื mp3 ืืขืงืขืก ืืื ืื index.php ืืขืงืข ืืื ืื ืึทืคึผืึทืืฉื ืืืึธืจืฆื ืืขืงืข /var/www/ ืืื ืืื ืืขื ืขื ืคึผืืืึทืขื ืจืึทื ืืึทืืื. ืืขืขืจืขื 300 ืืืืขืจ ืืขื ืขื ืืขื ืื ืคึฟืึทืจ ืืขืขืจืขื ืื ืืื ืฆืข ืืึธื.
ืื index.php ืืขืงืข ืืื ืืขืจ ืฉืจืืคื ืืื. ืืขืจ ืฉืจืืคื ืืืืขื ื ืึทืืข ืื ื ืขืืขื ืคืื mp3 ืืขืงืขืก ืืื ืึท ืืืขืืืืืึทืืขืจ ืืื ืึท ืืขื ืืข. ืงืจืืืืฅ ืึทื ืึทืืืืึธ ืืืึทื ืืื ืกืึทืืกืืึทืืืฅ ืื ื ืขืืขื ืคืื mp3 ืืขืงืขืก. ืขืก ืืขื ืขื ืฆืืื ืืืขื ืืืจ ืืขืจื ืฆื ืึท ืืื ืืื ืืืจ ืืื ืขืก. ืืืขืจ ืืืื ื ืืืจ ืืื ืื? ืคึฟืึทืจ ืึทืืึท ืึท ืคืึทื, ืขืก ืืื ืึท ืจืขืงืึธืจืืื ื ืคืื ืื ื ืขืืขื ืคืื ืฆืืืขืืขืจื ืืจืึทืงืก ืืื ืื ืงืืึธืฅ ืืึธื.ืืงืกื
ืืึทื ืฅ ืฉืจืืคื ืงืึธื
<?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);
}
?>
ืืืื ืืืจ ืืึทืจืคึฟื ืื ืืจืึทืงืก ืฆื ืืืื ืคึผืืืึทืขื ืืื ืกืืจ, ืืืจ ืืึทืจืคึฟื ืฆื ืืึทืืขืจืงื ืื ืฉืืจื ืืื index.php
shuffle($files); //Random on
ืคึฟืึทืจ ืคึผืึธืืงืึทืกืฅ ืืื ื ืืฆื /var/www/podcast/ ืขืก ืืื ืื ืื ืืขืจ ืฉืจืืคื index.php. ืขืก ืืื ืคึผืึธืืงืึทืกื ืฉืคึผืืจ ืืขืืึธืจืืืึทืืืึธื. ืืขืจ ืืืืึทืืขืจ ืืึธื ืืืจ ืงืขืจ ืืืืฃ ืื ืืื ืืขืจื ืขื ืืคื ืขืืขืจ, ืืขืจ ืืืืึทืืขืจ ืคึผืึธืืงืึทืกื ืฉืคึผืืจ ืืื ืคึผืืืึทืขื. ืขืก ืืื ืืืื ืึท ืงืืึธืฅ ืคืื ืคึผืืืึทืขื ืืจืึทืงืก.
ืืื ืื ืงืึธืื ืืขืจ.ืืึทื ืืขืงืข, ืืืจ ืงืขื ืขื ืกืคึผืขืฆืืคืืฆืืจื ืื ืฉืคึผืืจ ื ืืืขืจ ืืื ืคึผืึธืืงืึทืกื ืคึผืืืืืึทืง ืืืขื ืึธื ืืืืื ืคึฟืื ืขืก.
ืืขืฉืจืืื ืคึผืึทืจืกืขืจืก ืคึฟืึทืจ ืึธืืึทืืึทืืืง ืืึทืื ืืึธืืืื ื ืคืื ืคึผืึธืืงืึทืกืฅ. ืขืก ื ืขืื ืื ืืขืฆืืข 4 ืืจืึทืงืก ืคึฟืื RSS ืืื ืืึทืื ืืึธืืื ืืื. ืึทืืข ืืขื ืึทืจืืขื ืืจืืืก ืืืืฃ ืึท ืกืืึทืจืืคืึธื ืข, IPTV ืฉืืขืื-ืฉืคึผืืฅ ืงืขืกืื ืึธืืขืจ ืืื ืึท ืืืขืืขืจืขืจ.
ืืขื ืึทื ืืขืจื ืืึธืจืื ืขืก ืืื ืืขืืืขื ืคืืจืืขืงืืืขื ืฆื ืืืจ ืึทื ืขืก ืืืึธืื ืืืื ืืจืืืก ืฆื ืืขืืขื ืงืขื ืื ืคึผืืืืืึทืง ืฉืืขืืข ืืืืฃ ืึท ืฉืคึผืืจ. ืึธืืขืจ ืืื ืืึธื ื ืื ืืืืกื ืืื ืฆื ืืึธื ืืึธืก ืืื PHP.
ืื ืฉืจืืคื ืงืขื ืขื ืืืื ืืึทืื ืืึธืืืื
ืืงืืจ: www.habr.com