
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
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.
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.
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.
Afegeix els controls Play, Pause, Seek, Set playback rate i Enter fullscreen. Mostra position_seconds i duration_seconds.
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.
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
- Creeu o trieu el vostre projecte d’aplicació Bubble a BestPlugins → Dashboard → Plugins.
- Trieu aquest connector i copieu la clau del projecte.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Afegiu l’element, trieu les vostres dades d’aplicació i construïu el flux de treball a continuació.
- 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 · textEstats
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 · textEsdeveniments
source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_errorAccions i les seves entrades
PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle trackConfiguració de l'element · 12
source_urltext · Per defecte: ""- Valor d'exemple
https://bestplugins.online/native-samples/lesson.mp4 - Exemple d'expressió Bubble
Selected 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'exemple
https://bestplugins.online/native-samples/poster.jpg - Exemple d'expressió Bubble
Selected 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'exemple
auto - Exemple d'expressió Bubble
Selected 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'exemple
1.5 - Exemple d'expressió Bubble
Speed Dropdown's value - Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
volumenumber · Per defecte: 1- Valor d'exemple
0.8 - Exemple d'expressió Bubble
Volume 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'exemple
no - Exemple d'expressió Bubble
Mute 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'exemple
no - Exemple d'expressió Bubble
Selected 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'exemple
yes - Exemple d'expressió Bubble
GuideHost'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'exemple
no - Exemple d'expressió Bubble
GuideHost'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'exemple
no - Exemple d'expressió Bubble
App 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ó Bubble
App 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'exemple
uk - Exemple d'expressió Bubble
Current 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'exemple
45 - Exemple d'expressió Bubble
Selected 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'exemple
0.8 - Exemple d'expressió Bubble
Volume 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'exemple
no - Exemple d'expressió Bubble
Mute 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'exemple
1.5 - Exemple d'expressió Bubble
Speed 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'exemple
0 - Exemple d'expressió Bubble
Selected 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'exemple
0 - Exemple d'expressió Bubble
Selected 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/noValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
is_buffering · yes/noValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
pending_play · yes/noValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
is_live · yes/noValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
muted · yes/noValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
loop · yes/noValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
has_source · yes/noValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
is_fullscreen · yes/noValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
position_seconds · numberValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
duration_seconds · numberValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
volume · numberValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
rate · numberValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
source_generation · numberValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
selected_audio_index · numberValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
selected_subtitle_index · numberValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
status · textResultat actual d'aquesta acció. Utilitzeu l'esdeveniment de finalització coincident abans d'enregistrar l'èxit. idle,loading,readyToPlay,error
audio_tracks_json · textValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
subtitle_tracks_json · textValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
error_code · textInformació d'error de l'última acció. Mostra un missatge útil i ofereix el reintent corresponent.
error_message · textInformació d'error de l'última acció. Mostra un missatge útil i ofereix el reintent corresponent.
Esdeveniments
source_changedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
source_loadedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
playback_readyQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
playing_changedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
time_changedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
endedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
tracks_changedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
fullscreen_changedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
player_errorQuan 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.