Video Player-grænseflade med en prøveframe fra Sintel-traileren.
Video Player-grænseflade med en prøveframe fra Sintel-traileren.
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
← Alle indfødte vejledninger

Xodera Plugins · Bubble Native

Xodera Video Player Native

Vis lektioner, produktdemonstrationer og understøttede livestreams i din app, med afspilningskontroller, fuldskærm og tilgængelige sprogspor.

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.

Dokumentation gennemgået 6 november 2026

Praktiske eksempler

Kapitel‑links i en træningsapp

En elev skal kunne afspille et trin af en demonstration igen uden at navigere til en ekstern afspiller.

`source_url = Current Lesson’s video URL`; `poster_url = Current Lesson’s cover`; hvert kapitel gemmer en app‑ejet starttid.

Kapitel‑klik → hvis kilden skiftes, vent på `source_loaded` → Seek til `position_seconds` → Play. Brug Set playback rate til en detaljeret demonstration og Enter fullscreen på anmodning.

Læs `position_seconds`, `duration_seconds` og `is_fullscreen`; din arbejdsgang gemmer lektionens fremdrift kun for den aktuelle kilde.

Ved `player_error`, vis `error_code`, bevar fremdrift og tilbyd Reload video. En afslutnings‑hændelse er ikke bevis på, at en lektion eller sikkerhedsvurdering er bestået.

Brug direkte videofiler eller understøttede streams. Denne afspiller eksporterer ikke videoer.

Videodemonstrationer på markedsplads‑opslag

Et produktbillede alene kan ikke forklare, hvordan en vare fungerer, men en ekstern video afbryder købsflowet.

`source_url = Selected Listing’s demonstration URL`; `poster_url = its thumbnail`; `muted = yes` til en bevidst tavs første forhåndsvisning.

Åbn den valgte opslag → bind dens video → Play efter en brugerhandling. Tilbyd Set muted for lyd og Enter fullscreen for nærmere inspektion. Bind `is_active` til den synlige detalje.

Brug `has_source`, `is_buffering` og `status` til at skelne mellem fraværende video, indlæsning og klar medie.

Ved kildeudskiftning, stop med at anvende gammel fremdrift og sporskift. Vis en miniature‑fallback, når den valgte fil ikke understøttes.

Brug direkte videofiler eller understøttede streams. Denne afspiller eksporterer ikke videoer.

Vælg tilgængelige sprogspor i en understøttet stream

En flersproget app skal tilbyde de spor, som en given kilde faktisk indeholder.

`source_url = Selected Programme’s accepted stream URL`; kilden selv skal levere kompatible lyd-/undertekstspor.

På `tracks_changed` læs den aktuelle `audio_tracks_json` og `subtitle_tracks_json`; opbyg valg i din app og kald Select audio track eller Select subtitle track med den aktuelle indeks.

Brug `selected_audio_index`, `selected_subtitle_index` og `source_generation` til at knytte valget til denne kilde.

Genopbyg valgene efter hver kildeændring. Hvis et spor mangler eller ikke understøttes, behold standardsporet og vis tilgængeligheden ærligt.

Brug direkte videofiler eller understøttede streams. Denne afspiller eksporterer ikke videoer.

Hvad der virker nu

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.

Byg arbejdsprocessen

Brug de tilgængelige beta-handlinger nedenfor og test resultatet på dine målrettede enheder.

Denne eksempler bruger app‑poster såsom Lesson, Message og Order. Erstat dem med dine egne datatyper og elementnavne. Eksempelmedie‑adresser skal erstattes med dine egne filer.

  1. Indstil source_url = Selected Lesson's video_url og poster_url = Selected Lesson's poster_url. Brug auto eller progressive til en MP4; brug hls til en HLS‑stream.

  2. Efter playback_ready, brug Seek til at genoptage på gemt position_seconds. Brugeren starter Play. Indstil is_active til om lektionens visning er åben.

  3. Tilføj Play, Pause, Seek, Set playback rate og Enter fullscreen‑kontroller. Vis position_seconds og duration_seconds.

  4. Efter tracks_changed, vis de tilgængelige audio_tracks_json‑ og subtitle_tracks_json‑valg for denne video. Send den valgte indeks til Select audio track eller Select subtitle track. Ved hændelsen ended, gem fremdrift.

Arbejdsgangsdiagram — ikke et app‑skærmbillede

Konfigurer én gang

