
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
Xodera Plugins · Bubble Native
Xodera Video Player Native
Afișați lecții, demonstrații de produse și fluxuri live suportate în aplicația dvs., cu controale de redare, ecran complet și piste de limbă disponibile.
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.
Documentație revizuită 6 noiembrie 2026
Exemple practice
Legături de capitole în aplicația de instruire
Un cursant trebuie să redea un pas al unei demonstrații fără a naviga către un player extern.
`source_url = Current Lesson’s video URL`; `poster_url = Current Lesson’s cover`; fiecare Capitol stochează un timp de început deținut de aplicație.
Click pe capitol → dacă se schimbă sursa, așteaptă `source_loaded` → Seek la `position_seconds` → Play. Folosește Set playback rate pentru o demonstrație detaliată și Enter fullscreen când se solicită.
Citește `position_seconds`, `duration_seconds` și `is_fullscreen`; fluxul tău de lucru stochează progresul lecției doar pentru sursa curentă.
La `player_error`, afișează `error_code`, păstrează progresul și oferă Reload video. Un eveniment de finalizare nu este dovada că o lecție sau o evaluare de siguranță a fost trecută.
Folosește fișiere video directe sau fluxuri suportate. Acest player nu exportă videoclipuri.
Demonstrații video în listările pieței
O imagine a produsului singură nu poate explica cum funcționează un articol, dar un video extern întrerupe fluxul de achiziție.
`source_url = Selected Listing’s demonstration URL`; `poster_url = its thumbnail`; `muted = yes` pentru o primă previzualizare intenționat fără sunet.
Deschide listarea selectată → leagă video-ul său → Play după o acțiune a utilizatorului. Oferă Set muted pentru sunet și Enter fullscreen pentru o inspecție mai detaliată. Leagă `is_active` de detaliul vizibil.
Folosește `has_source`, `is_buffering` și `status` pentru a distinge un video absent, încărcare și media pregătită.
La înlocuirea sursei, oprește aplicarea progresului vechi și a selecțiilor de pistă. Afișează o miniatură de rezervă când fișierul selectat nu este suportat.
Folosește fișiere video directe sau fluxuri suportate. Acest player nu exportă videoclipuri.
Alege pistele de limbă disponibile într-un flux suportat
O aplicație multilingvă trebuie să ofere pistele pe care o sursă particulară le conține efectiv.
`source_url = Selected Programme’s accepted stream URL`; sursa însăși trebuie să furnizeze piste audio/subtitle compatibile.
Pe `tracks_changed`, citește `audio_tracks_json` și `subtitle_tracks_json` curente; construiește alegeri în aplicația ta și apelează Select audio track sau Select subtitle track cu indexul curent.
Folosește `selected_audio_index`, `selected_subtitle_index` și `source_generation` pentru a asocia alegerea cu această sursă.
Reconstruiește alegerile după fiecare schimbare a sursei. Dacă o pistă este absentă sau nesuportată, păstrează pista implicită și afișează acea disponibilitate cu onestitate.
Folosește fișiere video directe sau fluxuri suportate. Acest player nu exportă videoclipuri.
Ce funcționează acum
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.
Construiește fluxul de lucru
Utilizați acțiunile beta disponibile mai jos și testați rezultatul pe dispozitivele țintă.
Aceste exemple folosesc înregistrări de aplicație precum Lesson, Message și Order. Înlocuiți-le cu propriile tipuri de date și nume de elemente. Adresele media de exemplu trebuie înlocuite cu fișierele dumneavoastră.
Setează source_url = Selected Lesson's video_url și poster_url = Selected Lesson's poster_url. Folosește auto sau progressive pentru un MP4; folosește hls pentru un flux HLS.
După playback_ready, folosește Seek pentru a relua la position_seconds salvat. Utilizatorul pornește Play. Setează is_active pentru a indica dacă vizualizarea lecției este deschisă.
Adaugă controalele Play, Pause, Seek, Set playback rate și Enter fullscreen. Afișează position_seconds și duration_seconds.
După tracks_changed, afișează opțiunile disponibile audio_tracks_json și subtitle_tracks_json pentru acest video. Transmite indicele selectat către Select audio track sau Select subtitle track. La evenimentul ended, salvează progresul.
Configurează o singură dată
Creați sau alegeți proiectul de aplicație Bubble în BestPlugins → Dashboard → Plugins. Alegeți Xodera Video Player Native, copiați cheia acestuia, apoi deschideți Bubble → Plugins → Xodera Video Player Native și inserați-o în licensing_api_key. Salvați o singură dată; apoi utilizați acțiunile de mai jos. Fiecare plugin din fiecare proiect are propria cheie.
Utilizați o adresă video sau de flux directă. O adresă YouTube sau o pagină web Vimeo nu este un fișier video direct. Redarea nu necesită acces la cameră sau microfon.
Configurează o singură dată
- Creați sau alegeți proiectul de aplicație Bubble la BestPlugins → Dashboard → Plugins.
- Selectați acest plugin și copiați cheia proiectului.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Adăugați elementul, alegeți datele aplicației și construiți fluxul de lucru de mai jos.
- 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.
Instalare și abonament
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.
Salvează rezultatul în aplicația ta
Exemplu WatchProgress: owner = Current User, lesson = Selected Lesson, seconds = Video Player's position_seconds, duration = Video Player's duration_seconds. Salvați numai pentru video‑ul selectat în prezent. Indicii de pistă aparțin acelui video și nu ar trebui stocați ca alegeri permanente de limbă.
Eșec, anulare și recuperare
Pe player_error, afișați error_code și oferiți Reload video. Se reîncarcă fără a porni redarea. Selectarea altei surse șterge alegerile vechi de pistă. Părăsirea vizualizării pune video‑ul în pauză; utilizatorul apasă Play pentru a continua.
Capacități și limite
Viteze: 0.5, 1, 1.5 și 2. Volum: 0–1. Formate: auto, progressive, HLS și Android‑only DASH. Pistele disponibile depind de fișier. Folosiți -1 pentru a dezactiva o pistă; -2 înseamnă necunoscut și nu poate fi selectată. Fără editare, export video, DRM, picture‑in‑picture sau cache offline permanent.
Setări, acțiuni și rezultate
Utilizați aceste nume în Bubble. Funcționalitățile planificate sunt marcate separat.
Setări beta disponibile
Setări element
source_url · textposter_url · textcontent_type · textrate · numbervolume · numbermuted · yes/noloop · yes/nois_active · yes/nodisabled · yes/nonative_controls · yes/noui_text_json · textlanguage · textStări
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 · textEvenimente
source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_errorAcțiuni și intrările lor
PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle trackSetări element · 12
source_urltext · Implicit: ""- Valoare exemplu
https://bestplugins.online/native-samples/lesson.mp4 - Exemplu Bubble expresie
Selected Lesson's video_url - Adresa fișierului audio, video sau imagine selectat. Folosește un tip de fișier acceptat de acest plugin.
poster_urltext · Implicit: ""- Valoare exemplu
https://bestplugins.online/native-samples/poster.jpg - Exemplu Bubble expresie
Selected Lesson's poster_url - Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
content_typetext · Implicit: "auto"- Valoare exemplu
auto - Exemplu Bubble expresie
Selected Lesson's video_content_type - Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
ratenumber · Implicit: 1- Valoare exemplu
1.5 - Exemplu Bubble expresie
Speed Dropdown's value - Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
volumenumber · Implicit: 1- Valoare exemplu
0.8 - Exemplu Bubble expresie
Volume Slider's value - Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
mutedyes/no · Implicit: false- Valoare exemplu
no - Exemplu Bubble expresie
Mute Checkbox is checked - Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
loopyes/no · Implicit: false- Valoare exemplu
no - Exemplu Bubble expresie
Selected Lesson's repeat_enabled - Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
is_activeyes/no · Implicit: true- Valoare exemplu
yes - Exemplu Bubble expresie
GuideHost's view_is_active (your yes/no custom state) - Setați da în timp ce această vizualizare este deschisă. Setați nu la părăsire, pentru ca redarea sau lucrarea curentă să se oprească.
disabledyes/no · Implicit: false- Valoare exemplu
no - Exemplu Bubble expresie
GuideHost's is_busy (your yes/no custom state) - Dezactivați elementul în timp ce aplicația este ocupată sau această acțiune nu este disponibilă.
native_controlsyes/no · Implicit: false- Valoare exemplu
no - Exemplu Bubble expresie
App Settings' use_native_video_controls - Afișează sau ascunde controalele video standard ale dispozitivului.
ui_text_jsontext · Implicit: "{}"- Valoare exemplu
{} - Exemplu Bubble expresie
App Settings' player_labels_json (supported keys only) - JSON opțional cu etichete de buton acceptate. Lăsați gol pentru a utiliza textul încorporat.
languagetext · Implicit: "auto"- Valoare exemplu
uk - Exemplu Bubble expresie
Current User's preferred_language - Setați language=auto să urmeze limba unui dispozitiv sau a unui browser acceptat. Introduceți un cod de limbă acceptat pentru a o selecta explicit.
Acțiuni și intrările lor · 11
Play
Niciun parametru de acțiune
Pause
Niciun parametru de acțiune
Stop and rewind
Niciun parametru de acțiune
Reload video
Niciun parametru de acțiune
Seek
position_secondsnumber · Implicit: —- Valoare exemplu
45 - Exemplu Bubble expresie
Selected Chapter's start_seconds - Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
Set volume
volumenumber · Implicit: —- Valoare exemplu
0.8 - Exemplu Bubble expresie
Volume Slider's value - Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
Set muted
mutedyes/no · Implicit: —- Valoare exemplu
no - Exemplu Bubble expresie
Mute Checkbox is checked - Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
Set playback rate
ratenumber · Implicit: —- Valoare exemplu
1.5 - Exemplu Bubble expresie
Speed Dropdown's value - Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
Enter fullscreen
Niciun parametru de acțiune
Select audio track
indexnumber · Implicit: —- Valoare exemplu
0 - Exemplu Bubble expresie
Selected row's current_source_index - Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
Select subtitle track
indexnumber · Implicit: —- Valoare exemplu
0 - Exemplu Bubble expresie
Selected row's current_source_index - Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
Stări și evenimente
Stări
is_playing · yes/noValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
is_buffering · yes/noValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
pending_play · yes/noValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
is_live · yes/noValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
muted · yes/noValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
loop · yes/noValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
has_source · yes/noValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
is_fullscreen · yes/noValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
position_seconds · numberValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
duration_seconds · numberValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
volume · numberValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
rate · numberValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
source_generation · numberValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
selected_audio_index · numberValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
selected_subtitle_index · numberValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
status · textRezultatul curent al acestei acțiuni. Folosește evenimentul de finalizare corespunzător înainte de a salva cu succes. idle,loading,readyToPlay,error
audio_tracks_json · textValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
subtitle_tracks_json · textValoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.
error_code · textInformații despre eroarea ultimei acțiuni. Afișați un mesaj util și oferiți o reîncercare relevantă.
error_message · textInformații despre eroarea ultimei acțiuni. Afișați un mesaj util și oferiți o reîncercare relevantă.
Evenimente
source_changedCând apare acest eveniment, citiți stările aferente din același element.
source_loadedCând apare acest eveniment, citiți stările aferente din același element.
playback_readyCând apare acest eveniment, citiți stările aferente din același element.
playing_changedCând apare acest eveniment, citiți stările aferente din același element.
time_changedCând apare acest eveniment, citiți stările aferente din același element.
endedCând apare acest eveniment, citiți stările aferente din același element.
tracks_changedCând apare acest eveniment, citiți stările aferente din același element.
fullscreen_changedCând apare acest eveniment, citiți stările aferente din același element.
player_errorCând apare acest eveniment, citiți stările aferente din același element.
Întrebări pe care le pun dezvoltatorii
Pot exporta segmentul selectat?
Nu. Seek și modul pe tot ecranul modifică redarea, nu datele video.
Cum funcționează abonamentul?
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.
Ghiduri conexe
Pentru ajutor, spuneți-ne ce plugin și dispozitiv utilizați, acțiunea pe care ați încercat-o și ce s-a întâmplat. Folosiți un exemplu fără date personale. Nu divulgați niciodată cheia sau fișierele private.