Interfață Video Player cu un cadru de probă din trailerul Sintel.
Interfață Video Player cu un cadru de probă din trailerul Sintel.
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
← Toate ghidurile native

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ă.

  1. 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.

  2. 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ă.

  3. Adaugă controalele Play, Pause, Seek, Set playback rate și Enter fullscreen. Afișează position_seconds și duration_seconds.

  4. 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.

Diagramă de flux de lucru — nu o captură de ecran a aplicației

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ă
  1. Creați sau alegeți proiectul de aplicație Bubble la BestPlugins → Dashboard → Plugins.
  2. Selectați acest plugin și copiați cheia proiectului.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Adăugați elementul, alegeți datele aplicației și construiți fluxul de lucru de mai jos.
  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.
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 · text

Stă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 · text

Evenimente

source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_error

Acțiuni și intrările lor

PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle track
Setări element · 12
source_urltext · Implicit: ""
Valoare exempluhttps://bestplugins.online/native-samples/lesson.mp4
Exemplu Bubble expresieSelected 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 exempluhttps://bestplugins.online/native-samples/poster.jpg
Exemplu Bubble expresieSelected 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 exempluauto
Exemplu Bubble expresieSelected 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 exemplu1.5
Exemplu Bubble expresieSpeed Dropdown's value
Folosește valoarea înregistrării de afaceri curente; valideaz-o în raport cu limitele de mai jos.
volumenumber · Implicit: 1
Valoare exemplu0.8
Exemplu Bubble expresieVolume 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 exempluno
Exemplu Bubble expresieMute 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 exempluno
Exemplu Bubble expresieSelected 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 exempluyes
Exemplu Bubble expresieGuideHost'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 exempluno
Exemplu Bubble expresieGuideHost'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 exempluno
Exemplu Bubble expresieApp Settings' use_native_video_controls
Afișează sau ascunde controalele video standard ale dispozitivului.
ui_text_jsontext · Implicit: "{}"
Valoare exemplu{}
Exemplu Bubble expresieApp 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 exempluuk
Exemplu Bubble expresieCurrent 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 exemplu45
Exemplu Bubble expresieSelected 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 exemplu0.8
Exemplu Bubble expresieVolume 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 exempluno
Exemplu Bubble expresieMute 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 exemplu1.5
Exemplu Bubble expresieSpeed 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 exemplu0
Exemplu Bubble expresieSelected 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 exemplu0
Exemplu Bubble expresieSelected 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/no

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

is_buffering · yes/no

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

pending_play · yes/no

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

is_live · yes/no

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

muted · yes/no

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

loop · yes/no

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

has_source · yes/no

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

is_fullscreen · yes/no

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

position_seconds · number

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

duration_seconds · number

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

volume · number

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

rate · number

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

source_generation · number

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

selected_audio_index · number

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

selected_subtitle_index · number

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

status · text

Rezultatul 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 · text

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

subtitle_tracks_json · text

Valoarea curentă pentru elementul selectat. Citiți‑o după evenimentul asociat.

error_code · text

Informații despre eroarea ultimei acțiuni. Afișați un mesaj util și oferiți o reîncercare relevantă.

error_message · text

Informații despre eroarea ultimei acțiuni. Afișați un mesaj util și oferiți o reîncercare relevantă.

Evenimente

source_changed

Când apare acest eveniment, citiți stările aferente din același element.

source_loaded

Când apare acest eveniment, citiți stările aferente din același element.

playback_ready

Când apare acest eveniment, citiți stările aferente din același element.

playing_changed

Când apare acest eveniment, citiți stările aferente din același element.

time_changed

Când apare acest eveniment, citiți stările aferente din același element.

ended

Când apare acest eveniment, citiți stările aferente din același element.

tracks_changed

Când apare acest eveniment, citiți stările aferente din același element.

fullscreen_changed

Când apare acest eveniment, citiți stările aferente din același element.

player_error

Câ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.