Interfície Video Player amb un fotograma d'exemple del tràiler Sintel.
Interfície Video Player amb un fotograma d'exemple del tràiler Sintel.
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
← Totes les guies natives

Xodera Plugins · Bubble Native

Xodera Video Player Native

Mostra lliçons, demostracions de producte i fluxos en directe compatibles dins de la teva aplicació, amb controls de reproducció, pantalla completa i pistes d'idioma disponibles.

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ó revisada 6 novembre 2026

Exemples pràctics

Enllaços de capítols en una aplicació de formació

Un aprenent necessita reproduir un pas d'una demostració sense navegar a un reproductor extern.

`source_url = Current Lesson’s video URL`; `poster_url = Current Lesson’s cover`; cada capítol emmagatzema un temps d'inici propietat de l'aplicació.

Clic al capítol → si es canvia la font, espera `source_loaded` → Seek a `position_seconds` → Play. Utilitza Set playback rate per a una demostració detallada i Enter fullscreen quan es sol·liciti.

Llegeix `position_seconds`, `duration_seconds` i `is_fullscreen`; el teu flux de treball desa el progrés de la lliçó només per a la font actual.

En `player_error`, mostra `error_code`, conserva el progrés i ofereix Reload video. Un esdeveniment de finalització no és prova que s'hagi superat una lliçó o una avaluació de seguretat.

Utilitza fitxers de vídeo directes o fluxos compatibles. Aquest reproductor no exporta vídeos.

Demostracions de vídeo a les llistes del mercat

Una imatge del producte per sola no pot explicar com funciona un article, però un vídeo extern interromp el flux de compra.

`source_url = Selected Listing’s demonstration URL`; `poster_url = its thumbnail`; `muted = yes` per a una primera vista prèvia intencionadament silenciosa.

Obre la llista seleccionada → vincula el seu vídeo → Play després d'una acció de l'usuari. Ofereix Set muted per al so i Enter fullscreen per a una inspecció més detallada. Vincula `is_active` al detall visible.

Utilitza `has_source`, `is_buffering` i `status` per distingir un vídeo absent, carregant i mitjans llestos.

En substituir la font, deixa d'aplicar el progrés antic i les seleccions de pistes. Mostra una miniatura alternativa quan el fitxer seleccionat no sigui compatible.

Utilitza fitxers de vídeo directes o fluxos compatibles. Aquest reproductor no exporta vídeos.

Trieu les pistes d'idioma disponibles en un flux compatible

Una aplicació multilingüe ha d'oferir les pistes que realment conté una font concreta.

`source_url = Selected Programme’s accepted stream URL`; la font mateixa ha de proporcionar pistes d'àudio/subtítols compatibles.

En `tracks_changed`, llegiu el `audio_tracks_json` i el `subtitle_tracks_json` actuals; creeu les opcions a la vostra aplicació i invoqueu Select audio track o Select subtitle track amb l'índex actual.

Utilitzeu `selected_audio_index`, `selected_subtitle_index` i `source_generation` per associar l'opció amb aquesta font.

Reconstrueix les opcions després de cada canvi de font. Si una pista falta o no és compatible, mantingueu la pista per defecte i mostreu l'indisponibilitat de manera honesta.

Utilitza fitxers de vídeo directes o fluxos compatibles. Aquest reproductor no exporta vídeos.

Què funciona ara

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 el flux de treball

Utilitzeu les accions beta disponibles a continuació i proveu el resultat en els vostres dispositius de destinació.

Aquests exemples utilitzen registres d'aplicació com Lesson, Message i Order. Substituïu-los amb els vostres propis tipus de dades i noms d'elements. Les adreces multimèdia d'exemple s'han de substituir per els vostres propis fitxers.

  1. Estableix source_url = Selected Lesson's video_url i poster_url = Selected Lesson's poster_url. Utilitza auto o progressive per a un MP4; utilitza hls per a un flux HLS.

  2. Després de playback_ready, utilitza Seek per reprendre al position_seconds desat. L'usuari inicia Play. Estableix is_active segons si la vista de la lliçó està oberta.

  3. Afegeix els controls Play, Pause, Seek, Set playback rate i Enter fullscreen. Mostra position_seconds i duration_seconds.

  4. Després de tracks_changed, mostra les opcions audio_tracks_json i subtitle_tracks_json disponibles per a aquest vídeo. Passa l'índex seleccionat a Select audio track o Select subtitle track. A l’esdeveniment ended, desa el progrés.

