
Xodera Plugins · Bubble Native
Xodera Audio Recorder Native
Permeteu que les persones enregistrin una nota de veu, l'escoltin abans d'enviar-la i conservin un esborrany local. Pugeu només quan triïn enviar l'enregistrament.
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.
Documentació revisada 6 novembre 2026
Exemples pràctics
Escolta abans d'enviar un missatge de veu no confidencial
Els usuaris necessiten l'oportunitat d'escoltar i substituir una gravació abans que es converteixi en un adjunt.
`title = the app’s conversation label`; estableix `max_duration_seconds` i `max_upload_bytes` a la teva política de missatges.
Start recording → Stop recording → espera `recording_ready` → Play preview. Ofereix Seek preview i Set preview speed. Només un Send explícit invoca Upload to Bubble a l'endpoint d'upload acceptat de l'aplicació.
Només a `upload_succeeded`, crea el teu Message i estableix el seu camp d'àudio a `uploaded_file`. El missatge no és creat per l'enregistrador mateix.
En cas de denegació del micròfon mostra `permission_status`; en cas d'error d'upload conserva l'enregistrament local. Comprova el resultat d'un upload desconegut abans de tornar a intentar-ho perquè Send no pugui crear adjunts/missatges duplicats.
L'upload Bubble crea un fitxer d'àudio públic. No utilitzis aquest upload per a gravacions confidencials.
Pràctica de pronunciació sense una càrrega immediata
Els aprenents volen comparar la seva pròpia resposta oral amb una lliçó abans de decidir enviar-la.
`title = Current Exercise’s prompt`; `max_duration_seconds = the exercise limit`; una resposta d'exercici continua sent un registre propietat de l'aplicació.
Enregistrar → Aturar → Play preview. Permet a l'aprenent cercar, alentir la vista prèvia o cancel·lar i enregistrar un altre intent. Save locally només quan decideixin conservar l'esborrany.
`duration`, `local_uri`, `mime_type` i `draft_id` descriuen l'intent. La teva aplicació decideix si es manté local o es sotmet més tard a través del flux d'upload que hagis triat.
A `preview_error`, conserva l'esborrany i mostra `error_code`. No transformis una vista prèvia o esborrany desat en una Resposta enviada fins que el flux de submissió de l'aplicació tingui èxit.
L'upload Bubble crea un fitxer d'àudio públic. No utilitzis aquest upload per a gravacions confidencials.
Mantén un esborrany de veu local i fes que Send sigui explícit
Un treballador de camp pot ser interromput abans d'acabar una nota i no hauria d'haver de pujar-la només per conservar-la.
`saved_draft_id = the draft ID stored by your app for this device and account`; `title = the selected non-sensitive task label`.
Start/Stop recording → Save locally. Desa el `draft_id` retornat al teu propi dispositiu/estat d'àmbit de compte. Utilitza Restore local draft per a aquest mateix ID, després Play preview abans de decidir si pujar.
A `local_saved` o `local_restored`, inspecciona `is_saved_locally`, `local_uri` i `duration`. Només elimina l'esborrany desat després d'una elecció explícita de l'usuari o després d'una política de retenció confirmada per separat.
Si la restauració falla, mostra `error_code` i conserva l'ID per al diagnòstic; no informis d'una gravació buida o diferent com a restaurada. Mai auto-upload en reconnectar.
L'upload Bubble crea un fitxer d'àudio públic. No utilitzis aquest upload per a gravacions confidencials.
Què funciona ara
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.
Crea el flux de treball
Utilitzeu les accions beta disponibles a continuació i proveu el resultat en els vostres dispositius de destinació.
Aquests exemples utilitzen registres d'aplicació com Lesson, Message i Order. Substituïu-los amb els vostres propis tipus de dades i noms d'elements. Les adreces multimèdia d'exemple s'han de substituir per els vostres propis fitxers.
Afegiu l'enregistrador. Configureu document_context = Current User's unique id i is_active segons si la vista d'enregistrament està oberta.
Start recording demana permís per al micròfon. Pause i Resume mantenen la mateixa presa. Stop recording la finalitza; espereu recording_ready abans d'oferir revisió o pujada.
Utilitzeu els controls de previsualització per escoltar. Save locally conserva un esborrany en aquest dispositiu; després de local_saved, conserveix draft_id per a Restore local draft.
Expliqueu que l'enviament crea un fitxer públic. Configureu bubble_upload_url amb l'adreça de pujada de fitxers correcta Development o Live de la vostra aplicació Bubble. Executeu Upload to Bubble només quan l'usuari triï Enviar; a upload_succeeded, deseu uploaded_file al vostre registre.
Configura una vegada
Creeu o trieu el vostre projecte d’aplicació Bubble a BestPlugins → Dashboard → Plugins. Trieu Xodera Audio Recorder Native, copieu la seva clau i, a continuació, obriu Bubble → Plugins → Xodera Audio Recorder Native i enganxeu‑la a licensing_api_key. Deseu una vegada; després utilitzeu les accions a continuació. Cada connector en cada projecte té la seva pròpia clau.
Demaneu permís per al micròfon quan l'usuari comenci a gravar. Trieu com l'aplicació desarà els esborranys. La pujada Bubble emmagatzema un fitxer públic, així que utilitzeu-la només per a àudios adequats per a emmagatzematge públic.
Configura una vegada
- Creeu o trieu el vostre projecte d’aplicació Bubble a BestPlugins → Dashboard → Plugins.
- Trieu aquest connector i copieu la clau del projecte.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Afegiu l’element, trieu les vostres dades d’aplicació i construïu el flux de treball a continuació.
- 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.
Instal·lació i subscripció
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.
Desa el resultat a la teva aplicació
Després de upload_succeeded, configureu VoiceMessage.audio = Recorder's uploaded_file, owner = Current User, duration = Recorder's duration i mime_type = Recorder's mime_type. draft_id restaura un esborrany en aquest dispositiu; no és un fitxer d'àudio en línia.
Fallada, cancel·lació i recuperació
Si es denega l'accés al micròfon, expliqueu com habilitar-lo a la configuració del dispositiu. Cancel recording descarta la presa no desada; els esborranys desats es mantenen. Si una pujada s'interromp, conserveu l'enregistrament local i verifiqueu si el fitxer ha arribat abans de tornar-lo a enviar. Delete saved draft elimina només l'esborrany desat seleccionat.
Capacitats i límits
Durada màxima d'enregistrament per defecte: 300 segons; 1–3600 configurables. Límit de pujada per defecte: 10 MiB; màxim 30 MiB. Temps d'espera de pujada: 60 segons, sense reintent automàtic. Les pujades Bubble són públiques. Només s'admeten les vostres adreces de pujada de fitxers *.bubbleapps.io; els dominis personalitzats no ho són. Els esborranys locals no són emmagatzematge encriptat.
Configuracions, accions i resultats
Utilitzeu aquests noms a Bubble. Les funcions planificades es marquen per separat.
Configuracions beta disponibles
Configuració de l'element
title · textmax_duration_seconds · numbermax_upload_bytes · numberis_active · yes_nodisabled · yes_noui_text_json · textsaved_draft_id · textbubble_upload_url · textlanguage · textdocument_context · textEstats
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 · textEsdeveniments
recording_startedrecording_pausedrecording_resumedrecording_stoppedrecording_readyrecording_cancelledrecorder_errorlocal_savedlocal_restoredlocal_deletedupload_succeededupload_failedupload_cancelledpreview_readypreview_errorAccions i les seves entrades
Start recordingPause recordingResume recordingStop recordingCancel recordingSave locallyRestore local draftDelete saved draftUpload to BubbleCancel uploadPlay previewPause previewStop previewSeek previewSet preview speedConfiguració de l'element · 10
titletext · Per defecte: ""- Valor d'exemple
Lesson 4 — review - Exemple d'expressió Bubble
Selected Lesson's name - Text visible de l'aplicació; buit utilitza la còpia localitzada integrada quan sigui compatible. No hi ha credencials.
max_duration_secondsnumber · Per defecte: 300- Valor d'exemple
300 - Exemple d'expressió Bubble
Voice Settings' max_seconds - Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
max_upload_bytesnumber · Per defecte: 10485760- Valor d'exemple
10485760 - Exemple d'expressió Bubble
Voice Settings' max_upload_bytes - Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
is_activeyes_no · Per defecte: true- Valor d'exemple
yes - Exemple d'expressió Bubble
GuideHost's view_is_active (your yes/no custom state) - Estableix sí mentre aquesta vista està oberta. Estableix no en sortir, perquè la reproducció o l'obra actual puguin aturar-se.
disabledyes_no · Per defecte: false- Valor d'exemple
no - Exemple d'expressió Bubble
GuideHost's is_busy (your yes/no custom state) - Desactiva l'element mentre l'aplicació està ocupada o aquesta acció no està disponible.
ui_text_jsontext · Per defecte: ""- Valor d'exemple
{} - Exemple d'expressió Bubble
App Settings' player_labels_json (supported keys only) - JSON opcional amb etiquetes de botó compatibles. Deixa buit per utilitzar el text integrat.
saved_draft_idtext · Per defecte: ""- Valor d'exemple
<returned draft_id> - Exemple d'expressió Bubble
Selected VoiceDraft's draft_id - Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
bubble_upload_urltext · Per defecte: ""- Valor d'exemple
https://your-app.bubbleapps.io/version-test/fileupload - Exemple d'expressió Bubble
App Settings' selected_bubble_upload_url - La teva pròpia adreça d'upload d'arxius de l'aplicació Bubble: /version-test/fileupload per a Development, /fileupload per a Live. Aquest upload crea fitxers públics.
languagetext · Per defecte: "auto"- Valor d'exemple
uk - Exemple d'expressió Bubble
Current User's preferred_language - Estableix language=auto per seguir un dispositiu o idioma del navegador compatible. Introdueix un codi d'idioma compatible per seleccionar-lo explícitament.
document_contexttext · Per defecte: ""- Valor d'exemple
<current-user-id> - Exemple d'expressió Bubble
Current User's unique id - Valor estable per a aquest compte o registre. Utilitzeu el mateix valor en restaurar els seus fitxers o esborranys desats.
Accions i les seves entrades · 15
Start recording
Sense paràmetres d'acció
Pause recording
Sense paràmetres d'acció
Resume recording
Sense paràmetres d'acció
Stop recording
Sense paràmetres d'acció
Cancel recording
Sense paràmetres d'acció
Save locally
Sense paràmetres d'acció
Restore local draft
draft_idtext · Per defecte: —- Valor d'exemple
<returned draft_id> - Exemple d'expressió Bubble
Selected VoiceDraft's draft_id - Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Delete saved draft
draft_idtext · Per defecte: —- Valor d'exemple
<returned draft_id> - Exemple d'expressió Bubble
Selected VoiceDraft's draft_id - Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Upload to Bubble
Sense paràmetres d'acció
Cancel upload
Sense paràmetres d'acció
Play preview
Sense paràmetres d'acció
Pause preview
Sense paràmetres d'acció
Stop preview
Sense paràmetres d'acció
Seek preview
secondsnumber · Per defecte: —- Valor d'exemple
12 - Exemple d'expressió Bubble
Selected Comment's seconds - Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Set preview speed
ratenumber · Per defecte: —- Valor d'exemple
1.5 - Exemple d'expressió Bubble
Preview Speed Dropdown's value - Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Estats i esdeveniments
Estats
recorder_status · textResultat actual d'aquesta acció. Utilitza l'esdeveniment de finalització coincident abans d'enregistrar l'èxit.
permission_status · textResultat actual d'aquesta acció. Utilitza l'esdeveniment de finalització coincident abans d'enregistrar l'èxit.
is_recording · yes_noValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
is_paused · yes_noValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
duration · numberValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
local_uri · textUbicació del fitxer en aquest dispositiu. Deseu o pugeu el fitxer per separat si ha de quedar en línia.
draft_id · textIdentificador per a aquest element o acció. Conserva'l amb el registre d'aplicació corresponent. Utilitza el mateix identificador de sol·licitud en tornar a intentar un resultat incert.
is_saved_locally · yes_noValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
mime_type · textValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
file_size · numberValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
waveform_peaks_json · textValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
preview_status · textResultat actual d'aquesta acció. Utilitza l'esdeveniment de finalització coincident abans d'enregistrar l'èxit.
preview_is_playing · yes_noValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
preview_current_time · numberValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
upload_status · textResultat actual d'aquesta acció. Utilitza l'esdeveniment de finalització coincident abans d'enregistrar l'èxit.
upload_progress · numberValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
uploaded_url · textValor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.
uploaded_file · fileFitxer retornat després de upload_succeeded. Desa‑l al camp Fitxer Bubble.
error_code · textInformació d'error de l'última acció. Mostra un missatge útil i ofereix el reintent corresponent.
Esdeveniments
recording_startedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
recording_pausedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
recording_resumedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
recording_stoppedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
recording_readyQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
recording_cancelledQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
recorder_errorQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
local_savedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
local_restoredQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
local_deletedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
upload_succeededQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
upload_failedQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
upload_cancelledQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
preview_readyQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
preview_errorQuan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.
Preguntes que fan els desenvolupadors
La desada local puja l'enregistrament?
No. Save locally conserva un esborrany al dispositiu propietat. Upload to Bubble és una operació pública separada i explícita.
Com funciona la subscripció?
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.
Guies relacionades
Per obtenir ajuda, indiqueu quin connector i dispositiu utilitzeu, l'acció que heu provat i què ha passat. Utilitzeu un exemple sense dades personals. No compartiu mai la vostra clau ni fitxers privats.