
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
Xodera Plugins · Bubble Native
Xodera Video Player Native
Hiển thị các bài học, bản demo sản phẩm và các luồng trực tiếp được hỗ trợ trong ứng dụng của bạn, với các điều khiển phát lại, toàn màn hình và các rãnh âm thanh/phụ đề có sẵn.
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.
Tài liệu được rà soát ngày 6 tháng mười một năm 2026
Ví dụ thực tế
Liên kết chương trong ứng dụng đào tạo
Người học cần phát lại một bước của bản trình diễn mà không phải chuyển sang trình phát bên ngoài.
`source_url = Current Lesson’s video URL`; `poster_url = Current Lesson’s cover`; mỗi Chương lưu thời gian bắt đầu do ứng dụng sở hữu.
Nhấp vào Chương → nếu thay đổi nguồn, chờ `source_loaded` → Seek tới `position_seconds` → Play. Sử dụng Set playback rate cho bản trình diễn chi tiết và Enter fullscreen khi được yêu cầu.
Đọc `position_seconds`, `duration_seconds` và `is_fullscreen`; quy trình làm việc của bạn chỉ lưu tiến độ bài học cho nguồn hiện tại.
Khi `player_error`, hiển thị `error_code`, bảo lưu tiến độ và cung cấp Reload video. Sự kiện hoàn thành không chứng minh rằng một bài học hoặc đánh giá an toàn đã được vượt qua.
Sử dụng tệp video trực tiếp hoặc luồng được hỗ trợ. Trình phát này không xuất video.
Video trình diễn trên danh sách thị trường
Một hình ảnh sản phẩm đơn lẻ không thể giải thích cách một mặt hàng hoạt động, nhưng video ngoài trang phá vỡ luồng mua hàng.
`source_url = Selected Listing’s demonstration URL`; `poster_url = its thumbnail`; `muted = yes` cho bản xem trước đầu tiên có âm thanh im lặng cố ý.
Mở Danh sách đã chọn → liên kết video của nó → Play sau hành động người dùng. Cung cấp Set muted cho âm thanh và Enter fullscreen để xem chi tiết hơn. Liên kết `is_active` với trạng thái hiển thị của chế độ xem chi tiết.
Sử dụng `has_source`, `is_buffering` và `status` để phân biệt video không có, đang tải và media đã sẵn sàng.
Khi thay thế nguồn, ngừng áp dụng tiến độ và các lựa chọn rãnh cũ. Hiển thị hình thu nhỏ dự phòng khi tệp đã chọn không được hỗ trợ.
Sử dụng tệp video trực tiếp hoặc luồng được hỗ trợ. Trình phát này không xuất video.
Chọn các rãnh ngôn ngữ khả dụng trong luồng được hỗ trợ
Một ứng dụng đa ngôn ngữ cần cung cấp các rãnh mà nguồn cụ thể thực sự chứa.
`source_url = Selected Programme’s accepted stream URL`; nguồn phải cung cấp các rãnh âm thanh/phụ đề tương thích.
Khi `tracks_changed`, đọc `audio_tracks_json` và `subtitle_tracks_json` hiện tại; xây dựng các lựa chọn trong ứng dụng của bạn và gọi Select audio track hoặc Select subtitle track với chỉ mục hiện tại.
Sử dụng `selected_audio_index`, `selected_subtitle_index` và `source_generation` để liên kết lựa chọn với nguồn này.
Xây dựng lại các lựa chọn sau mỗi lần thay đổi nguồn. Nếu một rãnh không có hoặc không được hỗ trợ, giữ rãnh mặc định và hiển thị tình trạng khả dụng một cách trung thực.
Sử dụng tệp video trực tiếp hoặc luồng được hỗ trợ. Trình phát này không xuất video.
Những gì hiện đang hoạt động
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.
Xây dựng quy trình làm việc
Sử dụng các hành động beta có sẵn bên dưới và kiểm tra kết quả trên thiết bị mục tiêu của bạn.
Các ví dụ này sử dụng các bản ghi ứng dụng như Lesson, Message và Order. Hãy thay thế chúng bằng các kiểu dữ liệu và tên phần tử của bạn. Các địa chỉ phương tiện mẫu phải được thay thế bằng các tệp của bạn.
Đặt source_url = Selected Lesson's video_url và poster_url = Selected Lesson's poster_url. Sử dụng auto hoặc progressive cho MP4; dùng hls cho luồng HLS.
Sau playback_ready, sử dụng Seek để tiếp tục tại position_seconds đã lưu. Người dùng bắt đầu Play. Đặt is_active theo việc chế độ xem bài học có đang mở hay không.
Thêm các điều khiển Play, Pause, Seek, Set playback rate và Enter fullscreen. Hiển thị position_seconds và duration_seconds.
Sau tracks_changed, hiển thị các lựa chọn audio_tracks_json và subtitle_tracks_json có sẵn cho video này. Truyền chỉ mục đã chọn tới Select audio track hoặc Select subtitle track. Khi sự kiện ended xảy ra, lưu tiến độ.
Cấu hình một lần
Tạo hoặc chọn dự án ứng dụng Bubble của bạn trong BestPlugins → Dashboard → Plugins. Chọn Xodera Video Player Native, sao chép khóa của nó, sau đó mở Bubble → Plugins → Xodera Video Player Native và dán vào licensing_api_key. Lưu một lần; sau đó sử dụng các hành động bên dưới. Mỗi plugin trong mỗi dự án có khóa riêng của nó.
Sử dụng địa chỉ video hoặc luồng trực tiếp. YouTube hoặc địa chỉ trang web Vimeo không phải là tệp video trực tiếp. Phát lại không cần quyền truy cập camera hoặc micro.
Cấu hình một lần
- Tạo hoặc chọn dự án ứng dụng Bubble của bạn tại BestPlugins → Dashboard → Plugins.
- Chọn plugin này và sao chép khóa dự án của nó.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Thêm phần tử, chọn dữ liệu ứng dụng của bạn và xây dựng quy trình làm việc bên dưới.
- 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.
Cài đặt và đăng ký
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.
Lưu kết quả vào ứng dụng của bạn
Ví dụ WatchProgress: owner = Current User, lesson = Selected Lesson, seconds = Video Player's position_seconds, duration = Video Player's duration_seconds. Chỉ lưu cho video hiện đang chọn. Các chỉ mục rãnh thuộc về video đó và không nên lưu làm lựa chọn ngôn ngữ cố định.
Lỗi, hủy và khôi phục
Khi player_error xảy ra, hiển thị error_code và đề xuất Reload video. Nó sẽ tải lại mà không bắt đầu phát lại. Chọn nguồn khác sẽ xóa các lựa chọn rãnh cũ. Rời khỏi chế độ xem sẽ tạm dừng video; người dùng nhấn Play để tiếp tục.
Khả năng và giới hạn
Tốc độ: 0.5, 1, 1.5 và 2. Âm lượng: 0–1. Định dạng: auto, progressive, HLS và chỉ Android‑DASH. Các rãnh có sẵn phụ thuộc vào tệp. Dùng -1 để tắt một rãnh; -2 có nghĩa là không xác định và không thể chọn. Không có chỉnh sửa, xuất video, DRM, hình‑trong‑hình hoặc bộ nhớ ngoại tuyến vĩnh viễn.
Cài đặt, hành động và kết quả
Sử dụng các tên này trong Bubble. Các tính năng dự kiến được đánh dấu riêng.
Cài đặt beta khả dụng
Cài đặt phần tử
source_url · textposter_url · textcontent_type · textrate · numbervolume · numbermuted · yes/noloop · yes/nois_active · yes/nodisabled · yes/nonative_controls · yes/noui_text_json · textlanguage · textTrạng thái
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 · textSự kiện
source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_errorHành động và đầu vào của chúng
PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle trackCài đặt phần tử · 12
source_urltext · Mặc định: ""- Giá trị ví dụ
https://bestplugins.online/native-samples/lesson.mp4 - Ví dụ biểu thức Bubble
Selected Lesson's video_url - Địa chỉ của tệp âm thanh, video hoặc hình ảnh đã chọn. Sử dụng loại tệp mà plugin này hỗ trợ.
poster_urltext · Mặc định: ""- Giá trị ví dụ
https://bestplugins.online/native-samples/poster.jpg - Ví dụ biểu thức Bubble
Selected Lesson's poster_url - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
content_typetext · Mặc định: "auto"- Giá trị ví dụ
auto - Ví dụ biểu thức Bubble
Selected Lesson's video_content_type - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
ratenumber · Mặc định: 1- Giá trị ví dụ
1.5 - Ví dụ biểu thức Bubble
Speed Dropdown's value - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
volumenumber · Mặc định: 1- Giá trị ví dụ
0.8 - Ví dụ biểu thức Bubble
Volume Slider's value - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
mutedyes/no · Mặc định: false- Giá trị ví dụ
no - Ví dụ biểu thức Bubble
Mute Checkbox is checked - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
loopyes/no · Mặc định: false- Giá trị ví dụ
no - Ví dụ biểu thức Bubble
Selected Lesson's repeat_enabled - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
is_activeyes/no · Mặc định: true- Giá trị ví dụ
yes - Ví dụ biểu thức Bubble
GuideHost's view_is_active (your yes/no custom state) - Đặt yes khi chế độ xem này đang mở. Đặt no khi rời khỏi, để có thể dừng việc phát hoặc công việc hiện tại.
disabledyes/no · Mặc định: false- Giá trị ví dụ
no - Ví dụ biểu thức Bubble
GuideHost's is_busy (your yes/no custom state) - Vô hiệu hoá phần tử khi ứng dụng của bạn đang bận hoặc hành động này không khả dụng.
native_controlsyes/no · Mặc định: false- Giá trị ví dụ
no - Ví dụ biểu thức Bubble
App Settings' use_native_video_controls - Hiển thị hoặc ẩn các điều khiển video tiêu chuẩn của thiết bị.
ui_text_jsontext · Mặc định: "{}"- Giá trị ví dụ
{} - Ví dụ biểu thức Bubble
App Settings' player_labels_json (supported keys only) - JSON tùy chọn với các nhãn nút được hỗ trợ. Để trống để sử dụng văn bản tích hợp.
languagetext · Mặc định: "auto"- Giá trị ví dụ
uk - Ví dụ biểu thức Bubble
Current User's preferred_language - Đặt language=auto để theo dõi ngôn ngữ thiết bị hoặc trình duyệt được hỗ trợ. Nhập mã ngôn ngữ hỗ trợ để chọn một cách rõ ràng.
Hành động và đầu vào của chúng · 11
Play
Không có tham số hành động
Pause
Không có tham số hành động
Stop and rewind
Không có tham số hành động
Reload video
Không có tham số hành động
Seek
position_secondsnumber · Mặc định: —- Giá trị ví dụ
45 - Ví dụ biểu thức Bubble
Selected Chapter's start_seconds - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
Set volume
volumenumber · Mặc định: —- Giá trị ví dụ
0.8 - Ví dụ biểu thức Bubble
Volume Slider's value - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
Set muted
mutedyes/no · Mặc định: —- Giá trị ví dụ
no - Ví dụ biểu thức Bubble
Mute Checkbox is checked - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
Set playback rate
ratenumber · Mặc định: —- Giá trị ví dụ
1.5 - Ví dụ biểu thức Bubble
Speed Dropdown's value - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
Enter fullscreen
Không có tham số hành động
Select audio track
indexnumber · Mặc định: —- Giá trị ví dụ
0 - Ví dụ biểu thức Bubble
Selected row's current_source_index - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
Select subtitle track
indexnumber · Mặc định: —- Giá trị ví dụ
0 - Ví dụ biểu thức Bubble
Selected row's current_source_index - Sử dụng giá trị của bản ghi kinh doanh hiện tại; xác thực nó so với các giới hạn bên dưới.
Trạng thái và sự kiện
Trạng thái
is_playing · yes/noGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
is_buffering · yes/noGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
pending_play · yes/noGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
is_live · yes/noGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
muted · yes/noGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
loop · yes/noGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
has_source · yes/noGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
is_fullscreen · yes/noGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
position_seconds · numberGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
duration_seconds · numberGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
volume · numberGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
rate · numberGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
source_generation · numberGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
selected_audio_index · numberGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
selected_subtitle_index · numberGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
status · textKết quả hiện tại của hành động này. Sử dụng sự kiện hoàn thành phù hợp trước khi lưu thành công. idle,loading,readyToPlay,error
audio_tracks_json · textGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
subtitle_tracks_json · textGiá trị hiện tại cho mục đã chọn. Đọc nó sau sự kiện liên quan.
error_code · textThông tin lỗi cho hành động cuối cùng. Hiển thị thông báo hữu ích và đề xuất thử lại liên quan.
error_message · textThông tin lỗi cho hành động cuối cùng. Hiển thị thông báo hữu ích và đề xuất thử lại liên quan.
Sự kiện
source_changedKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
source_loadedKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
playback_readyKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
playing_changedKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
time_changedKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
endedKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
tracks_changedKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
fullscreen_changedKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
player_errorKhi sự kiện này xảy ra, đọc các trạng thái liên quan từ cùng một phần tử.
Câu hỏi mà nhà phát triển đặt ra
Tôi có thể xuất đoạn đã chọn không?
Không. Seek và chế độ toàn màn hình thay đổi việc phát lại, không phải dữ liệu video.
Đăng ký hoạt động như thế nào?
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.
Hướng dẫn liên quan
Để được trợ giúp, cho chúng tôi biết plugin và thiết bị bạn đang sử dụng, hành động bạn đã thử và những gì đã xảy ra. Sử dụng ví dụ không có dữ liệu cá nhân. Không bao giờ chia sẻ khóa hoặc tệp riêng của bạn.