Video Player-gränssnitt med ett exempelram från Sintel-trailern.
Video Player-gränssnitt med ett exempelram från Sintel-trailern.
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
← Alla inbyggda guider

Xodera Plugins · Bubble Native

Xodera Video Player Native

Visa lektioner, produktdemonstrationer och stödjade livestreamar i din app, med uppspelningskontroller, helskärm och tillgängliga språkspår.

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 granskad 6 november 2026

Praktiska exempel

Kapitel‑länkar i en träningsapp

En elev behöver spela upp ett steg i en demonstration igen utan att navigera till en extern spelare.

`source_url = Current Lesson’s video URL`; `poster_url = Current Lesson’s cover`; varje kapitel lagrar en app‑ägd starttid.

Kapitelsklick → om källan ändras, vänta på `source_loaded` → Seek till `position_seconds` → Play. Använd Set playback rate för en detaljerad demonstration och Enter fullscreen på begäran.

Läs `position_seconds`, `duration_seconds` och `is_fullscreen`; ditt arbetsflöde lagrar lektionens framsteg endast för den aktuella källan.

Vid `player_error`, visa `error_code`, bevara framsteg och erbjud Reload video. Ett slutförande‑händelse är inte ett bevis på att en lektion eller säkerhetsbedömning har klarats.

Använd direkta videofiler eller stödda strömmar. Denna spelare exporterar inte videor.

Videodemonstrationer på marknadsplatslistor

Enbart en produktbild kan inte förklara hur en vara fungerar, men en video på annan plats stör köpprocessen.

`source_url = Selected Listing’s demonstration URL`; `poster_url = its thumbnail`; `muted = yes` för en avsiktligt tyst första förhandsvisning.

Öppna den valda listningen → bind dess video → Play efter en användaråtgärd. Erbjud Set muted för ljud och Enter fullscreen för närmare inspektion. Bind `is_active` till den synliga detaljen.

Använd `has_source`, `is_buffering` och `status` för att särskilja frånvarande video, laddning och redo media.

Vid källbyte, sluta tillämpa gammalt framsteg och spårval. Visa en miniatyrfallback när den valda filen inte stöds.

Använd direkta videofiler eller stödda strömmar. Denna spelare exporterar inte videor.

Välj tillgängliga språkspår i en stödjande ström

En flerspråkig app måste erbjuda de spår som en viss källa faktiskt innehåller.

`source_url = Selected Programme’s accepted stream URL`; källan själv måste tillhandahålla kompatibla ljud-/undertextspår.

På `tracks_changed`, läs den aktuella `audio_tracks_json` och `subtitle_tracks_json`; bygg val i din app och anropa Select audio track eller Select subtitle track med det aktuella indexet.

Använd `selected_audio_index`, `selected_subtitle_index` och `source_generation` för att associera valet med denna källa.

Bygg om valen efter varje källändring. Om ett spår saknas eller inte stöds, behåll standardspåret och visa dess tillgänglighet ärligt.

Använd direkta videofiler eller stödda strömmar. Denna spelare exporterar inte videor.

Vad som fungerar 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.

Bygg arbetsflödet

Använd de tillgängliga betahandlingarna nedan och testa resultatet på dina mål enheter.

Dessa exempel använder app‑poster såsom Lesson, Message och Order. Ersätt dem med dina egna datatyper och elementnamn. Exempel på mediadresser måste ersättas med dina egna filer.

  1. Ställ in source_url = Selected Lesson's video_url och poster_url = Selected Lesson's poster_url. Använd auto eller progressive för en MP4; använd hls för en HLS‑ström.

  2. Efter playback_ready, använd Seek för att återuppta vid sparad position_seconds. Användaren startar Play. Ställ in is_active för att ange om lektionens vy är öppen.

  3. Lägg till kontrollerna Play, Pause, Seek, Set playback rate och Enter fullscreen. Visa position_seconds och duration_seconds.

  4. Efter tracks_changed, visa de tillgängliga audio_tracks_json‑ och subtitle_tracks_json‑valen för den här videon. Skicka det valda indexet till Select audio track eller Select subtitle track. Vid händelsen ended, spara framsteg.

Arbetsflödesdiagram — inte en appskärmbild

Konfigurera en gång

Skapa eller välj ditt Bubble‑appprojekt i BestPlugins → Dashboard → Plugins. Välj Xodera Video Player Native, kopiera dess nyckel, öppna sedan Bubble → Plugins → Xodera Video Player Native och klistra in den i licensing_api_key. Spara en gång; använd sedan åtgärderna nedan. Varje plugin i varje projekt har sin egen nyckel.

Använd en direkt video‑ eller strömadress. En YouTube‑ eller Vimeo‑webbadress är inte en direkt videofil. Uppspelning kräver ingen kamera‑ eller mikrofonåtkomst.

Konfigurera en gång
  1. Skapa eller välj ditt Bubble‑appprojekt på BestPlugins → Dashboard → Plugins.
  2. Välj detta plugin och kopiera dess projektnyckel.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Lägg till elementet, välj dina appdata och bygg arbetsflödet nedan.
  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 och prenumeration

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.

Spara resultatet i din app

Exempel WatchProgress: owner = Current User, lesson = Selected Lesson, seconds = Video Player's position_seconds, duration = Video Player's duration_seconds. Spara endast för den för närvarande valda videon. Spårindex tillhör den videon och bör inte lagras som permanenta språkval.

Fel, avbryt och återställning

På player_error, visa error_code och erbjud Reload video. Den laddas om utan att starta uppspelning. Att välja en annan källa rensar de tidigare spårvalen. Att lämna vyn pausar videon; användaren trycker på Play för att fortsätta.

