Інтерфейс Video Player з зразковим кадром з трейлеру Sintel.
Інтерфейс Video Player з зразковим кадром з трейлеру Sintel.
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
← Усі оригінальні посібники

Xodera Plugins · Bubble Native

Xodera Video Player Native

Показуйте уроки, демонстрації товарів і підтримувані трансляції у застосунку: з керуванням, повним екраном і доступними мовними доріжками.

Посібники публічних бета-версій · інструкції Haptics у його картці Bubble

Умови публічної бета-версії: Bubble безкоштовно · 7 днів з карткою, потім 1,50 USD/місяць за плагін у проєкті.

Документація переглянута 6 листопада 2026

Практичні сценарії

Розділи навчального відео

Навчальнику потрібно повторити один крок демонстрації без переходу до зовнішнього програвача.

`source_url = Current Lesson’s video URL`; `poster_url = Current Lesson’s cover`; кожен розділ зберігає стартовий час, що належить застосунку.

Клік на розділі → якщо змінюється джерело, чекайте `source_loaded` → Seek до `position_seconds` → Play. Використовуйте Set playback rate для докладної демонстрації та Enter fullscreen за запитом.

Прочитайте `position_seconds`, `duration_seconds` та `is_fullscreen`; ваш робочий процес зберігає прогрес уроку лише для поточного джерела.

При `player_error` покажіть `error_code`, збережіть прогрес і запропонуйте Reload video. Подія завершення не є доказом того, що урок або оцінка безпеки пройдені.

Використовуйте прямі відеофайли або підтримувані потоки. Плеєр не експортує відео.

Демонстрація товару

Один лише зображення продукту не може пояснити, як працює товар, але зовнішнє відео порушує процес покупки.

`source_url = Selected Listing’s demonstration URL`; `poster_url = its thumbnail`; `muted = yes` для навмисно беззвучного першого попереднього перегляду.

Відкрийте вибраний листинг → прив’яжіть його відео → Play після дії користувача. Запропонуйте Set muted для звуку та Enter fullscreen для детальнішого огляду. Прив’яжіть `is_active` до видимої деталі.

Використовуйте `has_source`, `is_buffering` та `status`, щоб розрізнити відсутнє відео, завантаження та готові медіа.

При заміні джерела припиніть застосовувати старий прогрес і вибір треків. Показуйте запасну мініатюру, коли вибраний файл не підтримується.

Використовуйте прямі відеофайли або підтримувані потоки. Плеєр не експортує відео.

Мовні доріжки потоку

Багатомовний застосунок повинен пропонувати треки, які фактично містить конкретне джерело.

`source_url = Selected Programme’s accepted stream URL`; саме джерело повинно забезпечувати сумісні аудіо/субтитри.

На `tracks_changed` зчитайте поточні `audio_tracks_json` та `subtitle_tracks_json`; сформуйте варіанти у вашому додатку та викличте Select audio track або Select subtitle track з поточним індексом.

Використайте `selected_audio_index`, `selected_subtitle_index` та `source_generation`, щоб пов’язати вибір з цим джерелом.

Перебудуйте варіанти після кожної зміни джерела. Якщо доріжка відсутня або не підтримується, залиште доріжку за замовчуванням і чесно покажіть її доступність.

Використовуйте прямі відеофайли або підтримувані потоки. Плеєр не експортує відео.

Що працює зараз

Публічна бета-версія. Використовуйте описані елементи керування й дії; перевірте формати, дозволи та поведінку у своєму нативному застосунку. Вебпрев’ю не перевіряє результат на пристрої.

Побудуйте бізнес-процес

Використовуйте доступні бета-дії нижче й перевіряйте результат на потрібних пристроях.

У прикладах є записи Lesson, Message та Order. Замініть їх на власні типи даних і назви елементів. Замість адрес із прикладів підставте власні файли.

  1. Задайте source_url = Selected Lesson's video_url і poster_url = Selected Lesson's poster_url. Для MP4 використовуйте auto або progressive, для HLS — hls.

  2. Після playback_ready відновіть позицію через Seek зі збереженим position_seconds. Користувач запускає Play. is_active відповідає тому, чи відкрита сторінка уроку.

  3. Додайте Play, Pause, Seek, Set playback rate та Enter fullscreen. Покажіть position_seconds і duration_seconds.

  4. Після tracks_changed покажіть доступні для цього відео audio_tracks_json і subtitle_tracks_json. Передайте вибраний індекс у Select audio track або Select subtitle track. На ended збережіть прогрес.

Діаграма робочого процесу — не скріншот додатку · SVG

Налаштуйте один раз

