Audio Native con React

Integra Audio Native en tus aplicaciones de React.

Sigue los pasos de la descripción general de Audio Native para empezar a usar Audio Native antes de continuar con esta guía.

Esta guía te mostrará cómo integrar Audio Native en aplicaciones de React. Nos centraremos en un proyecto de Next.js, pero los conceptos básicos servirán para cualquier aplicación basada en React.

1

Crea un componente de React para Audio Native

Después de completar los pasos de la descripción general de Audio Native, tendrás un fragmento de código de inserción. Aquí tienes un ejemplo:

Fragmento de código de inserción
<div
id="elevenlabs-audionative-widget"
data-height="90"
data-width="100%"
data-frameborder="no"
data-scrolling="no"
data-publicuserid="public-user-id"
data-playerurl="https://elevenlabs.io/player/index.html"
data-projectid="project-id"
>
Loading the <a href="https://elevenlabs.io/text-to-speech" target="_blank" rel="noopener">Elevenlabs Text to Speech</a> AudioNative Player...
</div>
<script src="https://elevenlabs.io/player/audioNativeHelper.js" type="text/javascript"></script>

Podemos extraer los datos del fragmento para crear un componente de React personalizable.

ElevenLabsAudioNative.tsx
// ElevenLabsAudioNative.tsx
'use client';
import { useEffect } from 'react';
export type ElevenLabsProps = {
publicUserId: string;
textColorRgba?: string;
backgroundColorRgba?: string;
size?: 'small' | 'large';
children?: React.ReactNode;
};
export const ElevenLabsAudioNative = ({
publicUserId,
size,
textColorRgba,
backgroundColorRgba,
children,
}: ElevenLabsProps) => {
useEffect(() => {
const script = document.createElement('script');
script.src = 'https://elevenlabs.io/player/audioNativeHelper.js';
script.async = true;
document.body.appendChild(script);
return () => {
document.body.removeChild(script);
};
}, []);
return (
<div
id="elevenlabs-audionative-widget"
data-height={size === 'small' ? '90' : '120'}
data-width="100%"
data-frameborder="no"
data-scrolling="no"
data-publicuserid={publicUserId}
data-playerurl="https://elevenlabs.io/player/index.html"
data-small={size === 'small' ? 'True' : 'False'}
data-textcolor={textColorRgba ?? 'rgba(0, 0, 0, 1.0)'}
data-backgroundcolor={backgroundColorRgba ?? 'rgba(255, 255, 255, 1.0)'}
>
{children ? children : 'Elevenlabs AudioNative Player'}
</div>
);
};
export default ElevenLabsAudioNative;

Puedes encontrar el componente anterior en GitHub.

2

Usa el componente de Audio Native

Antes de usar el componente en tu página, debes obtener tu ID de usuario público del fragmento de código original. Copia el contenido de data-publicuserid del fragmento de código de inserción e introdúcelo en la prop publicUserId del componente.

page.tsx
import { ElevenLabsAudioNative } from './path/to/ElevenLabsAudioNative';
export default function Page() {
return (
<div>
<h1>Your Page Title</h1>
// Insert the public user ID from the embed code snippet
<ElevenLabsAudioNative publicUserId="<your-public-user-id>" />
<p>Your page content...</p>
</div>
);
}
3

Personaliza el reproductor con las props del componente

Puedes usar las props del componente para personalizar el reproductor. Por ejemplo, puedes cambiar el tamaño, el color del texto y el color de fondo.

page.tsx
import { ElevenLabsAudioNative } from './path/to/ElevenLabsAudioNative';
export default function Page() {
return (
<div>
<h1>Your Page Title</h1>
<ElevenLabsAudioNative
publicUserId="<your-public-user-id>"
size="small"
textColorRgba="rgba(255, 255, 255, 1.0)"
backgroundColorRgba="rgba(0, 0, 0, 1.0)"
/>
<p>Your page content...</p>
</div>
);
}