;(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
ANÁLISE

Em seu 1º jogo da despedida, Galvão é o patrão da transmissão da Globo

Galvão Bueno em sua última estreia de seleção brasileira em Copas do Mundo na Globo - Reprodução/Globo
Galvão Bueno em sua última estreia de seleção brasileira em Copas do Mundo na Globo Imagem: Reprodução/Globo

Do UOL, em São Paulo

24/11/2022 17h57

Classificação e Jogos

O duelo de hoje entre Brasil e Sérvia não marcou somente a estreia da seleção brasileira na Copa do Mundo do Qatar. A partida foi a primeira de Galvão em seu último Mundial como narrador e ele abriu a transmissão na TV Globo falando justamente do nervosismo pela contexto do dia. Depois, a mistura de ansiedade com a experiência de 13 Mundiais fez o narrador acumular funções, sem querer, disparando comandos aos companheiros da equipe como um patrão.

Assim que comentou sobre o nervosismo pelo jogo de estreia, Galvão certificou-se se a comentarista Ana Thais Matos também estava com o mesmo sentimento sobre o jogo Brasil na Copa: "Tenho uma pergunta: está com as pernas tremendo?". A jornalista respondeu sobre a ansiedade pelo dia de hoje e o narrador voltou a falar: "Mas te perguntei se as pernas estão tremendo. Estão? Ah, então está no clima".

Já no esquenta antes do apito inicial, o repórter Eric Faria estava no gramado do estádio Lusail ao lado de Roque Júnior e ambos receberam o coordenador de futebol da CBF Juninho Paulista e o eterno capitão Cafu. O repórter puxou os ex-jogadores para um bate-papo e, além de enviar uma pergunta, Galvão orientou Eric sobre o posicionamento de Roque: "Fala para ele ficar de frente para a câmera quando estiver falando com a gente", disse o narrador. No mesmo momento, Taffarel apareceu e mandou um palavrão ao vivo.

Durante o giro pelas cidades do Brasil, Galvão se empolgou com o Olodum em Salvador e foi à loucura quando viu seu boneco dançando, mas depois, quando chegou em Manaus, ele disse: "Gente, já está bom. Agora volta para mim".

Quando finalmente chegou a hora da execução dos hinos nacionais das equipes, Galvão pediu: "Vamos caprichar no som, vamos caprichar no som".

Orientar o posicionamento dos comentaristas, coordenar os momentos em que o som do estádio deve ficar mais alto na transmissão e encerrar giro de imagens pelo país são funções do coordenador de transmissão, papel que Galvão assumiu no início do jogo. Foi um acúmulo de funções gerado pela emoção da despedida.

A bola rolou e Galvão deu uma relaxada. Após o apito final, com a vitória da seleção brasileira, o narrador compartilhou sua reação durante o segundo gol de Richarlison e se emocionou ao ver um torcedor exibindo uma bandeira com seu rosto estampado. A Copa começou para um dos maiores narradores do Brasil. Haja coração, amigo!

A última Copa de Galvão

Galvão Bueno já anunciou que essa é sua última Copa do Mundo como narrador. Em 19 de dezembro, na final do torneio sediado pelo Qatar, ele dirá adeus aos microfones.

Apesar de o contrato com o grupo Globo se encerrar no fim deste ano, Galvão já avisou que há conversas entre ele e a direção esportiva da Globo para que sua permanência continue pontual em alguns programas.

"Não farei mais nada em televisão se não for na Globo", afirmou em evento realizado pela emissora em setembro. "Estamos conversando sobre algumas participações pontuais. Não existe contrato ainda, mas quem sabe convites para falar algumas bobagens em alguns programas, não? Narração não faço mais, a última será em 18 de dezembro, na final da Copa do Mundo. Mas outras coisas, quem sabe".

Qual foi o gol mais bonito da primeira rodada da Copa do Mundo do Qatar?

Resultado parcial

Total de 5060 votos
89,15%
Michael Steele/Getty Images