Antarmuka Video Player dengan bingkai contoh dari trailer Sintel.
Antarmuka Video Player dengan bingkai contoh dari trailer Sintel.
© copyright Blender Foundation | durian.blender.org · CC BY 3.0
← Semua panduan native

Xodera Plugins · Bubble Native

Xodera Video Player Native

Tampilkan pelajaran, demonstrasi produk, dan siaran langsung yang didukung di dalam aplikasi Anda, dengan kontrol pemutaran, layar penuh, dan trek bahasa yang tersedia.

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.

Dokumentasi ditinjau 6 November 2026

Contoh praktis

Tautan bab dalam aplikasi pelatihan

Seorang pelajar perlu memutar ulang satu langkah demonstrasi tanpa menavigasi ke pemutar eksternal.

`source_url = Current Lesson’s video URL`; `poster_url = Current Lesson’s cover`; setiap Bab menyimpan waktu mulai yang dimiliki aplikasi.

Klik Bab → jika mengubah sumber, tunggu `source_loaded` → Seek ke `position_seconds` → Play. Gunakan Set playback rate untuk demonstrasi terperinci dan Enter fullscreen bila diminta.

Baca `position_seconds`, `duration_seconds`, dan `is_fullscreen`; alur kerja Anda menyimpan kemajuan pelajaran hanya untuk sumber saat ini.

Pada `player_error`, tampilkan `error_code`, pertahankan kemajuan, dan tawarkan Reload video. Peristiwa penyelesaian bukan bukti bahwa pelajaran atau penilaian keamanan telah lulus.

Gunakan file video langsung atau aliran yang didukung. Pemutar ini tidak mengekspor video.

Demonstrasi video pada daftar pasar

Gambar produk saja tidak dapat menjelaskan cara kerja barang, tetapi video di luar situs mengganggu alur pembelian.

`source_url = Selected Listing’s demonstration URL`; `poster_url = its thumbnail`; `muted = yes` untuk pratinjau pertama yang sengaja diam.

Buka Daftar yang dipilih → kaitkan videonya → Play setelah tindakan pengguna. Tawarkan Set muted untuk suara dan Enter fullscreen untuk inspeksi lebih dekat. Kaitkan `is_active` ke detail yang terlihat.

Gunakan `has_source`, `is_buffering`, dan `status` untuk membedakan video yang tidak ada, sedang memuat, dan media siap.

Saat penggantian sumber, hentikan penerapan kemajuan lama dan pilihan trek. Tampilkan gambar mini cadangan ketika file yang dipilih tidak didukung.

Gunakan file video langsung atau aliran yang didukung. Pemutar ini tidak mengekspor video.

Pilih trek bahasa yang tersedia dalam aliran yang didukung

Aplikasi multibahasa perlu menawarkan trek yang memang tersedia dalam sumber tertentu.

`source_url = Selected Programme’s accepted stream URL`; sumber itu sendiri harus menyediakan trek audio/subtitel yang kompatibel.

Saat `tracks_changed`, baca `audio_tracks_json` dan `subtitle_tracks_json` saat ini; buat pilihan di aplikasi Anda, lalu panggil Select audio track atau Select subtitle track dengan indeks saat ini.

Gunakan `selected_audio_index`, `selected_subtitle_index`, dan `source_generation` untuk mengaitkan pilihan tersebut dengan sumber ini.

Buat ulang pilihan setiap kali sumber berubah. Jika suatu trek tidak tersedia atau tidak didukung, pertahankan trek bawaan dan tampilkan ketersediaannya secara jujur.

Gunakan file video langsung atau aliran yang didukung. Pemutar ini tidak mengekspor video.

Apa yang berfungsi sekarang

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.

Buat alur kerja

Gunakan tindakan beta yang tersedia di bawah ini dan uji hasilnya pada perangkat target Anda.

