
© 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.
문서 검토일: 2026년 11월 6일
실용적인 예시
교육 앱의 챕터 링크
학습자는 외부 플레이어로 이동하지 않고 시연의 한 단계를 다시 재생해야 합니다.
`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`.
선택한 Listing 레코드를 열기 → 해당 비디오 바인딩 → 사용자 동작 후 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를 설정합니다. MP4의 경우 auto 또는 progressive를 사용하고, HLS 스트림에는 hls를 사용합니다.
playback_ready 후에, 저장된 position_seconds에서 재개하려면 Seek를 사용합니다. 사용자는 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 이벤트가 발생하면 진행 상황을 저장하세요.
한 번만 설정
BestPlugins → Dashboard → Plugins에서 Bubble 앱 프로젝트를 만들거나 선택하십시오. Xodera Video Player Native를 선택하고 키를 복사한 다음 Bubble → Plugins → Xodera Video Player Native를 열어 licensing_api_key에 붙여넣으세요. 한 번 저장한 후 아래 액션을 사용하십시오. 각 프로젝트의 각 플러그인마다 고유한 키가 있습니다.
직접 비디오 또는 스트림 주소를 사용하십시오. YouTube 또는 Vimeo 웹 페이지 주소는 직접 비디오 파일이 아닙니다. 재생에 카메라나 마이크 접근이 필요하지 않습니다.
한 번만 설정
- BestPlugins → Dashboard → Plugins에서 Bubble 앱 프로젝트를 만들거나 선택하십시오.
- 이 플러그인을 선택하고 프로젝트 키를 복사하십시오.
- 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) - 이 뷰가 열려 있는 동안 yes로 설정하고, 떠날 때 no로 설정하여 재생 또는 현재 작업이 중지될 수 있게 합니다.
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.
관련 가이드
도움을 받으려면 사용 중인 플러그인과 기기, 시도한 작업 및 발생한 상황을 알려 주세요. 개인 데이터가 없는 예시를 사용하십시오. 키나 개인 파일을 절대 공유하지 마세요.