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

Luis Roberto explica problema que o afastou de transmissões durante a Copa

Luis Roberto narrou abertura da Copa do Mundo de 2022 na Globo - Reprodução/TV Globo
Luis Roberto narrou abertura da Copa do Mundo de 2022 na Globo Imagem: Reprodução/TV Globo

Do UOL, em São Paulo (SP)

18/12/2022 07h18

Classificação e Jogos

Luis Roberto, narrador do Grupo Globo, deu mais detalhes sobre os dias que ficou afastado das transmissões da Copa do Mundo do Qatar por conta de um rouquidão.

O problema: "A sinusite provoca uma secreção que para nas cordas vocais. Isso sem dúvida me deixou preocupado. Mas como nós, narradores, temos um tipo de treinamento e atenção para esses acontecimentos na vida, conseguimos correr a tempo", disse Luis Roberto em entrevista ao jornal carioca Extra.

  • Luis Roberto fez a partida entre França x Austrália, ainda na fase de grupos do Mundial, com a voz rouca em toda a partida
  • Por causa do episódio, a Globo poupou o narrador nas transmissões seguintes
  • Ele retornou quatro dias depois na vitória da Argentina por 2 a 0 contra o México, ainda na fase de grupos

Veja outros trechos da entrevista com Luis Roberto

Aposentadoria de Galvão Bueno: "Acho que todos nós, narradores da televisão e do rádio, desfrutamos do legado que o Galvão está deixando. Todos somos sucessores dele neste sentido. O legado do Galvão vai além da questão artística. Ele se reinventou ao longo dos anos e nos mostrou um caminho de adequação, não só da linguagem atual, mas também de apresentar um evento. O Galvão também deixa um legado de valorização da profissão. Ele mostrou ao mercado como é difícil essa função de narrar, não só o futebol, mas outras modalidades".

Rotina durante a Copa: "A rotina, obviamente, tem sido muito intensa. Os eios ficaram em segundo plano. Nos últimos dias, com menos jogos, conseguimos visitar alguns pontos turísticos de Doha. A Copa do Mundo absorve muito com informações e jogos praticamente todos os dias. É uma loucura. Nós temos que traduzir as matérias de noticiários de países que vamos cobrir. É mais difícil mesmo ear. Mas deu para conhecer alguma coisa. Doha é uma loucura, uma 'cidade cenográfica' que foi levantada nos últimos anos. E por ser uma Copa realizada em uma só cidade, eu consegui assistir, por exemplo, a dois jogos no mesmo dia algumas vezes, algo impensável em outras edições por conta dos deslocamentos gigantescos".

Dinâmica familiar durante a Copa: "A saudade aperta muito. Não tenho ninguém da minha família aqui comigo. Minha esposa está no Brasil, e nos falamos todo dia pelos aplicativos de vídeo, algo que não existia quando eu comecei. Nas Copas lá atrás, nós tínhamos de marcar hora para falar pelo telefone fixo. Mesmo assim, a dinâmica familiar muda muito com a distância. Um mês longe o coração já fica apertado de saudade".