;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Lollapalooza: telão de Billie Eilish falha e dificulta visão do público

Telões do show de Billie Eilish no Lollapalooza se apagam - Bruna Calazans / UOL
Telões do show de Billie Eilish no Lollapalooza se apagam Imagem: Bruna Calazans / UOL

Yolanda Reis

de São Paulo, para Splash

24/03/2023 21h59

Billie Eilish foi a headliner da sexta-feira no Lollapalooza Brasil 2023. A cantora fechou a noite do Autódromo de Interlagos, e enfrentou um grande problema na apresentação: uma falha técnica fez os dois telões se apagarem, impossibilitando uma boa visibilidade para as milhares de pessoas aglomeradas no gramado.

A falha técnica primeiro travou um dos telões, o que divertiu a cantora. Ela riu e perguntou para a plateia: "Gente, vocês viram isso?". Poucos minutos depois, o segundo telão apagou. O telão de outros lugares, como o Lolla Lounge, também apagou depois de alguns minutos. A empresa responsável afirmou que houve um problema no envio de informações aos telões (leia a nota abaixo).

A plateia começou a reclamar, pois o amplo espaço do Autódromo não permite uma boa visão dos artistas de longe. O telão ficou seis minutos totalmente desligado - e foi durante a homenagem da Billie ao Brasil. A cantora estava com uma bandeira do Brasil nas costas, e os momentos não apareceram no telão.

Após o período, os telões reacenderam - mas continuaram desligando continuamente. O telão do palco também apagou, deixando apenas a cantora no centro.

Billie Eilish termina a primeira noite do Lollapalooza 2023, e toca depois de Lil Nas X. Os próximos dias do festival receberão Drake, Twenty One Pilots, Rosalia e mais.

Veja a nota da NA, responsável pelos telões do Lolla:

O time NA se solidariza com o público e com toda equipe da Billie Eilish pela falha na transmissão das imagens para os painéis de LED do palco Budweiser, ontem.
Esclarecemos que falha não ocorreu nos painéis, em si, mas sim no processo de envio das imagens, operação gerenciada pela equipe técnica da artista.
Todos os painéis do palco Bud, assim como todos os demais palcos, permanecem operantes, desde o início do festival Lollapalooza Brasil 2023.