ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

проблема с Icecast

 

602
Женя @zhekaosincev
Здравствуйте! Сегодня обнаружил проблему на сайте!
Когда слушатели не слушают эфир (0) на сайте выводит: Online: -2
"-2" вместо 0
В самом Icecast ( на странице статистики) в поле:
Peak Listeners: 0
стоит 0. Когда к примеру слушают 5 человек, то минуты 3 стоит
Peak Listeners: 5, затем снова Peak Listeners: 0
в чем трабл??? Заранее спасибо

Отредактировано zhekaosincev - 15.11.2011
1572
KyPIIaToB @KyPIIaToB
Зачет, а скрипт и ссылку на айс мы сами найдем?

602
Женя @zhekaosincev
<em class="time"><font size="3" color="white">Online: <?php
$file_name='http://91.228.152.154:8000/status2.xsl';
$r=fopen($file_name,'r');
$text=fread($r,300);
fclose($r);
$mass=explode(",", $text);
echo $mass [9] ."";
?></font></em>

скрипт выводы ко-во слушателей с 2х потоков

1572
KyPIIaToB @KyPIIaToB
ниче то что у тебя в самом айсе показывает Source: ,,-2,, ?

602
Женя @zhekaosincev
и где это я ошибся? в конфиге? не подскажешь где именно?

1572
KyPIIaToB @KyPIIaToB
Конфиг тут не причем.
Советую снимать с каждого маунта стату и выводить общаг уже так.

410
Евгений @Drakkar
Попробуй выдернуть из этого кода нужные тебе переменные. Код отлажен и проверен. Создаёт в корне сайта max.php, где сохраняет пиковое кол-во слушателей. Код в даннном случае выводит статистику с двух маунтов и суммирует их. Код в даннном случае ещё парсит трек из сэма.
<?php

function get_title ($mount){
$r=fopen($mount,'r');
$text=fread($r,2000);
fclose($r);
$mass=explode(",", $text);
return $mass [17];
}
$mount1 = "http://ip:порт/status2.xsl?mount=/*******";
$mount2 = "http://ip:порт/status2.xsl?mount=/*******";
$mount3 = "--//-- третьего --//--";

if(get_title($mount1) !='')
{
echo get_title($mount1);
}
elseif(get_title($mount2) !='')
{
echo get_title($mount2);
}
else
{
echo get_title($mount3);
}
include "max.php";
$file_name='http://ip:порт/status2.xsl';
$r=fopen($file_name,'r');
$text=fread($r,300);
fclose($r);
$mass=explode(",", $text);
$svoy=$mass [4];
$file_name='http://ip:порт/status2.xsl?mount=/*******';
$r=fopen($file_name,'r');
$text=fread($r,300);
fclose($r);
$mass=explode(",", $text);
$retr=$mass [15];
$cur=$svoy;
if ($cur>$max)
{
$txtout='<?php'."\r\n";
$txtout=$txtout. '$max=' .$cur. ";\r\n";
$txtout=$txtout."\r\n".'?>';
$fp = fopen ("max.php", "w");
fwrite($fp,$txtout);
fclose($fp);
$max=$cur;
}
echo "<br>\n";
echo "<hr>Наша статистика:<br>\n";
echo "<hr>С первого маунта: ".$cur."<br>\n";
echo "Со второго маунта: ".$retr."<br>\n";
echo "Всего нас слушает: ".($svoy+$retr)."<br>\n";
echo "<hr>Зафиксирован рекорд в ".$max." слушателей<br>\n";
?>

Может и поможет :)

888
Falcon @Falcon
У кода есть один существенный недостаток. Использование функции fopen. На многих хостингах она заблокирована, и открыть файл получится только на локальной машине. Вместо неё советую использовать функцию file(). Она получает содержимое указанного файла в виде массива.

410
Евгений @Drakkar
Зачем она заблокирована на хостингах? Вы откуда кстати знаете?

6245
Тарас @tarasian666
в целях безопасности

это почти все знают )

Falcon пишет:

Вместо неё советую использовать функцию file().

или file_get_contents но бывает что все эти функции заблокированы