Interface Video Player com um quadro de amostra do trailer Sintel.
Interface Video Player com um quadro de amostra do trailer Sintel.
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
← Todos os guias nativos

Xodera Plugins · Bubble Native

Xodera Video Player Native

Exiba lições, demonstrações de produtos e transmissões ao vivo suportadas dentro do seu aplicativo, com controles de reprodução, tela cheia e faixas de idioma disponíveis.

Public beta guides · Haptics instructions are in its Bubble listing

Public beta offer: free Bubble install · 7-day card trial, then US$1.50/month per plugin/project.

Documentação revisada 6 novembro 2026

Exemplos práticos

Links de capítulos em um aplicativo de treinamento

Um aprendiz precisa reproduzir um passo de uma demonstração sem navegar para um reprodutor externo.

`source_url = Current Lesson’s video URL`; `poster_url = Current Lesson’s cover`; cada Capítulo armazena um horário de início controlado pelo aplicativo.

Clique no capítulo → se mudar a fonte, aguarde `source_loaded` → Seek para `position_seconds` → Play. Use Set playback rate para uma demonstração detalhada e Enter fullscreen quando solicitado.

Leia `position_seconds`, `duration_seconds` e `is_fullscreen`; seu fluxo de trabalho armazena o progresso da lição apenas para a fonte atual.

Em `player_error`, mostre `error_code`, preserve o progresso e ofereça Reload video. Um evento de conclusão não prova que a lição ou avaliação de segurança foi aprovada.

Use arquivos de vídeo diretos ou streams suportados. Este reprodutor não exporta vídeos.

Demonstrações em vídeo nas listagens do marketplace

Uma imagem de produto sozinha não pode explicar como um item funciona, mas um vídeo externo interrompe o fluxo de compra.

`source_url = Selected Listing’s demonstration URL`; `poster_url = its thumbnail`; `muted = yes` para uma pré‑visualização inicial intencionalmente silenciosa.

Abra a Listagem selecionada → vincule seu vídeo → Play após uma ação do usuário. Ofereça Set muted para som e Enter fullscreen para inspeção mais detalhada. Vincule `is_active` ao detalhe visível.

Use `has_source`, `is_buffering` e `status` para distinguir vídeo ausente, carregando e mídia pronta.

Ao substituir a fonte, pare de aplicar o progresso e as seleções de faixa anteriores. Exiba uma miniatura de fallback quando o arquivo selecionado não for suportado.

Use arquivos de vídeo diretos ou streams suportados. Este reprodutor não exporta vídeos.

Escolha as faixas de idioma disponíveis em um fluxo compatível

Um aplicativo multilíngue precisa oferecer as faixas que uma fonte específica realmente contém.

`source_url = Selected Programme’s accepted stream URL`; a própria fonte deve fornecer faixas de áudio/legenda compatíveis.

Em `tracks_changed`, leia o `audio_tracks_json` atual e o `subtitle_tracks_json`; construa escolhas no seu aplicativo e chame Select audio track ou Select subtitle track com o índice atual.

Use `selected_audio_index`, `selected_subtitle_index` e `source_generation` para associar a escolha a esta fonte.

Reconstrua as opções após cada mudança de fonte. Se uma faixa estiver ausente ou não for suportada, mantenha a faixa padrão e mostre essa disponibilidade de forma honesta.

Use arquivos de vídeo diretos ou streams suportados. Este reprodutor não exporta vídeos.

O que funciona agora

Public beta. Use the documented controls and actions; test supported formats, permissions and device behavior in your own native app. Browser preview does not validate native device output.

Crie o fluxo de trabalho

Use as ações beta disponíveis abaixo e teste o resultado em seus dispositivos-alvo.

Estes exemplos utilizam registros de aplicativo como Lesson, Message e Order. Substitua-os pelos seus próprios tipos de dados e nomes de elementos. Endereços de mídia de exemplo devem ser substituídos pelos seus próprios arquivos.

  1. Defina source_url = Selected Lesson's video_url e poster_url = Selected Lesson's poster_url. Use auto ou progressive para um MP4; use hls para um stream HLS.

  2. Após playback_ready, use Seek para retomar no position_seconds salvo. O usuário inicia Play. Defina is_active para indicar se a visualização da lição está aberta.

  3. Adicione os controles Play, Pause, Seek, Set playback rate e Enter fullscreen. Exiba position_seconds e duration_seconds.

  4. Após tracks_changed, mostre as opções audio_tracks_json e subtitle_tracks_json disponíveis para este vídeo. Passe o índice selecionado para Select audio track ou Select subtitle track. No evento ended, salve o progresso.

Diagrama de fluxo de trabalho — não é uma captura de tela do aplicativo

Configure uma vez

