Video Player-interface met een voorbeeldframe van de Sintel-trailer.
Video Player-interface met een voorbeeldframe van de Sintel-trailer.
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
← Alle native gidsen

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.

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

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

  3. Voeg Play, Pause, Seek, Set playback rate en Enter fullscreen‑besturingselementen toe. Toon position_seconds en duration_seconds.

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

Workflow‑diagram — geen appscreenshot

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
  1. Maak of kies uw Bubble app‑project op BestPlugins → Dashboard → Plugins.
  2. Kies deze plug‑in en kopieer de projectsleutel.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Voeg het element toe, kies uw app‑gegevens en bouw de workflow hieronder.
  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.
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 · text

Statussen

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

Evenementen

source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_error

Acties en hun invoer

PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle track
Elementinstellingen · 12
source_urltext · Standaard: ""
Voorbeeldwaardehttps://bestplugins.online/native-samples/lesson.mp4
Voorbeeld Bubble-expressieSelected Lesson's video_url
Adres van het geselecteerde audio‑, video‑ of afbeeldingsbestand. Gebruik een bestandstype dat deze plug‑in ondersteunt.
poster_urltext · Standaard: ""
Voorbeeldwaardehttps://bestplugins.online/native-samples/poster.jpg
Voorbeeld Bubble-expressieSelected Lesson's poster_url
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
content_typetext · Standaard: "auto"
Voorbeeldwaardeauto
Voorbeeld Bubble-expressieSelected Lesson's video_content_type
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
ratenumber · Standaard: 1
Voorbeeldwaarde1.5
Voorbeeld Bubble-expressieSpeed Dropdown's value
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
volumenumber · Standaard: 1
Voorbeeldwaarde0.8
Voorbeeld Bubble-expressieVolume Slider's value
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
mutedyes/no · Standaard: false
Voorbeeldwaardeno
Voorbeeld Bubble-expressieMute Checkbox is checked
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
loopyes/no · Standaard: false
Voorbeeldwaardeno
Voorbeeld Bubble-expressieSelected Lesson's repeat_enabled
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
is_activeyes/no · Standaard: true
Voorbeeldwaardeyes
Voorbeeld Bubble-expressieGuideHost'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
Voorbeeldwaardeno
Voorbeeld Bubble-expressieGuideHost'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
Voorbeeldwaardeno
Voorbeeld Bubble-expressieApp Settings' use_native_video_controls
Toon of verberg de standaard videobediening van het apparaat.
ui_text_jsontext · Standaard: "{}"
Voorbeeldwaarde{}
Voorbeeld Bubble-expressieApp Settings' player_labels_json (supported keys only)
Optionele JSON met ondersteunde knoplabels. Laat leeg om de ingebouwde tekst te gebruiken.
languagetext · Standaard: "auto"
Voorbeeldwaardeuk
Voorbeeld Bubble-expressieCurrent 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: —
Voorbeeldwaarde45
Voorbeeld Bubble-expressieSelected Chapter's start_seconds
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Set volume
volumenumber · Standaard: —
Voorbeeldwaarde0.8
Voorbeeld Bubble-expressieVolume Slider's value
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Set muted
mutedyes/no · Standaard: —
Voorbeeldwaardeno
Voorbeeld Bubble-expressieMute Checkbox is checked
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Set playback rate
ratenumber · Standaard: —
Voorbeeldwaarde1.5
Voorbeeld Bubble-expressieSpeed 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: —
Voorbeeldwaarde0
Voorbeeld Bubble-expressieSelected row's current_source_index
Gebruik de waarde van het huidige bedrijfsrecord; valideer deze tegen de onderstaande limieten.
Select subtitle track
indexnumber · Standaard: —
Voorbeeldwaarde0
Voorbeeld Bubble-expressieSelected 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/no

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

is_buffering · yes/no

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

pending_play · yes/no

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

is_live · yes/no

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

muted · yes/no

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

loop · yes/no

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

has_source · yes/no

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

is_fullscreen · yes/no

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

position_seconds · number

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

duration_seconds · number

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

volume · number

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

rate · number

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

source_generation · number

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

selected_audio_index · number

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

selected_subtitle_index · number

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

status · text

Huidig resultaat van deze actie. Gebruik het overeenkomende voltooiings‑event vóór het opslaan van succes. idle,loading,readyToPlay,error

audio_tracks_json · text

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

subtitle_tracks_json · text

Huidige waarde voor het geselecteerde item. Lees deze na het gerelateerde event.

error_code · text

Foutinformatie voor de laatste actie. Toon een nuttig bericht en bied de relevante herpoging aan.

error_message · text

Foutinformatie voor de laatste actie. Toon een nuttig bericht en bied de relevante herpoging aan.

Evenementen

source_changed

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

source_loaded

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

playback_ready

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

playing_changed

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

time_changed

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

ended

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

tracks_changed

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

fullscreen_changed

Wanneer dit evenement plaatsvindt, lees dan de gerelateerde toestanden van hetzelfde element.

player_error

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