Interface Audio Recorder.
Interface Audio Recorder.
← Todas as guías nativas

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.

  1. Engada o gravador. Defina document_context = Current User's unique id e is_active segundo se a vista de gravación está aberta.

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

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

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

Diagrama do fluxo de traballo — non é unha captura de pantalla da aplicación

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
  1. Cree ou escolla o seu proxecto de aplicación Bubble en BestPlugins → Dashboard → Plugins.
  2. Escolla este complemento e copie a súa clave de proxecto.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Engada o elemento, escolla os datos da súa aplicación e constrúa o fluxo de traballo a continuación.
  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.
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 · text

Estados

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

Eventos

recording_startedrecording_pausedrecording_resumedrecording_stoppedrecording_readyrecording_cancelledrecorder_errorlocal_savedlocal_restoredlocal_deletedupload_succeededupload_failedupload_cancelledpreview_readypreview_error

Acció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 speed
Configuración do elemento · 10
titletext · Predeterminado: ""
Valor de exemploLesson 4 — review
Exemplo de expresión BubbleSelected 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 exemplo300
Exemplo de expresión BubbleVoice Settings' max_seconds
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
max_upload_bytesnumber · Predeterminado: 10485760
Valor de exemplo10485760
Exemplo de expresión BubbleVoice 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 exemployes
Exemplo de expresión BubbleGuideHost'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 exemplono
Exemplo de expresión BubbleGuideHost'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 BubbleApp 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 BubbleSelected VoiceDraft's draft_id
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
bubble_upload_urltext · Predeterminado: ""
Valor de exemplohttps://your-app.bubbleapps.io/version-test/fileupload
Exemplo de expresión BubbleApp 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 exemplouk
Exemplo de expresión BubbleCurrent 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 BubbleCurrent 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 BubbleSelected 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 BubbleSelected 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 exemplo12
Exemplo de expresión BubbleSelected Comment's seconds
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Set preview speed
ratenumber · Predeterminado: —
Valor de exemplo1.5
Exemplo de expresión BubblePreview Speed Dropdown's value
Utiliza o valor do rexistro empresarial actual; valídalo contra os límites abaixo.
Estados e eventos

Estados

recorder_status · text

Resultado actual desta acción. Usa o evento de finalización coincidente antes de gardar o éxito.

permission_status · text

Resultado actual desta acción. Usa o evento de finalización coincidente antes de gardar o éxito.

is_recording · yes_no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

is_paused · yes_no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

duration · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

local_uri · text

Localización do ficheiro neste dispositivo. Garde ou cargue o ficheiro por separado se debe permanecer en liña.

draft_id · text

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

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

mime_type · text

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

file_size · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

waveform_peaks_json · text

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

preview_status · text

Resultado actual desta acción. Usa o evento de finalización coincidente antes de gardar o éxito.

preview_is_playing · yes_no

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

preview_current_time · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

upload_status · text

Resultado actual desta acción. Usa o evento de finalización coincidente antes de gardar o éxito.

upload_progress · number

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

uploaded_url · text

Valor actual do elemento seleccionado. Léelo despois do evento relacionado.

uploaded_file · file

Ficheiro devolto despois de upload_succeeded. Gárdao no teu campo de ficheiro Bubble.

error_code · text

Información de erro da última acción. Mostra unha mensaxe útil e ofrece o reintento correspondente.

Eventos

recording_started

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

recording_paused

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

recording_resumed

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

recording_stopped

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

recording_ready

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

recording_cancelled

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

recorder_error

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

local_saved

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

local_restored

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

local_deleted

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

upload_succeeded

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

upload_failed

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

upload_cancelled

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

preview_ready

Cando ocorra este evento, lea os estados relacionados do mesmo elemento.

preview_error

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