Interfejs Video Player z przykładową klatką z zwiastuna Sintel.
Interfejs Video Player z przykładową klatką z zwiastuna Sintel.
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
← Wszystkie natywne przewodniki

Xodera Plugins · Bubble Native

Xodera Video Player Native

Wyświetlaj lekcje, demonstracje produktów i obsługiwane transmisje na żywo w aplikacji, z kontrolkami odtwarzania, pełnym ekranem i dostępnymi ścieżkami językowymi.

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.

Dokumentacja przeglądnięta 6 listopad 2026

Praktyczne przykłady

Linki do rozdziałów w aplikacji szkoleniowej

Uczeń musi odtworzyć jeden krok demonstracji bez przechodzenia do zewnętrznego odtwarzacza.

`source_url = Current Lesson’s video URL`; `poster_url = Current Lesson’s cover`; każdy rozdział przechowuje własny czas rozpoczęcia w aplikacji.

Kliknięcie rozdziału → jeśli zmienia źródło, poczekaj na `source_loaded` → Seek do `position_seconds` → Play. Użyj Set playback rate dla szczegółowej demonstracji i Enter fullscreen na żądanie.

Przeczytaj `position_seconds`, `duration_seconds` i `is_fullscreen`; Twój przepływ pracy zapisuje postęp lekcji tylko dla bieżącego źródła.

Przy `player_error` pokaż `error_code`, zachowaj postęp i zaoferuj Reload video. Zdarzenie zakończenia nie jest dowodem, że lekcja lub ocena bezpieczeństwa została zaliczona.

Używaj bezpośrednich plików wideo lub obsługiwanych strumieni. Ten odtwarzacz nie eksportuje wideo.

Demonstracje wideo w ofertach na rynku

Sam obraz produktu nie wyjaśnia, jak przedmiot działa, ale wideo zewnętrzne przerywa proces zakupu.

`source_url = Selected Listing’s demonstration URL`; `poster_url = its thumbnail`; `muted = yes` dla celowo wyciszonego pierwszego podglądu.

Otwórz wybraną ofertę → powiąż jej wideo → Play po akcji użytkownika. Zaproponuj Set muted dla dźwięku i Enter fullscreen dla bliższego przyjrzenia się. Powiąż `is_active` z widoczną szczegółowością.

Użyj `has_source`, `is_buffering` i `status`, aby odróżnić brak wideo, ładowanie i gotowe media.

Po zamianie źródła przestań stosować poprzedni postęp i wybory ścieżek. Pokaż miniaturę zastępczą, gdy wybrany plik nie jest obsługiwany.

Używaj bezpośrednich plików wideo lub obsługiwanych strumieni. Ten odtwarzacz nie eksportuje wideo.

Wybierz dostępne ścieżki językowe w obsługiwanym strumieniu

Wielojęzyczna aplikacja musi oferować ścieżki, które faktycznie zawiera dane źródło.

`source_url = Selected Programme’s accepted stream URL`; samo źródło musi dostarczać kompatybilne ścieżki audio/napisów.

Po `tracks_changed` odczytaj bieżące `audio_tracks_json` i `subtitle_tracks_json`; zbuduj wybory w aplikacji i wywołaj Select audio track lub Select subtitle track z aktualnym indeksem.

Użyj `selected_audio_index`, `selected_subtitle_index` i `source_generation`, aby powiązać wybór z tym źródłem.

Odbuduj wybory po każdej zmianie źródła. Jeśli ścieżka jest nieobecna lub nieobsługiwana, zachowaj domyślną ścieżkę i uczciwie pokaż jej dostępność.

Używaj bezpośrednich plików wideo lub obsługiwanych strumieni. Ten odtwarzacz nie eksportuje wideo.

Co działa teraz

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.

Zbuduj przepływ pracy

Użyj dostępnych poniżej akcji beta i przetestuj wynik na docelowych urządzeniach.