Створіть або оберіть проєкт Bubble у BestPlugins → Dashboard → Plugins. Оберіть Xodera Video Player Native, скопіюйте його ключ, відкрийте Bubble → Plugins → Xodera Video Player Native і вставте ключ у licensing_api_key. Збережіть один раз, далі використовуйте дії нижче. Для кожного плагіна в кожному проєкті є окремий ключ.

Потрібна пряма адреса відео або потоку. Посилання на сторінку YouTube чи Vimeo не є відеофайлом. Для перегляду не потрібні камера або мікрофон.

Налаштуйте один раз
  1. Створіть або оберіть проєкт Bubble у BestPlugins → Dashboard → Plugins.
  2. Оберіть цей плагін і скопіюйте ключ його проєкту.
  3. Відкрийте Bubble → Plugins → цей плагін. Вставте ключ його проєкту в licensing_api_key та збережіть.
  4. Додайте елемент, оберіть дані свого застосунку та побудуйте workflow нижче.
  5. На панелі керування перегляньте й підтвердьте 7-денний пробний доступ із карткою для цього плагіна. Потім він коштує 1,50 USD/місяць за проєкт, включно з розробкою та робочою версією. Скасуйте до завершення пробного періоду, щоб уникнути першого списання.
Встановлення та підписка

Для Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit та Haptics: безкоштовне встановлення в Bubble, 7 днів пробного доступу з карткою, потім 1,50 USD на місяць за плагін у проєкті. Розробку й робочу версію включено, без ліміту операцій. Обмеження файлів і можливостей залишаються. Перед підтвердженням перевірте оплату й скасування. Інші плагіни недоступні для покупки.

Як записати результат у свою базу

Приклад WatchProgress: owner = Current User, lesson = Selected Lesson, seconds = Video Player's position_seconds, duration = Video Player's duration_seconds. Зберігайте лише для вибраного відео. Індекси доріжок належать цьому відео й не є постійними налаштуваннями мови.

Помилки, скасування та відновлення

На player_error покажіть error_code і запропонуйте Reload video без автоматичного запуску. Після вибору іншого відео старі доріжки очищуються. Вихід зі сторінки ставить відео на паузу; для продовження користувач натискає Play.

Можливості й обмеження

Швидкості: 0.5, 1, 1.5 та 2. Гучність: 0–1. Формати: auto, progressive, HLS та лише Android‑DASH. Доступні треки залежать від файлу. Використовуйте -1, щоб вимкнути трек; -2 означає невідомо і не може бути обрано. Без редагування, експорту відео, DRM, картинка‑в‑картинці або постійного офлайн‑кешу.

Налаштування, дії та результати

Використовуйте ці назви в Bubble. Плановані функції позначені окремо.

Доступні бета‑налаштування

Налаштування елемента

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

Стани

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

Події

source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_error

Дії та їхні параметри

PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle track
Налаштування елемента · 12
source_urltext · Типове значення: ""
Приклад значенняhttps://bestplugins.online/native-samples/lesson.mp4
Приклад виразу BubbleSelected Lesson's video_url
Адреса вибраного аудіо, відео або зображення. Використовуйте тип файлу, який підтримує цей плагін.
poster_urltext · Типове значення: ""
Приклад значенняhttps://bestplugins.online/native-samples/poster.jpg
Приклад виразу BubbleSelected Lesson's poster_url
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
content_typetext · Типове значення: "auto"
Приклад значенняauto
Приклад виразу BubbleSelected Lesson's video_content_type
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
ratenumber · Типове значення: 1
Приклад значення1.5
Приклад виразу BubbleSpeed Dropdown's value
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
volumenumber · Типове значення: 1
Приклад значення0.8
Приклад виразу BubbleVolume Slider's value
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
mutedyes/no · Типове значення: false
Приклад значенняno
Приклад виразу BubbleMute Checkbox is checked
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
loopyes/no · Типове значення: false
Приклад значенняno
Приклад виразу BubbleSelected Lesson's repeat_enabled
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
is_activeyes/no · Типове значення: true
Приклад значенняyes
Приклад виразу BubbleGuideHost's view_is_active (your yes/no custom state)
yes, доки ця сторінка відкрита; no під час виходу, щоб зупинити відтворення чи поточну дію.
disabledyes/no · Типове значення: false
Приклад значенняno
Приклад виразу BubbleGuideHost's is_busy (your yes/no custom state)
Вимкніть елемент, коли застосунок зайнятий або дія недоступна.
native_controlsyes/no · Типове значення: false
Приклад значенняno
Приклад виразу BubbleApp Settings' use_native_video_controls
Показати або приховати стандартні відеокнопки пристрою.
ui_text_jsontext · Типове значення: "{}"
Приклад значення{}
Приклад виразу BubbleApp Settings' player_labels_json (supported keys only)
Необов’язковий JSON із підтримуваними підписами кнопок. Залиште порожнім для вбудованих текстів.
languagetext · Типове значення: "auto"
Приклад значенняuk
Приклад виразу BubbleCurrent User's preferred_language
Укажіть language=auto, щоб автоматично використати підтримувану мову пристрою або браузера. Щоб обрати мову явно, укажіть підтримуваний код мови.
Дії та їхні параметри · 11
Play

