
Xodera Plugins · Bubble Native
Xodera Audio Recorder Native
Ermöglichen Sie das Aufzeichnen einer Sprachnotiz, das Anhören vor dem Senden und das Behalten eines lokalen Entwurfs. Laden Sie nur hoch, wenn der Nutzer das Senden der Aufnahme wählt.
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 geprüft 6 November 2026
Praktische Beispiele
Anhören, bevor eine nicht vertrauliche Sprachnachricht gesendet wird
Benutzer benötigen die Möglichkeit, eine Aufnahme anzuhören und zu ersetzen, bevor sie zu einem Anhang wird.
`title = the app’s conversation label`; setzen Sie `max_duration_seconds` und `max_upload_bytes` in Ihrer Nachrichtenrichtlinie.
Start recording → Stop recording → warten auf `recording_ready` → Play preview. Bieten Sie Seek preview und Set preview speed an. Nur ein explizites Senden ruft Upload to Bubble am akzeptierten eigenen App‑Upload‑Endpunkt auf.
Nur bei `upload_succeeded` erstellen Sie Ihr Message und setzen das Audiofeld auf `uploaded_file`. Die Nachricht wird nicht vom Recorder selbst erstellt.
Bei Mikrofonverweigerung zeigen Sie `permission_status`; bei Upload‑Fehler behalten Sie die lokale Aufnahme. Überprüfen Sie das Ergebnis eines unbekannten Uploads, bevor Sie es erneut versuchen, damit Senden keine doppelten Anhänge/Nachrichten erzeugt.
Der Bubble‑Upload erstellt eine öffentliche Audiodatei. Verwenden Sie diesen Upload nicht für vertrauliche Aufnahmen.
Ausspracheübung ohne sofortigen Upload
Lernende möchten ihre eigene gesprochene Antwort mit einer Lektion vergleichen, bevor sie entscheiden, sie einzureichen.
`title = Current Exercise’s prompt`; `max_duration_seconds = the exercise limit`; eine Übungsantwort bleibt ein app‑eigenes Dokument.
Aufnahme → Stopp → Play preview. Lassen Sie den Lernenden vorspulen, die Vorschau verlangsamen oder abbrechen und einen weiteren Versuch aufnehmen. Save locally nur, wenn er den Entwurf behalten möchte.
`duration`, `local_uri`, `mime_type` und `draft_id` beschreiben den Versuch. Ihre App entscheidet, ob er lokal bleibt oder später über Ihren gewählten Upload‑Workflow eingereicht wird.
Bei `preview_error` bewahren Sie den Entwurf und zeigen `error_code` an. Wandeln Sie keine Vorschau oder gespeicherten Entwurf in eine übermittelte Antwort um, bevor der Einreichungs‑Workflow der App erfolgreich ist.
Der Bubble‑Upload erstellt eine öffentliche Audiodatei. Verwenden Sie diesen Upload nicht für vertrauliche Aufnahmen.
Lokalen Sprachentwurf behalten und Senden explizit machen
Ein Feldarbeiter kann vor dem Abschluss einer Notiz unterbrochen werden und sollte sie nicht nur zum Speichern hochladen müssen.
`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. Speichern Sie das zurückgegebene `draft_id` in Ihrem geräte‑/kontobezogenen Zustand. Verwenden Sie Restore local draft für dieselbe ID und dann Play preview, bevor Sie entscheiden, ob Sie hochladen.
Bei `local_saved` oder `local_restored` prüfen Sie `is_saved_locally`, `local_uri` und `duration`. Löschen Sie den gespeicherten Entwurf nur nach ausdrücklicher Benutzerauswahl oder nach einer gesondert bestätigten Aufbewahrungsrichtlinie.
Wenn die Wiederherstellung fehlschlägt, zeigen Sie `error_code` an und behalten Sie die ID zur Diagnose; melden Sie keine leere oder andere Aufnahme als wiederhergestellt. Führen Sie niemals einen auto‑Upload bei Wiederverbindung durch.
Der Bubble‑Upload erstellt eine öffentliche Audiodatei. Verwenden Sie diesen Upload nicht für vertrauliche Aufnahmen.
Was jetzt funktioniert
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.
Workflow erstellen
Verwenden Sie die unten verfügbaren Beta‑Aktionen und testen Sie das Ergebnis auf Ihren Zielgeräten.
Diese Beispiele verwenden App‑Datensätze wie Lesson, Message und Order. Ersetzen Sie sie durch Ihre eigenen Datentypen und Elementnamen. Beispiel‑Medienadressen müssen durch Ihre eigenen Dateien ersetzt werden.
Fügen Sie den Recorder hinzu. Setzen Sie document_context = Current User's unique id und is_active auf den Zustand, ob die Aufnahmeansicht geöffnet ist.
Start recording fragt nach Mikrofonberechtigung. Pause und Fortsetzen behalten dieselbe Aufnahme. Stop recording beendet sie; warten Sie auf recording_ready, bevor Sie eine Überprüfung oder einen Upload anbieten.
Verwenden Sie die Vorschausteuerungen zum Anhören. Save locally speichert einen Entwurf auf diesem Gerät; nach local_saved behalten Sie draft_id für Restore local draft bei.
Erklären Sie, dass das Senden eine öffentliche Datei erstellt. Setzen Sie bubble_upload_url auf die korrekte Development‑ oder Live‑Datei‑Upload‑Adresse Ihrer eigenen Bubble‑App. Führen Sie Upload to Bubble nur aus, wenn der Benutzer Senden wählt; bei upload_succeeded speichern Sie uploaded_file in Ihrem Datensatz.
Einmal konfigurieren
Erstellen oder wählen Sie Ihr Bubble‑App‑Projekt in BestPlugins → Dashboard → Plugins. Wählen Sie Xodera Audio Recorder Native, kopieren Sie dessen Schlüssel und öffnen Sie anschließend Bubble → Plugins → Xodera Audio Recorder Native, um ihn in licensing_api_key einzufügen. Speichern Sie einmal; verwenden Sie dann die untenstehenden Aktionen. Jeder Plugin in jedem Projekt hat einen eigenen Schlüssel.
Fragen Sie nach Mikrofonberechtigung, wenn der Nutzer mit der Aufnahme beginnt. Wählen Sie, wie die App Entwürfe speichert. Der Bubble‑Upload speichert eine öffentliche Datei, verwenden Sie ihn also nur für Audio, das für öffentliche Speicherung geeignet ist.
Einmal konfigurieren
- Erstellen oder wählen Sie Ihr Bubble‑App‑Projekt bei BestPlugins → Dashboard → Plugins.
- Wählen Sie dieses Plugin aus und kopieren Sie dessen Projektschlüssel.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Fügen Sie das Element hinzu, wählen Sie Ihre App‑Daten und erstellen Sie den untenstehenden Workflow.
- 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 und Abonnement
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.
Speichern Sie das Ergebnis in Ihrer App
Nach upload_succeeded setzen Sie VoiceMessage.audio = Recorder's uploaded_file, owner = Current User, duration = Recorder's duration und mime_type = Recorder's mime_type. draft_id stellt einen Entwurf auf diesem Gerät wieder her; es handelt sich nicht um eine Online‑Audiodatei.
Fehler, Abbruch und Wiederherstellung
Wenn der Mikrofonzugriff verweigert wird, erklären Sie, wie er in den Geräteeinstellungen aktiviert werden kann. Cancel recording verwirft die nicht gespeicherte Aufnahme; gespeicherte Entwürfe bleiben erhalten. Wird ein Upload unterbrochen, behalten Sie die lokale Aufnahme und prüfen, ob die Datei angekommen ist, bevor Sie sie erneut senden. Delete saved draft entfernt nur den ausgewählten gespeicherten Entwurf.
Funktionen und Grenzen
Standardmaximale Aufnahme: 300 Sekunden; konfigurierbar 1–3600. Standard-Upload‑Limit: 10 MiB; maximal 30 MiB. Upload‑Timeout: 60 Sekunden, ohne automatische Wiederholung. Bubble‑Uploads sind öffentlich. Nur Ihre eigenen *.bubbleapps.io‑Datei‑Upload‑Adressen werden unterstützt; benutzerdefinierte Domains nicht. Lokale Entwürfe sind kein verschlüsselter Speicher.
Einstellungen, Aktionen und Ergebnisse
Verwenden Sie diese Namen in Bubble. Geplante Funktionen sind separat gekennzeichnet.
Verfügbare Beta‑Einstellungen
Elementeinstellungen
title · textmax_duration_seconds · numbermax_upload_bytes · numberis_active · yes_nodisabled · yes_noui_text_json · textsaved_draft_id · textbubble_upload_url · textlanguage · textdocument_context · textZustände
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 · textEreignisse
recording_startedrecording_pausedrecording_resumedrecording_stoppedrecording_readyrecording_cancelledrecorder_errorlocal_savedlocal_restoredlocal_deletedupload_succeededupload_failedupload_cancelledpreview_readypreview_errorAktionen und deren Eingaben
Start recordingPause recordingResume recordingStop recordingCancel recordingSave locallyRestore local draftDelete saved draftUpload to BubbleCancel uploadPlay previewPause previewStop previewSeek previewSet preview speedElementeinstellungen · 10
titletext · Standard: ""- Beispielwert
Lesson 4 — review - Beispiel Bubble Ausdruck
Selected Lesson's name - Sichtbarer App-Text; leer verwendet die integrierte lokalisierte Kopie, wo unterstützt. Keine Anmeldedaten.
max_duration_secondsnumber · Standard: 300- Beispielwert
300 - Beispiel Bubble Ausdruck
Voice Settings' max_seconds - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
max_upload_bytesnumber · Standard: 10485760- Beispielwert
10485760 - Beispiel Bubble Ausdruck
Voice Settings' max_upload_bytes - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
is_activeyes_no · Standard: true- Beispielwert
yes - Beispiel Bubble Ausdruck
GuideHost's view_is_active (your yes/no custom state) - Setzen Sie ja, solange diese Ansicht geöffnet ist. Setzen Sie nein beim Verlassen, damit die Wiedergabe oder die aktuelle Arbeit gestoppt werden kann.
disabledyes_no · Standard: false- Beispielwert
no - Beispiel Bubble Ausdruck
GuideHost's is_busy (your yes/no custom state) - Deaktivieren Sie das Element, solange Ihre App beschäftigt ist oder diese Aktion nicht verfügbar ist.
ui_text_jsontext · Standard: ""- Beispielwert
{} - Beispiel Bubble Ausdruck
App Settings' player_labels_json (supported keys only) - Optionales JSON mit unterstützten Schaltflächenbeschriftungen. Leer lassen, um den integrierten Text zu verwenden.
saved_draft_idtext · Standard: ""- Beispielwert
<returned draft_id> - Beispiel Bubble Ausdruck
Selected VoiceDraft's draft_id - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
bubble_upload_urltext · Standard: ""- Beispielwert
https://your-app.bubbleapps.io/version-test/fileupload - Beispiel Bubble Ausdruck
App Settings' selected_bubble_upload_url - Ihre eigene Bubble‑App-Datei‑Upload‑Adresse: /version-test/fileupload für Development, /fileupload für Live. Dieser Upload erstellt öffentliche Dateien.
languagetext · Standard: "auto"- Beispielwert
uk - Beispiel Bubble Ausdruck
Current User's preferred_language - Setzen Sie language=auto, um einer unterstützten Geräte‑ oder Browsersprache zu folgen. Geben Sie einen unterstützten Sprachcode ein, um ihn ausdrücklich auszuwählen.
document_contexttext · Standard: ""- Beispielwert
<current-user-id> - Beispiel Bubble Ausdruck
Current User's unique id - Stabiler Wert für dieses Konto oder diesen Datensatz. Verwenden Sie denselben Wert beim Wiederherstellen seiner gespeicherten Dateien oder Entwürfe.
Aktionen und deren Eingaben · 15
Start recording
Keine Aktionsparameter
Pause recording
Keine Aktionsparameter
Resume recording
Keine Aktionsparameter
Stop recording
Keine Aktionsparameter
Cancel recording
Keine Aktionsparameter
Save locally
Keine Aktionsparameter
Restore local draft
draft_idtext · Standard: —- Beispielwert
<returned draft_id> - Beispiel Bubble Ausdruck
Selected VoiceDraft's draft_id - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Delete saved draft
draft_idtext · Standard: —- Beispielwert
<returned draft_id> - Beispiel Bubble Ausdruck
Selected VoiceDraft's draft_id - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Upload to Bubble
Keine Aktionsparameter
Cancel upload
Keine Aktionsparameter
Play preview
Keine Aktionsparameter
Pause preview
Keine Aktionsparameter
Stop preview
Keine Aktionsparameter
Seek preview
secondsnumber · Standard: —- Beispielwert
12 - Beispiel Bubble Ausdruck
Selected Comment's seconds - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Set preview speed
ratenumber · Standard: —- Beispielwert
1.5 - Beispiel Bubble Ausdruck
Preview Speed Dropdown's value - Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Zustände und Ereignisse
Zustände
recorder_status · textAktuelles Ergebnis dieser Aktion. Verwenden Sie das passende Abschlussereignis, bevor Sie den Erfolg speichern.
permission_status · textAktuelles Ergebnis dieser Aktion. Verwenden Sie das passende Abschlussereignis, bevor Sie den Erfolg speichern.
is_recording · yes_noAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
is_paused · yes_noAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
duration · numberAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
local_uri · textDateistandort auf diesem Gerät. Speichern oder laden Sie die Datei separat hoch, wenn sie online behalten werden muss.
draft_id · textKennzeichen für dieses Element oder diese Aktion. Bewahren Sie es zusammen mit dem zugehörigen App‑Datensatz auf. Verwenden Sie dieselbe Anforderungs‑Kennung, wenn Sie ein unsicheres Ergebnis erneut versuchen.
is_saved_locally · yes_noAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
mime_type · textAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
file_size · numberAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
waveform_peaks_json · textAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
preview_status · textAktuelles Ergebnis dieser Aktion. Verwenden Sie das passende Abschlussereignis, bevor Sie den Erfolg speichern.
preview_is_playing · yes_noAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
preview_current_time · numberAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
upload_status · textAktuelles Ergebnis dieser Aktion. Verwenden Sie das passende Abschlussereignis, bevor Sie den Erfolg speichern.
upload_progress · numberAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
uploaded_url · textAktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.
uploaded_file · fileDatei nach upload_succeeded zurückgegeben. Speichern Sie sie im Bubble-Dateifeld.
error_code · textFehlermeldung für die letzte Aktion. Zeigen Sie eine hilfreiche Nachricht an und bieten Sie den entsprechenden Wiederholungsversuch an.
Ereignisse
recording_startedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
recording_pausedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
recording_resumedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
recording_stoppedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
recording_readyWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
recording_cancelledWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
recorder_errorWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
local_savedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
local_restoredWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
local_deletedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
upload_succeededWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
upload_failedWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
upload_cancelledWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
preview_readyWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
preview_errorWenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.
Fragen, die Entwickler stellen
Lädt die lokale Speicherung die Aufnahme hoch?
Nein. Save locally behält einen geräteinternen Entwurf. Upload to Bubble ist ein separater expliziter öffentlicher Vorgang.
Wie funktioniert das Abonnement?
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.
Verwandte Anleitungen
Für Hilfe geben Sie an, welches Plugin und Gerät Sie verwenden, welche Aktion Sie versucht haben und was passiert ist. Verwenden Sie ein Beispiel ohne persönliche Daten. Teilen Sie niemals Ihren Schlüssel oder private Dateien.