Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
 Аватар для xt_warik
162 / 141 / 2
Регистрация: 06.04.2011
Сообщений: 762

Извлечь метаданные из аудиопотока

08.04.2014, 18:33. Показов 3504. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, Уважаемы Форумчане!
Вот я наконец-то и добрался до раздела "PHP". Давно уже присматривался, но никак нужды не было. А вот сейчас появилась.
Вопрос таков:
Необходимо извлечь метаданные из аудиопотока, то есть из он-лайн радио. Конкретно интересует всё. Название песни, альбома, длительность и прочее. И всё это на PHP.
Пожалуйста, подскажите как это сделать!
Код который выставлен выше отображает ошибку:
Кликните здесь для просмотра всего текста
Notice: Undefined offset: 1 in /var/www/demo2/test.php on line 18

Notice: Undefined variable: er in /var/www/demo2/test.php on line 19

Notice: Undefined offset: 3 in /var/www/demo2/test.php on line 21

Notice: Undefined offset: 4 in /var/www/demo2/test.php on line 21

Notice: Undefined offset: 2 in /var/www/demo2/test.php on line 22

Notice: Undefined offset: 5 in /var/www/demo2/test.php on line 24

Notice: Undefined offset: 6 in /var/www/demo2/test.php on line 25
Listeners: of ( Unique)
Listener Peak:
Server State: Down
Bitrate: Kbps
Current Song:


Код скрипта:
Кликните здесь для просмотра всего текста
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<html>
<head>
<title>1</title>
</head>
<body>
<div style="Visibility: Hidden; Position: Absolute;"> 
<? 
$open = fsockopen("link_radio:8000/play"); 
if ($open) { 
fputs($open,"GET /7.html HTTP/1.1\nUser-Agent:Mozilla\n\n"); 
$read = fread($open,1000); 
$text = explode("content-type:text/html",$read); 
$text = explode(",",$text[1]); 
} else { $er="Connection Refused!"; } 
?> 
</div> 
<? 
if ($text[1]==1) { $state = "Up"; } else { $state = "Down"; } 
if ($er) { echo $er; exit; } 
echo "<font face=verdana size=1> 
Listeners: $text[0] of $text[3] ($text[4] Unique)<br> 
Listener Peak: $text[2]<br> 
Server State: <b>$state</b><br> 
Bitrate: $text[5] Kbps<br> 
Current Song: $text[6] 
</font>";
?>
</body>
</html>


Bash
1
2
3
4
~# php -v
PHP 5.4.4-14+deb7u8 (cli) (built: Feb 18 2014 13:52:21) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
Добавлено через 14 минут
Прошу прощения у модераторов. Чуть не так оформил сообщение. Спасибо за редактирование!

Добавлено через 2 часа 49 минут
Вот например как можно реализовать такое:
Radio Stream Metadata?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.04.2014, 18:33
Ответы с готовыми решениями:

Извлечь метаданные из Access
Я работаю с базой данных Access в Visual Studio 2012. Для соединения с базой использую OLE DB и пространство имен System.Data.OLEDb.Я хочу...

Воспроизведение аудиопотока
Пишу программу, что-то вроде онлайн радио. Нужно воспроизвести аудиопоток радиостанции. Для примера я взял ...

Прослушивание аудиопотока
Здравствуйте. Возник вопрос по поводу прослушивания аудиопотока с какого-нить интернет-ресурса. Ну, типа, есть интернет-радио, хочу...

5
12 / 12 / 8
Регистрация: 20.05.2012
Сообщений: 120
24.04.2014, 15:47
Дайте ссылку на аудио поток, тоже стало интересно
0
 Аватар для xt_warik
