Player: solução de problemas

Checklist do que verificar quando o vídeo não aparece ou não toca.

Antes de investigar a fundo, passe pelo checklist abaixo — ele resolve a grande maioria dos casos. Os dois primeiros itens respondem por quase todos os chamados de "o vídeo não aparece".

Checklist rápido

Para quem programa

Nada acontece e nenhum erro aparece? Confira, nesta ordem:

  1. O elemento existe antes do construtor. Chamar new SpallaPlayer('#player') antes do <div> existir no HTML falha silenciosamente em alguns fluxos — mantenha os scripts no fim do corpo da página ou espere o evento de carregamento.

  2. Trate a Promise da carga. Uma rejeição de player.load(id) sem tratamento pode não aparecer em lugar nenhum:

    player.load('SEU_ID_AQUI').catch(console.error);
  3. Ligue os logs. A maioria dos problemas fica visível com estas duas linhas:

    player.on('error', console.error);
    new SpallaPlayer('#player', { debug: 'info' });

Cenários específicos

CSP bloqueando o player

Sintoma: o player carrega, mas nunca reproduz nada, com erros de Content Security Policy no console mencionando blob: ou worker-src.

Causa: o player usa um Web Worker (criado a partir de um Blob) para transporte de rede e transmux. Uma política de CSP restritiva pode bloquear isso.

Solução: adicione blob: a worker-src (e, se aplicável, a script-src) na sua política de CSP. Se isso não for possível no seu ambiente, o arquivo wasm_exec.js que acompanha o tarball é justamente a reserva para esse caso — sem Worker disponível, o player cai automaticamente para o thread principal, sem quebrar, apenas com menos paralelismo.

Testes automatizados falham com erro de mídia

Sintoma: todo conteúdo termina em erro de mídia (MEDIA_ERROR ou equivalente), readyState do <video> fica em 0, buffered fica vazio — mesmo que o mesmo conteúdo funcione perfeitamente num Chrome normal.

Causa: o Chromium empacotado com o Playwright/Puppeteer não inclui os codecs de vídeo licenciados (H.264/AAC), que são os mais comuns em streaming HLS. E nem sempre é óbvio: MediaSource.isTypeSupported(...) pode retornar true mesmo sem o codec real disponível.

Solução: use automação apenas para validar DOM, barra de controles e menus (coisas que não dependem de decodificar vídeo de verdade). Para validar reprodução de fato, use um Chrome/Chromium instalado normalmente na máquina, fora do Playwright.

Chromecast "não funciona"

Esse sintoma tem causas bem diferentes entre si — o primeiro passo é identificar qual delas é a sua:

O que você observaCausa provável
Nada acontece ao clicar no botão de cast, sem erroVerifique se há um listener de erro (player.on('error', ...)) — falhas de cast às vezes só aparecem ali
O botão de cast nunca apareceSó aparece quando há um receptor Chromecast disponível na mesma rede; teste com um dispositivo real
Áudio toca, mas sem imagem no ChromecastGeralmente é composição de camadas na sua própria página — confira se algum elemento seu está sobrepondo o vídeo com z-index ou fundo opaco
Cast conecta e desconecta com erro, em conteúdo específicoPode ser incompatibilidade de codec/nível do aparelho com aquele conteúdo — reporte à Spalla com o ID do conteúdo
Funciona para VOD mas nunca para conteúdo ao vivoVerifique a versão do player — releases muito antigas podem ter uma limitação conhecida nesse cenário

Nunca teste Chromecast em navegador automatizado (Playwright, Puppeteer, Selenium): a descoberta de dispositivos Cast não funciona nesse contexto. Valide sempre com um dispositivo físico na mesma rede.

Aparelho de TV mostra a interface errada / controle remoto não navega

Falta deviceClass: 'tv' (e isApp: true em apps empacotados) no construtor — ou o controle remoto precisa ser registrado, no caso do Tizen. Veja o guia de apps de TV.

Informações para o suporte

Ao abrir um chamado, inclua:

  1. A versão do player — SpallaPlayer.version no console.
  2. O localizador da tela de erro (equivale a player.getViewId()) e a data/hora em UTC da falha.
  3. O ID do conteúdo e o endereço da página onde ele está incorporado.
  4. Uma cópia do console do navegador (aba Console do F12), se houver mensagens.

Nesta página