Interfejs Audio Recorder.
Interfejs Audio Recorder.
← Wszystkie natywne przewodniki

Xodera Plugins · Bubble Native

Xodera Audio Recorder Native

Pozwól użytkownikom nagrać notatkę głosową, odsłuchać ją przed wysłaniem i zachować lokalny szkic. Prześlij tylko wtedy, gdy zdecydują się wysłać nagranie.

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.

Dokumentacja przeglądnięta 6 listopad 2026

Praktyczne przykłady

Posłuchaj przed wysłaniem niewrażliwej wiadomości głosowej

Użytkownicy potrzebują możliwości odsłuchania i zastąpienia nagrania przed jego zamianą w załącznik.

`title = the app’s conversation label`; ustaw `max_duration_seconds` i `max_upload_bytes` w swojej polityce wiadomości.

Start recording → Stop recording → poczekaj na `recording_ready` → Play preview. Udostępnij Seek preview i Set preview speed. Tylko wyraźne Wyślij wywołuje Upload to Bubble na zaakceptowanym własnym punkcie końcowym przesyłania.

Tylko przy `upload_succeeded`, utwórz swój Message i ustaw jego pole audio na `uploaded_file`. Wiadomość nie jest tworzona przez sam rejestrator.

W przypadku odmowy dostępu do mikrofonu pokaż `permission_status`; przy niepowodzeniu przesyłania zachowaj lokalne nagranie. Sprawdź wynik nieznanego przesyłania przed ponowną próbą, aby Wyślij nie mógł utworzyć zduplikowanych załączników/wiadomości.

Przesyłanie Bubble tworzy publiczny plik audio. Nie używaj tego przesyłania do poufnych nagrań.

Ćwiczenie wymowy bez natychmiastowego przesyłania

Uczniowie chcą porównać własną wypowiedź z lekcją przed podjęciem decyzji o jej przesłaniu.

`title = Current Exercise’s prompt`; `max_duration_seconds = the exercise limit`; odpowiedź na ćwiczenie pozostaje rekordem należącym do aplikacji.

Nagraj → Zatrzymaj → Play preview. Pozwól uczniowi przewijać, spowolnić podgląd lub anulować i nagrać kolejną próbę. Save locally tylko gdy zdecydują się zachować szkic.

`duration`, `local_uri`, `mime_type` i `draft_id` opisują próbę. Twoja aplikacja decyduje, czy pozostaje lokalna, czy zostanie później przesłana poprzez wybrany przez Ciebie przepływ przesyłania.

W przypadku `preview_error` zachowaj wersję roboczą i wyświetl `error_code`. Nie przekształcaj podglądu ani zapisanej wersji roboczej w przesłaną Odpowiedź, dopóki przepływ zatwierdzania w aplikacji nie zakończy się sukcesem.

Przesyłanie Bubble tworzy publiczny plik audio. Nie używaj tego przesyłania do poufnych nagrań.

Zachowaj lokalny szkic głosowy i uczynij przycisk Wyślij wyraźnym

Pracownik terenowy może zostać przerwany przed dokończeniem notatki i nie powinien musieć ją przesyłać tylko po to, by ją zachować.

