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

Carioca - 2022

Cariocão tem erros e quedas em jogos de Flamengo e Vasco; Ferj se manifesta

Escalação do Volta Redonda mostrou dois capitães e escudo do Bangu durante transmissão do Carioca - Reprodução
Escalação do Volta Redonda mostrou dois capitães e escudo do Bangu durante transmissão do Carioca Imagem: Reprodução

Do UOL, em São Paulo

29/01/2022 22h09Atualizada em 30/01/2022 12h24

As transmissões de Volta Redonda x Flamengo e Vasco x Boavista, jogos disputados hoje pelo Campeonato Carioca, irritaram os torcedores em função de erros e cortes na plataforma de streaming usada pela Ferj (Federação de Futebol do Estado do Rio de Janeiro).

Em meio às falhas, o termo "Volta Globo" alcançou os assuntos mais comentados do Twitter na noite de hoje, em uma espécie de protesto contra as instabilidades e as parcerias firmadas pela entidade.

Escalação errada e queda de sinal

A primeira gafe se deu no jogo do Flamengo, que começou as 18h (de Brasília). Ao mostrar a escalação do Volta Redonda, a geradora de imagens colocou dois capitães na equipe local e trocou o brasão do clube pelo do Bangu, outro time participante do torneio - além do erro, o streaming ficou travado por alguns segundos.

Com a bola rolando, os espectadores se decepcionaram no 2° tempo. Por volta dos 22 minutos, a transmissão caiu e foi retomada somente aos 25.

Oito minutos depois, mais problemas: desta vez, as imagens do Estádio Raulino de Oliveira sumiram da tela, e a partida ficou apenas com o áudio do narrador. O streaming, então, optou por mostrar alguns dos "melhores momentos" do duelo.

O problema vigorou até os 40 minutos e piorou, já que o som também foi cortado da partida - tudo se normalizou somente nos acréscimos do confronto, que acabou em 0 a 0.

Jogo do Vasco também irrita

A partida entre Vasco e Boavista, que começou as 21h (de Brasília), também contou com confusão e decepção.

Torcedores com s Claro/Net, por exemplo, relataram que perderam parte do 1° tempo em função de o pay-per-view não disponibilizar as imagens do jogo.

Há, também, reclamações em torno da qualidade do áudio que chega nos aparelhos eletrônicos dos s.

Ferj se desculpa

Organizadora do campeonato, a Ferj emitiu um comunicado se desculpando com os torcedores. No texto, a entidade cita que cobrou explicações à Sportsview, empresa que faz a geração das imagens das partidas.

"A FERJ se desculpa com o torcedor pela queda de sinal no jogo Volta Redonda x Flamengo e está cobrando explicações à Sportsview, empresa contratada para transmissão do Campeonato Carioca, assim como urgente melhoria na qualidade. Em breve, maiores informações."

O UOL Esporte procurou a Sportsview para um posicionamento em relação às falhas.

"Com relação à queda do sinal de transmissão nos minutos finais do jogo Volta Redonda X Flamengo, a Broedia, que é a empresa responsável pela transmissão do evento informou que esta interrupção se deu em virtude de uma falha nas duas redes de fibra ótica que são fornecidas pela Embratel, prestadora de serviços de banda larga, que leva os sinais gerados nos estádios ao Centro de Produção. A Embratel está investigando a causa do incidente. Já a Sportsview está acompanhando e avaliando medidas alternativas juntamente com a FERJ e os parceiros para que o ocorrido não se repita", declarou.

Veja algumas reclamações