Sie können Ereignisbehandlungsfunktionen mit der eventHandlers Eigenschaft der
Komponenten „OTSession“, „OTPublisher“ und „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>
);
}
}
In den folgenden Abschnitten wird die Struktur verschiedener Ereignisobjekte beschrieben.
Archiv-Veranstaltung
Das OTSession-Objekt leitet weiter archiveStarted und archiveStopped Ereignisse
wenn ein Archiv startet und beendet
eine Sitzung. Das Ereignisobjekt verfügt über die folgenden Eigenschaften:
archive = {
archiveId: string, // The archive ID.
name: string, // The archive name.
sessionId: string, // The session ID.
};
AudioNetworkStats
Um Audiodaten für einen Abonnenten abzurufen, registrieren Sie einen Ereignis-Listener für das audioNetworkStats Ereignis.
Das Ereignisobjekt verfügt über die folgenden Eigenschaften:
event = {
audioBytesReceived: number,
audioPacketsLost: number,
audioPacketsReceived: number,
timeStamp: number,
};
SubscriberCaptionEvent
Um Untertitel für einen Abonnenten abzurufen, registrieren Sie einen Ereignis-Listener für das captionReceived Ereignis.
Das Ereignisobjekt verfügt über die folgenden Eigenschaften:
event = {
text: string,
isFinal: boolean,
};
Verbindungserstellungsereignis
Die Struktur des Objekts finden Sie unten:
event = {
sessionId: string;
connection = {
connectionId: string
creationTime: string,
data: string,
}
}
ConnectionDestroyedEvent
Die Struktur des Objekts finden Sie unten:
event = {
sessionId: string;
connection = {
connectionId: string
creationTime: string,
data: string,
}
}
Fehlerereignis
Die Struktur des Objekts finden Sie unten:
event = {
code: string,
message: string,
};
MuteForcedEvent
event = {
active: boolean;
}
PublisherVideoNetworkStatsEvent
Um Videodaten für einen Publisher abzurufen, registrieren Sie einen Ereignis-Listener für den OTPublisher.
videoNetworkStats Ereignis. Das Objekt hat folgende Struktur:
event = [
{
connectionId: string,
subscriberId: string,
videoPacketsLost: number,
videoBytesSent: number,
videoPacketsSent: number,
timestamp: number,
}
];
Beachten Sie, dass dieses Ereignisobjekt ein Array von Objekten ist. Weitere Informationen finden Sie in der Dokumentation zum
OTPublisher. videoNetworkStats Veranstaltung.
PublisherAudioNetworkStatsEvent
Um Audiodaten für einen Publisher abzurufen, registrieren Sie einen Ereignis-Listener für den OTPublisher.
audioNetworkStats Ereignis. Das Objekt hat folgende Struktur:
event = [
{
connectionId: string,
subscriberId: string,
audioPacketsLost: number,
audioPacketsSent: number,
audioBytesSent: number,
timeStamp: number,
}
];
Beachten Sie, dass dieses Ereignisobjekt ein Array von Objekten ist. Weitere Informationen finden Sie in der Dokumentation zum
OTPublisher. audioNetworkStats Veranstaltung.
RtcStatsReportEvent
Die Struktur des Objekts finden Sie unten:
event = {
connectionId: string,
jsonArrayOfReports: string,
};
SessionConnectEvent
event = {
sessionId: string;
connection: {
connectionId: string,
creationTime: string,
data: string,
},
}
SessionDisconnectEvent
event = {
sessionId: string;
}
SignalEvent
Das OTSession-Objekt sendet eine signal Ereignis, wenn ein Signal empfangen wird.
Siehe die Leitfaden für Signalisierungsentwickler.
Das Ereignisobjekt verfügt über die folgenden Eigenschaften:
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
Die Struktur des Objekts finden Sie unten:
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,
};
SubscriberAudioLevelEvent
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'
},
};
VideoNetworkStatsEvent
Die Struktur des Objekts finden Sie unten:
event = {
senderStats: {
connectionMaxAllocatedBitrate: number,
connectionEstimatedBandwidth: number
},
videoPacketsLost: number,
videoBytesReceived: number,
videoPacketsReceived: number,
timestamp: number
};
SubscriberRtcStatsReportEvent
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
};
PublisherRtcStatsReportEvent
event = [
connectionId: string,
jsonArrayOfReports: string
];