Contoh-contoh ini menggunakan catatan aplikasi seperti Lesson, Message, dan Order. Ganti mereka dengan tipe data dan nama elemen Anda sendiri. Alamat media contoh harus diganti dengan file Anda sendiri.

  1. Atur source_url = Selected Lesson's video_url dan poster_url = Selected Lesson's poster_url. Gunakan auto atau progressive untuk MP4; gunakan hls untuk aliran HLS.

  2. Setelah playback_ready, gunakan Seek untuk melanjutkan pada position_seconds yang disimpan. Pengguna memulai Play. Atur is_active untuk menentukan apakah tampilan pelajaran terbuka.

  3. Tambahkan kontrol Play, Pause, Seek, Set playback rate, dan Enter fullscreen. Tampilkan position_seconds dan duration_seconds.

  4. Setelah tracks_changed, tampilkan pilihan audio_tracks_json dan subtitle_tracks_json yang tersedia untuk video ini. Kirim indeks yang dipilih ke Select audio track atau Select subtitle track. Saat peristiwa ended terjadi, simpan kemajuan.

Diagram alur kerja — bukan tangkapan layar aplikasi

Konfigurasi sekali saja

Buat atau pilih proyek aplikasi Bubble Anda di BestPlugins → Dashboard → Plugins. Pilih Xodera Video Player Native, salin kuncinya, lalu buka Bubble → Plugins → Xodera Video Player Native dan tempelkan ke licensing_api_key. Simpan sekali; kemudian gunakan tindakan di bawah ini. Setiap plugin di setiap proyek memiliki kunci masing‑masing.

Gunakan alamat video atau aliran langsung. Alamat YouTube atau halaman web Vimeo bukan file video langsung. Pemutaran tidak memerlukan akses kamera atau mikrofon.

Konfigurasi sekali saja
  1. Buat atau pilih proyek aplikasi Bubble Anda di BestPlugins → Dashboard → Plugins.
  2. Pilih plugin ini dan salin kunci proyeknya.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Tambahkan elemen, pilih data aplikasi Anda, dan bangun alur kerja di bawah ini.
  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.
Instalasi dan langganan

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.

Simpan hasil di aplikasi Anda

Contoh WatchProgress: owner = Current User, lesson = Selected Lesson, seconds = Video Player's position_seconds, duration = Video Player's duration_seconds. Simpan hanya untuk video yang dipilih saat ini. Indeks trek milik video tersebut dan tidak boleh disimpan sebagai pilihan bahasa permanen.

Kegagalan, pembatalan, dan pemulihan

Pada player_error, tampilkan error_code dan tawarkan Reload video. Itu memuat ulang tanpa memulai pemutaran. Memilih sumber lain menghapus pilihan trek lama. Meninggalkan tampilan menjeda video; pengguna menekan Play untuk melanjutkan.

Kemampuan dan batasan

Kecepatan: 0.5, 1, 1.5, dan 2. Volume: 0–1. Format: auto, progressive, HLS, dan Android‑hanya DASH. Trek yang tersedia tergantung pada file. Gunakan -1 untuk mematikan trek; -2 berarti tidak diketahui dan tidak dapat dipilih. Tidak ada penyuntingan, ekspor video, DRM, picture‑in‑picture, atau cache offline permanen.

Pengaturan, tindakan, dan hasil

Gunakan nama-nama ini di Bubble. Fitur yang direncanakan ditandai secara terpisah.

Pengaturan beta yang tersedia

Pengaturan elemen

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

Status

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

Acara

source_changedsource_loadedplayback_readyplaying_changedtime_changedendedtracks_changedfullscreen_changedplayer_error

Tindakan dan inputnya

