Интерфейс Audio Player с примерным заголовком.
Интерфейс Audio Player с примерным заголовком.
← Все нативные руководства

Xodera Plugins · Bubble Native

Xodera Audio Player 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

Практические примеры

Голосовые заметки в разговоре поддержки

Простая ссылка на файл уводит пользователей из разговора и затрудняет просмотр длинных ответов.

`source_url = Selected Message’s audio URL`; `title = Selected Message’s sender label`; `subtitle = Selected Message’s timestamp`.

Разместите плеер в деталях выбранного сообщения. Позвольте пользователю Play/Pause, Seek до полезного момента и Set speed. Привяжите `is_active` к открытой беседе.

Используйте `is_playing`, `current_time` и `duration` для отображения прогресса. Сохраните идентификатор Message в вашем приложении, чтобы позднее событие не могло обновить другой разговор.

При `player_error` покажите `error_code` и предложите Reload source; сохраните сообщение и никогда не помечайте его как прослушанное после ошибки.

Только воспроизведение. Ваше приложение сохраняет прогресс прослушивания.

Возобновить языковой урок с сохранённой позиции

Обучающим нужно переиграть сложный отрывок, а не перезапускать весь урок.

`source_url = Current Lesson’s audio URL`; `title = Current Lesson’s name`; последняя позиция принадлежит этому обучающему и уроку в вашей базе данных.

После `ready` для текущего урока, Seek до сохранённых секунд и дождитесь, пока пользователь Play. Используйте Set speed для более медленного прослушивания. Сохраните прогресс с помощью собственного рабочего процесса приложения.

Прочитайте `current_time` и `duration`. При `playback_ended` ваше приложение может записать контрольный момент прослушивания для текущего Lesson.

Если источник изменился, отбросьте старую позицию, пока урок не будет загружен. Не рассматривайте завершение прослушивания как доказательство того, что обучающий понял материал или сдал тест.

Только воспроизведение. Ваше приложение сохраняет прогресс прослушивания.

Просмотрите аудиовложение с комментариями с метками времени

Редакторам или тренерам нужно перейти от комментария к соответствующему моменту в записи.

`source_url = Selected Review’s recording URL`; каждый принадлежащий приложению комментарий хранит своё значение в секундах; опциональный `waveform_peaks_json` содержит реальные пики для той же записи.

Нажмите на комментарий → Seek к его секундам → Play. При изменении источника замените или очистите пики и снова привяжите выбранный обзор.

Отобразите `current_time` рядом с вашим редактором комментариев. `waveform_available` сообщает вашему UI, доступны ли фактически предоставленные пики.

Ограничивайте устаревшие метки времени текущей длительностью в вашем приложении либо отклоняйте их. Когда реальных пиков нет, показывать обычный элемент управления прогрессом, а не вымышленный аудиоанализ.

Только воспроизведение. Ваше приложение сохраняет прогресс прослушивания.

Что работает сейчас

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. Замените их своими типами данных и именами элементов. Примерные медиа‑адреса необходимо заменить вашими файлами.

  1. Добавьте аудиоэлемент. Установите source_url = Selected Message's audio_url, title = Selected Message's sender_label и subtitle = Selected Message's date_label.

  2. Если у вас есть реальные данные волновой формы для этой записи, передайте их в waveform_peaks_json. В противном случае оставьте поле пустым.

  3. Когда событие ready происходит, при необходимости используйте Seek с сохранённым числом секунд. Позвольте пользователю нажать Play. Используйте Pause, Seek и Set speed для кнопок плеера.

  4. Покажите current_time и duration. На playback_ended сохраняйте прогресс прослушивания для выбранного сообщения или урока. Установите is_active в значение, указывающее, открыт ли этот просмотр.

Диаграмма рабочего процесса — не скриншот приложения

Настройте один раз

Создайте или выберите ваш проект Bubble в BestPlugins → Dashboard → Plugins. Выберите Xodera Audio Player Native, скопируйте его ключ, затем откройте Bubble → Plugins → Xodera Audio Player Native и вставьте его в licensing_api_key. Сохраните один раз; затем используйте действия ниже. Каждый плагин в каждом проекте имеет свой собственный ключ.

Используйте прямой адрес аудиофайла, который приложение может открыть. Воспроизведение аудио не требует доступа к микрофону или камере.

Настройте один раз
  1. Создайте или выберите ваш проект Bubble в BestPlugins → Dashboard → Plugins.
  2. Выберите этот плагин и скопируйте его ключ проекта.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Добавьте элемент, выберите данные вашего приложения и постройте рабочий процесс ниже.
  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.
Установка и подписка

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.

Сохраните результат в вашем приложении

Пример ListeningProgress: owner = Current User, lesson = Selected Lesson, seconds = Audio Player's current_time, duration = Audio Player's duration. Сохраняйте, когда пользователь ставит на паузу или покидает урок, а не при каждом обновлении экрана.

Сбой, отмена и восстановление

На player_error показывайте error_code и предлагайте Reload source. Сохраняйте запись сообщения или урока. При выборе другой записи загружайте её собственную сохранённую позицию. Возврат к просмотру не запускает воспроизведение автоматически.

Возможности и ограничения

Скорости воспроизведения: 1, 1.5 и 2. Громкость: 0–1. Данные волновой формы: 2–2048 значения между 0 и 1. Поддерживаемые аудиоформаты зависят от устройства. Плеер не записывает, не транскрибирует и не сохраняет аудио постоянно для офлайн‑использования. Воспроизведение в фоне и на экране блокировки не гарантировано.

Настройки, действия и результаты

Используйте эти имена в Bubble. Планируемые функции отмечены отдельно.

Доступные настройки бета-версии

Настройки элемента

