Парсинг названия аудиопотока из XSL
Всем привет! Я ньюфаг, и понемногу пытаюсь изучать JS на примере чужого кода. У меня есть рабочий код для вывода названия трека на jQuery, но теперь я хочу обойтись без jQuery. В поисках наткнулся на этот код:
function getTitle(){ if(typeof meta.title != "undefined"){ return meta.title; } else { return defaultSongTitle } } var radioMetaUpdated = new Event('radioMetaUpdated'); audio.addEventListener('playing', function () { console.log('plays'); chrome.browserAction.setIcon({ path: {"38": 'pause.png'} }); if (metaRefreshTimer !== null) { clearInterval(metaRefreshTimer); console.log('clearInterval'); } function refreshMeta() { function reqListener() { var new_meta = JSON.parse(this.responseText); new_meta.title = new_meta.artist + ' - ' + new_meta.track; if (new_meta.title != getTitle()){ meta = new_meta; audio.dispatchEvent(radioMetaUpdated); chrome.browserAction.setTitle({"title": new_meta.title}); gaSendEvent('User', 'listening', new_meta.title); } } var oReq = new XMLHttpRequest(); oReq.addEventListener("load", reqListener); oReq.open("GET", "http://api.radioskovoroda.com:3000/api/stream/current/radio"); oReq.send(); } refreshMeta(); metaRefreshTimer = setInterval(refreshMeta, 5000); }); Проблема в том, что этот код отлично работает для "своего" аудиопотока, ведь у него данные о композиции хранятся в переменных "artist" и "track", но когда я его пытаюсь приладить под нужды моего (в котором данные о композиции хранятся в одной переменной "title"), то все ломается и не работает: function getTitle(){ if(typeof meta.title != "undefined"){ return meta.title; } else { return defaultSongTitle } } var radioMetaUpdated = new Event('radioMetaUpdated'); audio.addEventListener('playing', function () { console.log('plays'); chrome.browserAction.setIcon({ path: {"38": 'pause.png'} }); if (metaRefreshTimer !== null) { clearInterval(metaRefreshTimer); console.log('clearInterval'); } function refreshMeta() { function reqListener() { var new_meta = JSON.parse(this.responseText); new_meta.title = new_meta[0].title; if (new_meta.title != getTitle()){ meta = new_meta; audio.dispatchEvent(radioMetaUpdated); chrome.browserAction.setTitle({"title": new_meta.title}); gaSendEvent('User', 'listening', new_meta.title); } } var oReq = new XMLHttpRequest(); oReq.addEventListener("load", reqListener); oReq.open("GET", "http://live.sovaradio.ru:8000/stream"); oReq.send(); } refreshMeta(); metaRefreshTimer = setInterval(refreshMeta, 5000); }); Неделю уже бьюсь :help: :help: :help: Заранее большое спасибо! |
И где на http://live.sovaradio.ru:8000/stream JSON, если ответ это аудиопоток?
|
Для начало вбейте вашу адресную строку и строку из примера в браузер и посмотрите что на выходе
как узнать откуда брать данные? в Хроме заходим на http://sovaradio.ru/ для верности жмем плей (но не обязательно) жмем Ф12 - network -XHR видим какие запросы делает страница и какие ответы получает status-json.xsl это наше, смотрим в ответе где лежит наша информация и в коде меняем запрос на https://live.sovaradio.ru/status-json.xsl ну и в объекте данные будут лежать немного в другом месте |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 04:11. |