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

Gabriel Vaquer

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Liga sa pode seguir fora da TV no Brasil e preocupa estafe de Neymar

Neymar anuncia renovação com o PSG até 2025: Campeonato Francês ainda não tem transmissão garantida no Brasil a partir de 2021/2022 - Divulgação/PSG
Neymar anuncia renovação com o PSG até 2025: Campeonato Francês ainda não tem transmissão garantida no Brasil a partir de 2021/2022 Imagem: Divulgação/PSG

Colunista do UOL

11/05/2021 04h00

Com João Henrique Marques, em Paris (FRA)

O Campeonato Francês pode sofrer um novo apagão na mídia brasileira a partir da temporada 2021/2022. O contrato com a plataforma Onefootball é válido apenas até o fim da atual temporada e ainda não há negociação com qualquer mídia, seja em TV ou em plataforma de streaming. Isso pode afetar novamente a exposição de Neymar no Paris Saint-Germain para o mercado brasileiro, fato que preocupa o estafe do atleta. O jogador renovou seu contrato com o clube francês até 2025.

A falta de transmissão de jogos da Ligue 1 no mercado brasileiro é algo que deixa o estafe do jogador aflito, em especial seu pai e empresário. Dessa forma, a exposição do jogador em seu país diminui consideravelmente: são 38 possíveis exibições a menos por temporada.

A crise financeira provocada pela pandemia da covid-19 forçou o serviço de streaming DAZN a rescindir seu contrato pela competição —assim como havia feito com a Copa Sul-Americana e o Campeonato Italiano. Com isso, a liga sa ficou sem transmissão oficial no Brasil nos três primeiros meses da temporada 2020/2021.

Pela Internet, as transmissões voltaram com o Onefootball, desde outubro do ano ado —e o acordo tem validade até o final da temporada. No domingo ado (9), o UOL exibiu o jogo entre PSG e Rennes em parceria com a plataforma.

No fim de 2018, a compra dos direitos do evento pelo DAZN chegou a empolgar a equipe que istra a carreira do atacante. Eles acreditavam no plano da plataforma para o Brasil e que ela poderia representar o futuro das transmissões esportivas. A operação, porém, entrou em forte retração nos últimos meses.

Atualmente, ainda não há negociação para transmissão do Francês. A liga está resolvendo problemas internos sobre os direitos de transmissão. No início do ano, uma licitação foi cancelada porque as empresas interessadas apresentaram propostas bem abaixo do mínimo desejado pela liga.

Sem resolver os direitos na própria França, não há previsão para início das conversas no mercado internacional, principalmente no Brasil. A expectativa é que os problemas locais sejam resolvidos em junho e, a partir daí, seja possível negociar contratos para outros mercados importantes.

Band quase exibiu o Campeonato Francês em 2019

O Campeonato Francês está fora da TV linear desde o fim da temporada 2017/2018. Naquela época, Disney e Globo dividiam jogos da competição. Ambas as empresas tinham interesse em renovar o acordo, mas os responsáveis pela Ligue 1 queriam valores muito altos para prolongar o vínculo. A questão financeira continua a dificultar a possibilidade de negociação para o Brasil.

Em 2019, o DAZN e a Band chegaram a anunciar parceria para a transmissão do campeonato, que teria jogos narrados pelo jornalista José Luiz Datena. A emissora paulista até mesmo foi à França para gravar chamadas institucionais e anunciar a novidade ao público, mas o acordo foi desfeito antes da estreia por opção da empresa de streaming. Seria a estreia do Francês na TV aberta, onde jamais foi exibido.

Em 2021, os jogos de Neymar no PSG ao menos poderão ser vistos nos canais da Disney, que tem os direitos da Copa da França; na TNT Sports, que renovou até 2024 o acordo para exibir a Champions League na TV paga; e no SBT, que terá a principal competição de clubes do mundo na sua programação a partir de agosto.