
Xodera Plugins · Bubble Native
Xodera Audio Recorder Native
Izinkan orang merekam catatan suara, mendengarkan sebelum mengirim, dan menyimpan draf lokal. Unggah hanya ketika mereka memilih mengirim rekaman.
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
Dengarkan sebelum mengirim pesan suara yang tidak rahasia
Pengguna memerlukan kesempatan untuk mendengar dan mengganti rekaman sebelum menjadi lampiran.
`title = the app’s conversation label`; atur `max_duration_seconds` dan `max_upload_bytes` ke kebijakan pesan Anda.
Start recording → Stop recording → tunggu `recording_ready` → Play preview. Tawarkan Seek preview dan Set preview speed. Hanya Send eksplisit yang memanggil Upload to Bubble pada endpoint unggah aplikasi sendiri yang diterima.
Hanya pada `upload_succeeded`, buat Message Anda dan atur bidang audio-nya ke `uploaded_file`. Pesan tidak dibuat oleh perekam itu sendiri.
Jika mikrofon ditolak, tampilkan `permission_status`; jika unggahan gagal, pertahankan rekaman lokal. Periksa hasil unggahan yang tidak diketahui sebelum mencoba lagi sehingga Send tidak dapat membuat lampiran/pesan duplikat.
Unggahan Bubble membuat file audio publik. Jangan gunakan unggahan ini untuk rekaman rahasia.
Latihan pengucapan tanpa unggahan langsung
Pembelajar ingin membandingkan respons lisan mereka dengan pelajaran sebelum memutuskan mengirimkannya.
`title = Current Exercise’s prompt`; `max_duration_seconds = the exercise limit`; jawaban latihan tetap menjadi catatan milik aplikasi.
Rekam → Hentikan → Play preview. Biarkan pembelajar mencari, memperlambat pratinjau atau membatalkan dan merekam percobaan lain. Save locally hanya ketika mereka memilih menyimpan draf.
`duration`, `local_uri`, `mime_type`, dan `draft_id` menggambarkan percobaan. Aplikasi Anda memutuskan apakah tetap lokal atau nanti dikirim melalui alur unggah yang dipilih.
Pada `preview_error`, pertahankan draf dan tampilkan `error_code`. Jangan mengubah pratinjau atau draf yang disimpan menjadi Jawaban yang dikirim sampai alur pengiriman aplikasi berhasil.
Unggahan Bubble membuat file audio publik. Jangan gunakan unggahan ini untuk rekaman rahasia.
Simpan draf suara lokal dan buat Send eksplisit
Pekerja lapangan dapat terganggu sebelum menyelesaikan catatan dan tidak seharusnya harus mengunggahnya hanya untuk menyimpannya.
`saved_draft_id = the draft ID stored by your app for this device and account`; `title = the selected non-sensitive task label`.
Mulai/Stop recording → Save locally. Simpan `draft_id` yang dikembalikan di perangkat/akun Anda sendiri. Gunakan Restore local draft untuk ID yang sama, lalu Play preview sebelum memutuskan mengunggah.
Pada `local_saved` atau `local_restored`, periksa `is_saved_locally`, `local_uri`, dan `duration`. Hanya hapus draf yang disimpan setelah pilihan eksplisit pengguna atau setelah kebijakan retensi yang dikonfirmasi secara terpisah.
Jika pemulihan gagal, tampilkan `error_code` dan pertahankan ID untuk diagnosis; jangan laporkan rekaman kosong atau berbeda sebagai dipulihkan. Jangan pernah melakukan unggahan auto saat menyambung kembali.
Unggahan Bubble membuat file audio publik. Jangan gunakan unggahan ini untuk rekaman rahasia.
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.
Tambahkan perekam. Atur document_context = Current User's unique id dan is_active untuk menentukan apakah tampilan rekaman terbuka.
Start recording meminta izin mikrofon. Pause dan Resume mempertahankan rekaman yang sama. Stop recording menyelesaikannya; tunggu recording_ready sebelum menawarkan tinjauan atau unggahan.
Gunakan kontrol pratinjau untuk mendengarkan. Save locally menyimpan draf di perangkat ini; setelah local_saved, pertahankan draft_id untuk Restore local draft.
Jelaskan bahwa mengirim membuat file publik. Atur bubble_upload_url ke alamat unggah file Bubble aplikasi Anda yang benar, Development atau Live. Jalankan Upload to Bubble hanya ketika pengguna memilih Kirim; pada upload_succeeded, simpan uploaded_file dalam catatan Anda.
Konfigurasi sekali saja
Buat atau pilih proyek aplikasi Bubble Anda di BestPlugins → Dashboard → Plugins. Pilih Xodera Audio Recorder Native, salin kuncinya, lalu buka Bubble → Plugins → Xodera Audio Recorder Native dan tempelkan ke licensing_api_key. Simpan sekali; kemudian gunakan tindakan di bawah ini. Setiap plugin di setiap proyek memiliki kunci masing‑masing.
Minta izin mikrofon saat pengguna memulai perekaman. Pilih cara aplikasi menyimpan draf. Unggahan Bubble menyimpan file publik, jadi gunakan hanya untuk audio yang cocok disimpan secara publik.
Konfigurasi sekali saja
- Buat atau pilih proyek aplikasi Bubble Anda di BestPlugins → Dashboard → Plugins.
- Pilih plugin ini dan salin kunci proyeknya.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Tambahkan elemen, pilih data aplikasi Anda, dan bangun alur kerja di bawah ini.
- 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
Setelah upload_succeeded, atur VoiceMessage.audio = Recorder's uploaded_file, owner = Current User, duration = Recorder's duration, dan mime_type = Recorder's mime_type. draft_id mengembalikan draf di perangkat ini; itu bukan file audio daring.
Kegagalan, pembatalan, dan pemulihan
Jika akses mikrofon ditolak, jelaskan cara mengaktifkannya di pengaturan perangkat. Cancel recording membuang rekaman yang belum disimpan; draf yang disimpan tetap ada. Jika unggahan terputus, pertahankan rekaman lokal dan periksa apakah file sudah tiba sebelum mengirimnya lagi. Delete saved draft menghapus hanya draf yang dipilih.
Kemampuan dan batasan
Batas maksimum rekaman default: 300 detik; dapat dikonfigurasi 1–3600. Batas unggahan default: 10 MiB; maksimum 30 MiB. Batas waktu unggah: 60 detik, tanpa percobaan ulang otomatis. Unggahan Bubble bersifat publik. Hanya alamat unggah file *.bubbleapps.io milik Anda yang didukung; domain khusus tidak. Draf lokal bukan penyimpanan terenkripsi.
Pengaturan, tindakan, dan hasil
Gunakan nama-nama ini di Bubble. Fitur yang direncanakan ditandai secara terpisah.
Pengaturan beta yang tersedia
Pengaturan elemen
title · textmax_duration_seconds · numbermax_upload_bytes · numberis_active · yes_nodisabled · yes_noui_text_json · textsaved_draft_id · textbubble_upload_url · textlanguage · textdocument_context · textStatus
recorder_status · textpermission_status · textis_recording · yes_nois_paused · yes_noduration · numberlocal_uri · textdraft_id · textis_saved_locally · yes_nomime_type · textfile_size · numberwaveform_peaks_json · textpreview_status · textpreview_is_playing · yes_nopreview_current_time · numberupload_status · textupload_progress · numberuploaded_url · textuploaded_file · fileerror_code · textAcara
recording_startedrecording_pausedrecording_resumedrecording_stoppedrecording_readyrecording_cancelledrecorder_errorlocal_savedlocal_restoredlocal_deletedupload_succeededupload_failedupload_cancelledpreview_readypreview_errorTindakan dan inputnya
Start recordingPause recordingResume recordingStop recordingCancel recordingSave locallyRestore local draftDelete saved draftUpload to BubbleCancel uploadPlay previewPause previewStop previewSeek previewSet preview speedPengaturan elemen · 10
titletext · Bawaan: ""- Nilai contoh
Lesson 4 — review - Contoh ekspresi Bubble
Selected Lesson's name - Teks aplikasi yang terlihat; kosong akan menggunakan salinan terlokalisasi bawaan bila didukung. Tanpa kredensial.
max_duration_secondsnumber · Bawaan: 300- Nilai contoh
300 - Contoh ekspresi Bubble
Voice Settings' max_seconds - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
max_upload_bytesnumber · Bawaan: 10485760- Nilai contoh
10485760 - Contoh ekspresi Bubble
Voice Settings' max_upload_bytes - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
is_activeyes_no · Bawaan: true- Nilai contoh
yes - Contoh ekspresi Bubble
GuideHost'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 contoh
no - Contoh ekspresi Bubble
GuideHost's is_busy (your yes/no custom state) - Nonaktifkan elemen saat aplikasi Anda sibuk atau tindakan ini tidak tersedia.
ui_text_jsontext · Bawaan: ""- Nilai contoh
{} - Contoh ekspresi Bubble
App Settings' player_labels_json (supported keys only) - JSON opsional dengan label tombol yang didukung. Biarkan kosong untuk menggunakan teks bawaan.
saved_draft_idtext · Bawaan: ""- Nilai contoh
<returned draft_id> - Contoh ekspresi Bubble
Selected VoiceDraft's draft_id - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
bubble_upload_urltext · Bawaan: ""- Nilai contoh
https://your-app.bubbleapps.io/version-test/fileupload - Contoh ekspresi Bubble
App Settings' selected_bubble_upload_url - Alamat unggah file aplikasi Bubble Anda: /version-test/fileupload untuk Development, /fileupload untuk Live. Unggahan ini membuat file publik.
languagetext · Bawaan: "auto"- Nilai contoh
uk - Contoh ekspresi Bubble
Current User's preferred_language - Set language=auto untuk mengikuti perangkat atau bahasa peramban yang didukung. Masukkan kode bahasa yang didukung untuk memilihnya secara eksplisit.
document_contexttext · Bawaan: ""- Nilai contoh
<current-user-id> - Contoh ekspresi Bubble
Current User's unique id - Nilai stabil untuk akun atau catatan ini. Gunakan nilai yang sama saat memulihkan file atau draf yang disimpan.
Tindakan dan inputnya · 15
Start recording
Tidak ada parameter aksi
Pause recording
Tidak ada parameter aksi
Resume recording
Tidak ada parameter aksi
Stop recording
Tidak ada parameter aksi
Cancel recording
Tidak ada parameter aksi
Save locally
Tidak ada parameter aksi
Restore local draft
draft_idtext · Bawaan: —- Nilai contoh
<returned draft_id> - Contoh ekspresi Bubble
Selected VoiceDraft's draft_id - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Delete saved draft
draft_idtext · Bawaan: —- Nilai contoh
<returned draft_id> - Contoh ekspresi Bubble
Selected VoiceDraft's draft_id - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Upload to Bubble
Tidak ada parameter aksi
Cancel upload
Tidak ada parameter aksi
Play preview
Tidak ada parameter aksi
Pause preview
Tidak ada parameter aksi
Stop preview
Tidak ada parameter aksi
Seek preview
secondsnumber · Bawaan: —- Nilai contoh
12 - Contoh ekspresi Bubble
Selected Comment's seconds - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Set preview speed
ratenumber · Bawaan: —- Nilai contoh
1.5 - Contoh ekspresi Bubble
Preview Speed Dropdown's value - Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Status dan peristiwa
Status
recorder_status · textHasil saat ini dari tindakan ini. Gunakan peristiwa penyelesaian yang cocok sebelum menyimpan keberhasilan.
permission_status · textHasil saat ini dari tindakan ini. Gunakan peristiwa penyelesaian yang cocok sebelum menyimpan keberhasilan.
is_recording · yes_noNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
is_paused · yes_noNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
duration · numberNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
local_uri · textLokasi file di perangkat ini. Simpan atau unggah file secara terpisah jika harus disimpan secara daring.
draft_id · textPengidentifikasi untuk item atau tindakan ini. Simpan bersama catatan aplikasi yang cocok. Gunakan pengidentifikasi permintaan yang sama saat mencoba kembali hasil yang tidak pasti.
is_saved_locally · yes_noNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
mime_type · textNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
file_size · numberNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
waveform_peaks_json · textNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
preview_status · textHasil saat ini dari tindakan ini. Gunakan peristiwa penyelesaian yang cocok sebelum menyimpan keberhasilan.
preview_is_playing · yes_noNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
preview_current_time · numberNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
upload_status · textHasil saat ini dari tindakan ini. Gunakan peristiwa penyelesaian yang cocok sebelum menyimpan keberhasilan.
upload_progress · numberNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
uploaded_url · textNilai saat ini untuk item yang dipilih. Baca setelah peristiwa terkait.
uploaded_file · fileFile dikembalikan setelah upload_succeeded. Simpan di bidang File Bubble Anda.
error_code · textInformasi error untuk tindakan terakhir. Tampilkan pesan yang membantu dan tawarkan percobaan ulang yang relevan.
Acara
recording_startedSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
recording_pausedSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
recording_resumedSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
recording_stoppedSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
recording_readySaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
recording_cancelledSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
recorder_errorSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
local_savedSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
local_restoredSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
local_deletedSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
upload_succeededSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
upload_failedSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
upload_cancelledSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
preview_readySaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
preview_errorSaat peristiwa ini terjadi, baca status terkait dari elemen yang sama.
Pertanyaan yang diajukan pengembang
Apakah penyimpanan lokal mengunggah rekaman?
Tidak. Save locally menyimpan draf pada perangkat milik. Upload to Bubble adalah operasi publik terpisah yang eksplisit.
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.