Interfaz Audio Player con un título de ejemplo.
Interfaz Audio Player con un título de ejemplo.
← Todas las guías nativas

Xodera Plugins · Bubble Native

Xodera Audio Player Native

Añade un reproductor de audio claro a lecciones, mensajes de voz o registros de productos. Permite que la gente escuche, cambie la velocidad y continúe desde su posición guardada.

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.

Documentación revisada 6 noviembre 2026

Ejemplos prácticos

Notas de voz dentro de una conversación de soporte

Un enlace de archivo simple aleja a los usuarios de la conversación y dificulta la revisión de respuestas largas.

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

Coloque el reproductor en el detalle del mensaje seleccionado. Permita que el usuario Play/Pause, Seek a un punto útil y Set speed. Vincule `is_active` a la conversación abierta.

Usar `is_playing`, `current_time` y `duration` para mostrar el progreso. Mantener el ID Message en su aplicación para que un evento tardío no pueda actualizar una conversación diferente.

En `player_error`, muestre `error_code` y ofrezca Reload source; preserve el mensaje y nunca lo marque como escuchado después de un error.

Solo reproducción. Su aplicación guarda el progreso de escucha.

Reanudar una lección de idioma en la posición guardada

Los estudiantes necesitan reproducir un pasaje difícil en lugar de reiniciar toda la lección.

`source_url = Current Lesson’s audio URL`; `title = Current Lesson’s name`; la última posición pertenece a ese estudiante y lección en su base de datos.

Después de `ready` para la lección actual, Seek a los segundos guardados y esperar a que el usuario Play. Usar Set speed para una escucha más lenta. Guardar el progreso con el flujo de trabajo de su propia aplicación.

Lea `current_time` y `duration`. En `playback_ended`, su aplicación puede registrar un hito de escucha para el Lesson actual.

Si la fuente cambió, descarte la posición anterior hasta que se cargue esa lección. No trate la finalización de la escucha como prueba de que el estudiante comprendió o aprobó una prueba.

Solo reproducción. Su aplicación guarda el progreso de escucha.

Revisar un archivo de audio con comentarios con marca de tiempo

Los editores o entrenadores necesitan saltar de un comentario al momento relevante en una grabación.

`source_url = Selected Review’s recording URL`; cada Comentario propiedad de la aplicación almacena su propio valor de segundos; opcionalmente `waveform_peaks_json` contiene picos reales para esa misma grabación.

Haga clic en un Comentario → Seek a sus segundos → Play. Al cambiar la fuente, reemplace o borre los picos y vuelva a enlazar la Reseña seleccionada.

Muestra `current_time` junto a tu compositor de comentarios. `waveform_available` indica a tu UI si los picos suministrados están disponibles.

Limitar o rechazar marcas de tiempo obsoletas contra la duración actual en su aplicación. Cuando no existan picos reales, mostrar el control de progreso ordinario en lugar de un análisis de audio inventado.

Solo reproducción. Su aplicación guarda el progreso de escucha.

Lo que funciona ahora

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.

Crea el flujo de trabajo

Utiliza las acciones beta disponibles a continuación y prueba el resultado en tus dispositivos objetivo.

Estos ejemplos usan registros de aplicación como Lesson, Message y Order. Reemplácelos con sus propios tipos de datos y nombres de elementos. Las direcciones de medios de ejemplo deben ser sustituidas por sus propios archivos.

  1. Añadir el elemento de audio. Configurar source_url = Selected Message's audio_url, title = Selected Message's sender_label y subtitle = Selected Message's date_label.

  2. Si tienes datos reales de forma de onda para esta grabación, pásalos en waveform_peaks_json. De lo contrario, déjalo vacío.

  3. Cuando ocurra ready, usar Seek con el número de segundos guardado si es necesario. Permitir que el usuario presione Play. Usar Pause, Seek y Set speed para los botones del reproductor.

  4. Mostrar current_time y duration. En playback_ended, guardar el progreso de escucha para el mensaje o lección seleccionados. Configurar is_active según si esta vista está abierta.

Diagrama de flujo — no es una captura de pantalla de la aplicación

Configura una vez

Crea o elige tu proyecto de aplicación Bubble en BestPlugins → Dashboard → Plugins. Elige Xodera Audio Player Native, copia su clave, luego abre Bubble → Plugins → Xodera Audio Player Native y pégala en licensing_api_key. Guarda una vez; luego usa las acciones a continuación. Cada complemento en cada proyecto tiene su propia clave.

Utiliza una dirección directa de archivo de audio que la aplicación pueda abrir. Reproducir audio no requiere acceso a micrófono ni cámara.

Configura una vez
  1. Crea o elige tu proyecto de aplicación Bubble en BestPlugins → Dashboard → Plugins.
  2. Elige este complemento y copia su clave de proyecto.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Añade el elemento, elige los datos de tu aplicación y construye el flujo de trabajo a continuación.
  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.
Instalación y suscripción

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.

Guarda el resultado en tu aplicación

Ejemplo ListeningProgress: owner = Current User, lesson = Selected Lesson, seconds = Audio Player's current_time, duration = Audio Player's duration. Guardar cuando el usuario pausa o abandona la lección, en lugar de en cada actualización de pantalla.

Fallo, cancelación y recuperación

En player_error, muestra error_code y ofrece Reload source. Conserva el registro del mensaje o lección. Cuando se selecciona una grabación diferente, carga su propia posición guardada. Volver a la vista no inicia la reproducción automáticamente.

