Audio Recorder-gränssnitt.
Audio Recorder-gränssnitt.
← Alla inbyggda guider

Xodera Plugins · Bubble Native

Xodera Audio Recorder Native

Låt användare spela in en röstanteckning, lyssna innan de skickar och behålla ett lokalt utkast. Ladda upp endast när de väljer att skicka inspelningen.

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.

Dokumentation granskad 6 november 2026

Praktiska exempel

Lyssna innan du skickar ett icke‑konfidentiellt röstmeddelande

Användare behöver en möjlighet att höra och ersätta en inspelning innan den blir en bilaga.

`title = the app’s conversation label`; ställ in `max_duration_seconds` och `max_upload_bytes` enligt din meddelandepolicy.

Start recording → Stop recording → vänta på `recording_ready` → Play preview. Erbjud Seek preview och Set preview speed. Endast ett explicit Skicka utlöser Upload to Bubble på den accepterade egen‑app‑uppladdnings‑endpointen.

Endast på `upload_succeeded`, skapa ditt Message och sätt dess ljudfält till `uploaded_file`. Meddelandet skapas inte av inspelaren själv.

Vid nekad mikrofonvisa `permission_status`; vid uppladdningsfel behåll den lokala inspelningen. Kontrollera resultatet av en okänd uppladdning innan du försöker igen så att Skicka inte kan skapa dubbla bilagor/meddelanden.

Bubble‑uppladdning skapar en offentlig ljudfil. Använd inte denna uppladdning för konfidentiella inspelningar.

Uttalsträning utan omedelbar uppladdning

Elever vill jämföra sitt eget talade svar med en lektion innan de bestämmer sig för att skicka in det.

`title = Current Exercise’s prompt`; `max_duration_seconds = the exercise limit`; ett övningssvar förblir en app‑ägd post.

Spela in → Stoppa → Play preview. Låt eleven söka, sakta ner förhandsgranskningen eller avbryta och spela in ett nytt försök. Save locally endast när de väljer att behålla utkastet.

`duration`, `local_uri`, `mime_type` och `draft_id` beskriver försöket. Din app bestämmer om det förblir lokalt eller senare skickas in via ditt valda uppladdningsflöde.

Vid `preview_error`, bevara utkastet och visa `error_code`. Gör inte en förhandsgranskning eller sparat utkast till ett inskickat svar förrän appens inskickningsflöde lyckas.

Bubble‑uppladdning skapar en offentlig ljudfil. Använd inte denna uppladdning för konfidentiella inspelningar.

Behåll ett lokalt röstutkast och gör Skicka explicit

En fältarbetare kan bli avbruten innan noten är färdig och bör inte behöva ladda upp den bara för att behålla den.

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

Starta/Stop recording → Save locally. Spara den returnerade `draft_id` i din egen enhet/konto‑avgränsade tillstånd. Använd Restore local draft för samma ID, sedan Play preview innan du beslutar om uppladdning.

På `local_saved` eller `local_restored`, inspektera `is_saved_locally`, `local_uri` och `duration`. Radera endast det sparade utkastet efter ett explicit användarval eller efter en separat bekräftad lagringspolicy.

Om återställning misslyckas, visa `error_code` och behåll ID:t för diagnos; rapportera inte en tom eller annan inspelning som återställd. Ladda aldrig upp auto vid återanslutning.

Bubble‑uppladdning skapar en offentlig ljudfil. Använd inte denna uppladdning för konfidentiella inspelningar.

Vad som fungerar nu

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.

Bygg arbetsflödet

Använd de tillgängliga betahandlingarna nedan och testa resultatet på dina mål enheter.

Dessa exempel använder app‑poster såsom Lesson, Message och Order. Ersätt dem med dina egna datatyper och elementnamn. Exempel på mediadresser måste ersättas med dina egna filer.

  1. Lägg till inspelaren. Ställ in document_context = Current User's unique id och is_active för om inspelningsvyn är öppen.

  2. Start recording ber om mikrofonbehörighet. Pausa och återuppta behåller samma tagning. Stop recording avslutar den; vänta på recording_ready innan du erbjuder granskning eller uppladdning.

  3. Använd förhandsgranskningskontrollerna för att lyssna. Save locally sparar ett utkast på den här enheten; efter local_saved, behåll draft_id för Restore local draft.

  4. Förklara att sändning skapar en offentlig fil. Ställ in bubble_upload_url till din egen Bubble‑apps korrekta Development‑ eller Live‑filuppladdningsadress. Kör Upload to Bubble endast när användaren väljer Skicka; vid upload_succeeded, spara uploaded_file i ditt register.

