Interface Video Player con un fotograma de mostra do tráiler Sintel.
Interface Video Player con un fotograma de mostra do tráiler Sintel.
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
← Todas as guías nativas

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.

  1. 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.

  2. 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.

  3. Engade os controis Play, Pause, Seek, Set playback rate e Enter fullscreen. Mostra position_seconds e duration_seconds.

  4. 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.

Diagrama do fluxo de traballo — non é unha captura de pantalla da aplicación

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
  1. Cree ou escolla o seu proxecto de aplicación Bubble en BestPlugins → Dashboard → Plugins.
  2. Escolla este complemento e copie a súa clave de proxecto.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Engada o elemento, escolla os datos da súa aplicación e constrúa o fluxo de traballo a continuación.
  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.
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 · 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

Accións e as súas entradas

PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle track
Configuración do elemento · 12
source_urltext · Predeterminado: ""
Valor de exemplohttps://bestplugins.online/native-samples/lesson.mp4
Exemplo de expresión BubbleSelected 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 exemplohttps://bestplugins.online/native-samples/poster.jpg
Exemplo de expresión BubbleSelected Lesson's poster_url
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
content_typetext · Predeterminado: "auto"
Valor de exemploauto
Exemplo de expresión BubbleSelected Lesson's video_content_type
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
ratenumber · Predeterminado: 1
Valor de exemplo1.5
Exemplo de expresión BubbleSpeed Dropdown's value
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
volumenumber · Predeterminado: 1
Valor de exemplo0.8
Exemplo de expresión BubbleVolume Slider's value
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
mutedyes/no · Predeterminado: false
Valor de exemplono
Exemplo de expresión BubbleMute Checkbox is checked
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
loopyes/no · Predeterminado: false
Valor de exemplono
Exemplo de expresión BubbleSelected 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 exemployes
Exemplo de expresión BubbleGuideHost'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 exemplono
Exemplo de expresión BubbleGuideHost'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 exemplono
Exemplo de expresión BubbleApp 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 BubbleApp 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 exemplouk
Exemplo de expresión BubbleCurrent 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 exemplo45
Exemplo de expresión BubbleSelected Chapter's start_seconds
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Set volume
volumenumber · Predeterminado: —
Valor de exemplo0.8
Exemplo de expresión BubbleVolume Slider's value
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Set muted
mutedyes/no · Predeterminado: —
Valor de exemplono
Exemplo de expresión BubbleMute Checkbox is checked
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Set playback rate
ratenumber · Predeterminado: —
Valor de exemplo1.5
Exemplo de expresión BubbleSpeed 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 exemplo0
Exemplo de expresión BubbleSelected 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 exemplo0
Exemplo de expresión BubbleSelected 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/no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

is_buffering · yes/no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

pending_play · yes/no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

is_live · yes/no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

muted · yes/no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

loop · yes/no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

has_source · yes/no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

is_fullscreen · yes/no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

position_seconds · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

duration_seconds · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

volume · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

rate · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

source_generation · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

selected_audio_index · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

selected_subtitle_index · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

status · text

Resultado actual desta acción. Use o evento de finalización coincidente antes de gardar o éxito. idle,loading,readyToPlay,error

audio_tracks_json · text

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

subtitle_tracks_json · text

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

error_code · text

Información de erro da última acción. Mostra unha mensaxe útil e ofrece o reintento correspondente.

error_message · text

Información de erro da última acción. Mostra unha mensaxe útil e ofrece o reintento correspondente.

Eventos

source_changed

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

source_loaded

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

playback_ready

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

playing_changed

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

time_changed

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

ended

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

tracks_changed

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

fullscreen_changed

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

player_error

Cando 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.