Radio internet sampeyan dhewe

Akeh wong sing seneng ngrungokake radio ing wayah esuk. Banjur ing sawijining esuk sing apik, aku ngerti yen aku ora pengin ngrungokake stasiun radio FM lokal. Ora kasengsem. Nanging pakulinan kasebut dadi mbebayani. Lan aku mutusake kanggo ngganti panrima FM karo panrima Internet. Aku cepet tuku bagean ing Aliexpress lan ngrakit panrima Internet.

Babagan panrima Internet. Jantung panrima yaiku mikrokontroler ESP32. Firmware saka KA-radio. Bagian regane $12. Gampang ngrakit ngidini aku ngrakit ing sawetara dina. Kerjane kanthi apik lan stabil. Ing 10 wulan kerja, mung beku kaping pindho, banjur mung amarga eksperimenku. Antarmuka sing trep lan dipikirake kanthi apik ngidini sampeyan ngontrol saka smartphone lan komputer. Ing tembung, iki panrima Internet apik banget.

Kabeh oke. Nanging ing sawijining esuk, aku nyimpulake yen sanajan duwe akses menyang puluhan ewu stasiun radio, ora ana stasiun sing menarik. Aku pegel karo iklan lan guyonan bodho saka presenter. Terus-terusan mlumpat saka stasiun siji menyang stasiun liyane. Aku seneng Spotify lan Yandex.Music. Nanging sing sedhih yaiku dheweke ora kerja ing negaraku. Lan aku seneng ngrungokake wong-wong mau liwat panrima Internet.

Aku kelingan jaman cilikanku. Aku duwe tape recorder lan rong rolas kaset. Aku ijol-ijolan kaset karo kanca-kanca. Lan iku apik banget. Aku mutusake yen aku kudu stream arsip audio mung menyang panrima Internet. Mesthi wae, ana pilihan kanggo nyambungake pamuter audio utawa iPod menyang speaker lan aja kuwatir. Nanging iki dudu cara kita! Aku ora seneng nyambungake konektor)

Aku wiwit nggoleki solusi sing wis siap. Ana tawaran ing pasar kanggo nggawe radio Internet dhewe saka Radio-Tochka.com. Aku nyoba kanggo 5 dina. Kabeh bisa digunakake kanthi panrima internetku. Nanging rega iki ora menarik kanggo kula. Aku nolak pilihan iki.

Aku wis mbayar hosting 10 GB. Aku mutusakΓ© kanggo nulis script ing soko sing bakal stream audio file mp3 sandi. Aku mutusakΓ© kanggo nulis ing PHP. Aku cepet nulis lan mbukak. Kabeh bisa. Iku kelangan! Nanging sawetara dina mengko aku nampa layang saka administrasi hosting. Ngandika yen watesan saka menit prosesor wis ngluwihi lan perlu kanggo upgrade kanggo tarif luwih. Skrip kudu dibusak lan opsi iki ditinggalake.

Kepriye kedadeyane? Aku ora bisa urip tanpa radio. Yen dheweke ora ngidini sampeyan mbukak skrip ing hosting wong liya, mula sampeyan butuh server sampeyan dhewe. Ing ngendi aku bakal nindakake apa sing dikarepake jiwaku.

Aku duwe netbook kuna tanpa baterei (CPU - 900 MHz, RAM - 512 Mb). Wong tuwa iku wis umur 11 taun. Cocog kanggo server. Aku nginstal Ubuntu 12.04. Banjur aku nginstal Apache2 lan php 5.3, samba. Serverku wis siyap.

Aku mutusakΓ© kanggo nyoba Icecast. Aku maca akeh mana ing. Nanging aku angel. Lan aku mutusake bali menyang pilihan kanthi skrip PHP. Saperangan dina ngginakaken debugging script iki. Lan kabeh kerjane apik. Banjur aku uga nulis naskah kanggo muter podcast. Lan aku seneng banget aku mutusake kanggo nindakake proyek cilik. Disebut IWScast. Dikirim ing github.

Radio internet sampeyan dhewe

Kabeh iku prasaja banget. Aku nyalin file mp3 lan file index.php menyang folder root Apache /var/www/ lan diputer kanthi acak. Kira-kira 300 lagu cukup kanggo kira-kira sedina muput.
File index.php minangka skrip dhewe. Skrip maca kabeh jeneng file MP3 ing direktori dadi array. Nggawe stream audio lan ngganti jeneng file MP3. Ana wektu nalika sampeyan ngrungokake lagu lan sampeyan seneng. Kira-kira sapa sing nyanyi? Kanggo kasus kaya mengkono, ana rekaman jeneng trek sing dirungokake ing log log.txt
Kode script lengkap

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

Yen sampeyan perlu trek kanggo diputer ing urutan, sampeyan kudu komentar metu baris ing index.php

shuffle($files); //Random on

Kanggo podcast aku nggunakake /var/www/podcast/ Ana liyane script index.php. Nduwe memori podcast trek. Sabanjure sampeyan nguripake panrima Internet, trek podcast sabanjure bakal diputer. Ana uga log trek sing diputer.
Ing file counter.dat, sampeyan bisa nemtokake nomer trek lan puter maneh podcast bakal miwiti saka iku.

Nulis parser kanggo ngundhuh podcast otomatis. Butuh 4 trek paling anyar saka RSS lan ngundhuh. Kabeh iki bisa digunakake ing smartphone, kothak ndhuwur IPTV, utawa ing browser.

Ing esuk liyane iku dumadi kanggo kula sing bakal dadi gedhe kanggo elinga posisi puter maneh ing trek. Nanging aku durung ngerti carane nindakake iki ing PHP.

Skrip bisa didownload github.com/iwsys/IWScast

Source: www.habr.com

Add a comment