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

Tilt Lab Day

Tilt analisa e compara ao vivo qual eletrônico leva a melhor


É hoje! Tilt Lab Day avalia e elege os melhores fones de ouvido, às 16h

Da Redação

Em São Paulo

09/08/2022 04h00

Tilt vai dar uma super ajuda para quem está pensando em comprar um fone de ouvido. Nesta terça (9), às 16h, acontece a quarta edição do Tilt Lab Day, evento que avalia os melhores produtos de tecnologia no mercado. Ele será transmitido ao vivo pelo canal do UOL no YouTube. Você também poderá assisti-lo no vídeo no topo da página.

Nove jurados avaliaram 16 fones de ouvido em quatro categorias: fones para academia, games, música e dia-a-dia. O grande campeão em cada disputa será anunciado ao vivo pelo apresentador e jornalista Zé Luiz, com a presença de convidados.

Para chegar no resultado final, o júri deu notas de 0 a 10 para cada modelo em quatro quesitos: qualidade do som; ergonomia e design; usabilidade; e sistema (que engloba características como qualidade do bluetooth e da bateria).

Confira os fones de ouvido avaliados:

Academia

JBL Endurance Race TWS

Fone de ouvido JBL Endurance Race TWS - Divulgação/JBL - Divulgação/JBL
Imagem: Divulgação/JBL
Preço: R$ 507,55

Motorola VerveLoop2+

Fone de ouvido Motorola VerveLoop2+ - Divulgação/Motorola - Divulgação/Motorola
Imagem: Divulgação/Motorola
Preço: R$ 215,99

Philips Sport BT TAA3206BK/00

Fone de ouvido Philips Sport BT TAA3206BK/00 - Divulgação/Philips - Divulgação/Philips
Imagem: Divulgação/Philips
Preço: R$ 203,11

Edifier W280NB

Fone de ouvido Edifier W280NB - Divulgação/Edifier - Divulgação/Edifier
Imagem: Divulgação/Edifier

Gamer

Logitech G733

Fone de ouvido Logitech G733 - Divulgação/Logitech - Divulgação/Logitech
Imagem: Divulgação/Logitech
Preço: R$ 1.399

Corsair Void Elite Stereo

Fone de ouvido Corsair Void Elite Stereo - Divulgação/Corsair - Divulgação/Corsair
Imagem: Divulgação/Corsair
Preço: R$ 598

Warrior Rama PH219

Fone de ouvido Warrior Rama PH219 - Divulgação/Multilaser - Divulgação/Multilaser
Imagem: Divulgação/Multilaser
Preço: R$ 71,16

HyperX Cloud Alpha S

Fone de ouvido HyperX Cloud Alpha S - Divulgação/HyperX - Divulgação/HyperX
Imagem: Divulgação/HyperX
Preço: R$ 549,90

Música

Sennheiser Momentum 3 Wireless

Fone de ouvido Sennheiser Momentum 3 Wireless - Divulgação/Sennheiser - Divulgação/Sennheiser
Imagem: Divulgação/Sennheiser
Preço: R$ 2.882,66

Beats Studio 3

Fone de ouvido Beats Studio 3 - Divulgação/Beats - Divulgação/Beats
Imagem: Divulgação/Beats
Preço: R$ 2.299,99

Edifier STAX SPIRIT S3

Fone de ouvido Edifier STAX SPIRIT S3 - Divulgação/Edifier - Divulgação/Edifier
Imagem: Divulgação/Edifier

LG TONE Free FP9

Fone de ouvido LG TONE Free FP9 - Divulgação/LG - Divulgação/LG
Imagem: Divulgação/LG

Dia a Dia

Amazon Echo Buds (2ª geração)

Fone de ouvido Amazon Echo Buds (2ª geração) - Divulgação/Amazon - Divulgação/Amazon
Imagem: Divulgação/Amazon
Preço: R$ 749

Pulse Drop PH345

Fone de ouvido Pulse Drop PH345 - Divulgação/Multilaser - Divulgação/Multilaser
Imagem: Divulgação/Multilaser
Preço: R$ 160,90

Samsung Galaxy Buds 2

Fone de ouvido Samsung Galaxy Buds 2 - Divulgação/Samsung - Divulgação/Samsung
Imagem: Divulgação/Samsung
Preço: R$ 409

Philco Air Beats

Fone de ouvido Philco Air Beats - Divulgação/Philco - Divulgação/Philco
Imagem: Divulgação/Philco
Preço: R$ 288,30

O UOL pode receber uma parcela das vendas pelos links recomendados neste conteúdo. Preços e ofertas da loja não influenciam os critérios de escolha editorial.