
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.
Dodaj rejestrator. Ustaw document_context = Current User's unique id i is_active, aby określić, czy widok nagrywania jest otwarty.
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.
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.
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.
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
- Utwórz lub wybierz swój projekt aplikacji Bubble w BestPlugins → Dashboard → Plugins.
- Wybierz tę wtyczkę i skopiuj jej klucz projektu.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Dodaj element, wybierz dane aplikacji i zbuduj poniższy przepływ pracy.
- 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 · textStany
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 · textZdarzenia
recording_startedrecording_pausedrecording_resumedrecording_stoppedrecording_readyrecording_cancelledrecorder_errorlocal_savedlocal_restoredlocal_deletedupload_succeededupload_failedupload_cancelledpreview_readypreview_errorAkcje i ich wejścia
Start recordingPause recordingResume recordingStop recordingCancel recordingSave locallyRestore local draftDelete saved draftUpload to BubbleCancel uploadPlay previewPause previewStop previewSeek previewSet preview speedUstawienia elementu · 10
titletext · Domyślne: ""- Przykładowa wartość
Lesson 4 — review - Przykładowe wyrażenie Bubble
Selected 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 Bubble
Voice 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 Bubble
Voice 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 Bubble
GuideHost'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 Bubble
GuideHost'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 Bubble
App 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 Bubble
Selected 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 Bubble
App 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 Bubble
Current 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 Bubble
Current 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 Bubble
Selected 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 Bubble
Selected 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 Bubble
Selected 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 Bubble
Preview 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 · textAktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu.
permission_status · textAktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu.
is_recording · yes_noAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
is_paused · yes_noAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
duration · numberAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
local_uri · textLokalizacja pliku na tym urządzeniu. Zapisz lub prześlij plik osobno, jeśli musi być przechowywany online.
draft_id · textIdentyfikator 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_noAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
mime_type · textAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
file_size · numberAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
waveform_peaks_json · textAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
preview_status · textAktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu.
preview_is_playing · yes_noAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
preview_current_time · numberAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
upload_status · textAktualny wynik tej akcji. Użyj pasującego zdarzenia zakończenia przed zapisaniem sukcesu.
upload_progress · numberAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
uploaded_url · textAktualna wartość wybranego elementu. Odczytaj ją po powiązanym zdarzeniu.
uploaded_file · filePlik zwrócony po upload_succeeded. Zapisz go w polu Plik Bubble.
error_code · textInformacje o błędzie ostatniej akcji. Wyświetl pomocną wiadomość i zaoferuj odpowiednią ponowną próbę.
Zdarzenia
recording_startedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
recording_pausedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
recording_resumedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
recording_stoppedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
recording_readyGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
recording_cancelledGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
recorder_errorGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
local_savedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
local_restoredGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
local_deletedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
upload_succeededGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
upload_failedGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
upload_cancelledGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
preview_readyGdy to zdarzenie wystąpi, odczytaj powiązane stany z tego samego elementu.
preview_errorGdy 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.