Tengo una aplicación de reunión web llamada TweetUp creada con Agora App Builder . Ahora, quiero agregar efectos de sonido en la unión del usuario, la desconexión del usuario, la notificación, etc.
Asumiendo que estás en la última versión de AgoraAppBuilder Core (2.1.0)
Estas son las formas en que puede lograr sus casos de uso
ingreso de usuario, desconexión de usuario
En su aplicación, vaya a {APP-Name}/src/pages/VideoCall.tsx
Navegue a su componente PropsProvider
.
Podría verse algo como esto,
<PropsProvider value={{ rtcProps: { ...rtcProps, callActive, }, callbacks, // --> callbacks for events ...restProps }}>
busque los accesorios de callbacks
de llamada, los accesorios de callbacks
de llamada toman un tipo de objeto:
export interface CallbacksInterface { UserJoined: () => {}; UserOffline: () => {}; ...otherCallbacks
Si desea registrar devoluciones de llamada para usuarios unidos o fuera de línea (desconectar), puede pasar las devoluciones de llamada a su PropsProvider
const playSound = () => { let src ='http://commondatastorage.googleapis.com/codeskulptor-assets/sounddogs/explosion.mp3'; let audio = new Audio(src); audio.play(); } <PropsProvider value={{ . . callbacks= { UserOffline: () =>{ console.log('User offline') playSound() }, UserJoined: () => { console.log('User Joined') playSound() } . } . }} }}>
De manera similar, para las notificaciones de mensajes recibidos, puede usar el objeto de events
. Dentro de su componente VideoCall
use:
const {events} = useContext(ChatContext);
Una vez que tenga acceso al objeto de events
, registre sus eventos personalizados para manejar mensajes public
y private
.
events.on( messageChannelType.Public, 'onPublicMessageReceived', (data: any, error: any) => { if (!data) return; playSound() }, ); events.on( messageChannelType.Private, 'onPrivateMessageReceived', . . .
Hay planes para lanzar una versión más nueva de Agora App Builder Core, con la nueva versión tendrá acceso a las API de extensión de Agora AppBuilder. Las API de extensión permitirán mejorar/agregar funcionalidades más nuevas a su aplicación sin siquiera tocar la base del código central.