Lexora ofrece dos formas de integrar y personalizar el reproductor de audio:
- Integración mediante markup (
<lexora data-speech="...">) aplica automáticamente la configuración definida en Lexora, incluidos colores, etiquetas y controles habilitados. - Integración mediante JavaScript (
new Lexora(target, { ... })) te da control en tiempo real sobre el estilo, las etiquetas, los iconos, el comportamiento del mini reproductor flotante, las opciones de reproducción y el modo automático.
Métodos de integración
Empieza instalando la librería de Lexora en tu sitio web. Una vez completada la instalación, puedes integrar el sistema de Text to Speech utilizando uno de los siguientes métodos:
1) Integración mediante markup
Este es el método más sencillo. El reproductor se inicializa automáticamente y aplica la configuración ya definida en tu proyecto de Lexora.
<lexora data-speech="[YOUR_SPEECH_ID]"></lexora> Usa este método cuando quieras mantener un estilo y un comportamiento consistentes en varias páginas sin escribir JavaScript personalizado.
2) Inicialización con JavaScript
Usa JavaScript cuando necesites más control sobre el renderizado, las actualizaciones en tiempo real o comportamientos específicos de la página.
const target = document.querySelector('#lexora-target');
new Lexora(target, {
speech: '[YOUR_SPEECH_ID]'
}); Lexora combina tu configuración con la configuración predeterminada del reproductor, por lo que solo necesitas pasar las opciones que quieras sobrescribir.
Opciones JavaScript disponibles
Opciones principales
| Opción | Tipo | Descripción |
|---|---|---|
speech | string | Clave speech (ID de audio). |
stickyplayer | boolean | Activa o desactiva el mini reproductor fijo. |
playspeed | boolean | Activa o desactiva los controles de velocidad de reproducción. |
glass | boolean | Activa o desactiva el efecto glass. |
jumpSeconds | number | Define los segundos de salto para los controles de skip. El valor predeterminado es 10. |
seekStep | number | Alias legacy de jumpSeconds. |
playbackJump | boolean | Flag legacy mantenido por compatibilidad con versiones anteriores. |
new Lexora(target, {
speech: '[YOUR_SPEECH_ID]',
stickyplayer: true,
playspeed: true,
glass: true,
jumpSeconds: 10
});Personalización de estilos
El objeto style controla el tema visual del reproductor. Estos valores se aplican internamente como variables CSS.
Claves de estilo disponibles
| Clave | Descripción |
|---|---|
primary | Color principal de acento. |
background | Color de fondo base del reproductor. |
foreground | Color base del texto y los iconos. |
widget-background | Color de fondo del widget. |
widget-foreground | Color del texto y los iconos del widget. |
widget-btn-background | Fondo de los botones principales de play y stop. |
widget-btn-foreground | Color de los iconos principales de play y stop. |
seek-background | Color de la pista de la barra de progreso. |
seek-fill | Color de la parte completada de la barra de progreso. |
seek-thumb | Color del cursor de la barra de progreso. |
visualizer | Color del visualizador de audio. |
new Lexora(target, {
speech: '[YOUR_SPEECH_ID]',
style: {
primary: '#7CD259',
background: '#0C120D',
foreground: '#FFFFFF',
'widget-background': '#0C120D',
'widget-foreground': '#FFFFFF',
'widget-btn-background': '#7CD259',
'widget-btn-foreground': '#0C120D',
'seek-background': '#FFFFFF',
'seek-fill': '#7CD259',
'seek-thumb': '#FFFFFF',
visualizer: '#7CD259'
}
}); Si solo defines primary, background y foreground, Lexora derivará automáticamente el resto de colores de la interfaz usando sus reglas predeterminadas.
Para mejorar la accesibilidad, mantén un buen contraste entre fondo y primer plano.
Personalización de etiquetas
El objeto labels te permite sobrescribir los textos del reproductor. Es útil para localización, tono de producto o ajustes específicos de la interfaz.
La etiqueta loading se usa en los estados de carga estándar. La etiqueta generating se usa en modo automático mientras el audio se genera progresivamente. Las etiquetas jumpForward y jumpBack se usan automáticamente en iOS y Safari, donde los controles de velocidad de reproducción se sustituyen por controles de salto.
Claves de etiquetas disponibles
| Clave | Descripción |
|---|---|
play | Etiqueta de la acción principal de reproducción. |
stop | Detiene completamente la reproducción. |
resume | Reanuda la reproducción después de una pausa. |
pause | Pausa la reproducción activa. |
speed | Etiqueta de los controles de velocidad. |
close | Cierra interfaces o modales relacionados con el reproductor. |
init | Mensaje inicial antes de comenzar la reproducción. |
loading | Mensaje de carga estándar. |
generating | Mensaje mostrado durante la generación en modo automático. |
jumpBack | Etiqueta del control de retroceso usada automáticamente en iOS y Safari. |
jumpForward | Etiqueta del control de avance usada automáticamente en iOS y Safari. |
new Lexora(target, {
speech: '[YOUR_SPEECH_ID]',
labels: {
play: 'Play',
stop: 'Stop',
resume: 'Resume',
pause: 'Pause',
speed: 'Playback speed',
close: 'Close',
init: 'Press play to listen',
loading: 'Loading speech...',
generating: 'Generating speech...',
jumpBack: 'Skip backward',
jumpForward: 'Skip forward'
}
});Personalización de iconos
Puedes sustituir los controles predeterminados pasando SVG inline mediante el objeto icons.
Recomendación: usa fill="currentColor" o stroke="currentColor" para que los iconos hereden correctamente los colores del tema.
Claves de iconos disponibles
| Clave | Descripción |
|---|---|
play | Icono principal de reproducción. |
pause | Icono de pausa. |
stop | Icono de stop. |
close | Icono de cierre. |
minimize | Icono para minimizar el reproductor sticky. |
wave | Icono del indicador de audio/voz. |
autoscroll | Icono del indicador de autoscroll en modo automático. |
jumpBack | Icono de salto hacia atrás. |
jumpForward | Icono de salto hacia delante. |
new Lexora(target, {
speech: '[YOUR_SPEECH_ID]',
icons: {
play: '<svg>...</svg>',
pause: '<svg>...</svg>',
stop: '<svg>...</svg>'
}
});Comportamiento del mini reproductor sticky
Cuando stickyplayer está activado, Lexora muestra un mini reproductor compacto cuando el reproductor principal sale del viewport.
- Solo aparece mientras la reproducción está activa o en pausa.
- Se oculta automáticamente cuando la reproducción termina o se detiene.
- Hereda la misma configuración visual del reproductor principal.
new Lexora(target, {
speech: '[YOUR_SPEECH_ID]',
stickyplayer: true
});Velocidad de reproducción
Cuando está activado, el control de velocidad alterna entre 1x, 1,5x y 2x.
En iOS y Safari, los controles de velocidad no están disponibles. En esos casos, Lexora sustituye automáticamente el control de velocidad por controles de salto hacia atrás y hacia delante.
new Lexora(target, {
speech: '[YOUR_SPEECH_ID]',
playspeed: true,
jumpSeconds: 15
});Opciones del modo automático
El modo automático permite a Lexora extraer texto legible directamente de la página y generar audio bajo demanda.
Opciones disponibles en modo automático
| Opción | Tipo | Descripción |
|---|---|---|
mode | string | Usa auto para activar el modo automático. |
contentTarget | string | Selector CSS del contenedor de contenido que se va a leer. |
script | string | Texto explícito que se leerá en lugar de extraerlo de la página. |
language | string | Código de idioma usado para seleccionar la voz en modo automático. |
voice | string | Nombre de la voz, por ejemplo Aria. |
new Lexora(target, {
mode: 'auto',
contentTarget: '.article-body',
language: 'en-US',
voice: 'Aria',
stickyplayer: true,
style: {
primary: '#7CD259',
background: '#0C120D',
foreground: '#FFFFFF'
}
}); En modo automático, las opciones pasadas mediante JavaScript tienen prioridad sobre la configuración predeterminada del proyecto.
Uso recomendado
- Usa la integración mediante markup cuando quieras una configuración centralizada desde el panel de Lexora.
- Usa la integración mediante JavaScript cuando necesites control dinámico, interfaces personalizadas o actualizaciones en tiempo real.
- Usa etiquetas personalizadas para mantener el reproductor alineado con el tono de tu producto y el idioma de la interfaz.
- Usa solo los tres colores base cuando quieras que Lexora derive automáticamente el resto de la interfaz.
- Usa el objeto completo de style cuando necesites un control más detallado sobre botones, barra de progreso y visualizador.