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

Técnicos exaltam trio negro no The Voice: 'Mostrar do que o Brasil é feito'

Mumuzinho, Iza, Carlinhos Brown e Fátima Bernardes nas gravações do The Voice Kids 2023 - Globo/Manoella Mello
Mumuzinho, Iza, Carlinhos Brown e Fátima Bernardes nas gravações do The Voice Kids 2023 Imagem: Globo/Manoella Mello

De Splash, no Rio

21/03/2023 19h55

O The Voice Kids estreia no próximo dia 9 e traz uma novidade: pela primeira vez, um reality musical brasileiro terá apenas técnicos negros. Iza e Mumuzinho se unem ao veterano Carlinhos Brown na bancada da versão infantil da competição.

Os três celebraram a conquista durante conversa com a imprensa nos estúdios da Globo na tarde de hoje. Ainda estiveram presentes a apresentadora, Fátima Bernardes, e o diretor artístico, Creso Eduardo Macedo.

"O fato de nós estarmos aqui, três grandes artistas negros, encoraja. Eu posso encorajar muitos moleques de Realengo (bairro da Zona Oeste do Rio), onde morei, por estar aqui... Sonho está acima de qualquer coisa e nada pode parar isso", disse Mumuzinho.

"Me formei em comunicação e eu sempre quis trabalhar aqui, fazer parte desse universo. Sentar nessa cadeira me deixa muito feliz, me sinto lisonjeada de ficar do lado do Mumu, um artista completo, e do Carlinhos Brown, que dispensa comentários. O cara foi indicado ao Oscar. Ainda tem o fato dos três serem negros. É a primeira vez... A gente chega na casa de todo mundo, domingo à tarde, para mostrar do que o Brasil é feito. É um momento muito especial da minha vida", celebrou Iza.

"Estamos aqui para olhar a diversidade brasileira... Que bom que somos da cultura negra, mas a nossa responsabilidade é de um país de muitas etnias das quais nós respeitamos muito e aplaudimos. É assim que nós somos", acrescentou Brown.

Quando estreia e como funciona o The Voice Kids 2023?

A versão infantil do reality musical retorna às telinhas no dia 9 de abril. A temporada 2023 será exibida nos domingos à tarde e conta com Fátima Bernardes na apresentação.

O reality começa com as Audições às Cegas, onde cada técnico monta equipes com 18 vozes, e a disputa vai se afunilando, fase a fase. Durante as Batalhas, trios disputam a permanência no programa, cantando a mesma música, mas apenas uma voz de cada trio é selecionada; na fase dos Shows, as apresentações são individuais, e somente quatro talentos seguem adiante na competição; a fase inédita das Super Batalhas qualifica três candidatos de cada grupo para a semifinal, quando é decidido quem são as duas vozes de cada time a avançar para a final.

No último programa, ao vivo, o voto popular é quem decide quem será a voz escolhida para receber o prêmio de R$ 250 mil e um contrato com a Universal Music.