DRM-X 6.0 logo de pomba e ramo de oliveiraDRM-X 6.0Documentação
◎ Português

Reprodução Web e HTML5

Integrar DRM-X 6.0 reprodução Web protegida com o Universal Player, qualificado Shaka, PHP, ASP.NET Core, automático DRM seleção, e diagnósticos seguros.

Ver MarkdownExemplos onlineAtualizado em 2026-10-26

Para personalizar a interface e consultar valores padrão e exemplos de ciclo de vida, leia PLAYER-UI-CONFIGURATION.md. Os painéis pop-up do player são opacos; a opacidade das legendas e marcas d’água é configurada separadamente.

Use Web SDK 1.2.0-beta.7 após validar Published Content ID em DRM-X Web Player. Seu site mantém login e regras próprios. Comece com um kit de backend completo e adicione o componente abaixo.

Use primeiro o exemplo completo#

O pacote Web contém o mais recente JavaScript local Universal Player e declarações, qualificados Shaka, uma aplicação PHP executável, um exemplo ASP.NET Core executável, e uma integração README. As páginas de produção podem carregar Shaka e Universal Player do DRM-X CDN; o pacote mantém os arquivos locais atuais para revisão, desenvolvimento e retorno controlado.

  1. Configure Site ID, Site Key e Access Key no servidor.
  2. Defina o arquivo protegido Published de confiança Content ID e a política nomeada.
  3. Substitua o login de exemplo e a decisão de direito por sua lógica de negócio.

Responsabilidades mínimas do cliente#

<drmx-universal-player
  content-id="your-published-content-id"
  session-endpoint="/api/drmx/playback-session">
</drmx-universal-player>

Antes do componente, carregue o runtime Shaka validado e o script Universal Player atual do kit completo. Ao pressionar Play, ele chama seu endpoint autenticado. Este verifica sessão e permissão, escolhe conteúdo e política confiáveis, cria Contract v1 e devolve com Cache-Control: no-store.

O navegador não escolhe a segurançaSua infra-estrutura mapeia o usuário autenticado e referência de catálogo confiável para o modelo DRM-X Content ID e política.

Comportamento automático DRM#

  • Windows Microsoft Edge prefere PlayReady. Se a rota validada falhar antes de reproduzir, Auto pode recorrer de forma limitada a Widevine.
  • Chrome e os navegadores Android suportados usam Widevine.
  • Safari no iPhone e iPad usa HLS FairPlay nativo. No macOS Safari compatível, Shaka MSE FairPlay validado tem preferência quando disponível, com alternativa HLS nativa.
  • Navegadores compatíveis da Huawei usam o caminho qualificado WisePlay e o comportamento de qualidade automático conservador.

Lista de verificação para produção#

  • Sirva tudo sobre HTTPS e mantenha Access Keys em segredos de servidor.
  • Devolver as respostas de sessão de reprodução com Cache-Control: no-store.
  • Não persista em URLs manifestos, tokens ou respostas de sessão em localStorage.
  • Ative os logs detalhados sem dados sensíveis apenas por escolha explícita e por tempo limitado. Não grave bytes de licença ou dados de autorização.
  • Teste físico Windows Edge, macOS Safari, iPhone/iPad Safari, Android, e todas as classes de dispositivos que você anuncia.
Web SDK

Reprodução HTML5 com um Web Component#

<script
  src="https://drm-x6-cdn.1aicloud.com/shaka-player-5.2.4-drmx.2-6557ae581f1c.js"
  integrity="sha384-QzxDZ19XaYAL308fvtVjFjUX9RpRxtSfEZ1k1lm8FsRuML1MgNEORVMCtmToCFb8"
  crossorigin="anonymous"></script>