source_url · textwaveform_peaks_json · texttitle · textsubtitle · textplayback_rate · numbervolume · numberloop · yes_nois_active · yes_nodisabled · yes_noui_text_json · textlanguage · text

Состояния

player_status · textis_playing · yes_nois_loaded · yes_nois_buffering · yes_nocurrent_time · numberduration · numberprogress · numberplayback_rate · numbervolume · numberis_looping · yes_nowaveform_available · yes_nowaveform_status · texterror_code · text

События

readyplayback_startedplayback_pausedplayback_endedseek_completedrate_changedplayer_error

Действия и их входные данные

PlayPauseToggleStopSeekSet speedSet volumeReload source
Настройки элемента · 11
source_urltext · По умолчанию: ""
Пример значенияhttps://bestplugins.online/native-samples/lesson.mp3
Пример Bubble выраженияSelected Message's audio_url
Адрес выбранного аудио, видео или изображения. Используйте тип файла, поддерживаемый этим плагином.
waveform_peaks_jsontext · По умолчанию: ""
Пример значения[0.1,0.4,0.2,0.7]
Пример Bubble выраженияSelected Message's waveform_peaks_json
Реальные нормализованные значения амплитуды для этой записи; оставьте пустым, если недоступно.
titletext · По умолчанию: ""
Пример значенияLesson 4 — review
Пример Bubble выраженияSelected Lesson's name
Видимый текст приложения; пустое значение использует встроенный локализованный текст, где поддерживается. Без учётных данных.
subtitletext · По умолчанию: ""
Пример значенияTeacher · today
Пример Bubble выраженияSelected Message's sender_label
Видимый текст приложения; пустое значение использует встроенный локализованный текст, где поддерживается. Без учётных данных.
playback_ratenumber · По умолчанию: 1
Пример значения1.5
Пример Bubble выраженияCurrent User's listening_speed
Использовать значение текущей бизнес‑записи; проверить его в соответствии с нижеприведёнными ограничениями.
volumenumber · По умолчанию: 1
Пример значения0.8
Пример Bubble выраженияVolume Slider's value
Использовать значение текущей бизнес‑записи; проверить его в соответствии с нижеприведёнными ограничениями.
loopyes_no · По умолчанию: false
Пример значенияno
Пример Bubble выраженияSelected Lesson's repeat_enabled
Использовать значение текущей бизнес‑записи; проверить его в соответствии с нижеприведёнными ограничениями.
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 с поддерживаемыми надписями кнопок. Оставьте пустым, чтобы использовать встроенный текст.
languagetext · По умолчанию: "auto"
Пример значенияuk
Пример Bubble выраженияCurrent User's preferred_language
Установите language=auto для следования за поддерживаемым устройством или языком браузера. Введите поддерживаемый код языка, чтобы выбрать его явно.
Действия и их входные данные · 8
Play

Нет параметров действия

Pause

Нет параметров действия

Toggle

Нет параметров действия

Stop

Нет параметров действия

Seek
secondsnumber · По умолчанию: —
Пример значения12
Пример Bubble выраженияSelected Comment's seconds
Использовать значение текущей бизнес‑записи; проверить его в соответствии с нижеприведёнными ограничениями.
Set speed
ratenumber · По умолчанию: —
Пример значения1.5
Пример Bubble выраженияSpeed Dropdown's value
Использовать значение текущей бизнес‑записи; проверить его в соответствии с нижеприведёнными ограничениями.
Set volume
volumenumber · По умолчанию: —
Пример значения0.8
Пример Bubble выраженияVolume Slider's value
Использовать значение текущей бизнес‑записи; проверить его в соответствии с нижеприведёнными ограничениями.
Reload source

Нет параметров действия

Состояния и события

Состояния

player_status · text

Текущий результат этого действия. Используйте соответствующее событие завершения перед сохранением успеха.

is_playing · yes_no

Текущее значение выбранного элемента. Читайте его после связанного события.

is_loaded · yes_no

Текущее значение выбранного элемента. Читайте его после связанного события.

is_buffering · yes_no

Текущее значение выбранного элемента. Читайте его после связанного события.

current_time · number

Текущее значение выбранного элемента. Читайте его после связанного события.

duration · number

Текущее значение выбранного элемента. Читайте его после связанного события.

progress · number

Текущее значение выбранного элемента. Читайте его после связанного события.

playback_rate · number

Текущее значение выбранного элемента. Читайте его после связанного события.

volume · number

Текущее значение выбранного элемента. Читайте его после связанного события.

is_looping · yes_no

Текущее значение выбранного элемента. Читайте его после связанного события.

waveform_available · yes_no

Текущее значение выбранного элемента. Читайте его после связанного события.

waveform_status · text

Текущий результат этого действия. Используйте соответствующее событие завершения перед сохранением успеха.

error_code · text

Информация об ошибке последнего действия. Показать полезное сообщение и предложить соответствующий повтор.

События

ready

Когда происходит это событие, считайте связанные состояния из того же элемента.

playback_started

Когда происходит это событие, считайте связанные состояния из того же элемента.

playback_paused

Когда происходит это событие, считайте связанные состояния из того же элемента.

playback_ended

Когда происходит это событие, считайте связанные состояния из того же элемента.

seek_completed

Когда происходит это событие, считайте связанные состояния из того же элемента.

rate_changed

Когда происходит это событие, считайте связанные состояния из того же элемента.

player_error

Когда происходит это событие, считайте связанные состояния из того же элемента.

Вопросы, которые задают разработчики

Создаёт ли он форму волны?

Нет. Предоставьте реальные нормализованные пики для этого источника; обычный прогресс работает без них.

Как работает подписка?

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.

Связанные руководства

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