Banyak dari kita suka mendengarkan radio di pagi hari. Dan kemudian suatu pagi yang cerah, saya menyadari bahwa saya tidak ingin mendengarkan stasiun radio FM lokal. Tidak menarik. Tetapi kebiasaan itu ternyata berbahaya. Dan saya memutuskan untuk mengganti penerima FM dengan penerima Internet. Cepat membeli komponen di Aliexpress dan memasang penerima Internet.
Tentang penerima Internet. Jantung dari penerima adalah mikrokontroler ESP32. Firmware dari KA-radio. Biaya suku cadang harganya $ 12. Kemudahan berkumpul memungkinkan saya untuk merakitnya dalam beberapa hari. Ini bekerja dengan baik dan stabil. Lebih dari 10 bulan bekerja, itu hanya tergantung beberapa kali dan itu hanya karena percobaan saya. Antarmuka yang nyaman dan bijaksana memungkinkan Anda untuk mengontrol dari smartphone dan komputer. Singkatnya, ini adalah penerima Internet yang luar biasa.
Semuanya keren. Tetapi suatu pagi saya berkesimpulan bahwa dengan akses ke puluhan ribu stasiun radio tidak ada stasiun yang menarik. Saya merasa terganggu oleh iklan, lelucon konyol terkemuka. Terus-menerus melompat dari satu stasiun ke stasiun lainnya. Saya suka Spotify dan Yandex.Music. Tetapi yang menyedihkan adalah mereka tidak bekerja di negara saya. Dan saya ingin mendengarkan mereka melalui penerima internet.
Saya ingat masa kecil saya. Saya punya tape recorder dan dua lusin kaset. Kaset diganti dengan teman-teman. Dan itu luar biasa. Saya memutuskan bahwa saya perlu melakukan streaming arsip audio saya hanya ke penerima Internet. Tentu saja, ada opsi untuk menghubungkan pemutar audio atau ipod ke speaker dan bukan uap. Tapi ini bukan jalan kita! Saya benci menghubungkan konektor)
Dia mulai mencari solusi yang sudah jadi. Ada tawaran di pasaran untuk membuat radio Internet Anda sendiri dari Radio-Tochka.com. Saya menguji 5 hari. Semuanya bekerja dengan sempurna dengan penerima internet saya. Tapi harganya tidak menarik bagi saya. Menolak opsi ini.
Saya memiliki hosting berbayar 10 GB. Saya memutuskan untuk menulis skrip pada sesuatu yang akan mengalirkan aliran audio file mp3 saya. Saya memutuskan untuk menulis dalam PHP. Cepat menulis dan diluncurkan. Semuanya berhasil. Itu luar biasa! Tetapi beberapa hari kemudian sebuah surat datang dari administrasi hosting. Itu berbicara tentang melebihi batas menit prosesor dan kebutuhan untuk beralih ke tarif yang lebih tinggi. Skrip harus dihapus dan ditinggalkan opsi ini.
Bagaimana bisa begitu? Saya tidak bisa hidup tanpa radio. Jika Anda tidak diizinkan menjalankan skrip di hosting orang lain, maka Anda memerlukan server Anda sendiri. Di mana saya akan melakukan apa yang diinginkan jiwa saya.
Saya memiliki netbook kuno tanpa baterai (CPU - 900 MHz, RAM - 512 Mb). Pria tua itu berusia 11 tahun. Untuk server, tidak apa-apa. Saya menaruh Ubuntu 12.04. Kemudian instal Apache2 dan php 5.3, samba. Server saya sudah siap.
Saya memutuskan untuk mencoba Icecast. Saya membaca banyak mana. Tapi bagiku itu terasa rumit. Dan saya memutuskan untuk kembali ke opsi dengan skrip dalam PHP. Beberapa hari dihabiskan untuk men-debug skrip ini. Dan itu bekerja dengan sempurna. Lalu saya juga menulis skrip untuk memutar podcast. Dan saya sangat menyukainya sehingga saya memutuskan untuk membuat proyek kecil. Sebut saja IWScast.
Diposting di github .

Semuanya sangat sederhana. Saya menyalin file mp3 dan file index.php ke folder root dari Apache / var / www / dan mereka diputar secara acak. Sekitar 300 lagu sudah cukup untuk sepanjang hari.
File index.php adalah skrip itu sendiri. Script membaca semua nama file direktori mp3 menjadi array. Membuat aliran audio dan mengganti nama file mp3. Ada saat-saat ketika Anda mendengarkan lagu dan Anda menyukainya. Apakah Anda pikir siapa yang menyanyikan ini? Untuk kasus ini, ada catatan nama-nama trek yang didengarkan di log log.txt
Kode skrip 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);
Jika Anda ingin trek diputar secara berurutan, Anda perlu mengomentari baris di index.php
shuffle($files);
Untuk podcast saya menggunakan / var / www / podcast / Ada script index.php lain. Ini memiliki trek podcast menghafal. Lain kali Anda menghidupkan penerima Internet, trek podcast berikutnya diputar. Ada juga log trek yang direproduksi.
Anda dapat menentukan nomor trek di file counter.dat dan pemutaran podcast dimulai dari itu.
Menulis parser untuk mengunduh podcast secara otomatis. Dia mengambil 4 lagu terakhir dari RSS dan mengunduhnya. Semua ini bekerja sangat baik pada smartphone, set-top box IPTV, di browser.
Baru-baru ini di pagi hari saya mendapat ide bahwa itu bagus untuk menghafal posisi pemutaran di trek. Tapi saya belum tahu bagaimana melakukan ini di PHP.
Skrip dapat diunduh
github.com/iwsys/IWScast