
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
Xodera Plugins · Bubble Native
Xodera Video Player Native
Mostra lezioni, dimostrazioni di prodotto e streaming live supportati all'interno della tua app, con controlli di riproduzione, schermo intero e tracce linguistiche disponibili.
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.
Documentazione revisionata 6 novembre 2026
Esempi pratici
Collegamenti ai capitoli in un'app di formazione
Un apprendista deve riprodurre un passaggio di una dimostrazione senza passare a un lettore esterno.
`source_url = Current Lesson’s video URL`; `poster_url = Current Lesson’s cover`; ogni Capitolo memorizza un tempo di avvio gestito dall'app.
Clic sul capitolo → se cambia la sorgente, attendi `source_loaded` → Seek a `position_seconds` → Play. Usa Set playback rate per una dimostrazione dettagliata e Enter fullscreen su richiesta.
Leggi `position_seconds`, `duration_seconds` e `is_fullscreen`; il tuo flusso di lavoro memorizza i progressi della lezione solo per la sorgente corrente.
Su `player_error`, mostra `error_code`, conserva i progressi e offri Reload video. Un evento di completamento non è prova che una lezione o una valutazione di sicurezza sia stata superata.
Usa file video diretti o stream supportati. Questo lettore non esporta video.
Dimostrazioni video negli elenchi del marketplace
Una sola immagine del prodotto non può spiegare come funziona un articolo, ma un video esterno interrompe il flusso di acquisto.
`source_url = Selected Listing’s demonstration URL`; `poster_url = its thumbnail`; `muted = yes` per una prima anteprima intenzionalmente silenziosa.
Apri l'elenco selezionato → collega il suo video → Play dopo un'azione dell'utente. Offri Set muted per l'audio e Enter fullscreen per un'ispezione più ravvicinata. Collega `is_active` al dettaglio visibile.
Usa `has_source`, `is_buffering` e `status` per distinguere un video assente, il caricamento e i media pronti.
Alla sostituzione della sorgente, smetti di applicare i progressi e le selezioni di traccia precedenti. Mostra un'anteprima di riserva quando il file selezionato non è supportato.
Usa file video diretti o stream supportati. Questo lettore non esporta video.
Scegli le tracce linguistiche disponibili in un flusso supportato
Un'app multilingue deve offrire le tracce che una determinata sorgente contiene effettivamente.
`source_url = Selected Programme’s accepted stream URL`; la sorgente stessa deve fornire tracce audio/sottotitoli compatibili.
Su `tracks_changed`, leggi lo `audio_tracks_json` e lo `subtitle_tracks_json` correnti; crea le scelte nella tua app e chiama Select audio track o Select subtitle track con l'indice corrente.
Usa `selected_audio_index`, `selected_subtitle_index` e `source_generation` per associare la scelta a questa sorgente.
Ricostruisci le scelte dopo ogni cambiamento della sorgente. Se una traccia è assente o non supportata, mantieni la traccia predefinita e mostra onestamente la sua disponibilità.
Usa file video diretti o stream supportati. Questo lettore non esporta video.
Cosa funziona ora
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.
Crea il flusso di lavoro
Usa le azioni beta disponibili qui sotto e testa il risultato sui tuoi dispositivi target.
Questi esempi utilizzano record di app come Lesson, Message e Order. Sostituiscili con i tuoi tipi di dati e nomi di elemento. Gli indirizzi multimediali di esempio devono essere sostituiti con i tuoi file.
Imposta source_url = Selected Lesson's video_url e poster_url = Selected Lesson's poster_url. Usa auto o progressive per un MP4; usa hls per uno stream HLS.
Dopo playback_ready, usa Seek per riprendere al position_seconds salvato. L'utente avvia Play. Imposta is_active per indicare se la visualizzazione della lezione è aperta.
Aggiungi i controlli Play, Pause, Seek, Set playback rate e Enter fullscreen. Visualizza position_seconds e duration_seconds.
Dopo tracks_changed, mostra le scelte disponibili audio_tracks_json e subtitle_tracks_json per questo video. Passa l'indice selezionato a Select audio track o Select subtitle track. All’evento ended, salva i progressi.
Configura una sola volta
Crea o scegli il tuo progetto app Bubble in BestPlugins → Dashboard → Plugins. Scegli Xodera Video Player Native, copia la sua chiave, quindi apri Bubble → Plugins → Xodera Video Player Native e incollala in licensing_api_key. Salva una volta; poi usa le azioni qui sotto. Ogni plugin in ogni progetto ha la propria chiave.
Usa un indirizzo video o stream diretto. Un indirizzo YouTube o una pagina web Vimeo non è un file video diretto. La riproduzione non richiede accesso a fotocamera o microfono.
Configura una sola volta
- Crea o scegli il tuo progetto app Bubble su BestPlugins → Dashboard → Plugins.
- Scegli questo plugin e copia la sua chiave di progetto.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Aggiungi l'elemento, scegli i dati della tua app e costruisci il flusso di lavoro qui sotto.
- 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.
Installazione e abbonamento
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.
Salva il risultato nella tua app
Esempio WatchProgress: owner = Current User, lesson = Selected Lesson, seconds = Video Player's position_seconds, duration = Video Player's duration_seconds. Salva solo per il video attualmente selezionato. Gli indici delle tracce appartengono a quel video e non dovrebbero essere memorizzati come scelte linguistiche permanenti.
Errore, annullamento e ripristino
Su player_error, mostra error_code e offri Reload video. Ricarica senza avviare la riproduzione. Selezionare un'altra sorgente cancella le vecchie scelte di traccia. Uscire dalla vista mette in pausa il video; l'utente preme Play per continuare.
Capacità e limiti
Velocità: 0.5, 1, 1.5 e 2. Volume: 0–1. Formati: auto, progressive, HLS e Android‑only DASH. Le tracce disponibili dipendono dal file. Usa -1 per disattivare una traccia; -2 indica sconosciuto e non può essere selezionato. Nessuna modifica, esportazione video, DRM, picture‑in‑picture o cache offline permanente.
Impostazioni, azioni e risultati
Usa questi nomi in Bubble. Le funzionalità pianificate sono contrassegnate separatamente.
Impostazioni beta disponibili
Impostazioni elemento
source_url · textposter_url · textcontent_type · textrate · numbervolume · numbermuted · yes/noloop · yes/nois_active · yes/nodisabled · yes/nonative_controls · yes/noui_text_json · textlanguage · textStati
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 · textEventi
source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_errorAzioni e i loro input
PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle trackImpostazioni elemento · 12
source_urltext · Predefinito: ""- Valore di esempio
https://bestplugins.online/native-samples/lesson.mp4 - Esempio di espressione Bubble
Selected Lesson's video_url - Indirizzo del file audio, video o immagine selezionato. Usa un tipo di file supportato da questo plugin.
poster_urltext · Predefinito: ""- Valore di esempio
https://bestplugins.online/native-samples/poster.jpg - Esempio di espressione Bubble
Selected Lesson's poster_url - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
content_typetext · Predefinito: "auto"- Valore di esempio
auto - Esempio di espressione Bubble
Selected Lesson's video_content_type - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
ratenumber · Predefinito: 1- Valore di esempio
1.5 - Esempio di espressione Bubble
Speed Dropdown's value - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
volumenumber · Predefinito: 1- Valore di esempio
0.8 - Esempio di espressione Bubble
Volume Slider's value - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
mutedyes/no · Predefinito: false- Valore di esempio
no - Esempio di espressione Bubble
Mute Checkbox is checked - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
loopyes/no · Predefinito: false- Valore di esempio
no - Esempio di espressione Bubble
Selected Lesson's repeat_enabled - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
is_activeyes/no · Predefinito: true- Valore di esempio
yes - Esempio di espressione Bubble
GuideHost's view_is_active (your yes/no custom state) - Imposta sì mentre questa vista è aperta. Imposta no quando esci, così la riproduzione o il lavoro corrente può fermarsi.
disabledyes/no · Predefinito: false- Valore di esempio
no - Esempio di espressione Bubble
GuideHost's is_busy (your yes/no custom state) - Disabilita l'elemento mentre la tua app è occupata o questa azione non è disponibile.
native_controlsyes/no · Predefinito: false- Valore di esempio
no - Esempio di espressione Bubble
App Settings' use_native_video_controls - Mostra o nascondi i controlli video standard del dispositivo.
ui_text_jsontext · Predefinito: "{}"- Valore di esempio
{} - Esempio di espressione Bubble
App Settings' player_labels_json (supported keys only) - JSON opzionale con etichette dei pulsanti supportate. Lascia vuoto per usare il testo integrato.
languagetext · Predefinito: "auto"- Valore di esempio
uk - Esempio di espressione Bubble
Current User's preferred_language - Imposta language=auto per seguire la lingua di un dispositivo o browser supportato. Inserisci un codice lingua supportato per sceglierla esplicitamente.
Azioni e i loro input · 11
Play
Nessun parametro di azione
Pause
Nessun parametro di azione
Stop and rewind
Nessun parametro di azione
Reload video
Nessun parametro di azione
Seek
position_secondsnumber · Predefinito: —- Valore di esempio
45 - Esempio di espressione Bubble
Selected Chapter's start_seconds - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
Set volume
volumenumber · Predefinito: —- Valore di esempio
0.8 - Esempio di espressione Bubble
Volume Slider's value - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
Set muted
mutedyes/no · Predefinito: —- Valore di esempio
no - Esempio di espressione Bubble
Mute Checkbox is checked - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
Set playback rate
ratenumber · Predefinito: —- Valore di esempio
1.5 - Esempio di espressione Bubble
Speed Dropdown's value - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
Enter fullscreen
Nessun parametro di azione
Select audio track
indexnumber · Predefinito: —- Valore di esempio
0 - Esempio di espressione Bubble
Selected row's current_source_index - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
Select subtitle track
indexnumber · Predefinito: —- Valore di esempio
0 - Esempio di espressione Bubble
Selected row's current_source_index - Usa il valore del record aziendale corrente; convalidalo rispetto ai limiti riportati di seguito.
Stati ed eventi
Stati
is_playing · yes/noValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
is_buffering · yes/noValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
pending_play · yes/noValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
is_live · yes/noValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
muted · yes/noValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
loop · yes/noValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
has_source · yes/noValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
is_fullscreen · yes/noValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
position_seconds · numberValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
duration_seconds · numberValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
volume · numberValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
rate · numberValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
source_generation · numberValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
selected_audio_index · numberValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
selected_subtitle_index · numberValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
status · textRisultato attuale di questa azione. Usa l'evento di completamento corrispondente prima di salvare il successo. idle,loading,readyToPlay,error
audio_tracks_json · textValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
subtitle_tracks_json · textValore corrente per l'elemento selezionato. Leggilo dopo l'evento correlato.
error_code · textInformazioni di errore per l'ultima azione. Mostra un messaggio utile e offri il tentativo di nuovo pertinente.
error_message · textInformazioni di errore per l'ultima azione. Mostra un messaggio utile e offri il tentativo di nuovo pertinente.
Eventi
source_changedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
source_loadedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
playback_readyQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
playing_changedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
time_changedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
endedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
tracks_changedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
fullscreen_changedQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
player_errorQuando si verifica questo evento, leggi gli stati correlati dallo stesso elemento.
Domande che gli sviluppatori pongono
Posso esportare il segmento selezionato?
No. Seek e il fullscreen modificano la riproduzione, non i byte del video.
Come funziona l'abbonamento?
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.
Guide correlate
Per assistenza, indicaci quale plugin e dispositivo utilizzi, l'azione che hai provato e cosa è accaduto. Usa un esempio senza dati personali. Non condividere mai la tua chiave o file privati.