
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
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.
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.
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.
Lägg till kontrollerna Play, Pause, Seek, Set playback rate och Enter fullscreen. Visa position_seconds och duration_seconds.
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.
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
- Skapa eller välj ditt Bubble‑appprojekt på BestPlugins → Dashboard → Plugins.
- Välj detta plugin och kopiera dess projektnyckel.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Lägg till elementet, välj dina appdata och bygg arbetsflödet nedan.
- 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 · textTillstå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 · textHä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 trackElementinställningar · 12
source_urltext · Standard: ""- Exempelvärde
https://bestplugins.online/native-samples/lesson.mp4 - Exempel Bubble uttryck
Selected 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ärde
https://bestplugins.online/native-samples/poster.jpg - Exempel Bubble uttryck
Selected Lesson's poster_url - Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
content_typetext · Standard: "auto"- Exempelvärde
auto - Exempel Bubble uttryck
Selected Lesson's video_content_type - Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
ratenumber · Standard: 1- Exempelvärde
1.5 - Exempel Bubble uttryck
Speed Dropdown's value - Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
volumenumber · Standard: 1- Exempelvärde
0.8 - Exempel Bubble uttryck
Volume Slider's value - Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
mutedyes/no · Standard: false- Exempelvärde
no - Exempel Bubble uttryck
Mute Checkbox is checked - Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
loopyes/no · Standard: false- Exempelvärde
no - Exempel Bubble uttryck
Selected Lesson's repeat_enabled - Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
is_activeyes/no · Standard: true- Exempelvärde
yes - Exempel Bubble uttryck
GuideHost'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ärde
no - Exempel Bubble uttryck
GuideHost'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ärde
no - Exempel Bubble uttryck
App Settings' use_native_video_controls - Visa eller dölj enhetens standardvideokontroller.
ui_text_jsontext · Standard: "{}"- Exempelvärde
{} - Exempel Bubble uttryck
App 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ärde
uk - Exempel Bubble uttryck
Current 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ärde
45 - Exempel Bubble uttryck
Selected Chapter's start_seconds - Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Set volume
volumenumber · Standard: —- Exempelvärde
0.8 - Exempel Bubble uttryck
Volume Slider's value - Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Set muted
mutedyes/no · Standard: —- Exempelvärde
no - Exempel Bubble uttryck
Mute Checkbox is checked - Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Set playback rate
ratenumber · Standard: —- Exempelvärde
1.5 - Exempel Bubble uttryck
Speed 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ärde
0 - Exempel Bubble uttryck
Selected 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ärde
0 - Exempel Bubble uttryck
Selected 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/noAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
is_buffering · yes/noAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
pending_play · yes/noAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
is_live · yes/noAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
muted · yes/noAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
loop · yes/noAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
has_source · yes/noAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
is_fullscreen · yes/noAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
position_seconds · numberAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
duration_seconds · numberAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
volume · numberAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
rate · numberAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
source_generation · numberAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
selected_audio_index · numberAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
selected_subtitle_index · numberAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
status · textAktuellt resultat av denna åtgärd. Använd motsvarande slutförande‑händelse innan du sparar framgång. idle,loading,readyToPlay,error
audio_tracks_json · textAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
subtitle_tracks_json · textAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
error_code · textFelinformation för den senaste åtgärden. Visa ett hjälpsamt meddelande och erbjud relevant återförsök.
error_message · textFelinformation för den senaste åtgärden. Visa ett hjälpsamt meddelande och erbjud relevant återförsök.
Händelser
source_changedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
source_loadedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
playback_readyNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
playing_changedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
time_changedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
endedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
tracks_changedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
fullscreen_changedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
player_errorNä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.