Interfície Audio Player amb un títol d'exemple.
Interfície Audio Player amb un títol d'exemple.
← Totes les guies natives

Xodera Plugins · Bubble Native

Xodera Audio Player Native

Afegiu un reproductor d’àudio net a les lliçons, missatges de veu o registres de producte. Permeteu que la gent escolti, canviï la velocitat i continuï des del seu punt desat.

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ó revisada 6 novembre 2026

Exemples pràctics

Notes de veu dins d'una conversa de suport

Un enllaç de fitxer senzill allunya els usuaris de la conversa i dificulta la revisió de respostes llargues.

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

Col·loqueu el reproductor al detall del missatge seleccionat. Deixeu que l'usuari Play/Pause, Seek a un punt útil i Set speed. Enllaceu `is_active` a la conversa oberta.

Utilitzeu `is_playing`, `current_time` i `duration` per mostrar el progrés. Mantingueu l'ID Message a la vostra aplicació perquè un esdeveniment tardà no pugui actualitzar una conversa diferent.

En `player_error`, mostreu `error_code` i ofereixeu Reload source; conserveu el missatge i no el marqueu com a escoltat després d'un error.

Només reproducció. La vostra aplicació desa el progrés d'escolta.

Reprèn una lliçó d'idioma a la posició desada

Els aprenents necessiten reproduir un fragment difícil en comptes de reiniciar tota la lliçó.

`source_url = Current Lesson’s audio URL`; `title = Current Lesson’s name`; l'última posició pertany a aquest aprenent i a la lliçó a la vostra base de dades.

Després de `ready` per a la lliçó actual, Seek als segons desats i espereu que l'usuari Play. Utilitzeu Set speed per a una escolta més lenta. Deseu el progrés amb el flux de treball de la vostra aplicació.

Llegiu `current_time` i `duration`. En `playback_ended`, la vostra aplicació pot registrar un assoliment d'escolta per al Lesson actual.

Si la font ha canviat, descarteu la posició antiga fins que es carregui la lliçó. No considereu la finalització de l'escolta com a prova que l'aprenent ha entès o ha superat un test.

Només reproducció. La vostra aplicació desa el progrés d'escolta.

Revisa un adjunt d'àudio amb comentaris amb marques de temps

Els editors o formadors necessiten saltar d'un comentari al moment rellevant d'una gravació.

`source_url = Selected Review’s recording URL`; cada Comentari propietat de l'aplicació emmagatzema el seu propi valor en segons; opcionalment `waveform_peaks_json` conté pics reals per a la mateixa gravació.

Feu clic a un Comentari → Seek als seus segons → Play. En canviar la font, substituïu o esborreu els pics i torneu a enllaçar la Revisió seleccionada.

Mostreu `current_time` al costat del vostre compositor de comentaris. `waveform_available` indica a la vostra interfície si hi ha pics subministrats disponibles.

Limita o rebutja marques de temps obsoletes respecte a la durada actual de l'aplicació. Quan no hi hagi pics reals, mostra el control de progrés ordinari en lloc d'una anàlisi d'àudio inventada.

Només reproducció. La vostra aplicació desa el progrés d'escolta.

Què funciona ara

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 flux de treball

Utilitzeu les accions beta disponibles a continuació i proveu el resultat en els vostres dispositius de destinació.

Aquests exemples utilitzen registres d'aplicació com Lesson, Message i Order. Substituïu-los amb els vostres propis tipus de dades i noms d'elements. Les adreces multimèdia d'exemple s'han de substituir per els vostres propis fitxers.

  1. Afegiu l’element d’àudio. Definiu source_url = Selected Message's audio_url, title = Selected Message's sender_label i subtitle = Selected Message's date_label.

  2. Si disposeu de dades reals de forma d’ona per a aquesta gravació, passeu‑les a waveform_peaks_json. En cas contrari, deixeu‑ho buit.

  3. Quan es produeixi l’esdeveniment “ready”, utilitzeu Seek amb el nombre de segons desat si cal. Permeteu que l’usuari premi Play. Utilitzeu Pause, Seek i Set speed per als botons del reproductor.

  4. Mostreu current_time i duration. A playback_ended, deseu el progrés d’escolta per al missatge o la lliçó seleccionada. Definiu is_active segons si aquesta vista està oberta.

Diagrama de flux de treball — no és una captura de pantalla de l'aplicació

Configura una vegada

Creeu o trieu el vostre projecte d’aplicació Bubble a BestPlugins → Dashboard → Plugins. Trieu Xodera Audio Player Native, copieu la seva clau i, a continuació, obriu Bubble → Plugins → Xodera Audio Player Native i enganxeu‑la a licensing_api_key. Deseu una vegada; després utilitzeu les accions a continuació. Cada connector en cada projecte té la seva pròpia clau.

Utilitzeu una adreça directa d’arxiu d’àudio que l’aplicació pugui obrir. Reproduir àudio no requereix accés al micròfon ni a la càmera.

Configura una vegada
  1. Creeu o trieu el vostre projecte d’aplicació Bubble a BestPlugins → Dashboard → Plugins.
  2. Trieu aquest connector i copieu la clau del projecte.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. Afegiu l’element, trieu les vostres dades d’aplicació i construïu el flux de treball a continuació.
  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.
Instal·lació i subscripció

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.

Desa el resultat a la teva aplicació

Exemple ListeningProgress: owner = Current User, lesson = Selected Lesson, seconds = Audio Player's current_time, duration = Audio Player's duration. Deseu quan l’usuari posi en pausa o abandoni la lliçó, en lloc de fer‑ho a cada actualització de pantalla.

Fallada, cancel·lació i recuperació

