
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
Xodera Plugins · Bubble Native
Xodera Video Player Native
Mostra leccións, demostracións de produtos e transmisións en directo compatibles dentro da túa aplicación, con controis de reprodución, pantalla completa e pistas de idioma dispoñibles.
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.
Documentación revisada 6 novembro 2026
Exemplos prácticos
Ligazóns de capítulos nunha aplicación de formación
Un aprendiz necesita reproducir un paso dunha demostración sen navegar a un reprodutor externo.
`source_url = Current Lesson’s video URL`; `poster_url = Current Lesson’s cover`; cada Capítulo almacena un tempo de inicio propio da aplicación.
Fai clic no capítulo → se cambia a fonte, espera a `source_loaded` → Seek a `position_seconds` → Play. Usa Set playback rate para unha demostración detallada e Enter fullscreen cando se solicite.
Le `position_seconds`, `duration_seconds` e `is_fullscreen`; o teu fluxo de traballo almacena o progreso da lección só para a fonte actual.
En `player_error`, mostra `error_code`, preserva o progreso e ofrece Reload video. Un evento de finalización non é prova de que se superou unha lección ou avaliación de seguridade.
Utiliza ficheiros de vídeo directos ou fluxos compatibles. Este reprodutor non exporta vídeos.
Demostracións de vídeo nas listas do mercado
Unha imaxe do produto por si soa non pode explicar como funciona un artigo, pero un vídeo externo rompe o fluxo de compra.
`source_url = Selected Listing’s demonstration URL`; `poster_url = its thumbnail`; `muted = yes` para unha primeira vista previa intencionalmente silenciosa.
Abre a Listaxe seleccionada → enlaza o seu vídeo → Play despois dunha acción do usuario. Ofrece Set muted para son e Enter fullscreen para inspección máis detallada. Enlaza `is_active` ao detalle visible.
Utiliza `has_source`, `is_buffering` e `status` para distinguir un vídeo ausente, cargando e medios listos.
Ao substituir a fonte, deixa de aplicar o progreso antigo e as seleccións de pista. Mostra unha miniatura de reserva cando o ficheiro seleccionado non é compatible.
Utiliza ficheiros de vídeo directos ou fluxos compatibles. Este reprodutor non exporta vídeos.
Escolla as pistas de idioma dispoñibles nun fluxo compatible
Unha aplicación multilingüe debe ofrecer as pistas que realmente contén unha fonte concreta.
`source_url = Selected Programme’s accepted stream URL`; a propia fonte debe proporcionar pistas de audio/subtítulo compatibles.
En `tracks_changed`, lea o actual `audio_tracks_json` e `subtitle_tracks_json`; cree as opcións na súa aplicación e invoque Select audio track ou Select subtitle track co índice actual.
Utilice `selected_audio_index`, `selected_subtitle_index` e `source_generation` para asociar a opción con esta fonte.
Reconstrúa as opcións despois de cada cambio de fonte. Se falta unha pista ou non é compatible, manteña a pista predeterminada e mostre esa dispoñibilidade con honestidade.
Utiliza ficheiros de vídeo directos ou fluxos compatibles. Este reprodutor non 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.
Crea o fluxo de traballo
Utilice as accións beta dispoñibles a continuación e probe o resultado nos seus dispositivos de destino.
Estes exemplos usan rexistros de aplicación como Lesson, Message e Order. Substitúeaos polos seus propios tipos de datos e nomes de elementos. Os enderezos de medios de exemplo deben substituírse polos seus propios ficheiros.
Establece source_url = Selected Lesson's video_url e poster_url = Selected Lesson's poster_url. Usa auto ou progressive para un MP4; usa hls para un fluxo HLS.
Despois de playback_ready, usa Seek para retomar no position_seconds gardado. O usuario inicia Play. Define is_active segundo se a vista da lección está aberta.
Engade os controis Play, Pause, Seek, Set playback rate e Enter fullscreen. Mostra position_seconds e duration_seconds.
Despois de tracks_changed, mostra as opcións dispoñibles audio_tracks_json e subtitle_tracks_json para este vídeo. Pasa o índice seleccionado a Select audio track ou Select subtitle track. No evento ended, garda o progreso.
Configura unha vez
Cree ou escolla o seu proxecto de aplicación Bubble en BestPlugins → Dashboard → Plugins. Escolla Xodera Video Player Native, copie a súa clave, despois abra Bubble → Plugins → Xodera Video Player Native e péguela en licensing_api_key. Guarde unha vez; a seguir utilice as accións a continuación. Cada complemento en cada proxecto ten a súa propia clave.
Utiliza un enderezo de vídeo ou fluxo directo. Un enderezo YouTube ou de páxina web de Vimeo non é un ficheiro de vídeo directo. A reprodución non necesita acceso á cámara nin ao micrófono.
Configura unha vez
- Cree ou escolla o seu proxecto de aplicación Bubble en BestPlugins → Dashboard → Plugins.
- Escolla este complemento e copie a súa clave de proxecto.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Engada o elemento, escolla os datos da súa aplicación e constrúa o fluxo de traballo a continuación.
- 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.
Instalación e subscrición
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.
Garde o resultado na súa aplicación
Exemplo WatchProgress: owner = Current User, lesson = Selected Lesson, seconds = Video Player's position_seconds, duration = Video Player's duration_seconds. Garda só para o vídeo seleccionado actualmente. Os índices de pista pertencen a ese vídeo e non deben almacenarse como opcións de idioma permanentes.
Fallo, cancelación e recuperación
En player_error, mostra error_code e ofrece Reload video. Recárgase sen iniciar a reprodución. Seleccionar outra fonte limpa as eleccións de pista antigas. Saír da vista pausa o vídeo; o usuario preme Play para continuar.
Capacidades e límites
Velocidades: 0.5, 1, 1.5 e 2. Volume: 0–1. Formatos: auto, progressive, HLS e só Android‑DASH. As pistas dispoñibles dependen do ficheiro. Usa -1 para desactivar unha pista; -2 significa descoñecido e non pode seleccionarse. Sen edición, exportación de vídeo, DRM, imaxe dentro da imaxe ou caché permanente offline.
Configuracións, accións e resultados
Utilice estes nomes en Bubble. As funcionalidades planificadas están marcadas por separado.
Configuracións beta dispoñibles
Configuración 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_errorAccións e as súas entradas
PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle trackConfiguración do elemento · 12
source_urltext · Predeterminado: ""- Valor de exemplo
https://bestplugins.online/native-samples/lesson.mp4 - Exemplo de expresión Bubble
Selected Lesson's video_url - Enderezo do ficheiro de audio, vídeo ou imaxe seleccionado. Usa un tipo de ficheiro que este complemento admita.
poster_urltext · Predeterminado: ""- Valor de exemplo
https://bestplugins.online/native-samples/poster.jpg - Exemplo de expresión Bubble
Selected Lesson's poster_url - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
content_typetext · Predeterminado: "auto"- Valor de exemplo
auto - Exemplo de expresión Bubble
Selected Lesson's video_content_type - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
ratenumber · Predeterminado: 1- Valor de exemplo
1.5 - Exemplo de expresión Bubble
Speed Dropdown's value - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
volumenumber · Predeterminado: 1- Valor de exemplo
0.8 - Exemplo de expresión Bubble
Volume Slider's value - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
mutedyes/no · Predeterminado: false- Valor de exemplo
no - Exemplo de expresión Bubble
Mute Checkbox is checked - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
loopyes/no · Predeterminado: false- Valor de exemplo
no - Exemplo de expresión Bubble
Selected Lesson's repeat_enabled - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
is_activeyes/no · Predeterminado: true- Valor de exemplo
yes - Exemplo de expresión Bubble
GuideHost's view_is_active (your yes/no custom state) - Establece sí mentres esta vista está aberta. Establece non ao saír, para que a reprodución ou o traballo actual poidan detenerse.
disabledyes/no · Predeterminado: false- Valor de exemplo
no - Exemplo de expresión Bubble
GuideHost's is_busy (your yes/no custom state) - Desactiva o elemento mentres a túa aplicación está ocupada ou esta acción non está dispoñible.
native_controlsyes/no · Predeterminado: false- Valor de exemplo
no - Exemplo de expresión Bubble
App Settings' use_native_video_controls - Mostrar ou agochar os controis de vídeo estándar do dispositivo.
ui_text_jsontext · Predeterminado: "{}"- Valor de exemplo
{} - Exemplo de expresión Bubble
App Settings' player_labels_json (supported keys only) - JSON opcional con etiquetas de botón compatibles. Déixao baleiro para usar o texto incorporado.
languagetext · Predeterminado: "auto"- Valor de exemplo
uk - Exemplo de expresión Bubble
Current User's preferred_language - Establece language=auto para seguir un dispositivo ou idioma de navegador compatible. Introduce un código de idioma compatible para elixilo explicitamente.
Accións e as súas entradas · 11
Play
Sen parámetros de acción
Pause
Sen parámetros de acción
Stop and rewind
Sen parámetros de acción
Reload video
Sen parámetros de acción
Seek
position_secondsnumber · Predeterminado: —- Valor de exemplo
45 - Exemplo de expresión Bubble
Selected Chapter's start_seconds - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Set volume
volumenumber · Predeterminado: —- Valor de exemplo
0.8 - Exemplo de expresión Bubble
Volume Slider's value - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Set muted
mutedyes/no · Predeterminado: —- Valor de exemplo
no - Exemplo de expresión Bubble
Mute Checkbox is checked - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Set playback rate
ratenumber · Predeterminado: —- Valor de exemplo
1.5 - Exemplo de expresión Bubble
Speed Dropdown's value - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Enter fullscreen
Sen parámetros de acción
Select audio track
indexnumber · Predeterminado: —- Valor de exemplo
0 - Exemplo de expresión Bubble
Selected row's current_source_index - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Select subtitle track
indexnumber · Predeterminado: —- Valor de exemplo
0 - Exemplo de expresión Bubble
Selected row's current_source_index - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Estados e eventos
Estados
is_playing · yes/noValor actual do elemento seleccionado. Léelo despois do evento relacionado.
is_buffering · yes/noValor actual do elemento seleccionado. Léelo despois do evento relacionado.
pending_play · yes/noValor actual do elemento seleccionado. Léelo despois do evento relacionado.
is_live · yes/noValor actual do elemento seleccionado. Léelo despois do evento relacionado.
muted · yes/noValor actual do elemento seleccionado. Léelo despois do evento relacionado.
loop · yes/noValor actual do elemento seleccionado. Léelo despois do evento relacionado.
has_source · yes/noValor actual do elemento seleccionado. Léelo despois do evento relacionado.
is_fullscreen · yes/noValor actual do elemento seleccionado. Léelo despois do evento relacionado.
position_seconds · numberValor actual do elemento seleccionado. Léelo despois do evento relacionado.
duration_seconds · numberValor actual do elemento seleccionado. Léelo despois do evento relacionado.
volume · numberValor actual do elemento seleccionado. Léelo despois do evento relacionado.
rate · numberValor actual do elemento seleccionado. Léelo despois do evento relacionado.
source_generation · numberValor actual do elemento seleccionado. Léelo despois do evento relacionado.
selected_audio_index · numberValor actual do elemento seleccionado. Léelo despois do evento relacionado.
selected_subtitle_index · numberValor actual do elemento seleccionado. Léelo despois do evento relacionado.
status · textResultado actual desta acción. Use o evento de finalización coincidente antes de gardar o éxito. idle,loading,readyToPlay,error
audio_tracks_json · textValor actual do elemento seleccionado. Léelo despois do evento relacionado.
subtitle_tracks_json · textValor actual do elemento seleccionado. Léelo despois do evento relacionado.
error_code · textInformación de erro da última acción. Mostra unha mensaxe útil e ofrece o reintento correspondente.
error_message · textInformación de erro da última acción. Mostra unha mensaxe útil e ofrece o reintento correspondente.
Eventos
source_changedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
source_loadedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
playback_readyCando ocorra este evento, lea os estados relacionados do mesmo elemento.
playing_changedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
time_changedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
endedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
tracks_changedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
fullscreen_changedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
player_errorCando ocorra este evento, lea os estados relacionados do mesmo elemento.
Preguntas que os desenvolvedores fan
Podo exportar o segmento seleccionado?
Non. Seek e pantalla completa cambian a reprodución, non os bytes do vídeo.
Como funciona a subscrición?
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.
Guías relacionadas
Para obter axuda, indícanos que complemento e dispositivo utilizas, a acción que intentaches e o que sucedeu. Usa un exemplo sen datos persoais. Nunca compartas a túa clave ou ficheiros privados.