
Xodera Plugins · Bubble Native
Xodera Audio Recorder Native
Позвольте пользователям записать голосовое сообщение, прослушать его перед отправкой и сохранить локальный черновик. Загружайте только когда они решат отправить запись.
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.
Документация проверена 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 создаёт публичный аудиофайл. Не используйте эту загрузку для конфиденциальных записей.
Практика произношения без немедленной загрузки
Обучающиеся хотят сравнить свой устный ответ с уроком, прежде чем решить отправить его.
`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`.
Start/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 создаёт публичный аудиофайл. Не используйте эту загрузку для конфиденциальных записей.
Что работает сейчас
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.
Создайте рабочий процесс
Используйте доступные ниже действия беты и протестируйте результат на целевых устройствах.
В этих примерах используются записи приложений, такие как 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.
- Выберите этот плагин и скопируйте его ключ проекта.
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- Добавьте элемент, выберите данные вашего приложения и постройте рабочий процесс ниже.
- 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.
Установка и подписка
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.
Сохраните результат в вашем приложении
После 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 - Видимый текст приложения; пустое значение использует встроенный локализованный текст, где поддерживается. Без учётных данных.
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) - Установить «да», пока этот вид открыт. Установить «нет» при закрытии, чтобы воспроизведение или текущая работа могли остановиться.
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Идентификатор этого элемента или действия. Храните его вместе с соответствующей записью приложения. Используйте тот же идентификатор запроса при повторной попытке при неопределённом результате.
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 сохраняет черновик на устройстве. Upload to Bubble — отдельная явная публичная операция.
Как работает подписка?
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.
Связанные руководства
Для получения помощи укажите, какой плагин и устройство вы используете, какое действие пытались выполнить и что произошло. Приведите пример без персональных данных. Никогда не делитесь своим ключом или личными файлами.