`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. Zapisz zwrócony `draft_id` w stanie własnego urządzenia/konta. Użyj Restore local draft dla tego samego identyfikatora, a następnie Play preview przed podjęciem decyzji o przesłaniu.

Przy `local_saved` lub `local_restored`, sprawdź `is_saved_locally`, `local_uri` i `duration`. Usuń zapisany szkic tylko po wyraźnym wyborze użytkownika lub po osobno potwierdzonej polityce przechowywania.

Jeśli przywracanie się nie powiedzie, pokaż `error_code` i zachowaj identyfikator do diagnozy; nie zgłaszaj pustego lub innego nagrania jako przywróconego. Nigdy nie wykonuj przesyłania auto po ponownym połączeniu.

Przesyłanie Bubble tworzy publiczny plik audio. Nie używaj tego przesyłania do poufnych nagrań.

Co działa teraz

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.

Zbuduj przepływ pracy

Użyj dostępnych poniżej akcji beta i przetestuj wynik na docelowych urządzeniach.

Te przykłady używają rekordów aplikacji, takich jak Lesson, Message i Order. Zastąp je własnymi typami danych i nazwami elementów. Przykładowe adresy mediów należy zastąpić własnymi plikami.

  1. Dodaj rejestrator. Ustaw document_context = Current User's unique id i is_active, aby określić, czy widok nagrywania jest otwarty.

  2. Start recording prosi o pozwolenie na mikrofon. Pauza i wznowienie zachowują to samo nagranie. Stop recording kończy je; poczekaj na recording_ready przed zaoferowaniem przeglądu lub przesłania.

  3. Użyj kontrolek podglądu, aby odsłuchać. Save locally zachowuje szkic na tym urządzeniu; po local_saved zachowaj draft_id dla Restore local draft.

  4. Wyjaśnij, że wysyłanie tworzy publiczny plik. Ustaw bubble_upload_url na własny poprawny adres przesyłania plików aplikacji Bubble w środowisku Development lub Live. Uruchom Upload to Bubble tylko wtedy, gdy użytkownik wybierze Wyślij; przy upload_succeeded zapisz uploaded_file w swoim rekordzie.

Diagram przepływu pracy — nie zrzut ekranu aplikacji

Skonfiguruj raz

Utwórz lub wybierz swój projekt aplikacji Bubble w BestPlugins → Dashboard → Plugins. Wybierz Xodera Audio Recorder Native, skopiuj jego klucz, a następnie otwórz Bubble → Plugins → Xodera Audio Recorder Native i wklej go do licensing_api_key. Zapisz raz; potem użyj poniższych akcji. Każda wtyczka w każdym projekcie ma własny klucz.

Poproś o pozwolenie na mikrofon, gdy użytkownik rozpoczyna nagrywanie. Wybierz, jak aplikacja będzie zapisywać szkice. Przesyłanie Bubble zapisuje publiczny plik, więc używaj go tylko dla dźwięków odpowiednich do publicznego przechowywania.

Skonfiguruj raz
  1. Utwórz lub wybierz swój projekt aplikacji Bubble w BestPlugins → Dashboard → Plugins.
  2. Wybierz tę wtyczkę i skopiuj jej klucz projektu.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Dodaj element, wybierz dane aplikacji i zbuduj poniższy przepływ pracy.
  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.
Instalacja i subskrypcja

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.

Zapisz wynik w swojej aplikacji

Po upload_succeeded ustaw VoiceMessage.audio = Recorder's uploaded_file, owner = Current User, duration = Recorder's duration i mime_type = Recorder's mime_type. draft_id przywraca szkic na tym urządzeniu; nie jest to plik audio online.

Błąd, anulowanie i odzyskiwanie

Jeśli dostęp do mikrofonu zostanie odmówiony, wyjaśnij, jak go włączyć w ustawieniach urządzenia. Cancel recording odrzuca niezapisane nagranie; zapisane szkice pozostają. Jeśli przesyłanie zostanie przerwane, zachowaj lokalne nagranie i sprawdź, czy plik dotarł przed ponownym wysłaniem. Delete saved draft usuwa tylko wybrany zapisany szkic.

Możliwości i ograniczenia

Domyślne maksymalne nagranie: 300 sekund; konfigurowalne 1–3600. Domyślny limit przesyłania: 10 MiB; maksymalny 30 MiB. Limit czasu przesyłania: 60 sekund, bez automatycznej ponownej próby. Przesyłki Bubble są publiczne. Obsługiwane są tylko własne adresy *.bubbleapps.io do przesyłania plików; własne domeny nie są obsługiwane. Lokalne wersje robocze nie są szyfrowanym magazynem.

Ustawienia, akcje i wyniki

Użyj tych nazw w Bubble. Planowane funkcje są oznaczone osobno.

Dostępne ustawienia beta

Ustawienia elementu

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

Stany

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

Zdarzenia

recording_startedrecording_pausedrecording_resumedrecording_stoppedrecording_readyrecording_cancelledrecorder_errorlocal_savedlocal_restoredlocal_deletedupload_succeededupload_failedupload_cancelledpreview_readypreview_error

Akcje i ich wejścia

Start recordingPause recordingResume recordingStop recordingCancel recordingSave locallyRestore local draftDelete saved draftUpload to BubbleCancel uploadPlay previewPause previewStop previewSeek previewSet preview speed
Ustawienia elementu · 10
titletext · Domyślne: ""
Przykładowa wartośćLesson 4 — review
Przykładowe wyrażenie BubbleSelected Lesson's name
Widoczny tekst aplikacji; puste używa wbudowanej zlokalizowanej wersji, jeśli jest dostępna. Brak danych uwierzytelniających.
max_duration_secondsnumber · Domyślne: 300
Przykładowa wartość300
Przykładowe wyrażenie BubbleVoice Settings' max_seconds
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
max_upload_bytesnumber · Domyślne: 10485760
Przykładowa wartość10485760
Przykładowe wyrażenie BubbleVoice Settings' max_upload_bytes
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
is_activeyes_no · Domyślne: true
Przykładowa wartośćyes
Przykładowe wyrażenie BubbleGuideHost's view_is_active (your yes/no custom state)
Ustaw tak, gdy ten widok jest otwarty. Ustaw nie przy zamykaniu, aby odtwarzanie lub bieżąca praca mogły się zatrzymać.
disabledyes_no · Domyślne: false
Przykładowa wartośćno
Przykładowe wyrażenie BubbleGuideHost's is_busy (your yes/no custom state)
Wyłącz element, gdy aplikacja jest zajęta lub akcja jest niedostępna.
ui_text_jsontext · Domyślne: ""
Przykładowa wartość{}
Przykładowe wyrażenie BubbleApp Settings' player_labels_json (supported keys only)
Opcjonalny JSON z obsługiwanymi etykietami przycisków. Pozostaw puste, aby użyć wbudowanego tekstu.
saved_draft_idtext · Domyślne: ""
Przykładowa wartość<returned draft_id>
Przykładowe wyrażenie BubbleSelected VoiceDraft's draft_id
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
bubble_upload_urltext · Domyślne: ""
Przykładowa wartośćhttps://your-app.bubbleapps.io/version-test/fileupload
Przykładowe wyrażenie BubbleApp Settings' selected_bubble_upload_url
Twój własny adres przesyłania plików aplikacji Bubble: /version-test/fileupload dla Development, /fileupload dla Live. To przesyłanie tworzy publiczne pliki.
languagetext · Domyślne: "auto"
Przykładowa wartośćuk
Przykładowe wyrażenie BubbleCurrent User's preferred_language
Ustaw language=auto, aby podążał za obsługiwanym językiem urządzenia lub przeglądarki. Wprowadź obsługiwany kod języka, aby wybrać go explicite.
document_contexttext · Domyślne: ""
Przykładowa wartość<current-user-id>
Przykładowe wyrażenie BubbleCurrent User's unique id
Stała wartość dla tego konta lub rekordu. Użyj tej samej wartości przy przywracaniu zapisanych plików lub wersji roboczych.
Akcje i ich wejścia · 15
Start recording

Brak parametrów akcji

Pause recording

Brak parametrów akcji

Resume recording

Brak parametrów akcji

Stop recording

Brak parametrów akcji

Cancel recording

Brak parametrów akcji

Save locally

Brak parametrów akcji

Restore local draft
draft_idtext · Domyślne: —
Przykładowa wartość<returned draft_id>
Przykładowe wyrażenie BubbleSelected VoiceDraft's draft_id
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Delete saved draft
draft_idtext · Domyślne: —
Przykładowa wartość<returned draft_id>
Przykładowe wyrażenie BubbleSelected VoiceDraft's draft_id
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Upload to Bubble

Brak parametrów akcji

Cancel upload

Brak parametrów akcji

Play preview

Brak parametrów akcji

Pause preview

Brak parametrów akcji

Stop preview

Brak parametrów akcji

Seek preview
secondsnumber · Domyślne: —
Przykładowa wartość12
Przykładowe wyrażenie BubbleSelected Comment's seconds
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Set preview speed
ratenumber · Domyślne: —
Przykładowa wartość1.5
Przykładowe wyrażenie BubblePreview Speed Dropdown's value
Użyj wartości bieżącego rekordu biznesowego; zweryfikuj ją względem poniższych limitów.
Stany i zdarzenia

Stany

recorder_status · text

Aktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu.

permission_status · text

Aktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu.

is_recording · yes_no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

is_paused · yes_no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

duration · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

local_uri · text

Lokalizacja pliku na tym urządzeniu. Zapisz lub prześlij plik osobno, jeśli musi być przechowywany online.

draft_id · text

Identyfikator tego elementu lub akcji. Przechowuj go wraz z odpowiadającym rekordem aplikacji. Użyj tego samego identyfikatora żądania przy ponawianiu niepewnego wyniku.

is_saved_locally · yes_no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

mime_type · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

file_size · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

waveform_peaks_json · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

preview_status · text

Aktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu.

preview_is_playing · yes_no

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

preview_current_time · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

upload_status · text

Aktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu.

upload_progress · number

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

uploaded_url · text

Aktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.

uploaded_file · file

Plik zwrócony po upload_succeeded. Zapisz go w polu Plik Bubble.

error_code · text

Informacje o błędzie ostatniej akcji. Wyświetl pomocną wiadomość i zaoferuj odpowiednią ponowną próbę.

Zdarzenia

recording_started

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

recording_paused

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

recording_resumed

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

recording_stopped

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

recording_ready

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

recording_cancelled

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

recorder_error

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

local_saved

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

local_restored

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

local_deleted

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

upload_succeeded

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

upload_failed

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

upload_cancelled

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

preview_ready

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

preview_error

Gdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.

Pytania, które zadają programiści

Czy lokalne zapisanie przesyła nagranie?

Nie. Save locally przechowuje szkic na własnym urządzeniu. Upload to Bubble jest oddzielną, wyraźną operacją publiczną.

Jak działa subskrypcja?

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.

Powiązane przewodniki

Aby uzyskać pomoc, podaj, której wtyczki i urządzenia używasz, jaką akcję podjąłeś i co się stało. Użyj przykładu bez danych osobowych. Nigdy nie udostępniaj swojego klucza ani prywatnych plików.