Arbetsflödesdiagram — inte en appskärmbild

Konfigurera en gång

Skapa eller välj ditt Bubble‑appprojekt i BestPlugins → Dashboard → Plugins. Välj Xodera Audio Recorder Native, kopiera dess nyckel, öppna sedan Bubble → Plugins → Xodera Audio Recorder Native och klistra in den i licensing_api_key. Spara en gång; använd sedan åtgärderna nedan. Varje plugin i varje projekt har sin egen nyckel.

Be om mikrofonbehörighet när användaren börjar spela in. Välj hur appen ska spara utkast. Bubble‑uppladdning lagrar en offentlig fil, så använd den endast för ljud som är lämpligt för offentlig lagring.

Konfigurera en gång
  1. Skapa eller välj ditt Bubble‑appprojekt på BestPlugins → Dashboard → Plugins.
  2. Välj detta plugin och kopiera dess projektnyckel.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Lägg till elementet, välj dina appdata och bygg arbetsflödet nedan.
  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.
Installation och prenumeration

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.

Spara resultatet i din app

Efter upload_succeeded, ställ in VoiceMessage.audio = Recorder's uploaded_file, owner = Current User, duration = Recorder's duration och mime_type = Recorder's mime_type. draft_id återställer ett utkast på den här enheten; det är inte en online‑ljudfil.

Fel, avbryt och återställning

Om mikrofonåtkomst nekas, förklara hur man aktiverar den i enhetens inställningar. Cancel recording kastar bort det osparade taget; sparade utkast kvarstår. Om en uppladdning avbryts, behåll den lokala inspelningen och kontrollera om filen kom fram innan du skickar den igen. Delete saved draft tar bara bort det valda sparade utkastet.

Kapaciteter och begränsningar

Standard maximal inspelning: 300 sekunder; konfigurerbar 1–3600. Standard uppladdningsgräns: 10 MiB; maximal 30 MiB. Uppladdningstimeout: 60 sekunder, utan automatisk återförsök. Bubble‑uppladdningar är offentliga. Endast dina egna *.bubbleapps.io filuppladdningsadresser stöds; anpassade domäner stöds inte. Lokala utkast är inte krypterad lagring.

Inställningar, åtgärder och resultat

Använd dessa namn i Bubble. Planerade funktioner markeras separat.

Tillgängliga beta-inställningar

Elementinställningar

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

Tillstånd

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

Händelser

recording_startedrecording_pausedrecording_resumedrecording_stoppedrecording_readyrecording_cancelledrecorder_errorlocal_savedlocal_restoredlocal_deletedupload_succeededupload_failedupload_cancelledpreview_readypreview_error

Åtgärder och deras indata

Start recordingPause recordingResume recordingStop recordingCancel recordingSave locallyRestore local draftDelete saved draftUpload to BubbleCancel uploadPlay previewPause previewStop previewSeek previewSet preview speed
Elementinställningar · 10
titletext · Standard: ""
ExempelvärdeLesson 4 — review
Exempel Bubble uttryckSelected Lesson's name
Synlig apptext; tomt använder inbyggd lokaliserad kopia där det stöds. Inga autentiseringsuppgifter.
max_duration_secondsnumber · Standard: 300
Exempelvärde300
Exempel Bubble uttryckVoice Settings' max_seconds
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
max_upload_bytesnumber · Standard: 10485760
Exempelvärde10485760
Exempel Bubble uttryckVoice Settings' max_upload_bytes
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
is_activeyes_no · Standard: true
Exempelvärdeyes
Exempel Bubble uttryckGuideHost's view_is_active (your yes/no custom state)
Sätt ja medan denna vy är öppen. Sätt nej vid lämning, så uppspelning eller pågående arbete kan stoppas.
disabledyes_no · Standard: false
Exempelvärdeno
Exempel Bubble uttryckGuideHost's is_busy (your yes/no custom state)
Inaktivera elementet medan din app är upptagen eller åtgärden är otillgänglig.
ui_text_jsontext · Standard: ""
Exempelvärde{}
Exempel Bubble uttryckApp Settings' player_labels_json (supported keys only)
Valfri JSON med stöd för knappetiketter. Lämna tomt för att använda den inbyggda texten.
saved_draft_idtext · Standard: ""
Exempelvärde<returned draft_id>
Exempel Bubble uttryckSelected VoiceDraft's draft_id
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
bubble_upload_urltext · Standard: ""
Exempelvärdehttps://your-app.bubbleapps.io/version-test/fileupload
Exempel Bubble uttryckApp Settings' selected_bubble_upload_url
Din egen Bubble‑app filuppladdningsadress: /version-test/fileupload för Development, /fileupload för Live. Denna uppladdning skapar offentliga filer.
languagetext · Standard: "auto"
Exempelvärdeuk
Exempel Bubble uttryckCurrent User's preferred_language
Ställ in language=auto för att följa en stödjande enhet eller webbläsarspråk. Ange en stödjande språkkod för att välja den explicit.
document_contexttext · Standard: ""
Exempelvärde<current-user-id>
Exempel Bubble uttryckCurrent User's unique id
Stabilt värde för detta konto eller post. Använd samma värde när du återställer dess sparade filer eller utkast.
Åtgärder och deras indata · 15
Start recording

