
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
Xodera Plugins · Bubble Native
Xodera Video Player Native
Montru lecionojn, produktdemonstraciojn kaj subtenatajn vivaĵfluojn ene de via aplikaĵo, kun reproduktaj regiloj, plenekrana reĝimo kaj disponeblaj lingvaj trakoj.
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.
Dokumentado reviziita 6 novembro 2026
Praktikaj ekzemploj
Ĉapitraj ligiloj en trejnada aplikaĵo
Lernanto devas reludi unu paŝon de demonstraĵo sen navigi al ekstera ludilo.
`source_url = Current Lesson’s video URL`; `poster_url = Current Lesson’s cover`; ĉiu registro Chapter konservas komencan tempon administratan de la aplikaĵo.
Alklako de ĉapitro → se ŝanĝas fonto, atendu `source_loaded` → Seek al `position_seconds` → Play. Uzu Set playback rate por detala demonstraĵo kaj Enter fullscreen laŭ peto.
Legu `position_seconds`, `duration_seconds` kaj `is_fullscreen`; via laborfluo konservas lecionan progreson nur por la aktuala fonto.
Ĉe `player_error`, montru `error_code`, konservu progreson kaj proponu Reload video. Eventa kompletiĝo ne estas pruvo ke leciono aŭ sekureca taksado estis trapasita.
Uzu rektajn videodosierojn aŭ subtenatajn fluojn. Ĉi tiu ludilo ne eksportas videojn.
Video‑demonstracioj en merkataĵaj listigoj
Sola produkta bildo ne povas klarigi, kiel objekto funkcias, sed video ĉe alia retejo interrompas la aĉetfluon.
`source_url = Selected Listing’s demonstration URL`; `poster_url = its thumbnail`; `muted = yes` por intence silenta unua antaŭrigardo.
Malfermu la elektitan Listing → ligu ĝian videon → Play post ago de la uzanto. Proponu Set muted por sono kaj Enter fullscreen por pli detala inspekto. Ligu `is_active` al la videbla detala vido.
Uzu `has_source`, `is_buffering` kaj `status` por distingi mankantan videon, ŝargadon kaj pretan aŭdvidaĵon.
Kiam oni anstataŭigas la fonton, ĉesu apliki malnovan progreson kaj spuri elektojn. Montru miniaturan rezervaĵon kiam la elektita dosiero ne estas subtenata.
Uzu rektajn videodosierojn aŭ subtenatajn fluojn. Ĉi tiu ludilo ne eksportas videojn.
Elektu disponeblajn lingvojn en subtenata fluo.
Plurlingva aplikaĵo devas oferti la trakojn kiujn specifa fonto efektive enhavas.
`source_url = Selected Programme’s accepted stream URL`; la fonto mem devas provizi kongruajn audio/subtekstajn trakojn.
Sur `tracks_changed`, legu la aktualan `audio_tracks_json` kaj `subtitle_tracks_json`; konstruu elektojn en via aplikaĵo kaj alvoku Select audio track aŭ Select subtitle track kun la aktuala indekso.
Uzu `selected_audio_index`, `selected_subtitle_index` kaj `source_generation` por asocii la elekton kun ĉi tiu fonto.
Rekonstruu la elektojn post ĉiu fonta ŝanĝo. Se trako mankas aŭ ne estas subtenata, retenu la defaŭltan trakon kaj honeste montru tiun disponeblecon.
Uzu rektajn videodosierojn aŭ subtenatajn fluojn. Ĉi tiu ludilo ne eksportas videojn.
Kio funkcias nun
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.
Kreu la laborfluon
Uzu la disponeblajn beta-agojn sube kaj testu la rezulton sur viaj cela aparatoj.
Ĉi tiuj ekzemploj uzas aplikaĵajn rekordojn kiel Lesson, Message kaj Order. Anstataŭigu ilin per viaj propraj datumtipoj kaj elementnomoj. Ekzemplaj aŭdvida adresoj devas esti anstataŭigitaj per viaj propraj dosieroj.
Agordu source_url = Selected Lesson's video_url kaj poster_url = Selected Lesson's poster_url. Uzu auto aŭ progressive por MP4; uzu hls por HLS‑fluo.
Post playback_ready, uzu Seek por daŭrigi ĉe konservita position_seconds. La uzanto komencas Play. Agordu is_active por ĉu la leciona vido estas malfermita.
Aldonu Play, Pause, Seek, Set playback rate kaj Enter fullscreen‑regilojn. Montru position_seconds kaj duration_seconds.
Post tracks_changed, montru la disponeblajn elektojn el audio_tracks_json kaj subtitle_tracks_json por ĉi tiu video. Transdonu la elektitan indekson al Select audio track aŭ Select subtitle track. Ĉe ended, konservu la progreson.
Agordu unufoje
Kreu aŭ elektu vian Bubble-aplikaĵan projekton en BestPlugins → Dashboard → Plugins. Elektu Xodera Video Player Native, kopiu ĝian ŝlosilon, poste malfermu Bubble → Plugins → Xodera Video Player Native kaj algluu ĝin en licensing_api_key. Konservu unufoje; poste uzu la subajn agojn. Ĉiu kromaĵo en ĉiu projekto havas sian propran ŝlosilon.
Uzu rektan video- aŭ fluadreson. YouTube aŭ Vimeo-retpaĝa adreso ne estas rekta videodosiero. Reproduktado ne postulas aliron al kamerao aŭ mikrofono.
Agordu unufoje
- Kreu aŭ elektu vian Bubble-aplikaĵan projekton ĉe BestPlugins → Dashboard → Plugins.
- Elektu ĉi tiun kromaĵon kaj kopiu ĝian projektan ŝlosilon.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Aldonu la elementon, elektu viajn aplikaĵajn datumojn kaj konstruu la suban laborfluon.
- 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.
Instalado kaj abono
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.
Konservu la rezulton en via aplikaĵo
Ekzemplo WatchProgress: owner = Current User, lesson = Selected Lesson, seconds = Video Player's position_seconds, duration = Video Player's duration_seconds. Konservu nur por la nuntempe elektita video. Spurindeksoj apartenas al tiu video kaj ne devus esti konservitaj kiel permanaj lingvopreferoj.
Malsukceso, nuligo kaj restaŭro
Sur player_error, montru error_code kaj proponu Reload video. Ĝi reŝargas sen komenci reproduktadon. Elekti alian fonton forigas la malnovajn spuroelektojn. Forlasante la vidon, la video paŭzas; la uzanto premis Play por daŭrigi.
Kapabloj kaj limoj
Rapidoj: 0.5, 1, 1.5 kaj 2. Laŭteco: 0–1. Formatoj: auto, progressive, HLS kaj Android‑nur DASH. Disponeblaj trakoj dependas de la dosiero. Uzu -1 por malŝalti trakon; -2 signifas nekonata kaj ne povas esti elektita. Neniu redaktado, videoeksporto, DRM, bildo‑en‑bildo aŭ permanenta eksterreta kaŝmemoro.
Agordoj, agoj kaj rezultoj
Uzu ĉi tiujn nomojn en Bubble. Planitaj funkcioj estas markitaj aparte.
Disponeblaj beta-agordoj
Elementaj agordoj
source_url · textposter_url · textcontent_type · textrate · numbervolume · numbermuted · yes/noloop · yes/nois_active · yes/nodisabled · yes/nonative_controls · yes/noui_text_json · textlanguage · textStatoj
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 · textEventoj
source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_errorAgoj kaj iliaj enigoj
PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle trackElementaj agordoj · 12
source_urltext · Defaŭlto: ""- Ekzempla valoro
https://bestplugins.online/native-samples/lesson.mp4 - Ekzemplo Bubble esprimo
Selected Lesson's video_url - Adreso de la elektita audio-, video- aŭ bilddosiero. Uzu dosiertipon subtenatan de ĉi tiu kromaĵo.
poster_urltext · Defaŭlto: ""- Ekzempla valoro
https://bestplugins.online/native-samples/poster.jpg - Ekzemplo Bubble esprimo
Selected Lesson's poster_url - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
content_typetext · Defaŭlto: "auto"- Ekzempla valoro
auto - Ekzemplo Bubble esprimo
Selected Lesson's video_content_type - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
ratenumber · Defaŭlto: 1- Ekzempla valoro
1.5 - Ekzemplo Bubble esprimo
Speed Dropdown's value - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
volumenumber · Defaŭlto: 1- Ekzempla valoro
0.8 - Ekzemplo Bubble esprimo
Volume Slider's value - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
mutedyes/no · Defaŭlto: false- Ekzempla valoro
no - Ekzemplo Bubble esprimo
Mute Checkbox is checked - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
loopyes/no · Defaŭlto: false- Ekzempla valoro
no - Ekzemplo Bubble esprimo
Selected Lesson's repeat_enabled - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
is_activeyes/no · Defaŭlto: true- Ekzempla valoro
yes - Ekzemplo Bubble esprimo
GuideHost's view_is_active (your yes/no custom state) - Agordu jes dum ĉi tiu vido estas malfermita. Agordu ne kiam forlasas, por ke reproduktado aŭ nuna laboro povas ĉesi.
disabledyes/no · Defaŭlto: false- Ekzempla valoro
no - Ekzemplo Bubble esprimo
GuideHost's is_busy (your yes/no custom state) - Malebligu la elementon dum via aplikaĵo estas okupata aŭ ĉi tiu ago ne disponeblas.
native_controlsyes/no · Defaŭlto: false- Ekzempla valoro
no - Ekzemplo Bubble esprimo
App Settings' use_native_video_controls - Montru aŭ kaŝu la normajn video-regilojn de la aparato.
ui_text_jsontext · Defaŭlto: "{}"- Ekzempla valoro
{} - Ekzemplo Bubble esprimo
App Settings' player_labels_json (supported keys only) - Nedeviga JSON kun subtenataj butonetiketoj. Lasu malplena por uzi la enkonstruitan tekston.
languagetext · Defaŭlto: "auto"- Ekzempla valoro
uk - Ekzemplo Bubble esprimo
Current User's preferred_language - Agordu language=auto por sekvi subtenatan lingvon de la aparato aŭ retumilo. Enigu subtenatan lingvokodon por elekti ĝin eksplicite.
Agoj kaj iliaj enigoj · 11
Play
Neniuj ago-parametroj
Pause
Neniuj ago-parametroj
Stop and rewind
Neniuj ago-parametroj
Reload video
Neniuj ago-parametroj
Seek
position_secondsnumber · Defaŭlto: —- Ekzempla valoro
45 - Ekzemplo Bubble esprimo
Selected Chapter's start_seconds - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
Set volume
volumenumber · Defaŭlto: —- Ekzempla valoro
0.8 - Ekzemplo Bubble esprimo
Volume Slider's value - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
Set muted
mutedyes/no · Defaŭlto: —- Ekzempla valoro
no - Ekzemplo Bubble esprimo
Mute Checkbox is checked - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
Set playback rate
ratenumber · Defaŭlto: —- Ekzempla valoro
1.5 - Ekzemplo Bubble esprimo
Speed Dropdown's value - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
Enter fullscreen
Neniuj ago-parametroj
Select audio track
indexnumber · Defaŭlto: —- Ekzempla valoro
0 - Ekzemplo Bubble esprimo
Selected row's current_source_index - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
Select subtitle track
indexnumber · Defaŭlto: —- Ekzempla valoro
0 - Ekzemplo Bubble esprimo
Selected row's current_source_index - Uzu la valoron de la nuna komerca registro; validigu ĝin kontraŭ la subaj limoj.
Statoj kaj eventoj
Statoj
is_playing · yes/noNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
is_buffering · yes/noNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
pending_play · yes/noNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
is_live · yes/noNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
muted · yes/noNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
loop · yes/noNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
has_source · yes/noNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
is_fullscreen · yes/noNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
position_seconds · numberNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
duration_seconds · numberNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
volume · numberNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
rate · numberNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
source_generation · numberNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
selected_audio_index · numberNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
selected_subtitle_index · numberNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
status · textAktuala rezulto de ĉi tiu ago. Uzu la kongruan finigan eventon antaŭ ol konservi sukceson. idle,loading,readyToPlay,error
audio_tracks_json · textNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
subtitle_tracks_json · textNuna valoro por la elektita elemento. Legu ĝin post la rilata evento.
error_code · textErarinformoj por la lasta ago. Montru utilan mesaĝon kaj proponu la rilatan reprovon.
error_message · textErarinformoj por la lasta ago. Montru utilan mesaĝon kaj proponu la rilatan reprovon.
Eventoj
source_changedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
source_loadedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
playback_readyKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
playing_changedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
time_changedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
endedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
tracks_changedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
fullscreen_changedKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
player_errorKiam ĉi tiu evento okazas, legu la rilatajn statojn de la sama elemento.
Demandoj, kiujn programistoj demandas
Ĉu mi povas eksporti la elektitan segmenton?
Ne. Seek kaj plenekrana ŝanĝas reproduktadon, ne video‑bajtojn.
Kiel funkcias la abono?
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.
Rilataj gvidiloj
Por helpo, informu nin kiun kromaĵon kaj aparaton vi uzas, la agon kiun vi provis kaj kio okazis. Uzu ekzemplon sen personaj datumoj. Neniam dividu vian ŝlosilon aŭ privatajn dosierojn.