Kapaciteter och begränsningar

Hastigheter: 0.5, 1, 1.5 och 2. Volym: 0–1. Format: auto, progressive, HLS och endast Android‑DASH. Tillgängliga spår beror på filen. Använd -1 för att stänga av ett spår; -2 betyder okänt och kan inte väljas. Ingen redigering, videoexport, DRM, bild‑i‑bild eller permanent offline‑cache.

Inställningar, åtgärder och resultat

Använd dessa namn i Bubble. Planerade funktioner markeras separat.

Tillgängliga beta-inställningar

Elementinställningar

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

Tillstånd

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

Händelser

source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_error

Åtgärder och deras indata

PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle track
Elementinställningar · 12
source_urltext · Standard: ""
Exempelvärdehttps://bestplugins.online/native-samples/lesson.mp4
Exempel Bubble uttryckSelected Lesson's video_url
Adress till den valda ljud-, video- eller bildfilen. Använd en filtyp som detta plugin stödjer.
poster_urltext · Standard: ""
Exempelvärdehttps://bestplugins.online/native-samples/poster.jpg
Exempel Bubble uttryckSelected Lesson's poster_url
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
content_typetext · Standard: "auto"
Exempelvärdeauto
Exempel Bubble uttryckSelected Lesson's video_content_type
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
ratenumber · Standard: 1
Exempelvärde1.5
Exempel Bubble uttryckSpeed Dropdown's value
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
volumenumber · Standard: 1
Exempelvärde0.8
Exempel Bubble uttryckVolume Slider's value
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
mutedyes/no · Standard: false
Exempelvärdeno
Exempel Bubble uttryckMute Checkbox is checked
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
loopyes/no · Standard: false
Exempelvärdeno
Exempel Bubble uttryckSelected Lesson's repeat_enabled
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
is_activeyes/no · Standard: true
Exempelvärdeyes
Exempel Bubble uttryckGuideHost's view_is_active (your yes/no custom state)
Sätt ja medan denna vy är öppen. Sätt nej vid lämning, så uppspelning eller pågående arbete kan stoppas.
disabledyes/no · Standard: false
Exempelvärdeno
Exempel Bubble uttryckGuideHost's is_busy (your yes/no custom state)
Inaktivera elementet medan din app är upptagen eller åtgärden är otillgänglig.
native_controlsyes/no · Standard: false
Exempelvärdeno
Exempel Bubble uttryckApp Settings' use_native_video_controls
Visa eller dölj enhetens standardvideokontroller.
ui_text_jsontext · Standard: "{}"
Exempelvärde{}
Exempel Bubble uttryckApp Settings' player_labels_json (supported keys only)
Valfri JSON med stöd för knappetiketter. Lämna tomt för att använda den inbyggda texten.
languagetext · Standard: "auto"
Exempelvärdeuk
Exempel Bubble uttryckCurrent User's preferred_language
Ställ in language=auto för att följa en stödjande enhet eller webbläsarspråk. Ange en stödjande språkkod för att välja den explicit.
Åtgärder och deras indata · 11
Play

Inga åtgärdsparametrar

Pause

Inga åtgärdsparametrar

Stop and rewind

Inga åtgärdsparametrar

Reload video

Inga åtgärdsparametrar

Seek
position_secondsnumber · Standard: —
Exempelvärde45
Exempel Bubble uttryckSelected Chapter's start_seconds
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Set volume
volumenumber · Standard: —
Exempelvärde0.8
Exempel Bubble uttryckVolume Slider's value
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Set muted
mutedyes/no · Standard: —
Exempelvärdeno
Exempel Bubble uttryckMute Checkbox is checked
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Set playback rate
ratenumber · Standard: —
Exempelvärde1.5
Exempel Bubble uttryckSpeed Dropdown's value
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Enter fullscreen

Inga åtgärdsparametrar

Select audio track
indexnumber · Standard: —
Exempelvärde0
Exempel Bubble uttryckSelected row's current_source_index
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Select subtitle track
indexnumber · Standard: —
Exempelvärde0
Exempel Bubble uttryckSelected row's current_source_index
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Tillstånd och händelser

Tillstånd

is_playing · yes/no

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

is_buffering · yes/no

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

pending_play · yes/no

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

is_live · yes/no

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

muted · yes/no

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

loop · yes/no

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

has_source · yes/no

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

is_fullscreen · yes/no

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

position_seconds · number

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

duration_seconds · number

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

volume · number

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

rate · number

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

source_generation · number

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

selected_audio_index · number

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

selected_subtitle_index · number

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

status · text

Aktuellt resultat av denna åtgärd. Använd motsvarande slutförande‑händelse innan du sparar framgång. idle,loading,readyToPlay,error

audio_tracks_json · text

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

subtitle_tracks_json · text

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

error_code · text

Felinformation för den senaste åtgärden. Visa ett hjälpsamt meddelande och erbjud relevant återförsök.

error_message · text

Felinformation för den senaste åtgärden. Visa ett hjälpsamt meddelande och erbjud relevant återförsök.

Händelser

source_changed

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

source_loaded

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

playback_ready

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

playing_changed

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

time_changed

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

ended

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

tracks_changed

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

fullscreen_changed

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

player_error

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

Frågor som utvecklare ställer

Kan jag exportera det valda segmentet?

Nej. Seek och helskärm ändrar uppspelning, inte videobyten.

Hur fungerar prenumerationen?

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.

Relaterade guider

För hjälp, berätta vilken plugin och enhet du använder, vilken åtgärd du försökte och vad som hände. Använd ett exempel utan personuppgifter. Dela aldrig din nyckel eller privata filer.