<script
  src="https://drm-x6-cdn.1aicloud.com/drmx-universal-player-1.2.0-beta.8-26bbb1dfef2c.js"
  integrity="sha384-tnp3UFe+6ZU/QKoKQq2zU8Z3J7BX+GI1/L+Z3Y8+AmJkYI3+owP6e+A4npzWIFdA"
  crossorigin="anonymous"></script>

<drmx-universal-player
  content-id="course-12-lesson-4"
  content-type="vod"
  session-endpoint="/api/drmx/playback-session">
</drmx-universal-player>

O navegador chama apenas o seu endpoint autenticado da mesma origem. O Auto escolhe o manifesto apropriado suportado DRM e registado DASH/HLS. A taxa de bits, o idioma/canal de áudio, as legendas, o Picture- in- Picture, o ecrã completo e a velocidade de reprodução são incorporados.

Usando Shaka, Video.js, Bitmovin, ou outro EME reprodutor

Peça Contract v1 ao backend, carregue manifestUrl e inclua Authorization: Bearer {drmLicenseToken} apenas nas solicitações de licença DRM e certificado FairPlay. Preserve exatamente os bytes opacos de desafio e resposta. Ao terminar, use a rota de liberação retornada.

Listas de reprodução e controles compartilhados do Universal Player#

Web e Android compartilham painel escuro e controles azuis compactos. Há próximo/anterior, aleatório, repetir um/todos e avanço automático cancelável. Cada item pede nova autorização. Capítulos e transcrição vêm do catálogo.

Há velocidade, temporizador, legendas, qualidade permitida, idiomas, marcadores de sessão e loop A–B. Web inclui atalhos, retomada local opcional por espectador, busca de transcrição e PiP compatível. Android mantém downloads Widevine offline e renovação. Transmissão a outra tela e progresso entre dispositivos exigem integração adicional.

Configurações de logotipo profissional e empresarial

A marca não fica sobre o vídeo. Clique com o botão direito no Web ou abra Settings → About player para ver logo autorizado, informações e versão. Botão redondo e menu escuro são comuns ao Android. Tela cheia Web inclui seletor de lista.

No backend confiável, defina playerBranding como {"mode":"hidden"} ou {"mode":"custom","logoUrl":"https://your-site.example/logo.png","label":"Your brand"}. A plataforma verifica Professional ou Enterprise ativo. Outros planos usam {"mode":"default"}; pedidos personalizados ou ocultos sem autorização retornam 403. É separado da marca d’água de segurança.

O download PHP contém lista e marca editáveis. O ZIP Android inclui o callback de lista. Mantenha a autorização no backend e nunca embuta credenciais de cliente API nos reprodutores.

Limite opcional de 1080p somente para celulares#

Web SDK 1.2.0-beta.4 adiciona limite opcional para celulares. Deixe sem configurar para manter UHD. Configure antes do primeiro Play:

<drmx-universal-player
  content-id="your-published-content-id"
  session-endpoint="/api/drmx/playback-session"
  mobile-max-height="1080">
</drmx-universal-player>

// Equivalent component option; retained for subsequent playlist items:
await component.play({mobileMaximumHeight: 1080});
// Remove the option before a new playback:
await component.play({mobileMaximumHeight: null});

// Low-level API, for a video element you own:
await DrmXUniversalPlayer.start({
  video, contentId: 'your-published-content-id',
  sessionEndpoint: '/api/drmx/playback-session',
  mobileMaximumHeight: 1080
});

Aplica-se a aparelhos detectados como celulares. Tablets, computadores e TVs mantêm o limite anterior. A detecção usa dicas do navegador e user-agent; largura da tela não define resolução. Se a aplicação conhece a classe, use device-class="phone" ou deviceClass: "phone". Outros valores: auto, tablet, desktop, tv. A classificação do navegador é apenas indicativa.

SDK envia o menor platformCapabilities.maximumHeight antes da autorização. O endpoint deve repassá-lo ou reduzi-lo. O limite devolvido não pode superar o pedido. Auto e escolha manual respeitam a faixa após rotação, tela cheia, novas tentativas e mudança de lista. Política DRM assinada e decodificador podem reduzir mais. Valores são inteiros de 144 a 4320; ausência ou null desativa o limite opcional.