Te przykłady używają rekordów aplikacji, takich jak Lesson, Message i Order. Zastąp je własnymi typami danych i nazwami elementów. Przykładowe adresy mediów należy zastąpić własnymi plikami.

  1. Ustaw source_url = Selected Lesson's video_url i poster_url = Selected Lesson's poster_url. Użyj auto lub progressive dla pliku MP4; użyj hls dla strumienia HLS.

  2. Po playback_ready użyj Seek, aby wznowić zapisany position_seconds. Użytkownik uruchamia Play. Ustaw is_active, aby określić, czy widok lekcji jest otwarty.

  3. Dodaj kontrolki Play, Pause, Seek, Set playback rate i Enter fullscreen. Wyświetl position_seconds i duration_seconds.

  4. Po tracks_changed wyświetl dostępne opcje audio_tracks_json i subtitle_tracks_json dla tego wideo. Przekaż wybrany indeks do Select audio track lub Select subtitle track. Po zdarzeniu ended zapisz postęp.

Diagram przepływu pracy — nie zrzut ekranu aplikacji

Skonfiguruj raz

Utwórz lub wybierz swój projekt aplikacji Bubble w BestPlugins → Dashboard → Plugins. Wybierz Xodera Video Player Native, skopiuj jego klucz, a następnie otwórz Bubble → Plugins → Xodera Video Player Native i wklej go do licensing_api_key. Zapisz raz; potem użyj poniższych akcji. Każda wtyczka w każdym projekcie ma własny klucz.

Użyj bezpośredniego adresu wideo lub strumienia. Adres YouTube lub strona Vimeo nie jest bezpośrednim plikiem wideo. Odtwarzanie nie wymaga dostępu do kamery ani mikrofonu.

Skonfiguruj raz
  1. Utwórz lub wybierz swój projekt aplikacji Bubble w BestPlugins → Dashboard → Plugins.
  2. Wybierz tę wtyczkę i skopiuj jej klucz projektu.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Dodaj element, wybierz dane aplikacji i zbuduj poniższy przepływ pracy.
  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.
Instalacja i subskrypcja

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.

Zapisz wynik w swojej aplikacji

Przykład WatchProgress: owner = Current User, lesson = Selected Lesson, seconds = Video Player's position_seconds, duration = Video Player's duration_seconds. Zapisuj tylko dla aktualnie wybranego wideo. Indeksy ścieżek należą do tego wideo i nie powinny być przechowywane jako stałe wybory językowe.

Błąd, anulowanie i odzyskiwanie

W przypadku player_error pokaż error_code i zaoferuj Reload video. Ładuje ponownie bez uruchamiania odtwarzania. Wybranie innego źródła usuwa poprzednie wybory ścieżek. Opuszczenie widoku wstrzymuje wideo; użytkownik naciska Play, aby kontynuować.

Możliwości i ograniczenia

Prędkości: 0.5, 1, 1.5 i 2. Głośność: 0–1. Formaty: auto, progressive, HLS i Android‑only DASH. Dostępne ścieżki zależą od pliku. Użyj -1, aby wyłączyć ścieżkę; -2 oznacza nieznane i nie może być wybrane. Brak edycji, eksportu wideo, DRM, obrazu‑w‑obrazie ani trwałej pamięci offline.

Ustawienia, akcje i wyniki

Użyj tych nazw w Bubble. Planowane funkcje są oznaczone osobno.

Dostępne ustawienia beta

Ustawienia elementu

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

Stany

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

Zdarzenia

source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_error

Akcje i ich wejścia

PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle track
Ustawienia elementu · 12
source_urltext · Domyślne: ""
Przykładowa wartośćhttps://bestplugins.online/native-samples/lesson.mp4
Przykładowe wyrażenie BubbleSelected Lesson's video_url
Adres wybranego pliku audio, wideo lub obrazu. Użyj typu pliku obsługiwanego przez tę wtyczkę.
poster_urltext · Domyślne: ""
Przykładowa wartośćhttps://bestplugins.online/native-samples/poster.jpg
Przykładowe wyrażenie BubbleSelected Lesson's poster_url
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
content_typetext · Domyślne: "auto"
Przykładowa wartośćauto
Przykładowe wyrażenie BubbleSelected Lesson's video_content_type
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
ratenumber · Domyślne: 1
Przykładowa wartość1.5
Przykładowe wyrażenie BubbleSpeed Dropdown's value
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
volumenumber · Domyślne: 1
Przykładowa wartość0.8
Przykładowe wyrażenie BubbleVolume Slider's value
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
mutedyes/no · Domyślne: false
Przykładowa wartośćno
Przykładowe wyrażenie BubbleMute Checkbox is checked
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
loopyes/no · Domyślne: false
Przykładowa wartośćno
Przykładowe wyrażenie BubbleSelected Lesson's repeat_enabled
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
is_activeyes/no · Domyślne: true
Przykładowa wartośćyes
Przykładowe wyrażenie BubbleGuideHost's view_is_active (your yes/no custom state)
Ustaw tak, gdy ten widok jest otwarty. Ustaw nie przy zamykaniu, aby odtwarzanie lub bieżąca praca mogły się zatrzymać.
disabledyes/no · Domyślne: false
Przykładowa wartośćno
Przykładowe wyrażenie BubbleGuideHost's is_busy (your yes/no custom state)
Wyłącz element, gdy aplikacja jest zajęta lub akcja jest niedostępna.
native_controlsyes/no · Domyślne: false
Przykładowa wartośćno
Przykładowe wyrażenie BubbleApp Settings' use_native_video_controls
Pokaż lub ukryj standardowe kontrolki wideo urządzenia.
ui_text_jsontext · Domyślne: "{}"
Przykładowa wartość{}
Przykładowe wyrażenie BubbleApp Settings' player_labels_json (supported keys only)
Opcjonalny JSON z obsługiwanymi etykietami przycisków. Pozostaw puste, aby użyć wbudowanego tekstu.
languagetext · Domyślne: "auto"
Przykładowa wartośćuk
Przykładowe wyrażenie BubbleCurrent User's preferred_language
Ustaw language=auto, aby podążał za obsługiwanym językiem urządzenia lub przeglądarki. Wprowadź obsługiwany kod języka, aby wybrać go explicite.
Akcje i ich wejścia · 11
Play

Brak parametrów akcji

Pause

Brak parametrów akcji

Stop and rewind

Brak parametrów akcji

Reload video

Brak parametrów akcji

Seek
position_secondsnumber · Domyślne: —
Przykładowa wartość45
Przykładowe wyrażenie BubbleSelected Chapter's start_seconds
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Set volume
volumenumber · Domyślne: —
Przykładowa wartość0.8
Przykładowe wyrażenie BubbleVolume Slider's value
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Set muted
mutedyes/no · Domyślne: —
Przykładowa wartośćno
Przykładowe wyrażenie BubbleMute Checkbox is checked
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Set playback rate
ratenumber · Domyślne: —
Przykładowa wartość1.5
Przykładowe wyrażenie BubbleSpeed Dropdown's value
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Enter fullscreen

Brak parametrów akcji

Select audio track
indexnumber · Domyślne: —
Przykładowa wartość0
Przykładowe wyrażenie BubbleSelected row's current_source_index
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Select subtitle track
indexnumber · Domyślne: —
Przykładowa wartość0
Przykładowe wyrażenie BubbleSelected row's current_source_index
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Stany i zdarzenia

Stany

is_playing · yes/no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

is_buffering · yes/no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

pending_play · yes/no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

is_live · yes/no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

muted · yes/no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

loop · yes/no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

has_source · yes/no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

is_fullscreen · yes/no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

position_seconds · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

duration_seconds · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

volume · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

rate · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

source_generation · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

selected_audio_index · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

selected_subtitle_index · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

status · text

Aktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu. idle,loading,readyToPlay,error

audio_tracks_json · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

subtitle_tracks_json · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

error_code · text

Informacje o błędzie ostatniej akcji. Wyświetl pomocną wiadomość i zaoferuj odpowiednią ponowną próbę.

error_message · text

Informacje o błędzie ostatniej akcji. Wyświetl pomocną wiadomość i zaoferuj odpowiednią ponowną próbę.

Zdarzenia

source_changed

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

source_loaded

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

playback_ready

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

playing_changed

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

time_changed

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

ended

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

tracks_changed

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

fullscreen_changed

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

player_error

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

Pytania, które zadają programiści

Czy mogę wyeksportować wybrany fragment?

Nie. Seek i zmiana trybu pełnego ekranu wpływają na odtwarzanie, nie na bajty wideo.

Jak działa subskrypcja?

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.

Powiązane przewodniki

Aby uzyskać pomoc, podaj, której wtyczki i urządzenia używasz, jaką akcję podjąłeś i co się stało. Użyj przykładu bez danych osobowych. Nigdy nie udostępniaj swojego klucza ani prywatnych plików.