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

É doloroso aguentar as piadas, diz executivo sobre falhas do app HBO Max

HBO Max chegou ao Brasil em 29 de junho para fazer frente à Netflix e ao Disney Plus - Divulgação
HBO Max chegou ao Brasil em 29 de junho para fazer frente à Netflix e ao Disney Plus Imagem: Divulgação

Rosália Vasconcelos

Colaboração para Tilt, do Recife

26/08/2021 04h00

Desde que chegou ao Brasil, no fim de junho deste ano, clientes da plataforma de streaming HBO Max têm relatado nas redes sociais e em canais online de reclamação problemas com o funcionamento do aplicativo. Os bugs aparecem de diversas formas, desde lentidão geral, congelamento de tela, travamentos repetidos, até dificuldades para avançar e retroceder cenas de filmes. Falhas na configuração de legendas também foram relatadas.

Esses problemas não estão s aos usuários brasileiros. Em entrevista recente dada ao site norte-americano Vulture, executivos da WarnerMedia (empresa detentora da HBO Max) disseram, sem se identificar, que parte das falhas técnicas surgiram após a expansão da plataforma para 39 países — entre eles o Brasil.

"Distribuir milhares de horas de programação da HBO Max exigiu toneladas de largura de banda para adicionar milhares de legendas de novos mercados que não falam inglês", diz a entrevista. Além disso, na mesma época da expansão, a empresa decidiu integrar uma camada de anúncios em uma plataforma que antes era livre de propagandas, outro fator que pode ter agravado o caso.

Um executivo sênior da empresa chegou a confessar ao site que é "doloroso" aguentar todas as piadas e críticas que são feitas com a plataforma na internet. No Twitter, por exemplo, há vários memes. Alguns chegam a dizer que o aplicativo foi feito como se a HBO Max odiasse seus clientes.

"O aplicativo hbo max foi projetado como se estivessem bravos com você por usá-lo", diz o texto abaixo.

"Nós sabemos de todos os bugs. Não somos cegos", disse o executivo da empresa, frisando que corrigir os problemas existentes leva tempo — e que os consumidores precisam ter um pouco mais de paciência.

App criado a partir de outros

Problemas de instabilidade não são novos para a empresa. Quem é fã de "Game of Thrones" deve se lembrar de que o serviço de streaming antecessor, o HBO Go, apresentou falhas.

E, segundo a matéria da Vulture, isso reflete no funcionamento do aplicativo atual, que não foi criado do zero. Ele é uma versão adaptada dos antigos serviços HBO Go e HBO Now.

Essas duas aplicações, embora sólidas na maior parte do tempo, foram projetadas para garantir que não falhassem quando milhares de pessoas acompanhassem a série "Game of Thrones" em uma noite de domingo, por exemplo. Um tipo de produto bem diferente do que se propõe a plataforma Max, e que parecia não preocupar tanto a companhia com a experiência do usuário.

Obviamente, agora a HBO Max precisa lidar com um tráfego muito maior de uma só vez e está servindo muito mais conteúdo para um público maior — s que estão espalhados por todo o mundo, em vez de morar em apenas um país.

Possível solução vem por aí

Os executivos da HBO Max declararam à Vulture, em primeira mão, que um novo aplicativo, criado do zero para atender às necessidades do serviço atual, será lançado até 2022. "Embora ainda não tenha sido anunciado publicamente, vamos substituir todos os aplicativos de TV nos próximos quatro ou cinco meses", disse o executivo da WarnerMedia.

Os usuários do Roku serão os primeiros na fila a obter o novo aplicativo HBO Max junto com os clientes do PlayStation. Os consumidores da Apple TV provavelmente terão que esperar até o fim deste ano, enquanto uma revisão dos aplicativos móveis e baseados na web está marcada para o início de 2022.

O novo app da HBO, aliás, já está no forno desde o fim de 2020, quando a WarnerMedia contratou uma empresa chamada You.i TV, com o objetivo de melhorar a experiência de seus clientes.

Novo app, novos bugs?

Antes mesmo que os clientes possam comemorar a futura versão da plataforma — mais robusta — os executivos da WarnerMedia ponderaram que todo lançamento pode resultar em alguns novos bugs a curto prazo. Mas prometeram que o novo app "será muito melhor do que o que está por aí", mais estável e que "vai funcionar melhor em todas as áreas".

Uma vez que a mecânica básica do aplicativo seja corrigida, segundo as fontes da HBO Max, o plano é começar a introduzir novos recursos e evoluções mais perceptíveis, mudanças que farão uma interface mais "sofisticada, legal e sexy", prometeram.

Melhor catálogo, pior serviço?

A HBO Max não é a primeira e nem a única plataforma de streaming que apresenta problemas. Cada app lida com críticas específicas sobre o funcionamento de sua interface. No caso do aplicativo da WarnerMedia, contudo, à medida que o serviço se expande para outras praças, as reclamações têm sido cada vez mais intensas devido às falhas graves em funcionalidades básicas.

Com esse anúncio feito pelos executivos da plataforma, existe a esperança de que o serviço de streaming da HBO Max traga também uma melhor experiência ao usuário e se torne mais competitivo em termos de funcionalidades.

Hoje, a receita operacional estimada da HBO Max gira em torno de US$ 2,3 bilhões e a plataforma possui um dos melhores catálogos da atualidade. Além disso, a reunião das produções da HBO com as da Warner Bros adiciona peso à HBO Max, que recebe com exclusividade os filmes do estúdio 35 dias após a estreia deles nos cinemas.