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

Freestyle dispensa videogame e promete jogo com imagem de até 100 polegadas

The Freestyle é um projetor portátil lançado em 2022; nova edição permite jogar games sem console - Guilherme Tagiaroli/Tilt
The Freestyle é um projetor portátil lançado em 2022; nova edição permite jogar games sem console Imagem: Guilherme Tagiaroli/Tilt

De Tilt*, em Las Vegas

04/01/2023 08h39Atualizada em 05/01/2023 10h01

O dispositivo Freestyle, que transforma sua parede em uma smart TV, foi um dos destaques da Samsung na edição de 2022 da CES, a maior feira de tecnologia do mundo, realizada anualmente em Las Vegas (EUA). Neste ano, a empresa sul-coreana decidiu atualizar o projetor que não é bem um projetor.

A nova edição agora terá o Samsung Gaming Hub, uma função de TVs da marca que possibilita jogar Xbox direto da televisão, sem a necessidade de ter um console.

Como funciona

O processo é feito pela internet por meio do Cloud Gaming — serviço pago da Microsoft que dá o a vários jogos pela nuvem.

Interface do Samsung Cloud Gaming numa TV - Divulgação - Divulgação
Interface do Samsung Cloud Gaming numa TV; no Brasil funciona recurso de jogos do Xbox e GeForce Now
Imagem: Divulgação

Basta ter o à internet, uma , ligar o projetor Freestyle, conectar um controle e começar a jogatina numa projeção na parede de até 100 polegadas.

Vale ressaltar que o Freestyle permite conectar um videogame a ele. No entanto, é necessário ter um cabo micro HDMI — que, segundo nosso teste da versão de 2022, é bem difícil de se achar por aí.

Logo, a adição deve facilitar a vida de quem joga o videogame da Microsoft e não quer gastar muito.

Sem contar que é transportar o Freestyle é muito mais fácil que levar para uma viagem uma TV mais o console.

Visão de cinema

Outra função destacada pela fabricante é a possibilidade de juntar a imagem de dois Freestyle (sendo um o modelo novo e outro podendo ser o antigo), criando uma projeção que lembra as de sala de cinema, como Tilt pode acompanhar durante evento da Samsung na CES 2023.

Ainda que este processo não tenha sido mostrado ao vivo, é necessário usar o app Smart Things para "parear" os dois modelos. Após observar o ambiente, ele sobrepõe a projeção dos dois, criando uma projeção na proporção 21:9.

Dois projetores Freestyle unindo imagens para criar uma projeção no estilo tela de cinema - Guilherme Tagiaroli/Tilt - Guilherme Tagiaroli/Tilt
Dois projetores Freestyle unindo imagens para criar uma projeção no estilo tela de cinema
Imagem: Guilherme Tagiaroli/Tilt

Durante apresentação da Samsung, Tilt assistiu por um tempo a exibição do filme Jumanji 2 e, de fato, a qualidade da imagem era boa e semelhante ao formato usada em salas de cinema.

Só não foi possível checar o nível de som. Mas a julgar por nossa análise da versão anterior, tudo indica que deva ser uma qualidade ao menos satisfatória.

O recurso de visão de cinema pode ser legal para ver filmes ou pode servir até como uma maneira mais clara de visualizar fotos panorâmicas feitas pelo celular.

A Samsung não deu muitos detalhes do aparelho. Disse apenas que a edição de 2023 conta com os recursos acima e que ele deve chegar ao mercado brasileiro ainda neste ano. Não há previsão de preço.

O Freestyle lançado em 2022 chegou no mercado nacional por quase R$ 7.000. Atualmente, ele é encontrado no varejo por cerca de R$ 3.800.

var Collection = { "path" : "commons.uol.com.br/monaco/export/api.uol.com.br/collection/tilt/lancamentos/data.json", "channel" : "tecnologia", "central" : "tilt", "titulo" : "Lançamentos", "search" : {"tags":"79815"} };