Crie ou escolha seu projeto de aplicativo Bubble em BestPlugins → Dashboard → Plugins. Escolha Xodera Video Player Native, copie sua chave, então abra Bubble → Plugins → Xodera Video Player Native e cole-a em licensing_api_key. Salve uma vez; depois use as ações abaixo. Cada plugin em cada projeto tem sua própria chave.

Use um endereço de vídeo ou stream direto. Um endereço YouTube ou de página web Vimeo não é um arquivo de vídeo direto. A reprodução não requer acesso a câmera ou microfone.

Configure uma vez
  1. Crie ou escolha seu projeto de aplicativo Bubble em BestPlugins → Dashboard → Plugins.
  2. Escolha este plugin e copie sua chave de projeto.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Adicione o elemento, escolha os dados do seu aplicativo e construa o fluxo de trabalho abaixo.
  5. In the dashboard, review and confirm the 7-day card trial for this plugin. It then costs US$1.50/month per app project, including development and production. Cancel before the trial ends to avoid the first charge.
Instalação e assinatura

For Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit and Haptics: free Bubble installation, a 7-day trial with a card, then US$1.50 per month per plugin and app project. Development and production are included, with no operation cap. File-size and feature limits still apply. Review billing and cancellation before confirming. Other plugins remain unavailable for purchase.

Salve o resultado no seu aplicativo

Exemplo WatchProgress: owner = Current User, lesson = Selected Lesson, seconds = Video Player's position_seconds, duration = Video Player's duration_seconds. Salve apenas para o vídeo atualmente selecionado. Os índices de faixa pertencem a esse vídeo e não devem ser armazenados como escolhas de idioma permanentes.

Falha, cancelamento e recuperação

Em player_error, mostre error_code e ofereça Reload video. Recarrega sem iniciar a reprodução. Selecionar outra fonte limpa as escolhas de faixa antigas. Sair da visualização pausa o vídeo; o usuário pressiona Play para continuar.

Capacidades e limites

Velocidades: 0.5, 1, 1.5 e 2. Volume: 0–1. Formatos: auto, progressive, HLS e Android‑only DASH. As faixas disponíveis dependem do arquivo. Use -1 para desativar uma faixa; -2 significa desconhecido e não pode ser selecionado. Sem edição, exportação de vídeo, DRM, picture‑in‑picture ou cache offline permanente.

Configurações, ações e resultados

Use esses nomes em Bubble. Recursos planejados são marcados separadamente.

Configurações beta disponíveis

Configurações do elemento

source_url · textposter_url · textcontent_type · textrate · numbervolume · numbermuted · yes/noloop · yes/nois_active · yes/nodisabled · yes/nonative_controls · yes/noui_text_json · textlanguage · text

Estados

is_playing · yes/nois_buffering · yes/nopending_play · yes/nois_live · yes/nomuted · yes/noloop · yes/nohas_source · yes/nois_fullscreen · yes/noposition_seconds · numberduration_seconds · numbervolume · numberrate · numbersource_generation · numberselected_audio_index · numberselected_subtitle_index · numberstatus · textaudio_tracks_json · textsubtitle_tracks_json · texterror_code · texterror_message · text

Eventos

source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_error

Ações e suas entradas

PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle track
Configurações do elemento · 12
source_urltext · Padrão: ""
Valor de exemplohttps://bestplugins.online/native-samples/lesson.mp4
Exemplo de expressão BubbleSelected Lesson's video_url
Endereço do arquivo de áudio, vídeo ou imagem selecionado. Use um tipo de arquivo suportado por este plugin.
poster_urltext · Padrão: ""
Valor de exemplohttps://bestplugins.online/native-samples/poster.jpg
Exemplo de expressão BubbleSelected Lesson's poster_url
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
content_typetext · Padrão: "auto"
Valor de exemploauto
Exemplo de expressão BubbleSelected Lesson's video_content_type
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
ratenumber · Padrão: 1
Valor de exemplo1.5
Exemplo de expressão BubbleSpeed Dropdown's value
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
volumenumber · Padrão: 1
Valor de exemplo0.8
Exemplo de expressão BubbleVolume Slider's value
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
mutedyes/no · Padrão: false
Valor de exemplono
Exemplo de expressão BubbleMute Checkbox is checked
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
loopyes/no · Padrão: false
Valor de exemplono
Exemplo de expressão BubbleSelected Lesson's repeat_enabled
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
is_activeyes/no · Padrão: true
Valor de exemployes
Exemplo de expressão BubbleGuideHost's view_is_active (your yes/no custom state)
Defina sim enquanto esta visualização estiver aberta. Defina não ao sair, para que a reprodução ou o trabalho atual possam parar.
disabledyes/no · Padrão: false
Valor de exemplono
Exemplo de expressão BubbleGuideHost's is_busy (your yes/no custom state)
Desative o elemento enquanto seu aplicativo estiver ocupado ou esta ação estiver indisponível.
native_controlsyes/no · Padrão: false
Valor de exemplono
Exemplo de expressão BubbleApp Settings' use_native_video_controls
Mostrar ou ocultar os controles de vídeo padrão do dispositivo.
ui_text_jsontext · Padrão: "{}"
Valor de exemplo{}
Exemplo de expressão BubbleApp Settings' player_labels_json (supported keys only)
JSON opcional com rótulos de botão suportados. Deixe vazio para usar o texto incorporado.
languagetext · Padrão: "auto"
Valor de exemplouk
Exemplo de expressão BubbleCurrent User's preferred_language
Defina language=auto para seguir um idioma de dispositivo ou navegador suportado. Insira um código de idioma suportado para escolhê-lo explicitamente.
Ações e suas entradas · 11
Play