Safari requer HLS filtrado

O backend deve retornar nativeHlsQuality.autoUrl vinculado à sessão e URL de qualidade apenas com versões válidas, preservando grupos de áudio e legendas. O PHP completo atual implementa isso. Reduzir só o número com HLS principal irrestrito não economiza banda. SDK rejeita limite elevado ou resposta FairPlay limitada sem o descritor exigido. Outros backends precisam do mesmo contrato antes de ativar.

Opções SDK nativas

Apple Universal Player 1.0.0-beta.1 aceita mobileMaximumHeight: 1080 somente na classe nativa celular. O endpoint retorna um manifesto principal filtrado, verificado antes da mídia. Android 1.0.0-beta.1 aceita mobileMaximumHeight = 1080 em WidevineCapabilities.playbackCapabilities; use clientPlatform = "android" para celular e explicitamente android-tablet ou android-tv para outras classes. Aplique limite offline equivalente a novos downloads. Downloads existentes são mantidos.

Verificar sua integração

  1. Empacote origem com 1080p, versões inferiores e UHD. Confirme reprodução sem limite configurado.
  2. Ative 1080 no celular. Confira limite autorizado, manifesto filtrado, menu Auto/manual e dimensões decodificadas. Nenhuma opção permitida deve superar 1080p.
  3. Teste saltos, qualidade, áudio, legendas, anúncios e avanço da lista. Pare e confirme a liberação da sessão.
  4. Use a mesma opção no computador e tablet: a restrição só para celulares não deve reduzir o limite deles. Restrições atuais de política ou aparelho continuam válidas.

O limite de resolução não define bitrate nem garante economia fixa. Aplique regras resistentes a pedidos alterados no backend confiável e na política DRM correspondente. Dicas do cliente não são prova. Sem versões válidas, deve ocorrer erro; não volte silenciosamente a UHD.

Controles de tela cheia consistentes no iPhone Safari#

Web SDK 1.2.0-beta.4 mantém os controles Web Player em tela cheia, inclusive na página PHP de anúncios. No iPhone usa tela cheia do elemento quando disponível, ou amplia o reprodutor na página. As barras podem permanecer. Não muda para o reprodutor de vídeo próprio do iPhone. Todas as plataformas usam o mesmo menu para qualidade, áudio e legendas.

Áudio e legendas refletem as faixas atuais e atualizam após HLS nativo aplicar a mudança. Desligar e ligar CC preserva o último idioma. Anúncios têm controles separados; os controles normais retornam com o conteúdo.

Testar qualidade, idiomas e anúncios#

  1. Inicie com toque ou clique real. As regras do navegador para reprodução automática e som continuam válidas.
  2. Abra Configurações e confira Qualidade, Áudio e Legendas. Auto usa versões permitidas; a escolha manual não eleva o limite autorizado.
  3. Altere o idioma de áudio, selecione um idioma de legendas, depois desligue o CC e ligue. Confirme que os rótulos refletem as faixas ativas e que a preferência por legendas é mantida.
  4. Entre em tela cheia no iPhone Safari e Edge. Web Player mantém controles compartilhados; iPhone pode ampliar na página com barras visíveis.
  5. Se usar anúncios, teste as pausas antes, durante e após o conteúdo, incluindo mudança de qualidade. A página PHP de anúncios fornece um laboratório. Anúncios integrados e Google IMA são modos diferentes; verifique a carga do serviço escolhido em cada navegador compatível.

Para banda, siga Limite opcional de 1080p somente para celulares. Deixe sem configurar para conservar UHD. Não define bitrate fixo nem garante economia percentual.

Player web com vídeo, legendas bilíngues e ajustes de aparência
Aparência da legenda