Web Developer On1x.com Игры как увлечение Видео–игры как хобби и увлечение. Новости игровой индустрии. Блог про видео–игры.
видео-трансляции по играмУтиные истории возвращаютсяХарактеристики персонажа в игре Dark Souls

Программирование радио на сайт

Итак, цель - разобрать .m3u файл с интернет-радио станциями и показать мини-плеер на веб сайте.
Файл состоит из текста вида:

#EXTM3U
#EXTINF:1,(GTM) CorBinA PsychedeliC StaTioN
http://radio.corbina.ru:8000/

Принцип работы:
  • Открываем файл, парсим с помощью preg_match_all все совпадения, чтобы достать номер, название и ссылку на радио-трансляцию.
  • Формируем список радио-станций. При переходе по названию-ссылки устанавливаем в кукисах посетителя сайта ссылку на выбранную радио-трансляцию.
  • При отображении страницы получаем из кукисов ссылку на трансляцию и формируем флеш-html код.
Формирование флеш html-кода
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if($_COOKIE['dgrad_radio']){
    $radiolink=$_COOKIE['dgrad_radio'];
}
else {
    $radiolink='http://radio.corbina.ru:8035/';
}
$radio='<a href="/radio/">Настроить радио</a>
<object id="audioplayer660" type="application/x-shockwave-flash" 
data="http://dgrad.info/uppod.swf" width="84" height="25" 
style="vertical-align:middle;margin-left:5px;margin-right:5px;">
<param name="allowScriptAccess" value="always" />
<param name="wmode" value="transparent" />
<param name="movie" value="http://dgrad.info/uppod.swf" />
<param name="flashvars" value="comment=Радио&amp;st=/audio45-595.txt&amp;file='.$radiolink.'" />
</object>';

Теперь можно использовать переменную $radio в любом месте.
Сам код скрипта:
установка радио проигрывателя на сайт
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
$radio_list=file_get_contents('Corbina_Radio.m3u');

str_replace("\r",'',$radio_list);
preg_match_all('/\#EXTINF\:(.*),(.*)\n(.*)\n/iU',$radio_list,$stock);
$radio_arr['id']=$stock[1];
$radio_arr['name']=$stock[2];
$radio_arr['link']=$stock[3];
if($_GET['id']){
    setcookie('dgrad_radio',$radio_arr['link'][$_GET['id']-1],time()+360000,'/');
    header('location:/radio/');
    exit;
}
print '<div style="margin-left:3em;">';
print '<h1>Настройки радио</h1>';
print 'Установленная станция: '.$radiolink.'<br>';
print 'Выберите радиостанцию:<br>';
foreach($radio_arr['name'] as $k => $v){
    $radio_html='
<object id="audioplayer660" type="application/x-shockwave-flash" data="http://dgrad.info/uppod.swf" width="84" height="25" 
style="vertical-align:middle;margin-left:5px;margin-right:5px;">
<param name="allowScriptAccess" value="always" /><param name="wmode" 
value="transparent" />
<param name="movie" value="http://dgrad.info/uppod.swf" /><param 
name="flashvars" value="comment=Радио&amp;st=/audio45-595.txt&amp;file='.$radio_arr['link'][$k].'" /></object>';
    print '<p><a href="/radio/?id='.$radio_arr['id'][$k].'">'.$v.'</a>
<br>'.$radio_html.'<br>
<span class="grey">'.$radio_arr['link'][$k].'</span></p>';
}
print '</div>';

Для проигрывания трансляции используется флеш-плеер от сайта uppod.ru


Дата записи: 21.04.2010 15:10
Собственные проекты:
GameCommunity.ru, GameSocial.Net (TV), ART-Talk.ru, Дград.инфо
On1x blog
my ip