Rediyon intanet naku

Yawancinmu suna son sauraron rediyo da safe. Sai kuma wata safiya mai kyau na gane cewa ba na son sauraron gidajen rediyon FM na gida. Ba sha'awa. Amma al'adar ta zama mai cutarwa. Kuma na yanke shawarar maye gurbin mai karɓar FM da mai karɓar Intanet. Na yi sauri na sayi sassa akan Aliexpress kuma na haɗa mai karɓar Intanet.

Game da mai karɓar Intanet. Zuciyar mai karɓa shine ESP32 microcontroller. Firmware daga KA-rediyo. Sassan sun biya ni $12. Sauƙin taro ya ba ni damar haɗa shi cikin kwanaki biyu. Yana aiki da kyau kuma a tsaye. A cikin watanni 10 na aiki, ya daskare sau biyu kawai, sannan kawai saboda gwaje-gwaje na. Hanya mai dacewa da kyakkyawan tunani yana ba ku damar sarrafawa daga wayar hannu da kwamfuta. A cikin kalma, wannan babban mai karɓar Intanet ne.

Komai lafiya. Amma da sanyin safiya na yanke shawarar cewa duk da samun damar zuwa dubban gidajen rediyo, babu tashoshi masu ban sha'awa. Naji haushin talla da ba'a na masu gabatarwa. Tsalle akai-akai daga wannan tasha zuwa wancan. Ina son Spotify da Yandex.Music. Amma abin bakin ciki shi ne ba sa aiki a kasata. Kuma ina so in saurare su ta hanyar mai karɓar Intanet.

Na tuna kuruciyata. Ina da mai rikodin kaset da kaset guda goma sha biyu. Na yi musayar kaset da abokai. Kuma abin mamaki ne. Na yanke shawarar cewa ina buƙatar jera rumbun adana sauti na zuwa ga mai karɓar Intanet kawai. Tabbas, akwai zaɓi don haɗa na'urar mai jiwuwa ko iPod zuwa masu magana kuma kada ku damu. Amma wannan ba hanyarmu ba ce! Ina ƙin haɗin haɗin haɗin gwiwa)

Na fara neman shirye-shiryen mafita. Akwai tayin akan kasuwa don ƙirƙirar rediyon Intanet naku daga Radio-Tochka.com. Na gwada shi tsawon kwanaki 5. Komai yayi kyau tare da mai karɓar intanet na. Amma farashin bai burge ni ba. Na ƙi wannan zaɓi.

Na biya hosting 10 GB. Na yanke shawarar rubuta rubutun akan wani abu da zai watsa sautin fayilolin mp3 dina. Na yanke shawarar rubuta shi a cikin PHP. Da sauri na rubuta na kaddamar da shi. Komai yayi aiki. Yayi kyau! Amma bayan kwana biyu na sami wasiƙa daga hukumar gudanarwa. Ya ce an wuce iyakar mintunan na'ura da kuma buƙatar haɓaka zuwa farashi mai girma. Dole ne a share rubutun kuma a watsar da wannan zaɓi.

Ta yaya ya faru? Ba zan iya rayuwa ba tare da rediyo ba. Idan ba su ƙyale ka ka gudanar da rubutun a kan masaukin wani ba, to kana buƙatar uwar garken ka. Inda zan yi abin da raina ke so.

Ina da tsohon littafin yanar gizo ba tare da baturi ba (CPU - 900 MHz, RAM - 512 Mb). Tsoho ya riga ya shekara 11. Dace da uwar garken. Na shigar da Ubuntu 12.04. Sannan na shigar da Apache2 da php 5.3, samba. Sabar na tana shirye.

Na yanke shawarar gwada Icecast. Na karanta mana da yawa a kai. Amma na sami wuya. Kuma na yanke shawarar komawa zaɓi tare da rubutun PHP. An shafe kwanaki biyu ana gyara wannan rubutun. Kuma komai yayi aiki mai girma. Sannan na kuma rubuta rubutun don kunna kwasfan fayiloli. Kuma ina son shi sosai har na yanke shawarar yin ƙaramin aiki. An kira shi IWScast. An buga akan github.

Rediyon intanet naku

Komai mai sauqi ne. Na kwafi fayilolin mp3 da fayil ɗin index.php cikin babban fayil na tushen Apache /var/www/ kuma ana kunna su ba da gangan ba. Kimanin waƙoƙi 300 sun isa kusan dukan yini.
Fayil ɗin index.php shine rubutun kansa. Rubutun yana karanta duk sunayen fayilolin MP3 a cikin kundin adireshi zuwa tsararru. Yana ƙirƙirar rafi mai jiwuwa kuma yana maye gurbin sunayen fayilolin MP3. Akwai lokutan da kuke sauraron waƙa kuma kuna son ta. Wanene kuke tsammani yana waka? Don irin wannan yanayin, akwai rikodin sunayen waƙoƙin da aka saurara a cikin log log.txt
Cikakken lambar rubutun

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

Idan kuna buƙatar kunna waƙoƙin cikin tsari, to kuna buƙatar yin sharhi akan layi a cikin index.php

shuffle($files); //Random on

Don kwasfan fayiloli Ina amfani da /var/www/podcast/ Akwai wani rubutun index.php. Yana da haddar waƙoƙin podcast. Lokaci na gaba da ka kunna mai karɓar Intanet, ana kunna waƙar podcast na gaba. Hakanan akwai gunkin waƙoƙin da aka kunna.
A cikin counter.dat fayil, za ka iya saka lambar waƙa kuma za a fara sake kunnawa podcast daga gare ta.

Rubuce fasikanci don zazzage kwasfan fayiloli ta atomatik. Yana ɗaukar sababbin waƙoƙi 4 daga RSS yana zazzage su. Duk wannan yana aiki mai girma akan wayar hannu, akwatin saiti na IPTV, ko a cikin mai bincike.

Wata safiya ta zo gare ni cewa zai yi kyau in tuna matsayin sake kunnawa akan waƙa. Amma har yanzu ban san yadda ake yin wannan a cikin PHP ba.

Ana iya sauke rubutun github.com/iwsys/IWScast

source: www.habr.com

Add a comment