Vous pouvez enregistrer des fonctions de gestion d'événements avec la eventHandlers propriété des
composants OTSession, OTPublisher et OTSubscriber :
class App extends Component {
constructor(props) {
super(props);
this.sessionEventHandlers = {
streamCreated: event => {
console.log('Stream created!', event);
},
streamDestroyed: event => {
console.log('Stream destroyed!', event);
},
sessionConnected: event => {
console.log('Connected to the session!');
},
sessionDisconnected: event => {
console.log('Disconnected from the session!');
}
};
this.subscriberEventHandlers = {
connected: event => {
console.log('Subscriber connected!', event);
},
disconnected: event => {
console.log('Subscriber disconnected!', event);
}
};
this.publisherEventHandlers = {
streamCreated: event => {
console.log('Stream created!', event);
},
streamDestroyed: event => {
console.log('Stream destroyed!', event);
}
};
}
render() {
return (
<OTSession apiKey="your-api-key" sessionId="your-session-id" token="your-session-token" eventHandlers={this.sesssionEventHandlers}>
<OTPublisher eventHandlers={this.publisherEventHandlers}/>
<OTSubscriber eventHandlers={this.suscriberEventHandlers} />
</OTSession>
);
}
}
Les sections suivantes décrivent la structure des différents objets d'événement.
ArchiveÉvénement
L'objet OTSession gère archiveStarted et archiveStopped événements
lorsqu'un archives marque le début et la fin
d'une session. L'objet « event » possède les propriétés suivantes :
archive = {
archiveId: string, // The archive ID.
name: string, // The archive name.
sessionId: string, // The session ID.
};
AudioNetworkStats
Pour récupérer les données audio d'un abonné, enregistrez un écouteur d'événements pour le audioNetworkStats événement.
L'objet « événement » possède les propriétés suivantes :
event = {
audioBytesReceived: number,
audioPacketsLost: number,
audioPacketsReceived: number,
timeStamp: number,
};
SubscriberCaptionEvent
Pour obtenir les sous-titres d'un abonné, enregistrez un écouteur d'événement pour le captionReceived événement.
L'objet « événement » possède les propriétés suivantes :
event = {
text: string,
isFinal: boolean,
};
Événement de création de connexion
Vous trouverez ci-dessous la structure de l'objet :
event = {
sessionId: string;
connection = {
connectionId: string
creationTime: string,
data: string,
}
}
Événement « Connexion interrompue »
Vous trouverez ci-dessous la structure de l'objet :
event = {
sessionId: string;
connection = {
connectionId: string
creationTime: string,
data: string,
}
}
Événement d'erreur
Vous trouverez ci-dessous la structure de l'objet :
event = {
code: string,
message: string,
};
MuteForcedEvent
event = {
active: boolean;
}
Événement PublisherVideoNetworkStats
Pour récupérer les données vidéo d'un éditeur, enregistrez un écouteur d'événements pour l'OTPublisher
videoNetworkStats événement. L'objet présente la structure suivante :
event = [
{
connectionId: string,
subscriberId: string,
videoPacketsLost: number,
videoBytesSent: number,
videoPacketsSent: number,
timestamp: number,
}
];
Notez que cet objet « event » est un tableau d'objets. Consultez la documentation relative à
OTPublisher videoNetworkStats événement.
Événement PublisherAudioNetworkStats
Pour récupérer les données audio d'un éditeur, enregistrez un écouteur d'événements pour l'OTPublisher
audioNetworkStats événement. L'objet présente la structure suivante :
event = [
{
connectionId: string,
subscriberId: string,
audioPacketsLost: number,
audioPacketsSent: number,
audioBytesSent: number,
timeStamp: number,
}
];
Notez que cet objet « event » est un tableau d'objets. Consultez la documentation relative à
OTPublisher audioNetworkStats événement.
RtcStatsReportEvent
Vous trouverez ci-dessous la structure de l'objet :
event = {
connectionId: string,
jsonArrayOfReports: string,
};
SessionConnectEvent
event = {
sessionId: string;
connection: {
connectionId: string,
creationTime: string,
data: string,
},
}
SessionDisconnectEvent
event = {
sessionId: string;
}
SignalEvent
L'objet OTSession envoie un signal événement déclenché lors de la réception d'un signal.
Voir la guide du développeur de signaux.
L'objet « event » possède les propriétés suivantes :
event = {
type: string, // Either 'signal' or 'signal:type'.
data: string, // The data.
connectionId: string, // The connection ID of the client that sent the signal.
};
StreamCreatedEvent
Vous trouverez ci-dessous la structure de l'objet :
stream = {
streamId: string;
name: string;
connectionId: string, // This will be removed after v0.11.0 because it's exposed via the connection object
connection: {
connectionId: string,
creationTime: string,
data: string,
},
hasAudio: boolean,
hasVideo: boolean,
sessionId: string,
creationTime: number,
height: number,
width: number,
videoType: string, // 'camera' or 'screen'
};
StreamDestroyedEvent
event = {
streamId: string;
name: string;
connectionId: string;
connection: {
connectionId: string,
creationTime: string,
data: string,
},
hasAudio: boolean,
hasVideo: boolean,
sessionId: string,
creationTime: number,
height: number,
width: number,
videoType: string, // 'camera' or 'screen'
};
StreamPropertyChangedEvent
event = {
stream: {
streamId: string,
name: string,
connectionId: string, // This will be removed after v0.11.0 because it's exposed via the connection object
connection: {
connectionId: string,
creationTime: number,
data: string,
},
hasAudio: boolean,
hasVideo: boolean,
sessionId: string,
creationTime: number,
height: number,
width: number,
videoType: string, // 'camera' or 'screen'
},
oldValue: any,
newValue: any,
changedProperty: string,
};
Événement de niveau audio de l'abonné
event = {
audioLevel: number;
stream: {
streamId: string,
name: string,
connectionId: string, // This will be removed after v0.11.0 because it's exposed via the connection object
connection: {
connectionId: string,
creationTime: number,
data: string,
},
hasAudio: boolean,
hasVideo: boolean,
sessionId: string,
creationTime: number,
height: number,
width: number,
videoType: string, // 'camera' or 'screen'
},
};
Événement VideoNetworkStats
Vous trouverez ci-dessous la structure de l'objet :
event = {
senderStats: {
connectionMaxAllocatedBitrate: number,
connectionEstimatedBandwidth: number
},
videoPacketsLost: number,
videoBytesReceived: number,
videoPacketsReceived: number,
timestamp: number
};
Événement « Rapport sur les statistiques RTC des abonnés »
event = {
stream: {
streamId: string;
name: string;
connectionId: string;
connection: {
connectionId: string,
creationTime: string,
data: string,
},
hasAudio: boolean,
hasVideo: boolean,
sessionId: string,
creationTime: number,
height: number,
width: number,
videoType: string, // 'camera' or 'screen'
},
jsonArrayOfReports: string
};
Événement PublisherRtcStatsReport
event = [
connectionId: string,
jsonArrayOfReports: string
];