PlayPauseStop and rewindReload videoSeekSet volumeSet mutedSet playback rateEnter fullscreenSelect audio trackSelect subtitle track
Pengaturan elemen · 12
source_urltext · Bawaan: ""
Nilai contohhttps://bestplugins.online/native-samples/lesson.mp4
Contoh ekspresi BubbleSelected Lesson's video_url
Alamat file audio, video, atau gambar yang dipilih. Gunakan tipe file yang didukung plugin ini.
poster_urltext · Bawaan: ""
Nilai contohhttps://bestplugins.online/native-samples/poster.jpg
Contoh ekspresi BubbleSelected Lesson's poster_url
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
content_typetext · Bawaan: "auto"
Nilai contohauto
Contoh ekspresi BubbleSelected Lesson's video_content_type
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
ratenumber · Bawaan: 1
Nilai contoh1.5
Contoh ekspresi BubbleSpeed Dropdown's value
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
volumenumber · Bawaan: 1
Nilai contoh0.8
Contoh ekspresi BubbleVolume Slider's value
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
mutedyes/no · Bawaan: false
Nilai contohno
Contoh ekspresi BubbleMute Checkbox is checked
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
loopyes/no · Bawaan: false
Nilai contohno
Contoh ekspresi BubbleSelected Lesson's repeat_enabled
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
is_activeyes/no · Bawaan: true
Nilai contohyes
Contoh ekspresi BubbleGuideHost's view_is_active (your yes/no custom state)
Setel ya saat tampilan ini terbuka. Setel tidak saat keluar, sehingga pemutaran atau pekerjaan saat ini dapat berhenti.
disabledyes/no · Bawaan: false
Nilai contohno
Contoh ekspresi BubbleGuideHost's is_busy (your yes/no custom state)
Nonaktifkan elemen saat aplikasi Anda sibuk atau tindakan ini tidak tersedia.
native_controlsyes/no · Bawaan: false
Nilai contohno
Contoh ekspresi BubbleApp Settings' use_native_video_controls
Tampilkan atau sembunyikan kontrol video standar perangkat.
ui_text_jsontext · Bawaan: "{}"
Nilai contoh{}
Contoh ekspresi BubbleApp Settings' player_labels_json (supported keys only)
JSON opsional dengan label tombol yang didukung. Biarkan kosong untuk menggunakan teks bawaan.
languagetext · Bawaan: "auto"
Nilai contohuk
Contoh ekspresi BubbleCurrent User's preferred_language
Set language=auto untuk mengikuti perangkat atau bahasa peramban yang didukung. Masukkan kode bahasa yang didukung untuk memilihnya secara eksplisit.
Tindakan dan inputnya · 11
Play

Tidak ada parameter aksi

Pause

Tidak ada parameter aksi

Stop and rewind

Tidak ada parameter aksi

Reload video

Tidak ada parameter aksi

Seek
position_secondsnumber · Bawaan: —
Nilai contoh45
Contoh ekspresi BubbleSelected Chapter's start_seconds
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Set volume
volumenumber · Bawaan: —
Nilai contoh0.8
Contoh ekspresi BubbleVolume Slider's value
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Set muted
mutedyes/no · Bawaan: —
Nilai contohno
Contoh ekspresi BubbleMute Checkbox is checked
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Set playback rate
ratenumber · Bawaan: —
Nilai contoh1.5
Contoh ekspresi BubbleSpeed Dropdown's value
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Enter fullscreen

Tidak ada parameter aksi

Select audio track
indexnumber · Bawaan: —
Nilai contoh0
Contoh ekspresi BubbleSelected row's current_source_index
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Select subtitle track
indexnumber · Bawaan: —
Nilai contoh0
Contoh ekspresi BubbleSelected row's current_source_index
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Status dan peristiwa

Status

is_playing · yes/no

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

is_buffering · yes/no

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

pending_play · yes/no

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

is_live · yes/no

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

muted · yes/no

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

loop · yes/no

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

has_source · yes/no

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

is_fullscreen · yes/no

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

position_seconds · number

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

duration_seconds · number

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

volume · number

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

rate · number

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

source_generation · number

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

selected_audio_index · number

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

selected_subtitle_index · number

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

status · text

Hasil saat ini dari tindakan ini. Gunakan peristiwa penyelesaian yang cocok sebelum menyimpan keberhasilan. idle,loading,readyToPlay,error

audio_tracks_json · text

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

subtitle_tracks_json · text

Nilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.

error_code · text

Informasi error untuk tindakan terakhir. Tampilkan pesan yang membantu dan tawarkan percobaan ulang yang relevan.

error_message · text

Informasi error untuk tindakan terakhir. Tampilkan pesan yang membantu dan tawarkan percobaan ulang yang relevan.

Acara

source_changed

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

source_loaded

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

playback_ready

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

playing_changed

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

time_changed

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

ended

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

tracks_changed

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

fullscreen_changed

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

player_error

Saat peristiwa ini terjadi, baca status terkait dari elemen yang sama.

Pertanyaan yang diajukan pengembang

Bisakah saya mengekspor segmen yang dipilih?

Tidak. Seek dan fullscreen mengubah pemutaran, bukan byte video.

Bagaimana cara kerja langganan?

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.

Panduan terkait

Untuk bantuan, beri tahu kami plugin dan perangkat yang Anda gunakan, tindakan yang Anda coba, dan apa yang terjadi. Gunakan contoh tanpa data pribadi. Jangan pernah membagikan kunci atau file pribadi Anda.