162 / 141 / 2
Регистрация: 06.04.2011
Сообщений: 762
24.04.2014, 17:11  [ТС]
Уже нашёл более актуальный выход. Например парсить статусный XSL файл. Так проще всего.
Например на ссылке: Статусный XSL есть вся необходимая инфа которую я искал.
0
91 / 91 / 23
Регистрация: 02.09.2013
Сообщений: 276
25.04.2014, 07:31
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<html>
<head>
<title>1</title>
</head>
<body>
<div style="Visibility: Hidden; Position: Absolute;"> 
<? 
$open = fsockopen("link_radio:8000/play"); 
if ($open) { 
fputs($open,"GET /7.html HTTP/1.1\nUser-Agent:Mozilla\n\n"); 
$read = fread($open,1000); 
$text = explode("content-type:text/html",$read); 
$text = explode(",",$text[1]); 
} else { $er="Connection Refused!"; } 
?> 
</div> 
<? 
if ($text[1]==1) { $state = "Up"; } else { $state = "Down"; } 
if ($er) { echo $er; exit; } 
echo "<font face=verdana size=1> 
Listeners: $text[0] of $text[3] ($text[4] Unique)<br> 
Listener Peak: $text[2]<br> 
Server State: <b>$state</b><br> 
Bitrate: $text[5] Kbps<br> 
Current Song: $text[6] 
</font>";
?>
</body>
</html>
Notice: Undefined variable: er in /var/www/demo2/test.php on line 19
Конечно, у тебя она будет defined только в случае Connection refused. Если соединение установилось, то в else скрипт не попадает и такая переменная не создается, вот он тебе и кидает нотис
Тогда уж сделай так: if (isset($er))

Хотел попробовать, но так и не дождался ответа от радио
0
 Аватар для xt_warik
162 / 141 / 2
Регистрация: 06.04.2011
Сообщений: 762
28.04.2014, 14:12  [ТС]
Чуть-чуть оффтопа... Может пригодится кому.

Не по теме:

Я парсил скриптом, только не пыхой, а Java:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script>  
        function show()  
                {  
                                $.ajax({  
                                        url: "radio/now_plaing_page.php",  
                                        cache: false,  
                                        success: function(html){  
                                        $("#now_plaing").html(html);  
                                }  
                        });
                }
        $(document).ready(function(){  
        show();  
                setInterval('show()',10000);
        });  
</script>
Код now_plaing_page.php:
PHP
1
2
3
4
5
6
7
8
9
<?php
        $radio_url="http://air.dnb.name:8000/status.xsl";
        $file=implode("n", file($radio_url));
        $d1=explode('<td>Current Song:</td>', $file);
        $d2=explode('<td class="streamdata">', $d1[1]);
        $d3=explode('</td>', $d2[1]);
        $content_radio="<center>$d3[0]</center></b>";
        echo "$content_radio";
?>
Ну и соответственно сам div в который выводим:
HTML5
1
<div id='now_plaing'></div>

0
 Аватар для xt_warik
162 / 141 / 2
Регистрация: 06.04.2011
Сообщений: 762
02.05.2014, 15:51  [ТС]
Я вот если честно не знаю в какой из форумов задать свой вопрос, потому лучше тут и напишу...
У меня есть такой код

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script>  
    function show()  
            {  
                    $.ajax({  
                url: "now_plaing_page.php?p=<? echo $plaing_radio; ?>",
                        cache: false,  
                        success: function(html){  
                $("#now_plaing").html(html); 
                }  
            });
        }
    $(document).ready(function(){  
    show();  
            setInterval('show()',10000);
    });  
</script>
Данный код, как было сказано выше, выполняет обновление играющей песни. Переменную: "$plaing_radio" я указываю вручную. А мне необходимо что бы значение переменной изменялось по нажатию на ссылку, возможно через "onclick".
Возможно ли это как-то сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.05.2014, 15:51
Помогаю со студенческими работами здесь

Запись аудиопотока
Баловался с Bass, писал плееры, онлайн радио... И вот у меня появилась идея, записать аудиопоток и сохранить его как звуковой файл на...

Граббинг аудиопотока из видеофайла
Всем привет, есть такая задача. Необходимо написать программу, которая бы с видео вытягивала аудио дорожку и записывала ее в отдельный...

Воспроизведение аудиопотока из интернета
Есть приложение, которое воспроизводит аудиопотоки из интернета (онлайн радио). Вот ссылки на радио ...

Запись аудиопотока с системы
Здарвствуйте. Подскажите пожалуйста как можно считать аудиопоток с винды, например в файл, средствами QT. Заранее спасибо.

Извлечь текст до определенного символа и извлечь из кавычек
Ребята, помогите, пожалуйста, с формулой. есть много текста в ячейках, в каждом тексте есть разные фразы и разной длины, а после...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru