Interface Audio Recorder.
Interface Audio Recorder.
← Todos os guias nativos

Xodera Plugins · Bubble Native

Xodera Audio Recorder Native

Permita que as pessoas gravem uma nota de voz, escutem antes de enviar e mantenham um rascunho local. Faça upload somente quando escolherem enviar a gravação.

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.

Documentação revisada 6 novembro 2026

Exemplos práticos

Ouça antes de enviar uma mensagem de voz não confidencial

Os usuários precisam de uma oportunidade para ouvir e substituir uma gravação antes que ela se torne um anexo.

`title = the app’s conversation label`; defina `max_duration_seconds` e `max_upload_bytes` na sua política de mensagens.

Start recording → Stop recording → aguarde `recording_ready` → Play preview. Ofereça Seek preview e Set preview speed. Apenas um Enviar explícito invoca Upload to Bubble no endpoint de upload aceito pelo próprio aplicativo.

Somente em `upload_succeeded`, crie seu Message e defina seu campo de áudio para `uploaded_file`. A mensagem não é criada pelo gravador em si.

Em caso de negação do microfone, mostre `permission_status`; em falha de upload, mantenha a gravação local. Verifique o resultado de um upload desconhecido antes de tentar novamente para que Enviar não possa criar anexos/mensagens duplicados.

O upload Bubble cria um arquivo de áudio público. Não use esse upload para gravações confidenciais.

Prática de pronúncia sem upload imediato

Os aprendizes desejam comparar sua própria resposta falada com a lição antes de decidir enviá-la.

`title = Current Exercise’s prompt`; `max_duration_seconds = the exercise limit`; uma resposta de exercício permanece um registro de propriedade do aplicativo.

Gravar → Parar → Play preview. Permita que o aprendiz procure, desacelere a pré‑visualização ou cancele e grave outra tentativa. Save locally somente quando ele escolher manter o rascunho.

`duration`, `local_uri`, `mime_type` e `draft_id` descrevem a tentativa. Seu aplicativo decide se permanece local ou é enviado posteriormente através do fluxo de upload escolhido.

Em `preview_error`, preserve o rascunho e mostre `error_code`. Não transforme uma visualização ou rascunho salvo em uma Resposta enviada até que o fluxo de trabalho de submissão do aplicativo seja bem-sucedido.

O upload Bubble cria um arquivo de áudio público. Não use esse upload para gravações confidenciais.

Mantenha um rascunho de voz local e torne Enviar explícito

Um trabalhador de campo pode ser interrompido antes de terminar uma nota e não deve precisar fazer upload apenas para mantê-la.

`saved_draft_id = the draft ID stored by your app for this device and account`; `title = the selected non-sensitive task label`.

Iniciar/Stop recording → Save locally. Armazene o `draft_id` retornado no seu próprio estado de dispositivo/conta. Use Restore local draft para esse mesmo ID, então Play preview antes de decidir se faz upload.

Em `local_saved` ou `local_restored`, inspecione `is_saved_locally`, `local_uri` e `duration`. Delete o rascunho salvo somente após escolha explícita do usuário ou após uma política de retenção confirmada separadamente.

Se a restauração falhar, exiba `error_code` e mantenha o ID para diagnóstico; não registre uma gravação vazia ou diferente como restaurada. Nunca faça upload auto ao reconectar.

O upload Bubble cria um arquivo de áudio público. Não use esse upload para gravações 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.

Crie o fluxo de trabalho

Use as ações beta disponíveis abaixo e teste o resultado em seus dispositivos-alvo.

Estes exemplos utilizam registros de aplicativo como Lesson, Message e Order. Substitua-os pelos seus próprios tipos de dados e nomes de elementos. Endereços de mídia de exemplo devem ser substituídos pelos seus próprios arquivos.

  1. Adicione o gravador. Defina document_context = Current User's unique id e is_active para indicar se a visualização de gravação está aberta.

  2. Start recording solicita permissão de microfone. Pausar e retomar mantêm a mesma gravação. Stop recording finaliza‑a; aguarde recording_ready antes de oferecer revisão ou upload.

  3. Use os controles de pré‑visualização para ouvir. Save locally mantém um rascunho neste dispositivo; após local_saved, retenha draft_id para Restore local draft.

  4. Explique que o envio cria um arquivo público. Defina bubble_upload_url para o endereço de upload de arquivo correto do seu aplicativo Bubble, seja Development ou Live. Execute Upload to Bubble somente quando o usuário escolher Enviar; em upload_succeeded, salve uploaded_file em seu registro.

Diagrama de fluxo de trabalho — não é uma captura de tela do aplicativo

Configure uma vez

Crie ou escolha seu projeto de aplicativo Bubble em BestPlugins → Dashboard → Plugins. Escolha Xodera Audio Recorder Native, copie sua chave, então abra Bubble → Plugins → Xodera Audio Recorder Native e cole-a em licensing_api_key. Salve uma vez; depois use as ações abaixo. Cada plugin em cada projeto tem sua própria chave.

Solicite permissão de microfone quando o usuário iniciar a gravação. Escolha como o aplicativo salvará os rascunhos. O upload Bubble armazena um arquivo público, portanto use‑o apenas para áudio adequado ao armazenamento público.

Configure uma vez
  1. Crie ou escolha seu projeto de aplicativo Bubble em BestPlugins → Dashboard → Plugins.
  2. Escolha este plugin e copie sua chave de projeto.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Adicione o elemento, escolha os dados do seu aplicativo e construa o fluxo de trabalho abaixo.
  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.
Instalação e assinatura

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.

Salve o resultado no seu aplicativo

Após upload_succeeded, defina VoiceMessage.audio = Recorder's uploaded_file, owner = Current User, duration = Recorder's duration e mime_type = Recorder's mime_type. draft_id restaura um rascunho neste dispositivo; não é um arquivo de áudio online.

Falha, cancelamento e recuperação

Se o acesso ao microfone for negado, explique como habilitá‑lo nas configurações do dispositivo. Cancel recording descarta a gravação não salva; os rascunhos salvos permanecem. Se um upload for interrompido, mantenha a gravação local e verifique se o arquivo chegou antes de enviá‑lo novamente. Delete saved draft remove apenas o rascunho salvo selecionado.

Capacidades e limites

Gravação máxima padrão: 300 segundos; configurável 1–3600. Limite padrão de upload: 10 MiB; máximo 30 MiB. Tempo limite de upload: 60 segundos, sem tentativa automática. Uploads Bubble são públicos. Apenas seus próprios endereços de upload de arquivo *.bubbleapps.io são suportados; domínios personalizados não são. Rascunhos locais não são armazenamento criptografado.

Configurações, ações e resultados

Use esses nomes em Bubble. Recursos planejados são marcados separadamente.

Configurações beta disponíveis

Configurações 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

Ações e suas entradas

Start recordingPause recordingResume recordingStop recordingCancel recordingSave locallyRestore local draftDelete saved draftUpload to BubbleCancel uploadPlay previewPause previewStop previewSeek previewSet preview speed
Configurações do elemento · 10
titletext · Padrão: ""
Valor de exemploLesson 4 — review
Exemplo de expressão BubbleSelected Lesson's name
Texto visível do aplicativo; vazio usa a cópia localizada incorporada onde suportado. Sem credenciais.
max_duration_secondsnumber · Padrão: 300
Valor de exemplo300
Exemplo de expressão BubbleVoice Settings' max_seconds
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
max_upload_bytesnumber · Padrão: 10485760
Valor de exemplo10485760
Exemplo de expressão BubbleVoice Settings' max_upload_bytes
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
is_activeyes_no · Padrão: true
Valor de exemployes
Exemplo de expressão BubbleGuideHost's view_is_active (your yes/no custom state)
Defina sim enquanto esta visualização estiver aberta. Defina não ao sair, para que a reprodução ou o trabalho atual possam parar.
disabledyes_no · Padrão: false
Valor de exemplono
Exemplo de expressão BubbleGuideHost's is_busy (your yes/no custom state)
Desative o elemento enquanto seu aplicativo estiver ocupado ou esta ação estiver indisponível.
ui_text_jsontext · Padrão: ""
Valor de exemplo{}
Exemplo de expressão BubbleApp Settings' player_labels_json (supported keys only)
JSON opcional com rótulos de botão suportados. Deixe vazio para usar o texto incorporado.
saved_draft_idtext · Padrão: ""
Valor de exemplo<returned draft_id>
Exemplo de expressão BubbleSelected VoiceDraft's draft_id
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
bubble_upload_urltext · Padrão: ""
Valor de exemplohttps://your-app.bubbleapps.io/version-test/fileupload
Exemplo de expressão BubbleApp Settings' selected_bubble_upload_url
Seu próprio endereço de upload de arquivos do aplicativo Bubble: /version-test/fileupload para Development, /fileupload para Live. Esse upload cria arquivos públicos.
languagetext · Padrão: "auto"
Valor de exemplouk
Exemplo de expressão BubbleCurrent User's preferred_language
Defina language=auto para seguir um idioma de dispositivo ou navegador suportado. Insira um código de idioma suportado para escolhê-lo explicitamente.
document_contexttext · Padrão: ""
Valor de exemplo<current-user-id>
Exemplo de expressão BubbleCurrent User's unique id
Valor estável para esta conta ou registro. Use o mesmo valor ao restaurar seus arquivos ou rascunhos salvos.
Ações e suas entradas · 15
Start recording

Sem parâmetros de ação

Pause recording

Sem parâmetros de ação

Resume recording

Sem parâmetros de ação

Stop recording

Sem parâmetros de ação

Cancel recording

Sem parâmetros de ação

Save locally

Sem parâmetros de ação

Restore local draft
draft_idtext · Padrão: —
Valor de exemplo<returned draft_id>
Exemplo de expressão BubbleSelected VoiceDraft's draft_id
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Delete saved draft
draft_idtext · Padrão: —
Valor de exemplo<returned draft_id>
Exemplo de expressão BubbleSelected VoiceDraft's draft_id
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Upload to Bubble

Sem parâmetros de ação

Cancel upload

Sem parâmetros de ação

Play preview

Sem parâmetros de ação

Pause preview

Sem parâmetros de ação

Stop preview

Sem parâmetros de ação

Seek preview
secondsnumber · Padrão: —
Valor de exemplo12
Exemplo de expressão BubbleSelected Comment's seconds
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Set preview speed
ratenumber · Padrão: —
Valor de exemplo1.5
Exemplo de expressão BubblePreview Speed Dropdown's value
Use o valor do registro comercial atual; valide-o contra os limites abaixo.
Estados e eventos

Estados

recorder_status · text

Resultado atual desta ação. Use o evento de conclusão correspondente antes de salvar o sucesso.

permission_status · text

Resultado atual desta ação. Use o evento de conclusão correspondente antes de salvar o sucesso.

is_recording · yes_no

Valor atual do item selecionado. Leia-o após o evento relacionado.

is_paused · yes_no

Valor atual do item selecionado. Leia-o após o evento relacionado.

duration · number

Valor atual do item selecionado. Leia-o após o evento relacionado.

local_uri · text

Localização do arquivo neste dispositivo. Salve ou faça upload do arquivo separadamente se precisar mantê‑lo online.

draft_id · text

Identificador para este item ou ação. Mantenha-o com o registro de aplicativo correspondente. Use o mesmo identificador de solicitação ao tentar novamente um resultado incerto.

is_saved_locally · yes_no

Valor atual do item selecionado. Leia-o após o evento relacionado.

mime_type · text

Valor atual do item selecionado. Leia-o após o evento relacionado.

file_size · number

Valor atual do item selecionado. Leia-o após o evento relacionado.

waveform_peaks_json · text

Valor atual do item selecionado. Leia-o após o evento relacionado.

preview_status · text

Resultado atual desta ação. Use o evento de conclusão correspondente antes de salvar o sucesso.

preview_is_playing · yes_no

Valor atual do item selecionado. Leia-o após o evento relacionado.

preview_current_time · number

Valor atual do item selecionado. Leia-o após o evento relacionado.

upload_status · text

Resultado atual desta ação. Use o evento de conclusão correspondente antes de salvar o sucesso.

upload_progress · number

Valor atual do item selecionado. Leia-o após o evento relacionado.

uploaded_url · text

Valor atual do item selecionado. Leia-o após o evento relacionado.

uploaded_file · file

Arquivo retornado após upload_succeeded. Salve-o no campo de Arquivo Bubble.

error_code · text

Informações de erro da última ação. Exiba uma mensagem útil e ofereça a tentativa de novo relevante.

Eventos

recording_started

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

recording_paused

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

recording_resumed

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

recording_stopped

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

recording_ready

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

recording_cancelled

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

recorder_error

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

local_saved

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

local_restored

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

local_deleted

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

upload_succeeded

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

upload_failed

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

upload_cancelled

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

preview_ready

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

preview_error

Quando este evento ocorrer, leia os estados relacionados do mesmo elemento.

Perguntas que os desenvolvedores fazem

O salvamento local faz o upload da gravação?

Não. Save locally mantém um rascunho de dispositivo próprio. Upload to Bubble é uma operação pública explícita separada.

Como funciona a assinatura?

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.

Guias relacionados

Para obter ajuda, informe qual plugin e dispositivo você usa, a ação que tentou e o que aconteceu. Use um exemplo sem dados pessoais. Nunca compartilhe sua chave ou arquivos privados.