
Xodera Plugins · Bubble Native
Xodera Audio Recorder Native
Дайте користувачу записати голосове повідомлення, прослухати його перед надсиланням і зберегти локальну чернетку. Завантажуйте запис лише після свідомого надсилання.
Посібники публічних бета-версій · інструкції Haptics у його картці Bubble
Умови публічної бета-версії: Bubble безкоштовно · 7 днів з карткою, потім 1,50 USD/місяць за плагін у проєкті.
Документація переглянута 6 листопада 2026
Практичні сценарії
Перевірка голосового перед надсиланням
Користувачі повинні мати можливість прослухати та замінити запис перед тим, як він стане вкладенням.
`title = the app’s conversation label`; встановіть `max_duration_seconds` і `max_upload_bytes` відповідно до вашої політики повідомлень.
Start recording → Stop recording → чекати `recording_ready` → Play preview. Пропонуйте Seek preview і Set preview speed. Тільки явне «Надіслати» викликає Upload to Bubble на прийнятий власний кінцевий пункт завантаження програми.
Тільки на `upload_succeeded` створіть ваш Message і встановіть його аудіополе на `uploaded_file`. Повідомлення не створюється самим рекордером.
При відмові мікрофону покажіть `permission_status`; при невдачі завантаження збережіть локальний запис. Перевірте результат невідомого завантаження перед повторною спробою, щоб «Надіслати» не створювало дублікати вкладень/повідомлень.
Завантаження в Bubble створює публічний аудіофайл. Не використовуйте його для конфіденційних записів.
Тренування вимови без upload
Навчальники хочуть порівняти свою власну усну відповідь з уроком, перш ніж вирішити її подати.
`title = Current Exercise’s prompt`; `max_duration_seconds = the exercise limit`; відповідь на вправу залишається записом, яким володіє додаток.
Запис → Стоп → Play preview. Дайте можливість навчальнику перемотати, сповільнити прев’ю або скасувати і записати іншу спробу. Save locally лише коли вони обирають залишити чернетку.
`duration`, `local_uri`, `mime_type` і `draft_id` описують спробу. Ваш додаток вирішує, чи залишити її локально, чи пізніше подати через обраний вами процес завантаження.
На `preview_error` збережіть чернетку та покажіть `error_code`. Не перетворюйте попередній перегляд або збережену чернетку у подану Відповідь, доки робочий процес подання в додатку не завершиться успішно.
Завантаження в Bubble створює публічний аудіофайл. Не використовуйте його для конфіденційних записів.
Локальна чернетка повідомлення
Працівник у полі може бути перерваний до завершення нотатки і не повинен завантажувати її лише для збереження.
`saved_draft_id = the draft ID stored by your app for this device and account`; `title = the selected non-sensitive task label`.
Старт/Stop recording → Save locally. Збережіть повернутий `draft_id` у стані вашого пристрою/акаунту. Використайте Restore local draft для того ж ідентифікатора, потім Play preview перед тим, як вирішити, чи завантажувати.
На `local_saved` або `local_restored` перевірте `is_saved_locally`, `local_uri` і `duration`. Видаляйте збережену чернетку лише після явного вибору користувача або після окремо підтвердженої політики збереження.
Якщо відновлення не вдається, покажіть `error_code` і збережіть ідентифікатор для діагностики; не повідомляйте про порожнє або інше записування як відновлене. Ніколи не робіть автоматичне auto‑завантаження при повторному підключенні.
Завантаження в Bubble створює публічний аудіофайл. Не використовуйте його для конфіденційних записів.
Що працює зараз
Публічна бета-версія. Використовуйте описані елементи керування й дії; перевірте формати, дозволи та поведінку у своєму нативному застосунку. Вебпрев’ю не перевіряє результат на пристрої.
Побудуйте бізнес-процес
Використовуйте доступні бета-дії нижче й перевіряйте результат на потрібних пристроях.
У прикладах є записи Lesson, Message та Order. Замініть їх на власні типи даних і назви елементів. Замість адрес із прикладів підставте власні файли.
Додайте рекордер. document_context = Current User's unique id, а is_active відповідає тому, чи відкрита сторінка запису.
Start recording запитує мікрофон. Pause і Resume продовжують той самий запис. Stop recording завершує його; дочекайтеся recording_ready, перш ніж пропонувати прослуховування або надсилання.
Прослухайте запис кнопками перегляду. Save locally залишає чернетку на цьому пристрої; після local_saved збережіть draft_id для Restore local draft.
Поясніть, що надсилання створює публічний файл. У bubble_upload_url вкажіть правильну адресу завантаження свого Bubble-застосунку для Development або Live. Виконуйте Upload to Bubble лише після натискання «Надіслати»; на upload_succeeded запишіть uploaded_file у свій запис.
Налаштуйте один раз
Створіть або оберіть проєкт Bubble у BestPlugins → Dashboard → Plugins. Оберіть Xodera Audio Recorder Native, скопіюйте його ключ, відкрийте Bubble → Plugins → Xodera Audio Recorder Native і вставте ключ у licensing_api_key. Збережіть один раз, далі використовуйте дії нижче. Для кожного плагіна в кожному проєкті є окремий ключ.
Запитуйте доступ до мікрофона, коли користувач починає запис. Визначте, як зберігати чернетки. Завантаження в Bubble створює публічний файл, тому використовуйте його лише для відповідного аудіо.
Налаштуйте один раз
- Створіть або оберіть проєкт Bubble у BestPlugins → Dashboard → Plugins.
- Оберіть цей плагін і скопіюйте ключ його проєкту.
- Відкрийте Bubble → Plugins → цей плагін. Вставте ключ його проєкту в licensing_api_key та збережіть.
- Додайте елемент, оберіть дані свого застосунку та побудуйте workflow нижче.
- На панелі керування перегляньте й підтвердьте 7-денний пробний доступ із карткою для цього плагіна. Потім він коштує 1,50 USD/місяць за проєкт, включно з розробкою та робочою версією. Скасуйте до завершення пробного періоду, щоб уникнути першого списання.
Встановлення та підписка
Для Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit та Haptics: безкоштовне встановлення в Bubble, 7 днів пробного доступу з карткою, потім 1,50 USD на місяць за плагін у проєкті. Розробку й робочу версію включено, без ліміту операцій. Обмеження файлів і можливостей залишаються. Перед підтвердженням перевірте оплату й скасування. Інші плагіни недоступні для покупки.
Як записати результат у свою базу
Після upload_succeeded запишіть VoiceMessage.audio = Recorder's uploaded_file, owner = Current User, duration = Recorder's duration і mime_type = Recorder's mime_type. draft_id відновлює чернетку на цьому пристрої, а не аудіофайл в інтернеті.
Помилки, скасування та відновлення
Якщо мікрофон заборонено, поясніть, як увімкнути його в налаштуваннях пристрою. Cancel recording скидає незбережений запис; збережені чернетки залишаються. Якщо завантаження перервалося, залиште локальний запис і перевірте, чи файл уже отримано, перш ніж надсилати знову. Delete saved draft видаляє лише вибрану чернетку.
Можливості й обмеження
Типова максимальна тривалість: 300 секунд, налаштування 1–3600. Завантаження: типово 10 MiB, максимум 30 MiB. Очікування завантаження — 60 секунд, без автоматичного повтору. Файли Bubble публічні. Підтримуються лише адреси завантаження вашого *.bubbleapps.io, без власних доменів. Локальні чернетки не є зашифрованим сховищем.
Налаштування, дії та результати
Використовуйте ці назви в Bubble. Плановані функції позначені окремо.
Доступні бета‑налаштування
Налаштування елемента
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Стани
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Події
recording_startedrecording_pausedrecording_resumedrecording_stoppedrecording_readyrecording_cancelledrecorder_errorlocal_savedlocal_restoredlocal_deletedupload_succeededupload_failedupload_cancelledpreview_readypreview_errorДії та їхні параметри
Start recordingPause recordingResume recordingStop recordingCancel recordingSave locallyRestore local draftDelete saved draftUpload to BubbleCancel uploadPlay previewPause previewStop previewSeek previewSet preview speedНалаштування елемента · 10
titletext · Типове значення: ""- Приклад значення
Lesson 4 — review - Приклад виразу Bubble
Selected Lesson's name - Видимий текст app; порожнє значення використовує вбудований переклад, де підтримано. Без секретів.
max_duration_secondsnumber · Типове значення: 300- Приклад значення
300 - Приклад виразу Bubble
Voice Settings' max_seconds - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
max_upload_bytesnumber · Типове значення: 10485760- Приклад значення
10485760 - Приклад виразу Bubble
Voice Settings' max_upload_bytes - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
is_activeyes_no · Типове значення: true- Приклад значення
yes - Приклад виразу Bubble
GuideHost's view_is_active (your yes/no custom state) - yes, доки ця сторінка відкрита; no під час виходу, щоб зупинити відтворення чи поточну дію.
disabledyes_no · Типове значення: false- Приклад значення
no - Приклад виразу Bubble
GuideHost's is_busy (your yes/no custom state) - Вимкніть елемент, коли застосунок зайнятий або дія недоступна.
ui_text_jsontext · Типове значення: ""- Приклад значення
{} - Приклад виразу Bubble
App Settings' player_labels_json (supported keys only) - Необов’язковий JSON із підтримуваними підписами кнопок. Залиште порожнім для вбудованих текстів.
saved_draft_idtext · Типове значення: ""- Приклад значення
<returned draft_id> - Приклад виразу Bubble
Selected VoiceDraft's draft_id - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
bubble_upload_urltext · Типове значення: ""- Приклад значення
https://your-app.bubbleapps.io/version-test/fileupload - Приклад виразу Bubble
App Settings' selected_bubble_upload_url - Адреса завантаження вашого Bubble-застосунку: /version-test/fileupload для Development, /fileupload для Live. Це завантаження створює публічні файли.
languagetext · Типове значення: "auto"- Приклад значення
uk - Приклад виразу Bubble
Current User's preferred_language - Укажіть language=auto, щоб автоматично використати підтримувану мову пристрою або браузера. Щоб обрати мову явно, укажіть підтримуваний код мови.
document_contexttext · Типове значення: ""- Приклад значення
<current-user-id> - Приклад виразу Bubble
Current User's unique id - Стале значення цього акаунта чи запису. Використовуйте його ж для відновлення файлів або чернеток.
Дії та їхні параметри · 15
Start recording
Немає параметрів дії
Pause recording
Немає параметрів дії
Resume recording
Немає параметрів дії
Stop recording
Немає параметрів дії
Cancel recording
Немає параметрів дії
Save locally
Немає параметрів дії
Restore local draft
draft_idtext · Типове значення: —- Приклад значення
<returned draft_id> - Приклад виразу Bubble
Selected VoiceDraft's draft_id - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Delete saved draft
draft_idtext · Типове значення: —- Приклад значення
<returned draft_id> - Приклад виразу Bubble
Selected VoiceDraft's draft_id - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Upload to Bubble
Немає параметрів дії
Cancel upload
Немає параметрів дії
Play preview
Немає параметрів дії
Pause preview
Немає параметрів дії
Stop preview
Немає параметрів дії
Seek preview
secondsnumber · Типове значення: —- Приклад значення
12 - Приклад виразу Bubble
Selected Comment's seconds - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Set preview speed
ratenumber · Типове значення: —- Приклад значення
1.5 - Приклад виразу Bubble
Preview Speed Dropdown's value - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Стани та події
Стани
recorder_status · textПоточний результат дії. Перед записом успіху дочекайтеся відповідної події завершення.
permission_status · textПоточний результат дії. Перед записом успіху дочекайтеся відповідної події завершення.
is_recording · yes_noПоточне значення вибраного елемента. Читайте його після відповідної події.
is_paused · yes_noПоточне значення вибраного елемента. Читайте його після відповідної події.
duration · numberПоточне значення вибраного елемента. Читайте його після відповідної події.
local_uri · textРозташування файлу на цьому пристрої. Збережіть або завантажте його окремо, якщо він потрібен в інтернеті.
draft_id · textІдентифікатор цього елемента або дії. Зберігайте його разом із відповідним записом. Для повтору з невідомим результатом використовуйте той самий ID запиту.
is_saved_locally · yes_noПоточне значення вибраного елемента. Читайте його після відповідної події.
mime_type · textПоточне значення вибраного елемента. Читайте його після відповідної події.
file_size · numberПоточне значення вибраного елемента. Читайте його після відповідної події.
waveform_peaks_json · textПоточне значення вибраного елемента. Читайте його після відповідної події.
preview_status · textПоточний результат дії. Перед записом успіху дочекайтеся відповідної події завершення.
preview_is_playing · yes_noПоточне значення вибраного елемента. Читайте його після відповідної події.
preview_current_time · numberПоточне значення вибраного елемента. Читайте його після відповідної події.
upload_status · textПоточний результат дії. Перед записом успіху дочекайтеся відповідної події завершення.
upload_progress · numberПоточне значення вибраного елемента. Читайте його після відповідної події.
uploaded_url · textПоточне значення вибраного елемента. Читайте його після відповідної події.
uploaded_file · fileФайл після upload_succeeded. Запишіть його у своє поле Bubble типу File.
error_code · textПомилка останньої дії. Покажіть зрозуміле повідомлення й запропонуйте відповідний повтор.
Події
recording_startedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
recording_pausedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
recording_resumedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
recording_stoppedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
recording_readyКоли стається ця подія, прочитайте відповідні стани того самого елемента.
recording_cancelledКоли стається ця подія, прочитайте відповідні стани того самого елемента.
recorder_errorКоли стається ця подія, прочитайте відповідні стани того самого елемента.
local_savedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
local_restoredКоли стається ця подія, прочитайте відповідні стани того самого елемента.
local_deletedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
upload_succeededКоли стається ця подія, прочитайте відповідні стани того самого елемента.
upload_failedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
upload_cancelledКоли стається ця подія, прочитайте відповідні стани того самого елемента.
preview_readyКоли стається ця подія, прочитайте відповідні стани того самого елемента.
preview_errorКоли стається ця подія, прочитайте відповідні стани того самого елемента.
Відповіді для розробника
Save locally завантажує аудіо?
Ні. Save locally зберігає чернетку на пристрої. Upload to Bubble — окрема явна публічна операція.
Як працює підписка?
Для Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit та Haptics: безкоштовне встановлення в Bubble, 7 днів пробного доступу з карткою, потім 1,50 USD на місяць за плагін у проєкті. Розробку й робочу версію включено, без ліміту операцій. Обмеження файлів і можливостей залишаються. Перед підтвердженням перевірте оплату й скасування. Інші плагіни недоступні для покупки.
Пов’язані інструкції
Для допомоги вкажіть плагін, пристрій, дію та результат. Використовуйте приклад без персональних даних. Не надсилайте ключ або приватні файли.