Video Player интерфейс с примерен кадър от трейлъра на Sintel.
Video Player интерфейс с примерен кадър от трейлъра на Sintel.
© 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. Заменете ги със свои типове данни и имена на елементи. Примерните медийни адреси трябва да бъдат заменени със свои файлове.

  1. Задайте source_url = Selected Lesson's video_url и poster_url = Selected Lesson's poster_url. Използвайте auto или progressive за MP4; използвайте 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 запазете напредъка.

Диаграма на работния процес — не е снимка на приложение

Конфигурирайте еднократно

Създайте или изберете вашия 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. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Добавете елемента, изберете вашите данни за приложението и изградете работния процес по-долу.
  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.
Инсталиране и абонамент

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.

Свързани ръководства

За помощ, кажете ни кой плъгин и устройство използвате, действието, което опитахте, и какво се случи. Използвайте пример без лични данни. Никога не споделяйте вашия ключ или частни файлове.