Sem parâmetros de ação

Pause

Sem parâmetros de ação

Stop and rewind

Sem parâmetros de ação

Reload video

Sem parâmetros de ação

Seek
position_secondsnumber · Padrão: —
Valor de exemplo45
Exemplo de expressão BubbleSelected Chapter's start_seconds
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Set volume
volumenumber · Padrão: —
Valor de exemplo0.8
Exemplo de expressão BubbleVolume Slider's value
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Set muted
mutedyes/no · Padrão: —
Valor de exemplono
Exemplo de expressão BubbleMute Checkbox is checked
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Set playback rate
ratenumber · Padrão: —
Valor de exemplo1.5
Exemplo de expressão BubbleSpeed Dropdown's value
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Enter fullscreen

Sem parâmetros de ação

Select audio track
indexnumber · Padrão: —
Valor de exemplo0
Exemplo de expressão BubbleSelected row's current_source_index
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Select subtitle track
indexnumber · Padrão: —
Valor de exemplo0
Exemplo de expressão BubbleSelected row's current_source_index
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Estados e eventos

Estados

is_playing · yes/no

Valor atual do item selecionado. Leia-o após o evento relacionado.

is_buffering · yes/no

Valor atual do item selecionado. Leia-o após o evento relacionado.

pending_play · yes/no

Valor atual do item selecionado. Leia-o após o evento relacionado.

is_live · yes/no

Valor atual do item selecionado. Leia-o após o evento relacionado.

muted · yes/no

Valor atual do item selecionado. Leia-o após o evento relacionado.

loop · yes/no

Valor atual do item selecionado. Leia-o após o evento relacionado.

has_source · yes/no

Valor atual do item selecionado. Leia-o após o evento relacionado.

is_fullscreen · yes/no

Valor atual do item selecionado. Leia-o após o evento relacionado.

position_seconds · number

Valor atual do item selecionado. Leia-o após o evento relacionado.

duration_seconds · number

Valor atual do item selecionado. Leia-o após o evento relacionado.

volume · number

Valor atual do item selecionado. Leia-o após o evento relacionado.

rate · number

Valor atual do item selecionado. Leia-o após o evento relacionado.

source_generation · number

Valor atual do item selecionado. Leia-o após o evento relacionado.

selected_audio_index · number

Valor atual do item selecionado. Leia-o após o evento relacionado.

selected_subtitle_index · number

Valor atual do item selecionado. Leia-o após o evento relacionado.

status · text

Resultado atual desta ação. Use o evento de conclusão correspondente antes de salvar o sucesso. idle,loading,readyToPlay,error

audio_tracks_json · text

Valor atual do item selecionado. Leia-o após o evento relacionado.

subtitle_tracks_json · text

Valor atual do item selecionado. Leia-o após o evento relacionado.

error_code · text

Informações de erro da última ação. Exiba uma mensagem útil e ofereça a tentativa de novo relevante.

error_message · text

Informações de erro da última ação. Exiba uma mensagem útil e ofereça a tentativa de novo relevante.

Eventos

source_changed

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

source_loaded

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

playback_ready

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

playing_changed

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

time_changed

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

ended

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

tracks_changed

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

fullscreen_changed

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

player_error

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

Perguntas que os desenvolvedores fazem

Posso exportar o segmento selecionado?

Não. Seek e tela cheia alteram a reprodução, não os bytes do vídeo.

Como funciona a assinatura?

For Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit and Haptics: free Bubble installation, a 7-day trial with a card, then US$1.50 per month per plugin and app project. Development and production are included, with no operation cap. File-size and feature limits still apply. Review billing and cancellation before confirming. Other plugins remain unavailable for purchase.

Guias relacionados

Para obter ajuda, informe qual plugin e dispositivo você usa, a ação que tentou e o que aconteceu. Use um exemplo sem dados pessoais. Nunca compartilhe sua chave ou arquivos privados.