
Xodera Plugins · Bubble Native
Xodera Audio Recorder Native
Permita que as persoas graven unha nota de voz, escúchenla antes de enviala e manteñan un borrador local. Cargue só cando escollan enviar a gravación.
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ón revisada 6 novembro 2026
Exemplos prácticos
Escucha antes de enviar unha mensaxe de voz non confidencial
Os usuarios necesitan a oportunidade de escoitar e substituír unha gravación antes de que se converta nun anexo.
`title = the app’s conversation label`; estableza `max_duration_seconds` e `max_upload_bytes` na súa política de mensaxes.
Start recording → Stop recording → espere a `recording_ready` → Play preview. Ofreza Seek preview e Set preview speed. Só un envío explícito invoca Upload to Bubble no punto final de carga aceptado da propia aplicación.
Só en `upload_succeeded`, cree o seu Message e estableza o seu campo de audio a `uploaded_file`. A mensaxe non a crea o propio gravador.
Ao denegar o micrófono, mostre `permission_status`; ao fallar a carga, manteña a gravación local. Verifique o resultado dunha carga descoñecida antes de volver a intentar para que Enviar non poida crear anexos/mensaxes duplicados.
A carga Bubble crea un ficheiro de audio público. Non use esta carga para gravacións confidenciais.
Práctica de pronunciación sen carga inmediata
Os aprendices queren comparar a súa propia resposta falada cunha lección antes de decidir enviala.
`title = Current Exercise’s prompt`; `max_duration_seconds = the exercise limit`; unha resposta ao exercicio permanece como un rexistro pertencente á aplicación.
Gravar → Detener → Play preview. Permita ao aprendiz buscar, ralentizar a vista previa ou cancelar e gravar outro intento. Save locally só cando elixa conservar o borrador.
`duration`, `local_uri`, `mime_type` e `draft_id` describen o intento. A súa aplicación decide se permanece local ou se envía máis tarde mediante o fluxo de carga escollido.
En `preview_error`, preserve o borrador e mostre `error_code`. Non converta unha vista previa ou borrador gardado nunha Resposta enviada ata que o fluxo de envío da aplicación tenga éxito.
A carga Bubble crea un ficheiro de audio público. Non use esta carga para gravacións confidenciais.
Manteña un borrador de voz local e faga o Enviar explícito
Un traballador de campo pode ser interrompido antes de terminar unha nota e non debería ter que cargala só para mantela.
`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. Almacene o `draft_id` devolto no seu propio dispositivo/estado asociado á conta. Use Restore local draft para ese mesmo ID, despois Play preview antes de decidir se cargar.
En `local_saved` ou `local_restored`, inspeccione `is_saved_locally`, `local_uri` e `duration`. Só elimine o borrador gardado tras unha elección explícita do usuario ou despois dunha política de retención confirmada por separado.
Se a restauración falla, mostre `error_code` e manteña o ID para diagnóstico; non informe dunha gravación baleira ou diferente como restaurada. Nunca realice unha carga auto ao reconectar.
A carga Bubble crea un ficheiro de audio público. Non use esta carga para gravacións confidenciais.
O que funciona agora
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 o fluxo de traballo
Utilice as accións beta dispoñibles a continuación e probe o resultado nos seus dispositivos de destino.
Estes exemplos usan rexistros de aplicación como Lesson, Message e Order. Substitúeaos polos seus propios tipos de datos e nomes de elementos. Os enderezos de medios de exemplo deben substituírse polos seus propios ficheiros.
Engada o gravador. Defina document_context = Current User's unique id e is_active segundo se a vista de gravación está aberta.
Start recording solicita permiso de micrófono. Pause e Resume mantén a mesma toma. Stop recording a finaliza; agarde a recording_ready antes de ofrecer revisión ou carga.
Use os controis de vista previa para escoitar. Save locally mantén un borrador neste dispositivo; despois de local_saved, conserve draft_id para Restore local draft.
Explique que o envío crea un ficheiro público. Defina bubble_upload_url ao enderezo de carga de ficheiros correcto da súa propia aplicación Bubble, Development ou Live. Execute Upload to Bubble só cando o usuario escolla Enviar; en upload_succeeded, garde uploaded_file no seu rexistro.
Configura unha vez
Cree ou escolla o seu proxecto de aplicación Bubble en BestPlugins → Dashboard → Plugins. Escolla Xodera Audio Recorder Native, copie a súa clave, despois abra Bubble → Plugins → Xodera Audio Recorder Native e péguela en licensing_api_key. Guarde unha vez; a seguir utilice as accións a continuación. Cada complemento en cada proxecto ten a súa propia clave.
Pida permiso de micrófono cando o usuario comece a gravar. Escolla como a aplicación gardará os borradores. A carga Bubble almacena un ficheiro público, polo que úsela só para audio axeitado ao almacenamento público.
Configura unha vez
- Cree ou escolla o seu proxecto de aplicación Bubble en BestPlugins → Dashboard → Plugins.
- Escolla este complemento e copie a súa clave de proxecto.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Engada o elemento, escolla os datos da súa aplicación e constrúa o fluxo de traballo a continuación.
- 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.
Instalación e subscrición
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.
Garde o resultado na súa aplicación
Despois de upload_succeeded, configure VoiceMessage.audio = Recorder's uploaded_file, owner = Current User, duration = Recorder's duration e mime_type = Recorder's mime_type. draft_id restaura un borrador neste dispositivo; non é un ficheiro de audio en liña.
Fallo, cancelación e recuperación
Se se denega o acceso ao micrófono, explique como activalo nos axustes do dispositivo. Cancel recording descarta a toma sen gardar; os borradores gardados permanecen. Se unha carga se interrompe, manteña a gravación local e verifique se o ficheiro chegou antes de envialo de novo. Delete saved draft elimina só o borrador gardado seleccionado.
Capacidades e límites
Gravación máxima predeterminada: 300 segundos; configurable 1–3600. Límite de carga predeterminado: 10 MiB; máximo 30 MiB. Tempo de espera da carga: 60 segundos, sen reintento automático. As cargas Bubble son públicas. Só se admiten os seus propios enderezos de carga de ficheiros *.bubbleapps.io; os dominios personalizados non están soportados. Os borradores locais non son almacenamento cifrado.
Configuracións, accións e resultados
Utilice estes nomes en Bubble. As funcionalidades planificadas están marcadas por separado.
Configuracións beta dispoñibles
Configuración do elemento
title · textmax_duration_seconds · numbermax_upload_bytes · numberis_active · yes_nodisabled · yes_noui_text_json · textsaved_draft_id · textbubble_upload_url · textlanguage · textdocument_context · textEstados
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 · textEventos
recording_startedrecording_pausedrecording_resumedrecording_stoppedrecording_readyrecording_cancelledrecorder_errorlocal_savedlocal_restoredlocal_deletedupload_succeededupload_failedupload_cancelledpreview_readypreview_errorAccións e as súas entradas
Start recordingPause recordingResume recordingStop recordingCancel recordingSave locallyRestore local draftDelete saved draftUpload to BubbleCancel uploadPlay previewPause previewStop previewSeek previewSet preview speedConfiguración do elemento · 10
titletext · Predeterminado: ""- Valor de exemplo
Lesson 4 — review - Exemplo de expresión Bubble
Selected Lesson's name - Texto visible da aplicación; baleiro usa a copia localizada incorporada onde se admita. Sen credenciais.
max_duration_secondsnumber · Predeterminado: 300- Valor de exemplo
300 - Exemplo de expresión Bubble
Voice Settings' max_seconds - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
max_upload_bytesnumber · Predeterminado: 10485760- Valor de exemplo
10485760 - Exemplo de expresión Bubble
Voice Settings' max_upload_bytes - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
is_activeyes_no · Predeterminado: true- Valor de exemplo
yes - Exemplo de expresión Bubble
GuideHost's view_is_active (your yes/no custom state) - Establece sí mentres esta vista está aberta. Establece non ao saír, para que a reprodución ou o traballo actual poidan detenerse.
disabledyes_no · Predeterminado: false- Valor de exemplo
no - Exemplo de expresión Bubble
GuideHost's is_busy (your yes/no custom state) - Desactiva o elemento mentres a túa aplicación está ocupada ou esta acción non está dispoñible.
ui_text_jsontext · Predeterminado: ""- Valor de exemplo
{} - Exemplo de expresión Bubble
App Settings' player_labels_json (supported keys only) - JSON opcional con etiquetas de botón compatibles. Déixao baleiro para usar o texto incorporado.
saved_draft_idtext · Predeterminado: ""- Valor de exemplo
<returned draft_id> - Exemplo de expresión Bubble
Selected VoiceDraft's draft_id - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
bubble_upload_urltext · Predeterminado: ""- Valor de exemplo
https://your-app.bubbleapps.io/version-test/fileupload - Exemplo de expresión Bubble
App Settings' selected_bubble_upload_url - O seu propio enderezo de carga de ficheiros da aplicación Bubble: /version-test/fileupload para Development, /fileupload para Live. Esta carga crea ficheiros públicos.
languagetext · Predeterminado: "auto"- Valor de exemplo
uk - Exemplo de expresión Bubble
Current User's preferred_language - Establece language=auto para seguir un dispositivo ou idioma de navegador compatible. Introduce un código de idioma compatible para elixilo explicitamente.
document_contexttext · Predeterminado: ""- Valor de exemplo
<current-user-id> - Exemplo de expresión Bubble
Current User's unique id - Valor estable para esta conta ou rexistro. Use o mesmo valor ao restaurar os seus ficheiros ou borradores gardados.
Accións e as súas entradas · 15
Start recording
Sen parámetros de acción
Pause recording
Sen parámetros de acción
Resume recording
Sen parámetros de acción
Stop recording
Sen parámetros de acción
Cancel recording
Sen parámetros de acción
Save locally
Sen parámetros de acción
Restore local draft
draft_idtext · Predeterminado: —- Valor de exemplo
<returned draft_id> - Exemplo de expresión Bubble
Selected VoiceDraft's draft_id - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Delete saved draft
draft_idtext · Predeterminado: —- Valor de exemplo
<returned draft_id> - Exemplo de expresión Bubble
Selected VoiceDraft's draft_id - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Upload to Bubble
Sen parámetros de acción
Cancel upload
Sen parámetros de acción
Play preview
Sen parámetros de acción
Pause preview
Sen parámetros de acción
Stop preview
Sen parámetros de acción
Seek preview
secondsnumber · Predeterminado: —- Valor de exemplo
12 - Exemplo de expresión Bubble
Selected Comment's seconds - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Set preview speed
ratenumber · Predeterminado: —- Valor de exemplo
1.5 - Exemplo de expresión Bubble
Preview Speed Dropdown's value - Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Estados e eventos
Estados
recorder_status · textResultado actual desta acción. Usa o evento de finalización coincidente antes de gardar o éxito.
permission_status · textResultado actual desta acción. Usa o evento de finalización coincidente antes de gardar o éxito.
is_recording · yes_noValor actual do elemento seleccionado. Léelo despois do evento relacionado.
is_paused · yes_noValor actual do elemento seleccionado. Léelo despois do evento relacionado.
duration · numberValor actual do elemento seleccionado. Léelo despois do evento relacionado.
local_uri · textLocalización do ficheiro neste dispositivo. Garde ou cargue o ficheiro por separado se debe permanecer en liña.
draft_id · textIdentificador para este elemento ou acción. Mantéña co rexistro da aplicación correspondente. Use o mesmo identificador de solicitude ao volver a intentar un resultado incerto.
is_saved_locally · yes_noValor actual do elemento seleccionado. Léelo despois do evento relacionado.
mime_type · textValor actual do elemento seleccionado. Léelo despois do evento relacionado.
file_size · numberValor actual do elemento seleccionado. Léelo despois do evento relacionado.
waveform_peaks_json · textValor actual do elemento seleccionado. Léelo despois do evento relacionado.
preview_status · textResultado actual desta acción. Usa o evento de finalización coincidente antes de gardar o éxito.
preview_is_playing · yes_noValor actual do elemento seleccionado. Léelo despois do evento relacionado.
preview_current_time · numberValor actual do elemento seleccionado. Léelo despois do evento relacionado.
upload_status · textResultado actual desta acción. Usa o evento de finalización coincidente antes de gardar o éxito.
upload_progress · numberValor actual do elemento seleccionado. Léelo despois do evento relacionado.
uploaded_url · textValor actual do elemento seleccionado. Léelo despois do evento relacionado.
uploaded_file · fileFicheiro devolto despois de upload_succeeded. Gárdao no teu campo de ficheiro Bubble.
error_code · textInformación de erro da última acción. Mostra unha mensaxe útil e ofrece o reintento correspondente.
Eventos
recording_startedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
recording_pausedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
recording_resumedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
recording_stoppedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
recording_readyCando ocorra este evento, lea os estados relacionados do mesmo elemento.
recording_cancelledCando ocorra este evento, lea os estados relacionados do mesmo elemento.
recorder_errorCando ocorra este evento, lea os estados relacionados do mesmo elemento.
local_savedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
local_restoredCando ocorra este evento, lea os estados relacionados do mesmo elemento.
local_deletedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
upload_succeededCando ocorra este evento, lea os estados relacionados do mesmo elemento.
upload_failedCando ocorra este evento, lea os estados relacionados do mesmo elemento.
upload_cancelledCando ocorra este evento, lea os estados relacionados do mesmo elemento.
preview_readyCando ocorra este evento, lea os estados relacionados do mesmo elemento.
preview_errorCando ocorra este evento, lea os estados relacionados do mesmo elemento.
Preguntas que os desenvolvedores fan
¿O gardado local carga a gravación?
Non. Save locally mantén un borrador no dispositivo propio. Upload to Bubble é unha operación pública separada e explícita.
Como funciona a subscrición?
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.
Guías relacionadas
Para obter axuda, indícanos que complemento e dispositivo utilizas, a acción que intentaches e o que sucedeu. Usa un exemplo sen datos persoais. Nunca compartas a túa clave ou ficheiros privados.