radio internét anjeun sorangan

Loba urang resep ngadangukeun radio isuk-isuk. Teras hiji isuk anu saé kuring sadar yén kuring henteu hoyong ngadangukeun stasiun radio FM lokal. Teu kabetot. Tapi kabiasaan éta tétéla ngabahayakeun. Sareng kuring mutuskeun pikeun ngagentos panampi FM sareng panampi Internét. Kuring gancang meuli suku cadang dina Aliexpress sarta dirakit hiji panarima Internet.

Ngeunaan panarima Internet. Jantung panarima nyaéta mikrokontroler ESP32. Firmware ti KA-radio. Bagian hargana kuring $12. Gampangna ngarakit ngamungkinkeun kuring pikeun ngumpul dina sababaraha dinten. Gawéna saé sareng stabil. Dina 10 bulan gawé, éta froze ngan sababaraha kali, lajeng ngan kusabab percobaan kuring. Antarbeungeut anu merenah sareng dipikiran saé ngamungkinkeun anjeun ngadalikeun tina smartphone sareng komputer. Dina kecap, ieu téh panarima Internet éndah.

Sagalana OK. Tapi hiji isuk awal kuring datang ka kacindekan yén sanajan ngabogaan aksés ka puluhan rébu stasiun radio, aya euweuh stasiun metot. Kuring kaganggu ku iklan jeung guyonan bodo tina presenter. Terus-terusan ngaluncat ti hiji stasion ka stasion anu sanés. Abdi resep Spotify sareng Yandex.Music. Tapi anu hanjelu nyaéta aranjeunna henteu damel di nagara kuring. Jeung Abdi hoyong ngadangukeun aranjeunna via panarima Internet.

Abdi émut budak leutik. Kuring kungsi tape recorder jeung dua belasan kaset. Kuring silih tukeur kasét jeung babaturan. Tur éta éndah. Kuring mutuskeun yén kuring kedah ngalirkeun data arsip audio ngan ka panarima Internét. Tangtosna, aya pilihan pikeun nyambungkeun pamuter audio atanapi iPod ka spiker sareng henteu hariwang. Tapi ieu sanés cara urang! Abdi henteu resep nyambungkeun konektor)

Kuring mimiti néangan solusi siap-dijieun. Aya tawaran dina pasaran pikeun nyieun radio Internet anjeun sorangan ti Radio-Tochka.com. Kuring diuji pikeun 5 dinten. Sagalana digawé rupa kalawan panarima internét kuring. Tapi hargana henteu pikaresepeun pikeun kuring. Kuring nampik pilihan ieu.

Kuring geus mayar hosting 10 GB. Kuring mutuskeun pikeun nulis naskah dina hal anu bakal ngalirkeun data aliran audio tina file mp3 kuring. Kuring mutuskeun nulis dina PHP. Kuring gancang nyerat sareng ngaluncurkeunana. Sagalana digawé. Éta keren! Tapi sababaraha dinten saatos kuring nampi surat ti administrasi hosting. Ieu ngomong yén wates tina menit processor ieu ngaleuwihan sarta kudu ningkatkeun ka tarif luhur. Skrip kedah dihapus sareng pilihan ieu ditinggalkeun.

Kumaha éta kajantenanna? Abdi teu tiasa hirup tanpa radio. Upami aranjeunna henteu ngijinkeun anjeun ngajalankeun naskah dina hosting batur, maka anjeun peryogi server anjeun nyalira. Dimana kuring bakal ngalakukeun naon kahayang jiwa kuring.

Kuring boga netbook kuna tanpa batré (CPU - 900 MHz, RAM - 512 Mb). Sepuh teh tos 11 taun. Cocog jeung server a. Kuring masang Ubuntu 12.04. Teras kuring masang Apache2 sareng php 5.3, samba. server kuring geus siap.

Kuring mutuskeun pikeun nyobaan Icecast. Kuring maca loba mana dina eta. Tapi kuring manggihan hésé. Sareng kuring mutuskeun pikeun uih deui kana pilihan nganggo naskah PHP. Sababaraha dinten nyéépkeun debugging naskah ieu. Jeung sagalana digawé hébat. Teras kuring ogé nyerat naskah pikeun maénkeun podcast. Sareng kuring resep pisan yén kuring mutuskeun pikeun ngalakukeun proyék leutik. Disebutna IWScast. Dipasang dina github.

radio internét anjeun sorangan

Sagalana basajan pisan. Kuring nyalin file mp3 jeung file index.php kana folder root Apache /var/www/ sarta aranjeunna diputer acak. Sakitar 300 lagu cekap kanggo sadinten.
The file index.php teh Aksara sorangan. Naskah maca sadaya nami file MP3 dina diréktori kana hiji array. Nyiptakeun aliran audio sareng ngagentos nami file MP3. Aya waktos anjeun ngadangukeun lagu sareng anjeun resep. Saha saur anjeun anu nyanyi? Pikeun kasus sapertos kitu, aya rékaman tina ngaran lagu listened dina log log.txt
Kode naskah lengkep

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

Lamun perlu lagu pikeun dimaénkeun dina urutan, mangka anjeun kudu mairan kaluar garis dina index.php

shuffle($files); //Random on

Pikeun podcast kuring make /var/www/podcast/ Aya index.php Aksara sejen. Cai mibanda memorization lagu podcast. Dina waktos salajengna basa Anjeun ngahurungkeun panarima Internet, lagu podcast salajengna diputer. Aya ogé log lagu diputer.
Dina file counter.dat, anjeun tiasa netepkeun nomer lagu sareng playback podcast bakal ngamimitian ti dinya.

Nulis parsers pikeun ngundeur otomatis tina podcast. Butuh 4 lagu panganyarna ti RSS tur ngundeur éta. Sadaya ieu tiasa dianggo dina smartphone, kotak set-top IPTV, atanapi dina browser.

Isuk-isuk anu sanés kajantenan kuring yén éta bakal hadé pikeun nginget posisi playback dina lagu. Tapi kuring henteu acan terang kumaha ngalakukeun ieu dina PHP.

Skripna tiasa diunduh github.com/iwsys/IWScast

sumber: www.habr.com

Tambahkeun komentar