Opret eller vælg dit Bubble app‑projekt i BestPlugins → Dashboard → Plugins. Vælg Xodera Video Player Native, kopier dens nøgle, åbn derefter Bubble → Plugins → Xodera Video Player Native og indsæt den i licensing_api_key. Gem én gang; brug derefter handlingerne nedenfor. Hvert plugin i hvert projekt har sin egen nøgle.

Brug en direkte video‑ eller stream‑adresse. En YouTube‑ eller Vimeo‑webadresse er ikke en direkte videofil. Afspilning kræver ingen kamera‑ eller mikrofonadgang.

Konfigurer én gang
  1. Opret eller vælg dit Bubble app-projekt på BestPlugins → Dashboard → Plugins.
  2. Vælg dette plugin og kopier dets projekt-nøgle.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Tilføj elementet, vælg dine app-data og opbyg arbejdsflowet nedenfor.
  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.
Installation og 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.

Gem resultatet i din app

Eksempel WatchProgress: owner = Current User, lesson = Selected Lesson, seconds = Video Player's position_seconds, duration = Video Player's duration_seconds. Gem kun for den aktuelt valgte video. Spor‑indekser tilhører den video og bør ikke gemmes som permanente sprogvalg.

Fejl, annullering og genoprettelse

På player_error vis error_code og tilbyd Reload video. Den genindlæses uden at starte afspilning. Valg af en anden kilde rydder de gamle sporvalg. Når visningen forlades, pauses videoen; brugeren trykker på Play for at fortsætte.

Kapaciteter og begrænsninger

Hastigheder: 0.5, 1, 1.5 og 2. Lydstyrke: 0–1. Formater: auto, progressive, HLS og kun Android‑DASH. Tilgængelige spor afhænger af filen. Brug -1 for at slå et spor fra; -2 betyder ukendt og kan ikke vælges. Ingen redigering, video‑eksport, DRM, billed‑i‑billed eller permanent offline‑cache.

Indstillinger, handlinger og resultater

Brug disse navne i Bubble. Planlagte funktioner er markeret separat.

Tilgængelige beta‑indstillinger

Elementindstillinger

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

Tilstande

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

Begivenheder

source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_error

Handlinger og deres input

PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle track
Elementindstillinger · 12
source_urltext · Standard: ""
Eksempelværdihttps://bestplugins.online/native-samples/lesson.mp4
Eksempel Bubble udtrykSelected Lesson's video_url
Adresse på den valgte lyd-, video- eller billedfil. Brug en filtype, som dette plugin understøtter.
poster_urltext · Standard: ""
Eksempelværdihttps://bestplugins.online/native-samples/poster.jpg
Eksempel Bubble udtrykSelected Lesson's poster_url
Brug den aktuelle forretningspost's værdi; valider den mod grænserne nedenfor.
content_typetext · Standard: "auto"
Eksempelværdiauto
Eksempel Bubble udtrykSelected Lesson's video_content_type
Brug den aktuelle forretningspost's værdi; valider den mod grænserne nedenfor.
ratenumber · Standard: 1
Eksempelværdi1.5
Eksempel Bubble udtrykSpeed Dropdown's value
Brug den aktuelle forretningspost's værdi; valider den mod grænserne nedenfor.
volumenumber · Standard: 1
Eksempelværdi0.8
Eksempel Bubble udtrykVolume Slider's value
Brug den aktuelle forretningspost's værdi; valider den mod grænserne nedenfor.
mutedyes/no · Standard: false
Eksempelværdino
Eksempel Bubble udtrykMute Checkbox is checked
Brug den aktuelle forretningspost's værdi; valider den mod grænserne nedenfor.
loopyes/no · Standard: false
Eksempelværdino
Eksempel Bubble udtrykSelected Lesson's repeat_enabled
Brug den aktuelle forretningspost's værdi; valider den mod grænserne nedenfor.
is_activeyes/no · Standard: true
Eksempelværdiyes
Eksempel Bubble udtrykGuideHost's view_is_active (your yes/no custom state)
Sæt ja, mens denne visning er åben. Sæt nej ved afslutning, så afspilning eller aktuelt arbejde kan stoppe.
disabledyes/no · Standard: false
Eksempelværdino
Eksempel Bubble udtrykGuideHost's is_busy (your yes/no custom state)
Deaktivér elementet, mens din app er optaget eller handlingen er utilgængelig.
native_controlsyes/no · Standard: false
Eksempelværdino
Eksempel Bubble udtrykApp Settings' use_native_video_controls
Vis eller skjul enhedens standard videokontroller.
ui_text_jsontext · Standard: "{}"
Eksempelværdi{}
Eksempel Bubble udtrykApp Settings' player_labels_json (supported keys only)
Valgfri JSON med understøttede knapetiketter. Lad stå tomt for at bruge den indbyggede tekst.
languagetext · Standard: "auto"
Eksempelværdiuk
Eksempel Bubble udtrykCurrent User's preferred_language
Sæt language=auto til at følge en understøttet enhed eller browsersprog. Indtast en understøttet sprogkode for at vælge den eksplicit.
Handlinger og deres input · 11
Play

