;(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

Bjork e Arctic causam e live do Primavera tem fãs irritados e show repetido

Arctic Monkeys se apresenta no Primavera Sound em São Paulo - Lucas Ramos / Brazil News
Arctic Monkeys se apresenta no Primavera Sound em São Paulo Imagem: Lucas Ramos / Brazil News

De Splash, em São Paulo

06/11/2022 00h31

Fãs irritados, comentando sem parar. Apresentadores enrolando e exibindo vídeos de apresentações de horas antes. Esse foi o clima das últimas horas da transmissão ao vivo do Primavera Sound no TikTok, no primeiro dia da edição brasileira do festival espanhol.

Em um dado momento, o apresentador Didi Effe, que se esforçava para se manter polido e entreter o público, ironiza o Arctic Monkeys, que seria o causador daquele atraso de horas. Ao falar sobre o álbum The Car, que levou cerca de quatro anos para ficar pronto, Didi estabelece o paralelo: "é quase tanto tempo quanto estamos esperando aqui".

A banda britânica, atração principal do primeiro dia do evento, pediu, informou o apresentador, para que o show não fosse transmitido ao vivo, apenas com delay.

Uma informação preliminar era de que o início seria 30 minutos após a largada do show de Alex Turner e sua trupe no palco do Distrito Anhembi, em São Paulo. O tempo de espera foi elevado para 1h10 de atraso. No final, a transmissão começou de fato pouco depois da meia-noite, duas horas depois da apresentação começar.

Nesse meio tempo, no "ao vivo", reprisaram shows que tinham acontecido durante o dia. Em um sinal de que não era para ter demorado tanto, imagens do (excepcional) show da cantora Liniker foram exibidas pela segunda vez, depois de já terem sido usadas em outro intervalo entre os shows, além da exibição ao vivo horas antes.

Acontece que, para piorar, Arctic não foi o único a causar contratempo. A cantora islandesa Bjork havia vetado a transmissão do seu show. Parecia algo isolado, já que Bjork também exibiu no telão um pedido para que seus fãs não fizessem fotos nem vídeos dela com o celular.

O Beach House, um dos últimos shows da noite, foi a terceira banda a também ficar de fora da transmissão. Sobrou para os fãs do rapper L7NNON. O brasileiro se apresenta a partir de 1h, não pediu para ficar de fora da live, mas quem aguardava por ele vai ter que esperar mais:

Didi informou que pelo horário em que começaram a exibir Arctic não seria mais possível ar a apresentação de L7 no mesmo dia. O apresentador afirmou que o rapper vai ter seu show exibido pelo TikTok amanhã, quando acontece o segundo dia do festival.

Recentemente, no Rock in Rio, algo semelhante aconteceu com Dua Lipa, que também exigiu que a transmissão do Multishow, ancorada por Marcos Mion, exibisse seu show com atraso em relação ao público da Cidade do Rock.

Famosos marcam presença no primeiro dia de Primavera Sound