Recursos / SDKs · ENTREGAR

O player não é uma caixa-preta.É código que você controla.

Um iframe toca o vídeo e para por aí. O SDK do player abre a caixa: o seu código manda tocar, pausar e pular, ouve cada evento do que o espectador faz e lê o estado a qualquer momento. Web em JavaScript, nativo em Expo / React Native, o mesmo player virando peça do seu produto nos dois.

Controle por código: play, pause, seek Eventos do player na sua UI, ao vivo Web em JS e nativo em Expo
web.tsts
// Web: the player becomes a real object in your code
const player = Moviie.getPlayer(iframe)
player.on('ended', () => showCta())
player.seek(90)
player.togglePlay()
Lesson.tsxts
// Native: Expo / React Native, same player
import { MoviieProvider, MoviieVideo } from '@moviie/player-expo'

export function Lesson() {
  return (
    <MoviieProvider>
      <MoviieVideo videoId="vid_8a2f" />
    </MoviieProvider>
  )
}

No site, window.Moviie. No app, @moviie/player-expo. As mesmas três etapas dos dois lados.

Como o SDK resolve

O player vira seu.Nos dois lados.

O SDK do player dá ao seu código três coisas: comandar a reprodução, ouvir cada evento e ler o estado quando precisar. No web é o window.Moviie; no nativo é o @moviie/player-expo. Os nomes mudam, o contrato é o mesmo, e o player passa a obedecer ao seu produto.

Controle

Seu código dirige o player. Play, pause, seek.

Pegue o player e mande tocar, pausar, pular pra um ponto, mudar a velocidade, entrar em tela cheia. No site, pelo window.Moviie; no app, pelo player do useMoviiePlayer. O seu botão fica no comando, não o que veio no controle padrão.

  • play, pause e seek pelo seu código
  • Pular pra qualquer segundo
  • Velocidade, volume e tela cheia
  • Mesma intenção no web e no nativo
Eventos

O player avisa a sua UI. Em tempo real.

Assine ready, play, pause, timeupdate, ended e mantenha a sua interface em sincronia com o que o espectador faz. Pinte a barra no timeupdate, abra o próximo passo no ended, registre o que quiser. getState() te dá o retrato completo do player a qualquer momento.

  • on / once / off pra assinar eventos
  • ready, play, pause, timeupdate, ended
  • getState() pro estado completo
  • Sincronize a sua UI com o player
Nativo de verdade

No app, é componente nativo. Não webview.

O @moviie/player-expo roda sobre o expo-video, com player nativo de verdade no Expo e no React Native, não um iframe embrulhado. MoviieProvider no topo, useMoviiePlayer na tela, MoviieVideo renderizando. Recursos nativos como Picture-in-Picture e Cast entram pela mesma porta.

  • Player nativo sobre expo-video
  • MoviieProvider + useMoviiePlayer + MoviieVideo
  • Picture-in-Picture e Cast
  • Chave publicável mvi_pub_, a secreta fica no servidor
Lado a lado

Iframe sozinho,ou iframe com o SDK.

O mesmo player. A diferença é quem manda nele e o quanto o seu código enxerga.

Só o iframeCom o SDK
Controlar play, pause e seekpelo controle padrãopelo seu código
Eventos na sua UInão chegamready, play, timeupdate, ended
Ler o estado do playernão dágetState() a qualquer hora
No app nativowebviewcomponente sobre expo-video
Sincronizar a sua interfaceadivinhandoem tempo real
Picture-in-Picture e Castfora do seu alcancepelo mesmo SDK

O vídeo, os dois tocam igual. O controle, só um te dá.

Vem junto

Um SDK.A plataforma inteira por trás.

Documentação de verdade

Cada método, evento e propriedade na doc, com exemplos que rodam. Não é PDF de 2019: é docs.moviie.ai/player-api e player-expo.

O par no servidor

O SDK cuida do cliente; a REST api.moviie.ai/v1 e os webhooks cuidam dos dados. Os dois lados conversam, cada um no seu lugar.

Vídeo privado, no seu controle

Link assinado por JWT curto, embed travado por domínio. O SDK toca onde você liberou, e o seu backend é quem assina.

Legendas e dublagem

Faixas de legenda e de áudio chegam no playback. O seu app lê e oferece, sem você montar player de legenda do zero.

Contrato estável

A API do player é versionada: mudança que quebra só entra em virada de versão maior. O seu código não acorda quebrado.

Começa rápido

O primeiro frame aparece quase no clique, entregue da rede global. Seu código entra num player que já é veloz.

Sobre o SDK do player

O que dá pra fazere o que ainda não.

O nativo hoje é pelo @moviie/player-expo, pra Expo e React Native, rodando sobre o expo-video com player nativo de verdade. SDK Swift puro pra iOS está em desenvolvimento, e o Kotlin pra Android vem na sequência. O web em JavaScript já roda em qualquer página.

O embed expõe window.Moviie na página. Você pega o player com Moviie.getPlayer(iframe) e chama play(), pause(), seek() e os outros métodos. Espere o evento ready antes de comandar, e a partir daí o player obedece o seu código.

O ciclo de reprodução inteiro: ready, play, pause, timeupdate, ended, entre outros. Você assina com on, once e off, e usa getState() pra ler o retrato completo do player a qualquer momento. É com isso que a sua UI fica em sincronia com o espectador.

Não, e é de propósito. O SDK do player roda no cliente, controla a reprodução e ouve eventos. A REST api.moviie.ai/v1 e os webhooks rodam no servidor, com a sua chave secreta, e cuidam dos dados e dos eventos de backend. Quem constrói app sério usa os dois, cada um no seu lado.

Próximo passo

Pegue uma chave.Monte o player no seu app hoje.

14 dias de trial pra pôr o player dentro do seu produto: controle por código, eventos na sua UI, web e nativo. A doc está em docs.moviie.ai, com exemplos que rodam.

Controle por código Eventos em tempo real Web em JS e nativo em Expo