Audio Recorder‑Schnittstelle.
Audio Recorder‑Schnittstelle.
← Alle nativen Anleitungen

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.

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

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

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

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

Workflow‑Diagramm — kein App‑Screenshot

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
  1. Erstellen oder wählen Sie Ihr Bubble‑App‑Projekt bei BestPlugins → Dashboard → Plugins.
  2. Wählen Sie dieses Plugin aus und kopieren Sie dessen Projektschlüssel.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Fügen Sie das Element hinzu, wählen Sie Ihre App‑Daten und erstellen Sie den untenstehenden Workflow.
  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 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 · text

Zustä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 · text

Ereignisse

recording_startedrecording_pausedrecording_resumedrecording_stoppedrecording_readyrecording_cancelledrecorder_errorlocal_savedlocal_restoredlocal_deletedupload_succeededupload_failedupload_cancelledpreview_readypreview_error

Aktionen und deren Eingaben

Start recordingPause recordingResume recordingStop recordingCancel recordingSave locallyRestore local draftDelete saved draftUpload to BubbleCancel uploadPlay previewPause previewStop previewSeek previewSet preview speed
Elementeinstellungen · 10
titletext · Standard: ""
BeispielwertLesson 4 — review
Beispiel Bubble AusdruckSelected Lesson's name
Sichtbarer App-Text; leer verwendet die integrierte lokalisierte Kopie, wo unterstützt. Keine Anmeldedaten.
max_duration_secondsnumber · Standard: 300
Beispielwert300
Beispiel Bubble AusdruckVoice Settings' max_seconds
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
max_upload_bytesnumber · Standard: 10485760
Beispielwert10485760
Beispiel Bubble AusdruckVoice 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
Beispielwertyes
Beispiel Bubble AusdruckGuideHost'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
Beispielwertno
Beispiel Bubble AusdruckGuideHost'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 AusdruckApp 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 AusdruckSelected VoiceDraft's draft_id
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
bubble_upload_urltext · Standard: ""
Beispielwerthttps://your-app.bubbleapps.io/version-test/fileupload
Beispiel Bubble AusdruckApp 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"
Beispielwertuk
Beispiel Bubble AusdruckCurrent 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 AusdruckCurrent 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 AusdruckSelected 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 AusdruckSelected 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: —
Beispielwert12
Beispiel Bubble AusdruckSelected Comment's seconds
Verwenden Sie den Wert des aktuellen Geschäftsdatensatzes; prüfen Sie ihn anhand der untenstehenden Grenzen.
Set preview speed
ratenumber · Standard: —
Beispielwert1.5
Beispiel Bubble AusdruckPreview 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 · text

Aktuelles Ergebnis dieser Aktion. Verwenden Sie das passende Abschlussereignis, bevor Sie den Erfolg speichern.

permission_status · text

Aktuelles Ergebnis dieser Aktion. Verwenden Sie das passende Abschlussereignis, bevor Sie den Erfolg speichern.

is_recording · yes_no

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

is_paused · yes_no

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

duration · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

local_uri · text

Dateistandort auf diesem Gerät. Speichern oder laden Sie die Datei separat hoch, wenn sie online behalten werden muss.

draft_id · text

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

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

mime_type · text

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

file_size · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

waveform_peaks_json · text

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

preview_status · text

Aktuelles Ergebnis dieser Aktion. Verwenden Sie das passende Abschlussereignis, bevor Sie den Erfolg speichern.

preview_is_playing · yes_no

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

preview_current_time · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

upload_status · text

Aktuelles Ergebnis dieser Aktion. Verwenden Sie das passende Abschlussereignis, bevor Sie den Erfolg speichern.

upload_progress · number

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

uploaded_url · text

Aktueller Wert für das ausgewählte Element. Lesen Sie ihn nach dem zugehörigen Ereignis.

uploaded_file · file

Datei nach upload_succeeded zurückgegeben. Speichern Sie sie im Bubble-Dateifeld.

error_code · text

Fehlermeldung für die letzte Aktion. Zeigen Sie eine hilfreiche Nachricht an und bieten Sie den entsprechenden Wiederholungsversuch an.

Ereignisse

recording_started

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

recording_paused

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

recording_resumed

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

recording_stopped

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

recording_ready

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

recording_cancelled

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

recorder_error

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

local_saved

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

local_restored

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

local_deleted

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

upload_succeeded

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

upload_failed

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

upload_cancelled

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

preview_ready

Wenn dieses Ereignis eintritt, lesen Sie die zugehörigen Zustände aus demselben Element.

preview_error

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