Diagrama de flux de treball — no és una captura de pantalla de l'aplicació

Configura una vegada

Creeu o trieu el vostre projecte d’aplicació Bubble a BestPlugins → Dashboard → Plugins. Trieu Xodera Video Player Native, copieu la seva clau i, a continuació, obriu Bubble → Plugins → Xodera Video Player Native i enganxeu‑la a licensing_api_key. Deseu una vegada; després utilitzeu les accions a continuació. Cada connector en cada projecte té la seva pròpia clau.

Utilitza una adreça de vídeo o flux directe. Una adreça YouTube o una pàgina web de Vimeo no és un fitxer de vídeo directe. La reproducció no requereix accés a càmera ni micròfon.

Configura una vegada
  1. Creeu o trieu el vostre projecte d’aplicació Bubble a BestPlugins → Dashboard → Plugins.
  2. Trieu aquest connector i copieu la clau del projecte.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Afegiu l’element, trieu les vostres dades d’aplicació i construïu el flux de treball a continuació.
  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.
Instal·lació i subscripció

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.

Desa el resultat a la teva aplicació

Exemple WatchProgress: owner = Current User, lesson = Selected Lesson, seconds = Video Player's position_seconds, duration = Video Player's duration_seconds. Desa només per al vídeo seleccionat actualment. Els índexs de pista pertanyen a aquest vídeo i no s'han d'emmagatzemar com a opcions d'idioma permanents.

Fallada, cancel·lació i recuperació

En player_error, mostra error_code i ofereix Reload video. Es recarrega sense iniciar la reproducció. Seleccionar una altra font esborra les opcions de pista anteriors. Abandonar la vista pausa el vídeo; l'usuari prem Play per continuar.

Capacitats i límits

Velocitats: 0.5, 1, 1.5 i 2. Volum: 0–1. Formats: auto, progressive, HLS i només Android‑DASH. Les pistes disponibles depenen del fitxer. Usa -1 per desactivar una pista; -2 significa desconegut i no es pot seleccionar. No hi ha edició, exportació de vídeo, DRM, picture‑in‑picture ni memòria cau permanent fora de línia.

Configuracions, accions i resultats

Utilitzeu aquests noms a Bubble. Les funcions planificades es marquen per separat.

Configuracions beta disponibles

Configuració de l'element

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

Estats

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

Esdeveniments

source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_error

Accions i les seves entrades

PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle track
Configuració de l'element · 12
source_urltext · Per defecte: ""
Valor d'exemplehttps://bestplugins.online/native-samples/lesson.mp4
Exemple d'expressió BubbleSelected Lesson's video_url
Adreça del fitxer d'àudio, vídeo o imatge seleccionat. Utilitza un tipus de fitxer compatible amb aquest connector.
poster_urltext · Per defecte: ""
Valor d'exemplehttps://bestplugins.online/native-samples/poster.jpg
Exemple d'expressió BubbleSelected Lesson's poster_url
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
content_typetext · Per defecte: "auto"
Valor d'exempleauto
Exemple d'expressió BubbleSelected Lesson's video_content_type
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
ratenumber · Per defecte: 1
Valor d'exemple1.5
Exemple d'expressió BubbleSpeed Dropdown's value
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
volumenumber · Per defecte: 1
Valor d'exemple0.8
Exemple d'expressió BubbleVolume Slider's value
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
mutedyes/no · Per defecte: false
Valor d'exempleno
Exemple d'expressió BubbleMute Checkbox is checked
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
loopyes/no · Per defecte: false
Valor d'exempleno
Exemple d'expressió BubbleSelected Lesson's repeat_enabled
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
is_activeyes/no · Per defecte: true
Valor d'exempleyes
Exemple d'expressió BubbleGuideHost's view_is_active (your yes/no custom state)
Estableix sí mentre aquesta vista està oberta. Estableix no en sortir, perquè la reproducció o l'obra actual puguin aturar-se.
disabledyes/no · Per defecte: false
Valor d'exempleno
Exemple d'expressió BubbleGuideHost's is_busy (your yes/no custom state)
Desactiva l'element mentre l'aplicació està ocupada o aquesta acció no està disponible.
native_controlsyes/no · Per defecte: false
Valor d'exempleno
Exemple d'expressió BubbleApp Settings' use_native_video_controls
Mostra o amaga els controls de vídeo estàndard del dispositiu.
ui_text_jsontext · Per defecte: "{}"
Valor d'exemple{}
Exemple d'expressió BubbleApp Settings' player_labels_json (supported keys only)
JSON opcional amb etiquetes de botó compatibles. Deixa buit per utilitzar el text integrat.
languagetext · Per defecte: "auto"
Valor d'exempleuk
Exemple d'expressió BubbleCurrent User's preferred_language
Estableix language=auto per seguir un dispositiu o idioma del navegador compatible. Introdueix un codi d'idioma compatible per seleccionar-lo explícitament.
Accions i les seves entrades · 11
Play

Sense paràmetres d'acció

Pause

Sense paràmetres d'acció

Stop and rewind

Sense paràmetres d'acció

Reload video

Sense paràmetres d'acció

Seek
position_secondsnumber · Per defecte: —
Valor d'exemple45
Exemple d'expressió BubbleSelected Chapter's start_seconds
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Set volume
volumenumber · Per defecte: —
Valor d'exemple0.8
Exemple d'expressió BubbleVolume Slider's value
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Set muted
mutedyes/no · Per defecte: —
Valor d'exempleno
Exemple d'expressió BubbleMute Checkbox is checked
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Set playback rate
ratenumber · Per defecte: —
Valor d'exemple1.5
Exemple d'expressió BubbleSpeed Dropdown's value
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Enter fullscreen

Sense paràmetres d'acció

Select audio track
indexnumber · Per defecte: —
Valor d'exemple0
Exemple d'expressió BubbleSelected row's current_source_index
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Select subtitle track
indexnumber · Per defecte: —
Valor d'exemple0
Exemple d'expressió BubbleSelected row's current_source_index
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Estats i esdeveniments

Estats

is_playing · yes/no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

is_buffering · yes/no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

pending_play · yes/no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

is_live · yes/no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

muted · yes/no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

loop · yes/no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

has_source · yes/no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

is_fullscreen · yes/no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

position_seconds · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

duration_seconds · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

volume · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

rate · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

source_generation · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

selected_audio_index · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

selected_subtitle_index · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

status · text

Resultat actual d'aquesta acció. Utilitzeu l'esdeveniment de finalització coincident abans d'enregistrar l'èxit. idle,loading,readyToPlay,error

audio_tracks_json · text

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

subtitle_tracks_json · text

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

error_code · text

Informació d'error de l'última acció. Mostra un missatge útil i ofereix el reintent corresponent.

error_message · text

Informació d'error de l'última acció. Mostra un missatge útil i ofereix el reintent corresponent.

Esdeveniments

source_changed

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

source_loaded

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

playback_ready

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

playing_changed

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

time_changed

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

ended

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

tracks_changed

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

fullscreen_changed

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

player_error

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

Preguntes que fan els desenvolupadors

Puc exportar el segment seleccionat?

No. Seek i la pantalla completa canvien la reproducció, no els bytes del vídeo.

Com funciona la subscripció?

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.

Guies relacionades

Per obtenir ajuda, indiqueu quin connector i dispositiu utilitzeu, l'acció que heu provat i què ha passat. Utilitzeu un exemple sense dades personals. No compartiu mai la vostra clau ni fitxers privats.