Інтерфейс Audio Recorder.
Інтерфейс Audio Recorder.
← Усі оригінальні посібники

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. Замініть їх на власні типи даних і назви елементів. Замість адрес із прикладів підставте власні файли.

  1. Додайте рекордер. document_context = Current User's unique id, а is_active відповідає тому, чи відкрита сторінка запису.

  2. Start recording запитує мікрофон. Pause і Resume продовжують той самий запис. Stop recording завершує його; дочекайтеся recording_ready, перш ніж пропонувати прослуховування або надсилання.

  3. Прослухайте запис кнопками перегляду. Save locally залишає чернетку на цьому пристрої; після local_saved збережіть draft_id для Restore local draft.

  4. Поясніть, що надсилання створює публічний файл. У bubble_upload_url вкажіть правильну адресу завантаження свого Bubble-застосунку для Development або Live. Виконуйте Upload to Bubble лише після натискання «Надіслати»; на upload_succeeded запишіть uploaded_file у свій запис.

Діаграма робочого процесу — не скріншот додатку · SVG

Налаштуйте один раз

Створіть або оберіть проєкт Bubble у BestPlugins → Dashboard → Plugins. Оберіть Xodera Audio Recorder Native, скопіюйте його ключ, відкрийте Bubble → Plugins → Xodera Audio Recorder Native і вставте ключ у licensing_api_key. Збережіть один раз, далі використовуйте дії нижче. Для кожного плагіна в кожному проєкті є окремий ключ.

Запитуйте доступ до мікрофона, коли користувач починає запис. Визначте, як зберігати чернетки. Завантаження в Bubble створює публічний файл, тому використовуйте його лише для відповідного аудіо.

Налаштуйте один раз
  1. Створіть або оберіть проєкт Bubble у BestPlugins → Dashboard → Plugins.
  2. Оберіть цей плагін і скопіюйте ключ його проєкту.
  3. Відкрийте Bubble → Plugins → цей плагін. Вставте ключ його проєкту в licensing_api_key та збережіть.
  4. Додайте елемент, оберіть дані свого застосунку та побудуйте workflow нижче.
  5. На панелі керування перегляньте й підтвердьте 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
Приклад виразу BubbleSelected Lesson's name
Видимий текст app; порожнє значення використовує вбудований переклад, де підтримано. Без секретів.
max_duration_secondsnumber · Типове значення: 300
Приклад значення300
Приклад виразу BubbleVoice Settings' max_seconds
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
max_upload_bytesnumber · Типове значення: 10485760
Приклад значення10485760
Приклад виразу BubbleVoice Settings' max_upload_bytes
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
is_activeyes_no · Типове значення: true
Приклад значенняyes
Приклад виразу BubbleGuideHost's view_is_active (your yes/no custom state)
yes, доки ця сторінка відкрита; no під час виходу, щоб зупинити відтворення чи поточну дію.
disabledyes_no · Типове значення: false
Приклад значенняno
Приклад виразу BubbleGuideHost's is_busy (your yes/no custom state)
Вимкніть елемент, коли застосунок зайнятий або дія недоступна.
ui_text_jsontext · Типове значення: ""
Приклад значення{}
Приклад виразу BubbleApp Settings' player_labels_json (supported keys only)
Необов’язковий JSON із підтримуваними підписами кнопок. Залиште порожнім для вбудованих текстів.
saved_draft_idtext · Типове значення: ""
Приклад значення<returned draft_id>
Приклад виразу BubbleSelected VoiceDraft's draft_id
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
bubble_upload_urltext · Типове значення: ""
Приклад значенняhttps://your-app.bubbleapps.io/version-test/fileupload
Приклад виразу BubbleApp Settings' selected_bubble_upload_url
Адреса завантаження вашого Bubble-застосунку: /version-test/fileupload для Development, /fileupload для Live. Це завантаження створює публічні файли.
languagetext · Типове значення: "auto"
Приклад значенняuk
Приклад виразу BubbleCurrent User's preferred_language
Укажіть language=auto, щоб автоматично використати підтримувану мову пристрою або браузера. Щоб обрати мову явно, укажіть підтримуваний код мови.
document_contexttext · Типове значення: ""
Приклад значення<current-user-id>
Приклад виразу BubbleCurrent 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>
Приклад виразу BubbleSelected VoiceDraft's draft_id
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Delete saved draft
draft_idtext · Типове значення: —
Приклад значення<returned draft_id>
Приклад виразу BubbleSelected VoiceDraft's draft_id
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Upload to Bubble

Немає параметрів дії

Cancel upload

Немає параметрів дії

Play preview

Немає параметрів дії

Pause preview

Немає параметрів дії

Stop preview

Немає параметрів дії

Seek preview
secondsnumber · Типове значення: —
Приклад значення12
Приклад виразу BubbleSelected Comment's seconds
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Set preview speed
ratenumber · Типове значення: —
Приклад значення1.5
Приклад виразу BubblePreview 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 на місяць за плагін у проєкті. Розробку й робочу версію включено, без ліміту операцій. Обмеження файлів і можливостей залишаються. Перед підтвердженням перевірте оплату й скасування. Інші плагіни недоступні для покупки.

Пов’язані інструкції

Для допомоги вкажіть плагін, пристрій, дію та результат. Використовуйте приклад без персональних даних. Не надсилайте ключ або приватні файли.