Inga åtgärdsparametrar

Pause recording

Inga åtgärdsparametrar

Resume recording

Inga åtgärdsparametrar

Stop recording

Inga åtgärdsparametrar

Cancel recording

Inga åtgärdsparametrar

Save locally

Inga åtgärdsparametrar

Restore local draft
draft_idtext · Standard: —
Exempelvärde<returned draft_id>
Exempel Bubble uttryckSelected VoiceDraft's draft_id
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Delete saved draft
draft_idtext · Standard: —
Exempelvärde<returned draft_id>
Exempel Bubble uttryckSelected VoiceDraft's draft_id
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Upload to Bubble

Inga åtgärdsparametrar

Cancel upload

Inga åtgärdsparametrar

Play preview

Inga åtgärdsparametrar

Pause preview

Inga åtgärdsparametrar

Stop preview

Inga åtgärdsparametrar

Seek preview
secondsnumber · Standard: —
Exempelvärde12
Exempel Bubble uttryckSelected Comment's seconds
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Set preview speed
ratenumber · Standard: —
Exempelvärde1.5
Exempel Bubble uttryckPreview Speed Dropdown's value
Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Tillstånd och händelser

Tillstånd

recorder_status · text

Aktuellt resultat av denna åtgärd. Använd motsvarande slutförande‑händelse innan du sparar framgång.

permission_status · text

Aktuellt resultat av denna åtgärd. Använd motsvarande slutförande‑händelse innan du sparar framgång.

is_recording · yes_no

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

is_paused · yes_no

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

duration · number

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

local_uri · text

Filplats på den här enheten. Spara eller ladda upp filen separat om den måste hållas online.

draft_id · text

Identifierare för detta objekt eller åtgärd. Behåll den med motsvarande app‑post. Använd samma begäranidentifierare vid återförsök av ett osäkert resultat.

is_saved_locally · yes_no

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

mime_type · text

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

file_size · number

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

waveform_peaks_json · text

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

preview_status · text

Aktuellt resultat av denna åtgärd. Använd motsvarande slutförande‑händelse innan du sparar framgång.

preview_is_playing · yes_no

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

preview_current_time · number

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

upload_status · text

Aktuellt resultat av denna åtgärd. Använd motsvarande slutförande‑händelse innan du sparar framgång.

upload_progress · number

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

uploaded_url · text

Aktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.

uploaded_file · file

Fil returnerad efter upload_succeeded. Spara den i ditt Bubble‑filfält.

error_code · text

Felinformation för den senaste åtgärden. Visa ett hjälpsamt meddelande och erbjud relevant återförsök.

Händelser

recording_started

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

recording_paused

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

recording_resumed

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

recording_stopped

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

recording_ready

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

recording_cancelled

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

recorder_error

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

local_saved

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

local_restored

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

local_deleted

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

upload_succeeded

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

upload_failed

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

upload_cancelled

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

preview_ready

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

preview_error

När denna händelse inträffar, läs de relaterade tillstånden från samma element.

Frågor som utvecklare ställer

Laddar lokal sparning upp inspelningen?

Nej. Save locally behåller ett utkast på enheten. Upload to Bubble är en separat explicit offentlig operation.

Hur fungerar prenumerationen?

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.

Relaterade guider

För hjälp, berätta vilken plugin och enhet du använder, vilken åtgärd du försökte och vad som hände. Använd ett exempel utan personuppgifter. Dela aldrig din nyckel eller privata filer.