Тема: проблема с Icecast

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

Отредактировано Апекс (15-11-2011 20:27:36)

2

Re: проблема с Icecast

Зачет, а скрипт и ссылку на айс мы сами найдем?

В здоровом теле - здоровый дух!

3

Re: проблема с Icecast

<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х потоков

4

Re: проблема с Icecast

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

В здоровом теле - здоровый дух!

5

Re: проблема с Icecast

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

6

Re: проблема с Icecast

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

В здоровом теле - здоровый дух!

7

Re: проблема с Icecast

Попробуй выдернуть из этого кода нужные тебе переменные. Код отлажен и проверен. Создаёт в корне сайта 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";
?>

Может и поможет smile

8

Re: проблема с Icecast

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

http://radioheart.ru/banners/radioheart_400x40_banner.jpg
RadioHeart.ru: Функциональный радио хостинг с автодиджеем и нонстопом, а так же быстрый виртуальный хостинг. Возможность создать радио за 5 минут, подключить автодиджей и нонстоп.
Отзывы о хостинге

9

Re: проблема с Icecast

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

10

Re: проблема с Icecast

в целях безопасности

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

пишет Falcon:

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

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