Собственно, в здании, где дислоцируется наш офис, во всю идут ремонтные работы.
А с интернетом то проблемы.
Шеф приобрел какой-то свисток, но он не спасает, на всех его не хватит.
Так вот.
Я, обязательно буду сидеть с нахлобучеными наушниками.
Мне это помогает абстрагироваться и спокойно работать.
Причем жанр музыки совершенно не важен.
Остальным, как оказалось -- тоже.
Вобщем, чтобы не тратить драгоценные мегабайты на аудиострим извне, мы слили музло у кого какое было в одно место.
А я запилил наколенный скрипт, который всю эту кухню обслуживает:
PHP:
скопировать код в буфер обмена
<?PHP $speed = 20; // kbps $path = realpath('../../Music/streamer') . '/'; exit('You must open this URL with audio player!'); } header('Icy-Notice2: Stream server via PHP v-0.1-alpha'); header('Icy-Name: Local radio'); header('Icy-Url: ' . $_SERVER['HTTP_HOST']); $chunkSize = $speed * 1024 * 8; $tracks = glob($path . '*.mp3'); if (!$tracks) { } while (1) { // shuffle all tracks // each track by track foreach ($tracks as $track) { $fp = @ fopen($track, 'rb'); if ($fp) { // play (streaming) track while (1) { $data = fread($fp, $chunkSize); print $data; if (strlen($data) < $chunkSize) { break; } else { } } } } }
Достаточно указать откуда тащить аудио и скорость отдачи.
Собственно 20 кбпс достаточно.
Открываете ссылку с любого плеера, и вуаля!
Но для каждого приконнектившегося листенера будет играть свой набор треков.
А реализация одного общего эфира не влезла бы в эти 44 строки ))
Однако, рекурсивный поиск треков в подкаталогах оно не поддерживает.
Т.е. тащит все из одной единственной директории.
Для тех, кому рекурсивная шляпа понадобится -- реализуйте сами.
Я лишь показал сам принцип аудиостриминга.
Кароче, кому надо -- забирайте.
|