
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.
Lägg till inspelaren. Ställ in document_context = Current User's unique id och is_active för om inspelningsvyn är öppen.
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.
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.
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.
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
- Skapa eller välj ditt Bubble‑appprojekt på BestPlugins → Dashboard → Plugins.
- Välj detta plugin och kopiera dess projektnyckel.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Lägg till elementet, välj dina appdata och bygg arbetsflödet nedan.
- 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 · textTillstå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 · textHä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 speedElementinställningar · 10
titletext · Standard: ""- Exempelvärde
Lesson 4 — review - Exempel Bubble uttryck
Selected Lesson's name - Synlig apptext; tomt använder inbyggd lokaliserad kopia där det stöds. Inga autentiseringsuppgifter.
max_duration_secondsnumber · Standard: 300- Exempelvärde
300 - Exempel Bubble uttryck
Voice Settings' max_seconds - Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
max_upload_bytesnumber · Standard: 10485760- Exempelvärde
10485760 - Exempel Bubble uttryck
Voice Settings' max_upload_bytes - Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
is_activeyes_no · Standard: true- Exempelvärde
yes - Exempel Bubble uttryck
GuideHost'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ärde
no - Exempel Bubble uttryck
GuideHost'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 uttryck
App 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 uttryck
Selected VoiceDraft's draft_id - Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
bubble_upload_urltext · Standard: ""- Exempelvärde
https://your-app.bubbleapps.io/version-test/fileupload - Exempel Bubble uttryck
App 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ärde
uk - Exempel Bubble uttryck
Current 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 uttryck
Current 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 uttryck
Selected 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 uttryck
Selected 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ärde
12 - Exempel Bubble uttryck
Selected Comment's seconds - Använd det aktuella affärspostens värde; validera det mot gränserna nedan.
Set preview speed
ratenumber · Standard: —- Exempelvärde
1.5 - Exempel Bubble uttryck
Preview 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 · textAktuellt resultat av denna åtgärd. Använd motsvarande slutförande‑händelse innan du sparar framgång.
permission_status · textAktuellt resultat av denna åtgärd. Använd motsvarande slutförande‑händelse innan du sparar framgång.
is_recording · yes_noAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
is_paused · yes_noAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
duration · numberAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
local_uri · textFilplats på den här enheten. Spara eller ladda upp filen separat om den måste hållas online.
draft_id · textIdentifierare 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_noAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
mime_type · textAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
file_size · numberAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
waveform_peaks_json · textAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
preview_status · textAktuellt resultat av denna åtgärd. Använd motsvarande slutförande‑händelse innan du sparar framgång.
preview_is_playing · yes_noAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
preview_current_time · numberAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
upload_status · textAktuellt resultat av denna åtgärd. Använd motsvarande slutförande‑händelse innan du sparar framgång.
upload_progress · numberAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
uploaded_url · textAktuellt värde för det valda objektet. Läs det efter den relaterade händelsen.
uploaded_file · fileFil returnerad efter upload_succeeded. Spara den i ditt Bubble‑filfält.
error_code · textFelinformation för den senaste åtgärden. Visa ett hjälpsamt meddelande och erbjud relevant återförsök.
Händelser
recording_startedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
recording_pausedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
recording_resumedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
recording_stoppedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
recording_readyNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
recording_cancelledNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
recorder_errorNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
local_savedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
local_restoredNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
local_deletedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
upload_succeededNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
upload_failedNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
upload_cancelledNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
preview_readyNär denna händelse inträffar, läs de relaterade tillstånden från samma element.
preview_errorNä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.