A player_error, mostreu error_code i ofereixeu Reload source. Mantingueu el missatge o el registre de la lliçó. Quan es selecciona una gravació diferent, carregueu la seva posició desada. Tornar a la vista no inicia la reproducció automàticament.

Capacitats i límits

Velocitats de reproducció: 1, 1.5 i 2. Volum: 0–1. Dades de forma d’ona: 2–2048 amb valors entre 0 i 1. Els formats d’àudio compatibles depenen del dispositiu. El reproductor no grava, transcriu ni desa permanentment àudio per a ús fora de línia. No es garanteix la reproducció en segon pla ni a la pantalla de bloqueig.

Configuracions, accions i resultats

Utilitzeu aquests noms a Bubble. Les funcions planificades es marquen per separat.

Configuracions beta disponibles

Configuració de l'element

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

Estats

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

Esdeveniments

readyplayback_startedplayback_pausedplayback_endedseek_completedrate_changedplayer_error

Accions i les seves entrades

PlayPauseToggleStopSeekSet speedSet volumeReload source
Configuració de l'element · 11
source_urltext · Per defecte: ""
Valor d'exemplehttps://bestplugins.online/native-samples/lesson.mp3
Exemple d'expressió BubbleSelected Message's audio_url
Adreça del fitxer d'àudio, vídeo o imatge seleccionat. Utilitza un tipus de fitxer compatible amb aquest connector.
waveform_peaks_jsontext · Per defecte: ""
Valor d'exemple[0.1,0.4,0.2,0.7]
Exemple d'expressió BubbleSelected Message's waveform_peaks_json
Valors d'amplitud normalitzada real per a aquesta gravació; deixa buit si no estan disponibles.
titletext · Per defecte: ""
Valor d'exempleLesson 4 — review
Exemple d'expressió BubbleSelected Lesson's name
Text visible de l'aplicació; buit utilitza la còpia localitzada integrada quan sigui compatible. No hi ha credencials.
subtitletext · Per defecte: ""
Valor d'exempleTeacher · today
Exemple d'expressió BubbleSelected Message's sender_label
Text visible de l'aplicació; buit utilitza la còpia localitzada integrada quan sigui compatible. No hi ha credencials.
playback_ratenumber · Per defecte: 1
Valor d'exemple1.5
Exemple d'expressió BubbleCurrent User's listening_speed
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
volumenumber · Per defecte: 1
Valor d'exemple0.8
Exemple d'expressió BubbleVolume Slider's value
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
loopyes_no · Per defecte: false
Valor d'exempleno
Exemple d'expressió BubbleSelected Lesson's repeat_enabled
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
is_activeyes_no · Per defecte: true
Valor d'exempleyes
Exemple d'expressió BubbleGuideHost's view_is_active (your yes/no custom state)
Estableix sí mentre aquesta vista està oberta. Estableix no en sortir, perquè la reproducció o l'obra actual puguin aturar-se.
disabledyes_no · Per defecte: false
Valor d'exempleno
Exemple d'expressió BubbleGuideHost's is_busy (your yes/no custom state)
Desactiva l'element mentre l'aplicació està ocupada o aquesta acció no està disponible.
ui_text_jsontext · Per defecte: ""
Valor d'exemple{}
Exemple d'expressió BubbleApp Settings' player_labels_json (supported keys only)
JSON opcional amb etiquetes de botó compatibles. Deixa buit per utilitzar el text integrat.
languagetext · Per defecte: "auto"
Valor d'exempleuk
Exemple d'expressió BubbleCurrent User's preferred_language
Estableix language=auto per seguir un dispositiu o idioma del navegador compatible. Introdueix un codi d'idioma compatible per seleccionar-lo explícitament.
Accions i les seves entrades · 8
Play

Sense paràmetres d'acció

Pause

Sense paràmetres d'acció

Toggle

Sense paràmetres d'acció

Stop

Sense paràmetres d'acció

Seek
secondsnumber · Per defecte: —
Valor d'exemple12
Exemple d'expressió BubbleSelected Comment's seconds
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Set speed
ratenumber · Per defecte: —
Valor d'exemple1.5
Exemple d'expressió BubbleSpeed Dropdown's value
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Set volume
volumenumber · Per defecte: —
Valor d'exemple0.8
Exemple d'expressió BubbleVolume Slider's value
Utilitza el valor del registre empresarial actual; valida'l respecte als límits següents.
Reload source

Sense paràmetres d'acció

Estats i esdeveniments

Estats

player_status · text

Resultat actual d'aquesta acció. Utilitza l'esdeveniment de finalització coincident abans d'enregistrar l'èxit.

is_playing · yes_no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

is_loaded · yes_no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

is_buffering · yes_no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

current_time · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

duration · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

progress · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

playback_rate · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

volume · number

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

is_looping · yes_no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

waveform_available · yes_no

Valor actual de l'element seleccionat. Llegeix-lo després de l'esdeveniment relacionat.

waveform_status · text

Resultat actual d'aquesta acció. Utilitza l'esdeveniment de finalització coincident abans d'enregistrar l'èxit.

error_code · text

Informació d'error de l'última acció. Mostra un missatge útil i ofereix el reintent corresponent.

Esdeveniments

ready

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

playback_started

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

playback_paused

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

playback_ended

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

seek_completed

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

rate_changed

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

player_error

Quan es produeixi aquest esdeveniment, llegiu els estats relacionats del mateix element.

Preguntes que fan els desenvolupadors

Crea la forma d'ona?

No. Proporcioneu pics normalitzats reals per a aquesta font; el progrés ordinari funciona sense ells.

Com funciona la subscripció?

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.

Guies relacionades

Per obtenir ajuda, indiqueu quin connector i dispositiu utilitzeu, l'acció que heu provat i què ha passat. Utilitzeu un exemple sense dades personals. No compartiu mai la vostra clau ni fitxers privats.