Interfície Audio Recorder.
Interfície Audio Recorder.
← Totes les guies natives

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.

  1. Afegiu l'enregistrador. Configureu document_context = Current User's unique id i is_active segons si la vista d'enregistrament està oberta.

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

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

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

Diagrama de flux de treball — no és una captura de pantalla de l'aplicació

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
  1. Creeu o trieu el vostre projecte d’aplicació Bubble a BestPlugins → Dashboard → Plugins.
  2. Trieu aquest connector i copieu la clau del projecte.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Afegiu l’element, trieu les vostres dades d’aplicació i construïu el flux de treball a continuació.
  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.
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 · text

Estats

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

Esdeveniments

recording_startedrecording_pausedrecording_resumedrecording_stoppedrecording_readyrecording_cancelledrecorder_errorlocal_savedlocal_restoredlocal_deletedupload_succeededupload_failedupload_cancelledpreview_readypreview_error

Accions i les seves entrades

Start recordingPause recordingResume recordingStop recordingCancel recordingSave locallyRestore local draftDelete saved draftUpload to BubbleCancel uploadPlay previewPause previewStop previewSeek previewSet preview speed
Configuració de l'element · 10
titletext · Per defecte: ""
Valor d'exempleLesson 4 — review
Exemple d'expressió BubbleSelected 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'exemple300
Exemple d'expressió BubbleVoice 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'exemple10485760
Exemple d'expressió BubbleVoice 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'exempleyes
Exemple d'expressió BubbleGuideHost'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'exempleno
Exemple d'expressió BubbleGuideHost'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ó BubbleApp 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ó BubbleSelected 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'exemplehttps://your-app.bubbleapps.io/version-test/fileupload
Exemple d'expressió BubbleApp 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'exempleuk
Exemple d'expressió BubbleCurrent 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ó BubbleCurrent 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ó BubbleSelected 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ó BubbleSelected 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'exemple12
Exemple d'expressió BubbleSelected 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'exemple1.5
Exemple d'expressió BubblePreview 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 · text

Resultat actual d'aquesta acció. Utilitza l'esdeveniment de finalització coincident abans d'enregistrar l'èxit.

permission_status · text

Resultat actual d'aquesta acció. Utilitza l'esdeveniment de finalització coincident abans d'enregistrar l'èxit.

is_recording · yes_no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

is_paused · yes_no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

duration · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

local_uri · text

Ubicació del fitxer en aquest dispositiu. Deseu o pugeu el fitxer per separat si ha de quedar en línia.

draft_id · text

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

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

mime_type · text

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

file_size · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

waveform_peaks_json · text

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

preview_status · text

Resultat actual d'aquesta acció. Utilitza l'esdeveniment de finalització coincident abans d'enregistrar l'èxit.

preview_is_playing · yes_no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

preview_current_time · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

upload_status · text

Resultat actual d'aquesta acció. Utilitza l'esdeveniment de finalització coincident abans d'enregistrar l'èxit.

upload_progress · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

uploaded_url · text

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

uploaded_file · file

Fitxer retornat després de upload_succeeded. Desa‑l al camp Fitxer Bubble.

error_code · text

Informació d'error de l'última acció. Mostra un missatge útil i ofereix el reintent corresponent.

Esdeveniments

recording_started

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

recording_paused

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

recording_resumed

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

recording_stopped

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

recording_ready

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

recording_cancelled

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

recorder_error

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

local_saved

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

local_restored

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

local_deleted

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

upload_succeeded

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

upload_failed

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

upload_cancelled

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

preview_ready

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

preview_error

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