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

Marília Mendonça lidera streaming feminino no mundo e a Taylor Swift

De Splash, em São Paulo

07/11/2021 10h28Atualizada em 08/11/2021 13h19

Menos de dois dias após sua morte precoce, aos 26 anos, a cantora Marília Mendonça lidera as paradas musicais do streaming no Brasil e desponta até mesmo entre as músicas mais tocadas no mundo.

A brasileira foi a artista feminina com o maior volume de streaming no mundo ontem, dia de seu velório e enterro, com 28,6 milhões de reproduções somente no Spotify. Marília Mendonça ficou à frente de Taylor Swift, Doja Cat, Adele, Dua Lipa, Billie Eilish, Ariana Grande, Summer Walker, Olivia Rodrigo e Rihanna.

Ainda no Spotify, entre as músicas solo e as gravadas no projeto Patroas, com Maiara e Maraisa, e parcerias, Marília Mendonça aparece em 17 faixas das 50 mais tocadas do Brasil.

São elas:

  • 1 - "Esqueça-Me Se For Capaz" (Marília Mendonça, Maiara e Maraisa)
  • 2 - "Todo Mundo Menos Você" (Marília Mendonça, Maiara e Maraisa)
  • 9 - "Troca de Calçada" (Marília Mendonça)
  • 19 - "Não Sei o Que Lá" (Marília Mendonça, Maiara e Maraisa)
  • 21 - "Cê Tá Preparada" (Tayrone, Marília Mendonça)
  • 24 - "Motel Afrodite" (Marília Mendonça, Maiara e Maraisa)
  • 26 - "Graveto" (Marília Mendonça)
  • 29 - "Bebi Liguei" (Marília Mendonça)
  • 35 - "Infiel" (Marília Mendonça)
  • 36 - "Presepada" (Marília Mendonça, Maiara e Maraisa)
  • 37 - "Ciumeira" (Marília Mendonça)
  • 38 - "Todo Mundo Vai Sofrer" (Marília Mendonça)
  • 42 - "De Quem É a Culpa?" (Marília Mendonça)
  • 44 - "Quero Você do Jeito Que Quiser" (Marília Mendonça, Maiara e Maraisa)
  • 46 - "Fã Clube" (Marília Mendonça, Maiara e Maraisa)
  • 49 - "Eu Sei de Cor" (Marília Mendonça)
  • 50 - "Bem Pior Que Eu" (Marília Mendonça)

No top 50 do mundo, a faixa "Esqueça-Me Se For Capaz", gravada no projeto Patroas com Maiara e Maraisa, surge na 48ª posição.

No top 200 das músicas mais tocadas na mesma plataforma, Marília aparece com três faixas no ranking mundial ("Esqueça-Me Se For Capaz" em 48ª, "Todo Mundo Menos Você" em 68ª e "Troca de Calçada" na 145ª) e 74 faixas no ranking nacional.

Na Deezer, os números também são impressionantes. 44 das 100 músicas que aparecem no Top Brazil são de Marília Mendonça, seja solo, com as Patroas ou em outras parcerias.

Nas paradas mundiais do streaming, a cantora aparece três vezes. Em 18º lugar com a faixa "Todo Mundo Menos Você" e 32º "Esqueça-Me Se For Capaz", ambas do projeto Patroas com Maiara e Maraisa, e 54º lugar com a faixa solo "Troca de Calçada".

Marília Mendonça ainda colocou a música "Arranhão", de Henrique e Juliano, na 49ª posição do ranking mundial da Deezer. A dupla era uma das mais próximas da cantora sertaneja. Henrique chegou a ar mal ontem no velório da amiga.

O sucesso nas paradas não é novidade alguma na carreira da cantora, que estourou logo no seu primeiro disco, em 2016, com "Infiel". Antes, como compositora, escreveu hits para diversos artistas.

Entre eles estão "Minha Herança" (João Neto & Frederico), "Muito Gelo, Pouco Whisky" (Wesley Safadão), "Até Você Voltar", "Cuida Bem Dela", "Flor e o Beija-Flor" (Henrique & Juliano), "Ser Humano ou um Anjo" (Matheus & Kauan), "Calma" (Jorge & Mateus) e "É Com Ela Que Eu Estou" (Cristiano Araújo).