
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
Xodera Plugins · Bubble Native
Xodera Video Player Native
Показвайте уроци, демонстрации на продукти и поддържани живи потоци в приложението, с контролери за възпроизвеждане, цял екран и налични езикови писти.
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.
Документацията прегледана 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`, за да свържете избора с този източник.
Пресъздайте изборите след всяка промяна на източника. Ако пътеката липсва или не се поддържа, запазете пътеката по подразбиране и покажете наличността честно.
Използвайте директни видео файлове или поддържани потоци. Този плейър не експортира видеа.
Какво работи сега
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.
Създайте работния процес
Използвайте наличните бета действия по-долу и тествайте резултата на целевите си устройства.
Тези примери използват записи на приложение като Lesson, Message и Order. Заменете ги със свои типове данни и имена на елементи. Примерните медийни адреси трябва да бъдат заменени със свои файлове.
Задайте source_url = Selected Lesson's video_url и poster_url = Selected Lesson's poster_url. Използвайте auto или progressive за MP4; използвайте hls за HLS поток.
След playback_ready, използвайте Seek, за да продължите от запазеното position_seconds. Потребителят стартира Play. Задайте is_active дали изгледът на урока е отворен.
Добавете контроли Play, Pause, Seek, Set playback rate и Enter fullscreen. Показвайте position_seconds и duration_seconds.
След tracks_changed, покажете наличните избори audio_tracks_json и subtitle_tracks_json за това видео. Предайте избрания индекс на Select audio track или Select subtitle track. При събитието ended запазете напредъка.
Конфигурирайте еднократно
Създайте или изберете вашия Bubble проект в BestPlugins → Dashboard → Plugins. Изберете Xodera Video Player Native, копирайте неговия ключ, след това отворете Bubble → Plugins → Xodera Video Player Native и поставете го в licensing_api_key. Запазете веднъж; след това използвайте действията по-долу. Всеки плъгин във всеки проект има свой собствен ключ.
Използвайте директен видео или потоков адрес. YouTube или уеб адрес на Vimeo не е директен видео файл. Възпроизвеждането не изисква достъп до камера или микрофон.
Конфигурирайте еднократно
- Създайте или изберете вашия Bubble проект в BestPlugins → Dashboard → Plugins.
- Изберете този плъгин и копирайте неговия проектен ключ.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Добавете елемента, изберете вашите данни за приложението и изградете работния процес по-долу.
- 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.
Инсталиране и абонамент
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.
Запазете резултата във вашето приложение
Пример 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 - Пример Bubble израз
Selected Lesson's video_url - Адрес на избрания аудио, видео или изображен файл. Използвайте тип файл, който тази приставка поддържа.
poster_urltext · По подразбиране: ""- Примерна стойност
https://bestplugins.online/native-samples/poster.jpg - Пример Bubble израз
Selected Lesson's poster_url - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
content_typetext · По подразбиране: "auto"- Примерна стойност
auto - Пример Bubble израз
Selected Lesson's video_content_type - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
ratenumber · По подразбиране: 1- Примерна стойност
1.5 - Пример Bubble израз
Speed Dropdown's value - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
volumenumber · По подразбиране: 1- Примерна стойност
0.8 - Пример Bubble израз
Volume Slider's value - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
mutedyes/no · По подразбиране: false- Примерна стойност
no - Пример Bubble израз
Mute Checkbox is checked - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
loopyes/no · По подразбиране: false- Примерна стойност
no - Пример Bubble израз
Selected Lesson's repeat_enabled - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
is_activeyes/no · По подразбиране: true- Примерна стойност
yes - Пример Bubble израз
GuideHost's view_is_active (your yes/no custom state) - Задайте да, докато този изглед е отворен. Задайте не при изход, за да може възпроизвеждането или текущата работа да спрат.
disabledyes/no · По подразбиране: false- Примерна стойност
no - Пример Bubble израз
GuideHost's is_busy (your yes/no custom state) - Деактивирайте елемента, докато приложението е заето или това действие не е достъпно.
native_controlsyes/no · По подразбиране: false- Примерна стойност
no - Пример Bubble израз
App Settings' use_native_video_controls - Показвайте или скривайте стандартните видеоконтроли на устройството.
ui_text_jsontext · По подразбиране: "{}"- Примерна стойност
{} - Пример Bubble израз
App Settings' player_labels_json (supported keys only) - Опционален JSON с поддържани етикети за бутони. Оставете празно, за да се използва вграденият текст.
languagetext · По подразбиране: "auto"- Примерна стойност
uk - Пример Bubble израз
Current User's preferred_language - Задайте language=auto да следва поддържано устройство или език на браузъра. Въведете поддържан код на езика, за да го изберете изрично.
Действия и техните входове · 11
Play
Няма параметри за действие
Pause
Няма параметри за действие
Stop and rewind
Няма параметри за действие
Reload video
Няма параметри за действие
Seek
position_secondsnumber · По подразбиране: —- Примерна стойност
45 - Пример Bubble израз
Selected Chapter's start_seconds - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
Set volume
volumenumber · По подразбиране: —- Примерна стойност
0.8 - Пример Bubble израз
Volume Slider's value - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
Set muted
mutedyes/no · По подразбиране: —- Примерна стойност
no - Пример Bubble израз
Mute Checkbox is checked - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
Set playback rate
ratenumber · По подразбиране: —- Примерна стойност
1.5 - Пример Bubble израз
Speed Dropdown's value - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
Enter fullscreen
Няма параметри за действие
Select audio track
indexnumber · По подразбиране: —- Примерна стойност
0 - Пример Bubble израз
Selected row's current_source_index - Използвайте стойността от текущия бизнес запис; проверете я спрямо долните ограничения.
Select subtitle track
indexnumber · По подразбиране: —- Примерна стойност
0 - Пример Bubble израз
Selected 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 и пълен екран променят възпроизвеждането, а не видеото.
Как работи абонаментът?
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.
Свързани ръководства
За помощ, кажете ни кой плъгин и устройство използвате, действието, което опитахте, и какво се случи. Използвайте пример без лични данни. Никога не споделяйте вашия ключ или частни файлове.