Antarmuka Audio Recorder.
Antarmuka Audio Recorder.
← Semua panduan native

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.

  1. Tambahkan perekam. Atur document_context = Current User's unique id dan is_active untuk menentukan apakah tampilan rekaman terbuka.

  2. Start recording meminta izin mikrofon. Pause dan Resume mempertahankan rekaman yang sama. Stop recording menyelesaikannya; tunggu recording_ready sebelum menawarkan tinjauan atau unggahan.

  3. Gunakan kontrol pratinjau untuk mendengarkan. Save locally menyimpan draf di perangkat ini; setelah local_saved, pertahankan draft_id untuk Restore local draft.

  4. 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.

Diagram alur kerja — bukan tangkapan layar aplikasi

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
  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

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 · text

Status

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 · text

Acara

recording_startedrecording_pausedrecording_resumedrecording_stoppedrecording_readyrecording_cancelledrecorder_errorlocal_savedlocal_restoredlocal_deletedupload_succeededupload_failedupload_cancelledpreview_readypreview_error

Tindakan dan inputnya

Start recordingPause recordingResume recordingStop recordingCancel recordingSave locallyRestore local draftDelete saved draftUpload to BubbleCancel uploadPlay previewPause previewStop previewSeek previewSet preview speed
Pengaturan elemen · 10
titletext · Bawaan: ""
Nilai contohLesson 4 — review
Contoh ekspresi BubbleSelected Lesson's name
Teks aplikasi yang terlihat; kosong akan menggunakan salinan terlokalisasi bawaan bila didukung. Tanpa kredensial.
max_duration_secondsnumber · Bawaan: 300
Nilai contoh300
Contoh ekspresi BubbleVoice Settings' max_seconds
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
max_upload_bytesnumber · Bawaan: 10485760
Nilai contoh10485760
Contoh ekspresi BubbleVoice Settings' max_upload_bytes
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.
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.
saved_draft_idtext · Bawaan: ""
Nilai contoh<returned draft_id>
Contoh ekspresi BubbleSelected VoiceDraft's draft_id
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
bubble_upload_urltext · Bawaan: ""
Nilai contohhttps://your-app.bubbleapps.io/version-test/fileupload
Contoh ekspresi BubbleApp 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 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.
document_contexttext · Bawaan: ""
Nilai contoh<current-user-id>
Contoh ekspresi BubbleCurrent 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 BubbleSelected 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 BubbleSelected 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 contoh12
Contoh ekspresi BubbleSelected Comment's seconds
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Set preview speed
ratenumber · Bawaan: —
Nilai contoh1.5
Contoh ekspresi BubblePreview Speed Dropdown's value
Gunakan nilai catatan bisnis saat ini; validasi terhadap batas di bawah.
Status dan peristiwa

Status

recorder_status · text

Hasil saat ini dari tindakan ini. Gunakan peristiwa penyelesaian yang cocok sebelum menyimpan keberhasilan.

permission_status · text

Hasil saat ini dari tindakan ini. Gunakan peristiwa penyelesaian yang cocok sebelum menyimpan keberhasilan.

is_recording · yes_no

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

is_paused · yes_no

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

duration · number

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

local_uri · text

Lokasi file di perangkat ini. Simpan atau unggah file secara terpisah jika harus disimpan secara daring.

draft_id · text

Pengidentifikasi 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_no

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

mime_type · text

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

file_size · number

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

waveform_peaks_json · text

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

preview_status · text

Hasil saat ini dari tindakan ini. Gunakan peristiwa penyelesaian yang cocok sebelum menyimpan keberhasilan.

preview_is_playing · yes_no

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

preview_current_time · number

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

upload_status · text

Hasil saat ini dari tindakan ini. Gunakan peristiwa penyelesaian yang cocok sebelum menyimpan keberhasilan.

upload_progress · number

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

uploaded_url · text

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

uploaded_file · file

File dikembalikan setelah upload_succeeded. Simpan di bidang File Bubble Anda.

error_code · text

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

Acara

recording_started

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

recording_paused

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

recording_resumed

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

recording_stopped

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

recording_ready

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

recording_cancelled

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

recorder_error

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

local_saved

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

local_restored

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

local_deleted

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

upload_succeeded

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

upload_failed

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

upload_cancelled

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

preview_ready

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

preview_error

Saat 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.