
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
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.
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.
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.
Adicione os controles Play, Pause, Seek, Set playback rate e Enter fullscreen. Exiba position_seconds e duration_seconds.
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.
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
- Crie ou escolha seu projeto de aplicativo Bubble em BestPlugins → Dashboard → Plugins.
- Escolha este plugin e copie sua chave de projeto.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Adicione o elemento, escolha os dados do seu aplicativo e construa o fluxo de trabalho abaixo.
- 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 · textEstados
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 · textEventos
source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_errorAções e suas entradas
PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle trackConfigurações do elemento · 12
source_urltext · Padrão: ""- Valor de exemplo
https://bestplugins.online/native-samples/lesson.mp4 - Exemplo de expressão Bubble
Selected 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 exemplo
https://bestplugins.online/native-samples/poster.jpg - Exemplo de expressão Bubble
Selected Lesson's poster_url - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
content_typetext · Padrão: "auto"- Valor de exemplo
auto - Exemplo de expressão Bubble
Selected Lesson's video_content_type - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
ratenumber · Padrão: 1- Valor de exemplo
1.5 - Exemplo de expressão Bubble
Speed Dropdown's value - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
volumenumber · Padrão: 1- Valor de exemplo
0.8 - Exemplo de expressão Bubble
Volume Slider's value - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
mutedyes/no · Padrão: false- Valor de exemplo
no - Exemplo de expressão Bubble
Mute Checkbox is checked - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
loopyes/no · Padrão: false- Valor de exemplo
no - Exemplo de expressão Bubble
Selected 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 exemplo
yes - Exemplo de expressão Bubble
GuideHost'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 exemplo
no - Exemplo de expressão Bubble
GuideHost'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 exemplo
no - Exemplo de expressão Bubble
App 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 Bubble
App 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 exemplo
uk - Exemplo de expressão Bubble
Current 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 exemplo
45 - Exemplo de expressão Bubble
Selected Chapter's start_seconds - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Set volume
volumenumber · Padrão: —- Valor de exemplo
0.8 - Exemplo de expressão Bubble
Volume Slider's value - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Set muted
mutedyes/no · Padrão: —- Valor de exemplo
no - Exemplo de expressão Bubble
Mute Checkbox is checked - Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Set playback rate
ratenumber · Padrão: —- Valor de exemplo
1.5 - Exemplo de expressão Bubble
Speed 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 exemplo
0 - Exemplo de expressão Bubble
Selected 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 exemplo
0 - Exemplo de expressão Bubble
Selected 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/noValor atual do item selecionado. Leia-o após o evento relacionado.
is_buffering · yes/noValor atual do item selecionado. Leia-o após o evento relacionado.
pending_play · yes/noValor atual do item selecionado. Leia-o após o evento relacionado.
is_live · yes/noValor atual do item selecionado. Leia-o após o evento relacionado.
muted · yes/noValor atual do item selecionado. Leia-o após o evento relacionado.
loop · yes/noValor atual do item selecionado. Leia-o após o evento relacionado.
has_source · yes/noValor atual do item selecionado. Leia-o após o evento relacionado.
is_fullscreen · yes/noValor atual do item selecionado. Leia-o após o evento relacionado.
position_seconds · numberValor atual do item selecionado. Leia-o após o evento relacionado.
duration_seconds · numberValor atual do item selecionado. Leia-o após o evento relacionado.
volume · numberValor atual do item selecionado. Leia-o após o evento relacionado.
rate · numberValor atual do item selecionado. Leia-o após o evento relacionado.
source_generation · numberValor atual do item selecionado. Leia-o após o evento relacionado.
selected_audio_index · numberValor atual do item selecionado. Leia-o após o evento relacionado.
selected_subtitle_index · numberValor atual do item selecionado. Leia-o após o evento relacionado.
status · textResultado atual desta ação. Use o evento de conclusão correspondente antes de salvar o sucesso. idle,loading,readyToPlay,error
audio_tracks_json · textValor atual do item selecionado. Leia-o após o evento relacionado.
subtitle_tracks_json · textValor atual do item selecionado. Leia-o após o evento relacionado.
error_code · textInformações de erro da última ação. Exiba uma mensagem útil e ofereça a tentativa de novo relevante.
error_message · textInformações de erro da última ação. Exiba uma mensagem útil e ofereça a tentativa de novo relevante.
Eventos
source_changedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
source_loadedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
playback_readyQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
playing_changedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
time_changedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
endedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
tracks_changedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
fullscreen_changedQuando este evento ocorrer, leia os estados relacionados do mesmo elemento.
player_errorQuando 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.