Events - 事件
JitsiMeetExternalAPI
对象实现了 EventEmitter API,用于发出和监听事件。
您可以使用 addListener
方法向嵌入的 Jitsi Meet 添加事件监听器:
api.addListener(event, listener);
如果您想移除一个监听器,可以使用 removeListener
方法:
api.removeListener(event, listener);
event
参数是一个字符串对象,表示事件的名称。
listener
参数是一个函数对象,带有一个参数,当事件发生时会创建一个通知,并附带相关事件数据。
目前支持以下事件:
cameraError
提供有关 Jitsi Meet 无法访问会议摄像头的事件通知。
监听器接收一个具有以下结构的对象:
{
type: string, // 表示错误的总体类型的常量。
message: string // 有关错误的附加信息。
}
avatarChanged
提供有关参与者头像变化的事件通知。
监听器接收一个具有以下结构的对象:
{
id: string, // 改变头像的参与者的 ID。
avatarURL: string // 新的头像 URL。
}
audioAvailabilityChanged
提供有关音频可用状态变化的事件通知。
监听器接收一个具有以下结构的对象:
{
available: boolean // 新的可用状态 - 布尔值
}
audioMuteStatusChanged
提供有关音频静音状态变化的事件通知。
监听器接收一个具有以下结构的对象:
{
muted: boolean // 新的静音状态 - 布尔值
}
breakoutRoomsUpdated
提供有关突发房间变化的通知。
监听器接收一个具有以下结构的对象:
{
[roomId]: {
id: string,
jid: string,
name: string,
isMainRoom: true | undefined,
participants: {
[participantJid]: {
displayName: string,
jid: string,
role: string
}
}
},
...
}
browserSupport
提供有关当前浏览器支持的事件通知。
监听器接收一个具有以下结构的对象:
{
supported: boolean
}
contentSharingParticipantsChanged
提供当前正在共享屏幕的参与者 ID 的实时列表。
监听器接收一个具有以下结构的对象:
{
data: ["particId1", "particId2", ...]
}
customNotificationActionTriggered
当执行 showNotification 命令时定义的自定义操作被触发时调用的回调函数。
监听器会接收到一个具有以下结构的对象:
{
data: {
id: string // 被触发操作的 uuid
}
}
dataChannelOpened
指示数据通道已打开,因此可以通过它发送消息。
endpointTextMessageReceived
提供通过数据通道接收到的文本消息的事件通知。
监听器接收一个具有以下结构的对象:
{
senderInfo: {
jid: string, // 发送者的 jid
id: string // 发送者的参与者 ID
},
eventData: {
name: string, // 数据通道事件的 名称:`endpoint-text-message`
text: string // 来自发送者的接收到的文本
}
}
nonParticipantMessageReceived
提供有关非参与者发送的消息的事件通知,例如自定义 prosody 消息。
监听器接收一个具有以下结构的对象:
{
id: string, // 消息的 ID,可能为 null
message: string // 接收到的消息
}
faceLandmarkDetected
提供有关检测到面部地标的事件通知。
监听器接收一个具有以下结构的对象:
{
faceBox: {
left: number, // 面部边界框距离左侧视频边缘的百分比
right: number, // 面部边界框距离右侧视频边缘的百分比
width: number // 面部边界框宽度占总视频宽度的百分比
}, // 如果未传递 config.faceLandmarks.faceCenteringThreshold,则可能为未定义
faceExpression: string // 请检查 https://github.com/jitsi/jitsi-meet/blob/master/react/features/face-landmarks/constants.js#L3 获取可用值
}
errorOccurred
提供有关发生的错误的事件通知。
监听器接收一个具有以下结构的对象:
{
details: Object?, // 附加错误细节
message: string?, // 错误消息
name: string, // 错误的编码名称
type: string, // 错误类型/来源,可能为:'CONFIG','CONNECTION','CONFERENCE'
isFatal: boolean // 这是否是导致重连覆盖的致命错误
}
knockingParticipant
提供有关大厅中敲门参与者的事件通知。
监听器接收一个具有以下结构的对象:
{
participant: {
// 当前在大厅敲门的参与者的 ID 和名称
id: string,
name: string
}
}
largeVideoChanged
提供有关大视频显示变化的事件通知。
监听器接收一个具有以下结构的对象:
{
id: string // 现在在大视频舞台视图中的参与者的 ID。
}
log
提供日志事件通知,日志级别 是 config.js 文件中 apiLogLevels
属性中指定的值之一(如果未指定,则不会触发事件)。
监听器接收一个具有以下结构的对象:
{
logLevel: string, // 表示日志类型的常量(info, error, debug, warn)。
args: string // 附加日志信息。
}
micError
提供有关 Jitsi Meet 与麦克风访问问题的事件通知。
监听器接收一个具有以下结构的对象:
{
type: string, // 表示错误的总体类型的常量。
message: string // 有关错误的附加信息。
}
screenSharingStatusChanged
提供有关本地用户屏幕共享开启或关闭的事件通知。
监听器接收一个具有以下结构的对象:
{
on: boolean, // 是否开启屏幕共享
details: {
// 如果已知,屏幕共享的捕获来源。传递的值包括 'window','screen','proxy','device'。如果源类型未知或屏幕共享关闭,则会传递未定义的值。
sourceType: string|undefined
}
}
dominantSpeakerChanged
提供有关主导发言者变化的事件通知。
监听器接收一个具有以下结构的对象:
{
id: string // 新主导发言者的参与者 ID
}
raiseHandUpdated
提供有关参与者举手/放下手的事件通知。
监听器将接收一个具有以下结构的对象:
{
id: string, // 举手/放下手的用户的参与者 ID
handRaised: number // 当手被举起时的时间戳,放下手时为 0。
}
tileViewChanged
提供有关进入或退出瓷砖视图布局模式的事件通知。
监听器接收一个具有以下结构的对象:
{
enabled: boolean, // 瓷砖视图是否未显示
}
chatUpdated
提供有关聊天状态更新的事件通知。
监听器接收一个具有以下结构的对象:
{
isOpen: boolean, // 聊天面板是否打开
unreadCount: number // 未读消息计数
}
incomingMessage
提供有关收到聊天消息的事件通知。
监听器接收一个具有以下结构的对象:
{
from: string, // 发送该消息的用户 ID
nick: string, // 发送该消息的用户昵称
privateMessage: boolean, // 是否为私聊消息(true 表示私聊,false 表示群聊)
message: string // 消息内容文本
stamp: string // 消息的时间戳,字符串格式(ISO-8601 标准)
}
mouseEnter
提供鼠标进入 iframe 时的事件通知。
监听器接收一个具有以下结构的对象,基于 MouseEvent:
{
event: {
clientX,
clientY,
movementX,
movementY,
offsetX,
offsetY,
pageX,
pageY,
x,
y,
screenX,
screenY
}
}
mouseLeave
提供鼠标离开 iframe 时的事件通知。
监听器接收一个具有以下结构的对象,基于 MouseEvent:
{
event: {
clientX,
clientY,
movementX,
movementY,
offsetX,
offsetY,
pageX,
pageY,
x,
y,
screenX,
screenY
}
}
mouseMove
提供鼠标在 iframe 内移动时的事件通知。
该事件在可以通过覆盖 config.js 中的 mouseMoveCallbackInterval 属性进行配置的间隔内触发。
监听器接收一个具有以下结构的对象,基于 MouseEvent:
{
event: {
clientX,
clientY,
movementX,
movementY,
offsetX,
offsetY,
pageX,
pageY,
x,
y,
screenX,
screenY
}
}
participantMenuButtonClick
提供关于参与者上下文菜单按钮被点击的事件通知。
监听器接收一个具有以下结构 的对象:
{
key: string, // 被按下的按钮键。键是 `toolbarButtons` 配置中定义的,
participantId: string, // 被点击按钮的参与者的 ID,
preventExecution: boolean // 按钮点击的执行是否被阻止
}
toolbarButtonClicked
提供有关工具栏按钮被点击的事件通知,并指示点击操作是否已被执行。
要启用此通知,你需要将该按钮添加到 buttonsWithNotifyClick
配置项 中。
监听器接收一个具有以下结构的对象:
{
key: string, // 被按下的按钮键。键是 `toolbarButtons` 配置中定义的,
preventExecution: boolean // 点击例程执行是否被阻止。
}
outgoingMessage
提供有关发送聊天消息的事件通知。
监听器接收一个具有以下结构的对象:
{
message: string, // 消息文本
privateMessage: boolean // 是否为私人消息或群组消息
}
displayNameChange
提供有关显示名称变化的事件通知。
监听器接收一个具有以下结构的对象:
{
id: string, // 改变显示名称的参与者的 ID
displayname: string // 新的显示名称
}
deviceListChanged
提供有关设备列表变化的事件通知。
监听器接收一个具有以下结构的对象:
{
devices: Object // 新的可用设备列表。
}
注意: device
对象的格式与 getAvailableDevices
结果格式相同。
emailChange
提供有关电子邮件变化的事件通知。
监听器接收一个具有以下结构的对象:
{
id: string, // 改变电子邮件的参与者的 ID
email: string // 新的电子邮件
}
feedbackSubmitted
提供有关会议反馈提交的事件通知:
{
error: string // 提交过程中发生的错误(如果有)。
}
filmstripDisplayChanged
提供有关电影条更新的可见性通知:
{
visible: boolean // 电影条是否显示或隐藏。
}
moderationStatusChanged
提供有关管理状态变化的事件通知。
{
mediaType: string, // 管理更改的媒体类型。
enabled: boolean // 管理是否启用。
}
moderationParticipantApproved
提供有关参与者管理批准的事件通知。
{
id: string, // 获得批准的参与者的 ID。
mediaType: string // 参与者获得批准的媒体类型。
}
moderationParticipantRejected
提供有关参与者管理拒绝的事件通知。
{
id: string, // 被拒绝的参与者的 ID。
mediaType: string // 参与者被拒绝的媒体类型。
}
notificationTriggered
提供有关应用通知发生的事件通知。
{
title: string, // 通知标题。
description: string // 通知描述。
}
participantJoined
提供有关新参与者加入房间的事件通知。
监听器接收一个具有以下结构的对象:
{
id: string, // 参与者的 ID
displayName: string // 参与者的显示名称
}
participantKickedOut
提供有关参与者被移出房间的事件通知。
监听器接收一个具有以下结构的对象:
{
kicked: {
id: string, // 被移出房间的参与者的 ID
local: boolean // 参与者是否为本地参与者
},
kicker: {
id: string // 移出其他参与者的参与者的 ID
}
}
participantLeft
提供有关参与者离开会议室的事件通知。
监听 器接收一个具有以下结构的对象:
{
id: string // 参与者的 ID
}
participantRoleChanged
提供关于本地用户角色变化的事件通知(例如,无 、主持人、参与者)。
监听器接收一个具有以下结构的对象:
{
id: string, // 参与者的 ID
role: string // 参与者的新角色
}
participantsPaneToggled
提供关于参与者面板状态变化的事件通知。
监听器接收一个具有以下结构的对象:
{
open: boolean // 面板是否打开
}
passwordRequired
提供关于参与者无法加入受密码保护的房间的事件通知。
videoConferenceJoined
提供有关本地用户加入视频会议的事件通知。
监听器接收一个具有以下结构的对象:
{
roomName: string, // 会议的房间名称
id: string, // 本地参与者的 ID
displayName: string, // 本地参与者的显示名称
avatarURL: string, // 本地参与者的头像 URL
breakoutRoom: boolean // 当前房间是否为分组讨论室
visitor: boolean // 当前用户是不是访客
}
videoConferenceLeft
提供有关本地用户离开视频会议的事件通知。
监听器接收一个具有以下结构的对象:
{
roomName: string // 会议的房间名称
}
conferenceCreatedTimestamp
提供视频会议开始时间的通知。
监听器接收一个具有以下结构的对象:
{
timestamp: timestamp // 会议开始的时间
}
videoAvailabilityChanged
提供关于视频可用性状态变化的事件通知。
监听器接收一个具有以下结构的对象:
{
available: boolean // 新的可用状态 - 布尔值
}
videoMuteStatusChanged
提供关于视频静音状态变化的事件通知。
监听器接收一个具有以下结构的对象:
{
muted: boolean // 新的静音状态 - 布尔值
}
videoQualityChanged
提供关于视频质量设置变化的事件通知。
监听器接收一个具有以下结构的对象:
{
videoQuality: number // 与新的视频质量设置相关的分辨率高度。
}
readyToClose
提供 Jitsi Meet 准备关闭时的事件通知(即,挂断操作已完成)。
recordingLinkAvailable
提供关于录制链接可用的事件通知。
监听器接收一个具有以下结构的对象:
{
link: string, // 录制链接
ttl: number // 录制链接的有效时间
}
recordingStatusChanged
提供关于录制状态变化的事件通知。
监听器接收一个具有以下结构的对象:
{
on: boolean // 新的录制状态 - 布尔值,
mode: string // 录制模式,`local`、`stream` 或 `file`,
error: string | undefined // 如果录制失败的错误类型,否则为未定义
transcription: boolean // 是否激活了转录
}
subjectChange
提供关于会议主题变化的事件通知。
监听器接收一个具有以下结构的对象:
{
subject: string // 新主题
}
suspendDetected
提供有关检测到主机计算机中的挂起事件的通知。
peerConnectionFailure
通知外部应用程序 PeerConnection 丢失连接。仅在 PC failed
但与 rtcstats 服务器仍 保持连接时触发,表示在应用与 JVB 服务器或在 P2P 情况下的远程对等方之间建立链接时出现问题。仅在启用 rtcstats 时触发。
{
// PC 的类型,Peer2Peer 或 JVB 连接。
isP2P: boolean,
// 此连接是否之前已连接。如果是,则可能意味着
// 连接中断;如果不是,则很可能意味着应用无法到达
// JVB 服务器或在 P2P 的情况下,无法到达其他对等方。
wasConnected: boolean
}
transcribingStatusChanged
提供有关转录过程状态变化的事件通知。
监听器接收一个具有以下结构的对象:
{
on: boolean,
}
transcriptionChunkReceived
提供关于新转录块可用的事件通知。
监听器接收一个具有以下结构的对象:
{
// 转录语言
language: string,
// 此块的 ID。
messageID: string,
// 参与者信息
participant: {
avatarUrl: string,
id: string,
name: string,
},
// 如果转录是最终的,文本将位于这里。
final: string,
// 如果转录不是最终的,但准确性高,文本将位于这里。
stable: string,
// 如果转录不是最终的,但准确性低,文本将位于这里。
unstable: string,
}
whiteboardStatusChanged
提供有关白板变化的事件通知。
监听器接收一个具有以下结构的对象:
{
status: string // 新的白板状态
}
p2pStatusChanged
提供有关连接类型变化的事件通知。
监听器接收一个具有以下结构的对象:
{
isP2p: boolean|null // 新的连接类型是否为 P2P
}
audioOnlyChanged
当“仅音频”模式的状态发生变化时,触发该事件通知。
事件监听器会接收到一个对象,其结构如下:
{
audioOnlyChanged: boolean // 表示“仅音频”模式当前是启用(true)还是禁用(false)。
}