Capacidades y límites

Velocidades de reproducción: 1, 1.5 y 2. Volumen: 0–1. Datos de forma de onda: valores 2–2048 entre 0 y 1. Los formatos de audio compatibles dependen del dispositivo. El reproductor no graba, transcribe ni guarda permanentemente audio para uso sin conexión. La reproducción en segundo plano y en la pantalla de bloqueo no está garantizada.

Configuraciones, acciones y resultados

Utilice estos nombres en Bubble. Las funciones planificadas están marcadas por separado.

Configuraciones beta disponibles

Configuración del elemento

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

Estados

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

Eventos

readyplayback_startedplayback_pausedplayback_endedseek_completedrate_changedplayer_error

Acciones y sus entradas

PlayPauseToggleStopSeekSet speedSet volumeReload source
Configuración del elemento · 11
source_urltext · Predeterminado: ""
Valor de ejemplohttps://bestplugins.online/native-samples/lesson.mp3
Ejemplo de expresión BubbleSelected Message's audio_url
Dirección del archivo de audio, video o imagen seleccionado. Usa un tipo de archivo que este complemento admita.
waveform_peaks_jsontext · Predeterminado: ""
Valor de ejemplo[0.1,0.4,0.2,0.7]
Ejemplo de expresión BubbleSelected Message's waveform_peaks_json
Valores de amplitud normalizada reales para esta grabación; déjalo vacío si no están disponibles.
titletext · Predeterminado: ""
Valor de ejemploLesson 4 — review
Ejemplo de expresión BubbleSelected Lesson's name
Texto visible de la aplicación; vacío usa la copia localizada incorporada donde sea compatible. Sin credenciales.
subtitletext · Predeterminado: ""
Valor de ejemploTeacher · today
Ejemplo de expresión BubbleSelected Message's sender_label
Texto visible de la aplicación; vacío usa la copia localizada incorporada donde sea compatible. Sin credenciales.
playback_ratenumber · Predeterminado: 1
Valor de ejemplo1.5
Ejemplo de expresión BubbleCurrent User's listening_speed
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
volumenumber · Predeterminado: 1
Valor de ejemplo0.8
Ejemplo de expresión BubbleVolume Slider's value
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
loopyes_no · Predeterminado: false
Valor de ejemplono
Ejemplo de expresión BubbleSelected Lesson's repeat_enabled
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
is_activeyes_no · Predeterminado: true
Valor de ejemployes
Ejemplo de expresión BubbleGuideHost's view_is_active (your yes/no custom state)
Establece sí mientras esta vista está abierta. Establece no al salir, para que la reproducción o el trabajo actual puedan detenerse.
disabledyes_no · Predeterminado: false
Valor de ejemplono
Ejemplo de expresión BubbleGuideHost's is_busy (your yes/no custom state)
Desactiva el elemento mientras tu aplicación está ocupada o esta acción no está disponible.
ui_text_jsontext · Predeterminado: ""
Valor de ejemplo{}
Ejemplo de expresión BubbleApp Settings' player_labels_json (supported keys only)
JSON opcional con etiquetas de botón compatibles. Déjalo vacío para usar el texto incorporado.
languagetext · Predeterminado: "auto"
Valor de ejemplouk
Ejemplo de expresión BubbleCurrent User's preferred_language
Configurar language=auto para seguir un dispositivo o idioma de navegador compatible. Introduzca un código de idioma compatible para seleccionarlo explícitamente.
Acciones y sus entradas · 8
Play

Sin parámetros de acción

Pause

Sin parámetros de acción

Toggle

Sin parámetros de acción

Stop

Sin parámetros de acción

Seek
secondsnumber · Predeterminado: —
Valor de ejemplo12
Ejemplo de expresión BubbleSelected Comment's seconds
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
Set speed
ratenumber · Predeterminado: —
Valor de ejemplo1.5
Ejemplo de expresión BubbleSpeed Dropdown's value
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
Set volume
volumenumber · Predeterminado: —
Valor de ejemplo0.8
Ejemplo de expresión BubbleVolume Slider's value
Utilice el valor del registro comercial actual; validarlo contra los límites a continuación.
Reload source

Sin parámetros de acción

Estados y eventos

Estados

player_status · text

Resultado actual de esta acción. Usa el evento de finalización correspondiente antes de guardar el éxito.

is_playing · yes_no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

is_loaded · yes_no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

is_buffering · yes_no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

current_time · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

duration · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

progress · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

playback_rate · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

volume · number

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

is_looping · yes_no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

waveform_available · yes_no

Valor actual del elemento seleccionado. Léelo después del evento relacionado.

waveform_status · text

Resultado actual de esta acción. Usa el evento de finalización correspondiente antes de guardar el éxito.

error_code · text

Información de error de la última acción. Muestra un mensaje útil y ofrece el reintento correspondiente.

Eventos

ready

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

playback_started

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

playback_paused

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

playback_ended

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

seek_completed

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

rate_changed

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

player_error

Cuando ocurra este evento, lea los estados relacionados del mismo elemento.

Preguntas que hacen los desarrolladores

¿Crea la forma de onda?

No. Proporcione picos normalizados reales para esa fuente; el progreso ordinario funciona sin ellos.

¿Cómo funciona la suscripción?

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.

Guías relacionadas

Para obtener ayuda, indíquenos qué plugin y dispositivo utiliza, la acción que intentó y lo que ocurrió. Use un ejemplo sin datos personales. Nunca comparta su clave ni archivos privados.