Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с радио (https://javascript.ru/forum/misc/51332-pomogite-s-radio.html)

Vestimy 03.11.2014 00:36

Помогите с радио
 
Всем привет. Есть статья, все сделал на на 3 этапе завис и нейпойму что делать, умные люди посоветуйте пожалуйста!!! ВОт ссылка на статью http://habrahabr.ru/post/145694/ ниже текст из этой же статьи


Шаг 2: настройка «прокси»
Информацию-то мы сгенерировали, но вот беда: при помощи JavaScript нельзя обращаться к другому домену или даже порту. Не беда, сделаем вот такой вот скрипт-«переходник»:
<?php
$s = file_get_contents("http://example.com:8000/info.xsl");
echo($s);
?>


Думаю, PHP будет всяко легче просто запросить и отдать, чем запросить, распарсить, вытащить регулярками нужные данные и потом только отдать информацию. Назовём этот скрипт «get.php» и положим на сервер в удобное место.

Шаг 3: настройка JavaScript
Итак, теперь мы можем и генерировать, и принимать информацию, дело за малым — вывести её пользователю.
Здесь я ограничусь кодом с комментариями к нему:

// Функция для упрощения написания, задаёт содержимое элементу DOM. Лень - двигатель прогресса!
function set (id, dat)
{
var d = document.getElementById(id);
d.innerHTML = dat;
}


function getXmlHttp() // получаем объект XMLHttpRequest, код взят из многочисленных примеров
{
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}


function req () // запрос данных
{
var xmlhttp = getXmlHttp()
xmlhttp.open("GET", "get.php", true); // просим данные у сервера в асинхронном режиме
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4) {
if(xmlhttp.status == 200)
processResult(xmlhttp.responseText); // отдаём на обработку
}
};
xmlhttp.send(null);
}


function processResult (res) // обработка входящих данных
{
var csRes = eval("(" + res + ")"); // да-да, тут должен использоваться jQuery, ибо безопасность и так далее. Но, так как это просто скрипт с примером, не буду ударяться в подробности.
var a = []; // пустой массив, для дальнейших действий

// У меня на радио два маунтпоинта - собственно эфир (/stream) и тот, который играет, пока нет диджеев (/ns).
if (csRes["/stream"] != null) // Диджей в эфире?
{
a = csRes["/stream"]; // если да, работаем с данными от него
set("sName", "прямой эфир"); // графа "режим" на страничке радио
}
else // иначе берём данные от точки нон-стоп
{
a = csRes["/ns"];
set("sName", "Non-Stop (без диджея)"); // графа "режим" на страничке
}

set("trackholder", a["title"]); // Отображаем текущий трек

// Задаём все нужные нам поля (жанр, кол-во слушателей, описание станции и т.д.)
set("sGenre", a["genre"]);
set("sListeners", a["listeners"]);
set("sDescr", a["description"]);

setTimeout("req()", 15000); // Если всё прошло удачно, через 15 секунд обновим информацию о станции
// Здесь вместо setInterval используем setTimeout, чтобы при неработающем icecast скрипт не просил данные впустую.
}

req(); // первый запрос


Шаг 4: настройка странички
Здесь всё проще простого. Верстаем страничку, задаём элементы div с именами, используемыми в скрипте выше и после этих элементов указываем ссылку на скрипт:
...
<div id="sDescr">тут описание</div>
<script type="text/javascript" src="./track.js"></script>

Safort 03.11.2014 01:51

Что именно не понятно?

Vestimy 03.11.2014 11:06

Я с JavaScript не дружу, как его использовать не могу понять, и как его вставить чтобы он работал

Viral 05.11.2014 14:56

Вот беда-то.. никто не дружит с JavaScript..


Часовой пояс GMT +3, время: 18:53.