# Resolvendo Problemas


> **Информация:**

**Comece pela seção [Solução de Problemas](https://docs-br.kinescope.com/troubleshooting/)** — ela tem todas as ferramentas para resolver problemas e entrar em contato com o suporte.



Se você encontrar um problema com o player, verifique esta seção primeiro. Situações comuns e como resolvê-las estão reunidas aqui.

## Para quem é este artigo

* **Desenvolvedores** — precisam resolver problemas de incorporação do player
* **Proprietários de conteúdo** — precisam diagnosticar problemas de reprodução de vídeo
* **Administradores de plataforma** — precisam ajudar usuários a resolver problemas do player

> **Информация:**

Se o problema não for resolvido após verificar esta seção, entre em contato com o suporte. Veja a seção [Solução de Problemas](https://docs-br.kinescope.com/troubleshooting/) para saber o que coletar e como entrar em contato.



## Problemas de carregamento e exibição

### O player não exibe

**Sintomas:** Espaço vazio, tela branca ou erro de carregamento onde o player deveria estar.

**Possíveis causas e soluções:**

1. **Código de incorporação incorreto**
   * Use o código original do painel de controle do Kinescope
   * Verifique se o código foi copiado completamente, incluindo todos os atributos
   * Certifique-se de que o atributo `allow` está presente no código do iframe

2. **Bloqueio de iframe**
   * Verifique se não há bloqueadores de anúncios no site que possam bloquear iframes
   * Certifique-se de que o domínio não está bloqueado nas configurações de segurança do navegador
   * Verifique a Content Security Policy (CSP) do seu site

3. **Erros de JavaScript**
   * Abra o console do navegador (F12) e verifique se há erros
   * Certifique-se de que não há scripts conflitantes na página

### O vídeo não carrega ou trava

**Sintomas:** O player carrega mas o vídeo não começa a reproduzir, ou a reprodução é interrompida.

**Possíveis causas e soluções:**

1. **Configurações de privacidade**
   * Verifique se o vídeo está disponível para incorporação nas configurações de privacidade
   * Certifique-se de que o domínio do seu site foi adicionado à lista de domínios permitidos
   * Para vídeos com DRM, certifique-se de que o site usa HTTPS

2. **Status de processamento do vídeo**
   * Verifique o status do vídeo no catálogo — ele deve estar completamente processado
   * Aguarde a conclusão do processamento antes de incorporar

3. **Problemas de rede**
   * Verifique sua velocidade de internet usando o [teste de velocidade](https://speedtest.kinescope.io/)
   * Feche todas as abas do navegador exceto a do player e recarregue a página
   * Verifique o console do navegador para erros de rede

4. **Problemas do navegador**
   * Tente abrir o vídeo em um navegador diferente
   * Limpe o cache do navegador e recarregue a página
   * Desative extensões do navegador que possam afetar a reprodução

## Problemas de parâmetros e configurações

### Os parâmetros `seek` e `duration` não funcionam

**Sintomas:** Os parâmetros são especificados na URL, mas o vídeo reproduz desde o início ou completamente.

**Soluções:**

* **Verifique a proteção DRM:** Os parâmetros `seek` e `duration` **não funcionam** com vídeos criptografados por DRM. Use vídeos desprotegidos ou reproduza o vídeo completo
* **Verifique o formato da URL:** Certifique-se de que os parâmetros estão sendo passados corretamente na URL (formato: `?seek=60&duration=30`)
* **Para iframe:** Os parâmetros devem estar na URL do atributo `src`, por exemplo:
  ```html
  <iframe src="https://kinescope.io/embed/123456789?seek=60&duration=30"
          allow="autoplay; fullscreen; picture-in-picture; encrypted-media;"
          frameborder="0"
          allowfullscreen></iframe>
  ```

### O parâmetro `player_id` não é aplicado

**Sintomas:** `player_id` é especificado, mas o template do player não muda.

**Soluções:**

* **Tipo de link:** O parâmetro `player_id` funciona **apenas com links de vídeo** (não com iframe). Certifique-se de que está usando um link como `https://kinescope.io/[VIDEO_ID]?player_id=[PLAYER_ID]`
* **Formato do ID:** Verifique se o ID do template está correto (formato UUID, por exemplo: `1213d24d-4624-4764-bf40-0baaf743377d`)
* **Disponibilidade do template:** Certifique-se de que o template existe e está disponível no seu workspace
* **Para iframe:** Use a configuração do template no código de incorporação ou via iframe API

## Problemas de exibição

### O player exibe com dimensões incorretas

**Sintomas:** O player é muito grande ou pequeno, não se adapta ao tamanho da tela, está cortado.

**Soluções:**

**Para código adaptativo:**
* Verifique os estilos CSS do contêiner `div` — `position: relative`, `padding-top` (para proporção de aspecto) e `width: 100%` devem estar especificados
* Verifique os estilos CSS do próprio `iframe` — `position: absolute`, `width: 100%`, `height: 100%`, `top: 0`, `left: 0` devem estar especificados
* Certifique-se de que o contêiner tem largura suficiente para exibir o player

**Para código fixo:**
* Certifique-se de que os valores corretos de `width` e `height` em pixels estão especificados
* Verifique se a proporção de aspecto corresponde ao vídeo (geralmente 16:9)

**Recomendações gerais:**
* Verifique se não há estilos CSS conflitantes na página que possam sobrescrever as dimensões
* Use as ferramentas de desenvolvedor do navegador para verificar os estilos aplicados

### O modo de tela cheia não funciona

**Sintomas:** O botão de tela cheia não funciona ou está ausente; a transição para tela cheia não acontece.

**Soluções:**

* **Atributo `allowfullscreen`:** Certifique-se de que o atributo `allowfullscreen` está presente no código do iframe
* **Atributo `allow`:** Verifique se o atributo `allow` contém `fullscreen`, por exemplo:
  ```html
  allow="autoplay; fullscreen; picture-in-picture; encrypted-media;"
  ```
* **Dispositivos iOS:** Dispositivos iOS podem exigir configuração adicional. Veja [Modo pseudo-tela cheia para iOS](https://docs-br.kinescope.com/developer-guides/iframe-pseudo-fullscreen-on-ios/)
* **Restrições do navegador:** Alguns navegadores podem bloquear o modo de tela cheia para iframes por razões de segurança

## Problemas de DRM (Widevine)

### Vídeo DRM não reproduz no Android em modo anônimo

**Sintomas:** Vídeo protegido por DRM não reproduz em modo anônimo em dispositivos Android.

**Causa:** De acordo com o Google, a partir da versão 62 do Chrome, o suporte ao Widevine é desativado em modo anônimo no Android. Isso é feito para que os usuários não percam licenças pagas ao fechar abas anônimas.

**Solução:** Use o modo normal do navegador (não anônimo) para assistir vídeos DRM.

Mais detalhes: [Media updates in Chrome 62](https://developer.chrome.com/blog/media-updates-in-chrome-62).

### A gravação de tela é possível com DRM ativado

**Sintomas:** Mesmo com DRM ativado, é possível gravar o vídeo da tela.

**Causa:** Há casos conhecidos em que a gravação de tela é possível mesmo com DRM ativado devido às especificidades dos estilos CSS da página.

**Soluções:**

* **Arredondamento de cantos:** Se um dos elementos pai tem arredondamento (`border-radius`), especifique os estilos CSS: `overflow: initial` ou `overflow: visible`
* **Filtros CSS:** Evite usar `backdrop-filter` ou `filter` na página com vídeo DRM
* **Propriedades CSS:** Se o iframe do player ou elemento pai usa `aspect-ratio` ou `padding-top`, considere formas alternativas de definir dimensões

Mais detalhes: [Chromium issue 362007492](https://issues.chromium.org/issues/362007492).

### O Widevine DRM não funciona em WebView no Android

**Sintomas:** O vídeo DRM não reproduz em WebView no Android.

**Soluções:**

1. **Verificando o suporte a DRM:**
   * Verifique o suporte a DRM via [página de suporte do Shaka Player](https://shaka-player-demo.appspot.com/support.html)
   * Se o resultado for `null`, o suporte a DRM está ausente no seu WebView

2. **Configurando o WebView:**
   * Certifique-se de que o suporte a conteúdo protegido está ativado no WebView
   * Verifique as configurações do WebView para trabalhar com conteúdo de mídia

3. **Recursos adicionais:**
   * [Video.js issue #5563](https://github.com/videojs/video.js/issues/5563)
   * [Stack Overflow: How to play Widevine DRM content in Android WebView](https://stackoverflow.com/questions/47626857/how-to-play-widevine-drm-content-in-android-webview)
   * [Stack Overflow: How to enable protected content in a WebView](https://stackoverflow.com/questions/53143363/how-to-enable-protected-content-in-a-webview)

## Problemas de API e reprodução automática

### O player não inicia quando play() é chamado programaticamente

**Sintomas:** Ao chamar o método `play()` via seu botão ou programaticamente, o player não inicia.

**Causa:** São restrições do navegador. O navegador exige que o usuário clique diretamente no player, não em um botão externo. Isso está relacionado à política de reprodução automática do navegador.

**Soluções:**

* **Solução CSS:** Defina o estilo CSS `pointer-events: none` para o botão (ou outros elementos acima do player), para que o clique passe pelo botão e chegue ao player:
  ```css
  .custom-play-button {
    pointer-events: none;
  }
  ```
* **Alternativa:** Use o botão de reprodução nativo do player em vez de um botão personalizado

Mais detalhes: [Autoplay policy in Chrome](https://developer.chrome.com/blog/autoplay).

### NotAllowedError ao chamar métodos da API

**Sintomas:** Ao chamar métodos da API, o erro "The request is not allowed by the user agent ..." ou "The request is not triggered by a user activation" aparece.

**Causa:** Isso está relacionado ao fato de que alguns métodos da API do navegador requerem ações do usuário (user activation) e só podem ser acionados como resultado direto de um clique ou toque do usuário em um elemento da página.

**Soluções:**

* **Chame no manipulador de eventos:** Certifique-se de que os métodos da API são chamados em resposta a uma ação direta do usuário (clique, toque) em um manipulador de eventos
* **Não use temporizadores:** Não chame métodos da API de `setTimeout`, `setInterval` ou outras operações assíncronas sem ação prévia do usuário
* **Verifique a ativação do usuário:** Use verificações de ativação do usuário antes de chamar métodos, se possível

Mais detalhes: [User activation](https://developer.mozilla.org/en-US/docs/Web/Security/User_activation).

## Problemas de desempenho

### A página trava com muitos players

**Sintomas:** Uma página com múltiplos players carrega lentamente, trava ou consome muitos recursos.

**Soluções:**

1. **Carregamento diferido:**
   * Use o atributo `loading="lazy"` para iframes que estão fora da área visível:
     ```html
     <iframe src="https://kinescope.io/embed/123456789"
             loading="lazy"
             allow="autoplay; fullscreen; picture-in-picture; encrypted-media;"
             frameborder="0"
             allowfullscreen></iframe>
     ```

2. **Desabilitando o pré-carregamento:**
   * Desative o pré-carregamento de vídeo para players que não estão imediatamente visíveis, usando o parâmetro `preload=false`:
     ```html
     <iframe src="https://kinescope.io/embed/123456789?preload=false"
             allow="autoplay; fullscreen; picture-in-picture; encrypted-media;"
             frameborder="0"
             allowfullscreen></iframe>
     ```

3. **Pausa automática:**
   * Use a pausa automática (parâmetro `autopause=1`) para que quando um player reproduzir, os outros pausem:
     ```html
     <iframe src="https://kinescope.io/embed/123456789?autopause=1"
             allow="autoplay; fullscreen; picture-in-picture; encrypted-media;"
             frameborder="0"
             allowfullscreen></iframe>
     ```

4. **Recomendações adicionais:**
   * Limite o número de players carregados simultaneamente na página
   * Use virtualização para listas grandes de vídeos
   * Considere carregar players sob demanda (lazy loading)

Veja mais sobre otimização na seção [Otimização de Carregamento](https://docs-br.kinescope.com/video-player/embedding/#load-optimization) no artigo [Incorporação](https://docs-br.kinescope.com/video-player/embedding/).

## Soluções típicas

### Diagnóstico rápido

Se o problema não for óbvio, execute as seguintes etapas em ordem:

1. **Verifique o console do navegador** (F12) para erros
2. **Verifique o código de incorporação** — use o código original do painel de controle
3. **Verifique as configurações de privacidade** — o vídeo deve estar disponível para incorporação
4. **Verifique o status do vídeo** — ele deve estar completamente processado
5. **Tente um navegador diferente** — o problema pode estar relacionado a um navegador específico
6. **Limpe o cache do navegador** e recarregue a página

### Coletando informações para o suporte

Se o problema não for resolvido, colete informações para uma solicitação de suporte. Veja o checklist completo do que coletar na seção [Solução de Problemas](https://docs-br.kinescope.com/troubleshooting/).

## O que fazer a seguir?

Se o problema não for resolvido:

* Verifique a seção [Incorporação](https://docs-br.kinescope.com/video-player/embedding/) para configurações básicas e exemplos de código
* Veja a [documentação completa do player](https://docs-br.kinescope.com/player-docs/) para soluções avançadas e iframe API
* **Entre em contato com o suporte técnico** — veja a seção [Solução de Problemas](https://docs-br.kinescope.com/troubleshooting/) para saber o que coletar e como entrar em contato