Ingen handlingsparametre

Pause

Ingen handlingsparametre

Stop and rewind

Ingen handlingsparametre

Reload video

Ingen handlingsparametre

Seek
position_secondsnumber · Standard: —
Eksempelværdi45
Eksempel Bubble udtrykSelected Chapter's start_seconds
Brug den aktuelle forretningspost's værdi; valider den mod grænserne nedenfor.
Set volume
volumenumber · Standard: —
Eksempelværdi0.8
Eksempel Bubble udtrykVolume Slider's value
Brug den aktuelle forretningspost's værdi; valider den mod grænserne nedenfor.
Set muted
mutedyes/no · Standard: —
Eksempelværdino
Eksempel Bubble udtrykMute Checkbox is checked
Brug den aktuelle forretningspost's værdi; valider den mod grænserne nedenfor.
Set playback rate
ratenumber · Standard: —
Eksempelværdi1.5
Eksempel Bubble udtrykSpeed Dropdown's value
Brug den aktuelle forretningspost's værdi; valider den mod grænserne nedenfor.
Enter fullscreen

Ingen handlingsparametre

Select audio track
indexnumber · Standard: —
Eksempelværdi0
Eksempel Bubble udtrykSelected row's current_source_index
Brug den aktuelle forretningspost's værdi; valider den mod grænserne nedenfor.
Select subtitle track
indexnumber · Standard: —
Eksempelværdi0
Eksempel Bubble udtrykSelected row's current_source_index
Brug den aktuelle forretningspost's værdi; valider den mod grænserne nedenfor.
Tilstande og hændelser

Tilstande

is_playing · yes/no

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

is_buffering · yes/no

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

pending_play · yes/no

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

is_live · yes/no

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

muted · yes/no

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

loop · yes/no

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

has_source · yes/no

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

is_fullscreen · yes/no

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

position_seconds · number

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

duration_seconds · number

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

volume · number

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

rate · number

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

source_generation · number

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

selected_audio_index · number

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

selected_subtitle_index · number

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

status · text

Nuværende resultat af denne handling. Brug den tilsvarende afslutnings‑begivenhed før du gemmer succes. idle,loading,readyToPlay,error

audio_tracks_json · text

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

subtitle_tracks_json · text

Nuværende værdi for det valgte element. Læs den efter den relaterede begivenhed.

error_code · text

Fejlinformation for den sidste handling. Vis en hjælpsom besked og tilbyd den relevante genforsøg.

error_message · text

Fejlinformation for den sidste handling. Vis en hjælpsom besked og tilbyd den relevante genforsøg.

Begivenheder

source_changed

Når denne hændelse indtræffer, læs de relaterede tilstande fra det samme element.

source_loaded

Når denne hændelse indtræffer, læs de relaterede tilstande fra det samme element.

playback_ready

Når denne hændelse indtræffer, læs de relaterede tilstande fra det samme element.

playing_changed

Når denne hændelse indtræffer, læs de relaterede tilstande fra det samme element.

time_changed

Når denne hændelse indtræffer, læs de relaterede tilstande fra det samme element.

ended

Når denne hændelse indtræffer, læs de relaterede tilstande fra det samme element.

tracks_changed

Når denne hændelse indtræffer, læs de relaterede tilstande fra det samme element.

fullscreen_changed

Når denne hændelse indtræffer, læs de relaterede tilstande fra det samme element.

player_error

Når denne hændelse indtræffer, læs de relaterede tilstande fra det samme element.

Spørgsmål udviklere stiller

Kan jeg eksportere det valgte segment?

Nej. Seek og fuldskærm ændrer afspilning, ikke videobyter.

Hvordan fungerer abonnementet?

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.

Relaterede vejledninger

For hjælp, fortæl os, hvilket plugin og hvilken enhed du bruger, hvilken handling du forsøgte, og hvad der skete. Brug et eksempel uden personlige data. Del aldrig din nøgle eller private filer.