
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
Xodera Plugins · Bubble Native
Xodera Video Player Native
Toon lessen, productdemonstraties en ondersteunde livestreams in je app, met afspeelknoppen, volledig scherm en beschikbare ondertitelingssporen.
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.
Documentatie beoordeeld 6 november 2026
Praktische voorbeelden
Hoofdstuklinks in een trainingsapp
Een leerling moet één stap van een demonstratie opnieuw afspelen zonder naar een externe speler te navigeren.
`source_url = Current Lesson’s video URL`; `poster_url = Current Lesson’s cover`; elk Hoofdstuk slaat een door de app beheerde starttijd op.
Hoofdstuk‑klik → bij bronwijziging wacht op `source_loaded` → Seek naar `position_seconds` → Play. Gebruik Set playback rate voor een gedetailleerde demonstratie en Enter fullscreen op verzoek.
Lees `position_seconds`, `duration_seconds` en `is_fullscreen`; je workflow slaat lesvoortgang alleen op voor de huidige bron.
Op `player_error`, toon `error_code`, bewaar voortgang en bied Reload video aan. Een voltooiings‑event is geen bewijs dat een les of veiligheidsbeoordeling is geslaagd.
Gebruik directe videobestanden of ondersteunde streams. Deze speler exporteert geen video's.
Videodemonstraties op marktplaatsvermeldingen
Een productafbeelding alleen kan niet uitleggen hoe een artikel werkt, maar een video van buiten de site onderbreekt de aankoopstroom.
`source_url = Selected Listing’s demonstration URL`; `poster_url = its thumbnail`; `muted = yes` voor een opzettelijk stille eerste preview.
Open de geselecteerde Listing → koppel de video → Play na een gebruikersactie. Bied Set muted aan voor geluid en Enter fullscreen voor nadere inspectie. Koppel `is_active` aan het zichtbare detail.
Gebruik `has_source`, `is_buffering` en `status` om een ontbrekende video, het laden en klaar media te onderscheiden.
Bij bronvervanging pas je de oude voortgang en trackselecties niet meer toe. Toon een miniatuurfallback wanneer het geselecteerde bestand niet wordt ondersteund.
Gebruik directe videobestanden of ondersteunde streams. Deze speler exporteert geen video's.
Doe een keuze voor beschikbare taalsporen in een ondersteunde stream.
Een meertalige app moet de tracks aanbieden die een specifieke bron daadwerkelijk bevat.
`source_url = Selected Programme’s accepted stream URL`; de bron zelf moet compatibele audio‑/ondertitel‑tracks leveren.
Bij `tracks_changed`, lees de huidige `audio_tracks_json` en `subtitle_tracks_json`; bouw keuzes in uw app en roep Select audio track of Select subtitle track aan met de huidige index.
Gebruik `selected_audio_index`, `selected_subtitle_index` en `source_generation` om de keuze aan deze bron te koppelen.
Herbouw de keuzes na elke bronwijziging. Als een track afwezig of niet ondersteund is, behoud dan de standaardtrack en toon die beschikbaarheid eerlijk.
Gebruik directe videobestanden of ondersteunde streams. Deze speler exporteert geen video's.
Wat nu werkt
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.
Bouw de workflow
Gebruik de beschikbare bèta-acties hieronder en test het resultaat op uw doelapparaten.
Deze voorbeelden gebruiken app‑records zoals Lesson, Message en Order. Vervang ze door uw eigen gegevenstypen en elementnamen. Voorbeeld‑mediapaden moeten worden vervangen door uw eigen bestanden.
Stel source_url = Selected Lesson's video_url en poster_url = Selected Lesson's poster_url in. Gebruik auto of progressive voor een MP4; gebruik hls voor een HLS-stream.
Na playback_ready, gebruik Seek om te hervatten op de opgeslagen position_seconds. De gebruiker start Play. Stel is_active in op of de lesweergave geopend is.
Voeg Play, Pause, Seek, Set playback rate en Enter fullscreen‑besturingselementen toe. Toon position_seconds en duration_seconds.
Na tracks_changed, toon de beschikbare audio_tracks_json- en subtitle_tracks_json-keuzes voor deze video. Geef de geselecteerde index door aan Select audio track of Select subtitle track. Bij het event ended, sla de voortgang op.
Eenmalig configureren
Maak of kies uw Bubble app‑project in BestPlugins → Dashboard → Plugins. Kies Xodera Video Player Native, kopieer de sleutel, open vervolgens Bubble → Plugins → Xodera Video Player Native en plak deze in licensing_api_key. Sla één keer op; gebruik daarna de acties hieronder. Elke plug‑in in elk project heeft zijn eigen sleutel.
Gebruik een direct video- of streamadres. Een YouTube of Vimeo-webpagina-adres is geen direct videobestand. Afspelen vereist geen camera- of microfoontoegang.
Eenmalig configureren
- Maak of kies uw Bubble app‑project op BestPlugins → Dashboard → Plugins.
- Kies deze plug‑in en kopieer de projectsleutel.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Voeg het element toe, kies uw app‑gegevens en bouw de workflow hieronder.
- 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.
Installatie en abonnement
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.
Sla het resultaat op in je app
Voorbeeld WatchProgress: owner = Current User, lesson = Selected Lesson, seconds = Video Player's position_seconds, duration = Video Player's duration_seconds. Sla alleen op voor de momenteel geselecteerde video. Track-indexen behoren tot die video en mogen niet worden opgeslagen als permanente taalkeuzes.
Fout, annulering en herstel
Bij player_error, toon error_code en bied Reload video aan. Het wordt opnieuw geladen zonder afspelen te starten. Een andere bron selecteren wist de oude track‑keuzes. Het verlaten van het overzicht pauzeert de video; de gebruiker drukt op Play om door te gaan.
Mogelijkheden en limieten
Snelheden: 0.5, 1, 1.5 en 2. Volume: 0–1. Formaten: auto, progressive, HLS en Android‑only DASH. Beschikbare sporen hangen af van het bestand. Gebruik -1 om een spoor uit te schakelen; -2 betekent onbekend en kan niet worden geselecteerd. Geen bewerking, video‑export, DRM, picture‑in‑picture of permanente offline‑cache.
Instellingen, acties en resultaten
Gebruik deze namen in Bubble. Geplande functies worden apart gemarkeerd.
Beschikbare bètainstellingen
Elementinstellingen
source_url · textposter_url · textcontent_type · textrate · numbervolume · numbermuted · yes/noloop · yes/nois_active · yes/nodisabled · yes/nonative_controls · yes/noui_text_json · textlanguage · textStatussen
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 · textEvenementen
source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_errorActies en hun invoer
PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle trackElementinstellingen · 12
source_urltext · Standaard: ""- Voorbeeldwaarde
https://bestplugins.online/native-samples/lesson.mp4 - Voorbeeld Bubble-expressie
Selected Lesson's video_url - Adres van het geselecteerde audio‑, video‑ of afbeeldingsbestand. Gebruik een bestandstype dat deze plug‑in ondersteunt.
poster_urltext · Standaard: ""- Voorbeeldwaarde
https://bestplugins.online/native-samples/poster.jpg - Voorbeeld Bubble-expressie
Selected Lesson's poster_url - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
content_typetext · Standaard: "auto"- Voorbeeldwaarde
auto - Voorbeeld Bubble-expressie
Selected Lesson's video_content_type - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
ratenumber · Standaard: 1- Voorbeeldwaarde
1.5 - Voorbeeld Bubble-expressie
Speed Dropdown's value - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
volumenumber · Standaard: 1- Voorbeeldwaarde
0.8 - Voorbeeld Bubble-expressie
Volume Slider's value - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
mutedyes/no · Standaard: false- Voorbeeldwaarde
no - Voorbeeld Bubble-expressie
Mute Checkbox is checked - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
loopyes/no · Standaard: false- Voorbeeldwaarde
no - Voorbeeld Bubble-expressie
Selected Lesson's repeat_enabled - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
is_activeyes/no · Standaard: true- Voorbeeldwaarde
yes - Voorbeeld Bubble-expressie
GuideHost's view_is_active (your yes/no custom state) - Stel ja in zolang dit overzicht geopend is. Stel nee in bij verlaten, zodat afspelen of huidig werk kan stoppen.
disabledyes/no · Standaard: false- Voorbeeldwaarde
no - Voorbeeld Bubble-expressie
GuideHost's is_busy (your yes/no custom state) - Schakel het element uit terwijl uw app bezig is of deze actie niet beschikbaar is.
native_controlsyes/no · Standaard: false- Voorbeeldwaarde
no - Voorbeeld Bubble-expressie
App Settings' use_native_video_controls - Toon of verberg de standaard videobediening van het apparaat.
ui_text_jsontext · Standaard: "{}"- Voorbeeldwaarde
{} - Voorbeeld Bubble-expressie
App Settings' player_labels_json (supported keys only) - Optionele JSON met ondersteunde knoplabels. Laat leeg om de ingebouwde tekst te gebruiken.
languagetext · Standaard: "auto"- Voorbeeldwaarde
uk - Voorbeeld Bubble-expressie
Current User's preferred_language - Stel language=auto in om een ondersteund apparaat of browsertaal te volgen. Voer een ondersteunde taalcodes in om deze expliciet te kiezen.
Acties en hun invoer · 11
Play
Geen actieparameters
Pause
Geen actieparameters
Stop and rewind
Geen actieparameters
Reload video
Geen actieparameters
Seek
position_secondsnumber · Standaard: —- Voorbeeldwaarde
45 - Voorbeeld Bubble-expressie
Selected Chapter's start_seconds - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Set volume
volumenumber · Standaard: —- Voorbeeldwaarde
0.8 - Voorbeeld Bubble-expressie
Volume Slider's value - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Set muted
mutedyes/no · Standaard: —- Voorbeeldwaarde
no - Voorbeeld Bubble-expressie
Mute Checkbox is checked - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Set playback rate
ratenumber · Standaard: —- Voorbeeldwaarde
1.5 - Voorbeeld Bubble-expressie
Speed Dropdown's value - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Enter fullscreen
Geen actieparameters
Select audio track
indexnumber · Standaard: —- Voorbeeldwaarde
0 - Voorbeeld Bubble-expressie
Selected row's current_source_index - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Select subtitle track
indexnumber · Standaard: —- Voorbeeldwaarde
0 - Voorbeeld Bubble-expressie
Selected row's current_source_index - Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Statussen en gebeurtenissen
Statussen
is_playing · yes/noHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
is_buffering · yes/noHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
pending_play · yes/noHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
is_live · yes/noHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
muted · yes/noHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
loop · yes/noHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
has_source · yes/noHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
is_fullscreen · yes/noHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
position_seconds · numberHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
duration_seconds · numberHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
volume · numberHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
rate · numberHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
source_generation · numberHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
selected_audio_index · numberHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
selected_subtitle_index · numberHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
status · textHuidig resultaat van deze actie. Gebruik het overeenkomende voltooiings‑event vóór het opslaan van succes. idle,loading,readyToPlay,error
audio_tracks_json · textHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
subtitle_tracks_json · textHuidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.
error_code · textFoutinformatie voor de laatste actie. Toon een nuttig bericht en bied de relevante herpoging aan.
error_message · textFoutinformatie voor de laatste actie. Toon een nuttig bericht en bied de relevante herpoging aan.
Evenementen
source_changedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
source_loadedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
playback_readyWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
playing_changedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
time_changedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
endedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
tracks_changedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
fullscreen_changedWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
player_errorWanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.
Vragen die ontwikkelaars stellen
Kan ik het geselecteerde segment exporteren?
Nee. Seek en volledig scherm wijzigen de weergave, niet de videogegevens.
Hoe werkt het abonnement?
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.
Gerelateerde handleidingen
Voor hulp, vertel ons welke plugin en welk apparaat u gebruikt, welke actie u probeerde en wat er gebeurde. Gebruik een voorbeeld zonder persoonlijke gegevens. Deel nooit uw sleutel of privé‑bestanden.