Всем привет! Я ньюфаг, и понемногу пытаюсь изучать 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);
});
Неделю уже бьюсь
Заранее большое спасибо!