Немає параметрів дії

Pause

Немає параметрів дії

Stop and rewind

Немає параметрів дії

Reload video

Немає параметрів дії

Seek
position_secondsnumber · Типове значення: —
Приклад значення45
Приклад виразу BubbleSelected Chapter's start_seconds
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Set volume
volumenumber · Типове значення: —
Приклад значення0.8
Приклад виразу BubbleVolume Slider's value
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Set muted
mutedyes/no · Типове значення: —
Приклад значенняno
Приклад виразу BubbleMute Checkbox is checked
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Set playback rate
ratenumber · Типове значення: —
Приклад значення1.5
Приклад виразу BubbleSpeed Dropdown's value
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Enter fullscreen

Немає параметрів дії

Select audio track
indexnumber · Типове значення: —
Приклад значення0
Приклад виразу BubbleSelected row's current_source_index
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Select subtitle track
indexnumber · Типове значення: —
Приклад значення0
Приклад виразу BubbleSelected row's current_source_index
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Стани та події

Стани

is_playing · yes/no

Поточне значення вибраного елемента. Читайте його після відповідної події.

is_buffering · yes/no

Поточне значення вибраного елемента. Читайте його після відповідної події.

pending_play · yes/no

Поточне значення вибраного елемента. Читайте його після відповідної події.

is_live · yes/no

Поточне значення вибраного елемента. Читайте його після відповідної події.

muted · yes/no

Поточне значення вибраного елемента. Читайте його після відповідної події.

loop · yes/no

Поточне значення вибраного елемента. Читайте його після відповідної події.

has_source · yes/no

Поточне значення вибраного елемента. Читайте його після відповідної події.

is_fullscreen · yes/no

Поточне значення вибраного елемента. Читайте його після відповідної події.

position_seconds · number

Поточне значення вибраного елемента. Читайте його після відповідної події.

duration_seconds · number

Поточне значення вибраного елемента. Читайте його після відповідної події.

volume · number

Поточне значення вибраного елемента. Читайте його після відповідної події.

rate · number

Поточне значення вибраного елемента. Читайте його після відповідної події.

source_generation · number

Поточне значення вибраного елемента. Читайте його після відповідної події.

selected_audio_index · number

Поточне значення вибраного елемента. Читайте його після відповідної події.

selected_subtitle_index · number

Поточне значення вибраного елемента. Читайте його після відповідної події.

status · text

Поточний результат дії. Перед записом успіху дочекайтеся відповідної події завершення. idle,loading,readyToPlay,error

audio_tracks_json · text

Поточне значення вибраного елемента. Читайте його після відповідної події.

subtitle_tracks_json · text

Поточне значення вибраного елемента. Читайте його після відповідної події.

error_code · text

Помилка останньої дії. Покажіть зрозуміле повідомлення й запропонуйте відповідний повтор.

error_message · text

Помилка останньої дії. Покажіть зрозуміле повідомлення й запропонуйте відповідний повтор.

Події

source_changed

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

source_loaded

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

playback_ready

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

playing_changed

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

time_changed

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

ended

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

tracks_changed

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

fullscreen_changed

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

player_error

Коли стається ця подія, прочитайте відповідні стани того самого елемента.

Відповіді для розробника

Можна експортувати фрагмент?

Ні. Seek і fullscreen керують переглядом, а не змінюють байти відео.

Як працює підписка?

Для Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit та Haptics: безкоштовне встановлення в Bubble, 7 днів пробного доступу з карткою, потім 1,50 USD на місяць за плагін у проєкті. Розробку й робочу версію включено, без ліміту операцій. Обмеження файлів і можливостей залишаються. Перед підтвердженням перевірте оплату й скасування. Інші плагіни недоступні для покупки.

Інші приклади вигляду
Xodera Video Player Native — Попередній приклад продукту; вигляд поточної бета-версії може відрізнятися.
Попередній приклад продукту; вигляд поточної бета-версії може відрізнятися.

Пов’язані інструкції

Для допомоги вкажіть плагін, пристрій, дію та результат. Використовуйте приклад без персональних даних. Не надсилайте ключ або приватні файли.