Appearance
用户事件
用户事件用于监听远端用户的上下线状态和用户相关的状态变化。
remoteUserOnLineNotify
远端用户上线通知事件。当有用户加入频道时触发。
事件签名
typescript
remoteUserOnLineNotify: (uid: string, elapsed: number) => void参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| uid | string | 上线用户的 ID |
| elapsed | number | 用户加入频道时的耗时(ms) |
使用示例
javascript
engine.on('remoteUserOnLineNotify', (uid, elapsed) => {
console.log('用户上线:', uid, '耗时:', elapsed + 'ms');
// 更新用户列表 UI
addUserToList(uid);
// 可以在此时为新用户创建视频显示区域
createVideoContainer(uid);
});remoteUserOffLineNotify
远端用户下线通知事件。当有用户离开频道时触发。
事件签名
typescript
remoteUserOffLineNotify: (uid: string, reason: AliRtcUserOfflineReason) => void参数说明
| 参数 | 类型 | 描述 |
|---|---|---|
| uid | string | 下线用户的 ID |
| reason | AliRtcUserOfflineReason | 下线原因 |
使用示例
javascript
engine.on('remoteUserOffLineNotify', (uid, reason) => {
console.log('用户下线:', uid, '原因:', reason);
// 从用户列表中移除
removeUserFromList(uid);
// 清理该用户的视频显示区域
removeVideoContainer(uid);
// 根据下线原因进行不同处理
switch (reason) {
case AliRtcEngine.AliRtcUserOfflineReason.AliRtcUserOfflineQuit:
console.log('用户主动离开');
break;
case AliRtcEngine.AliRtcUserOfflineReason.AliRtcUserOfflineDropped:
console.log('用户网络异常离开');
break;
case AliRtcEngine.AliRtcUserOfflineReason.AliRtcUserOfflineKickedByServer:
console.log('用户被服务器踢出');
break;
}
});用户状态事件
remoteUserAudioMuted
远端用户音频静音状态变化事件。
typescript
remoteUserAudioMuted: (uid: string, muted: boolean) => void参数说明:
uid: 用户 IDmuted: 是否静音,true 表示静音,false 表示取消静音
javascript
engine.on('userAudioMuted', (uid, muted) => {
console.log(`用户 ${uid} 音频${muted ? '静音' : '取消静音'}`);
// 更新 UI 显示音频状态
updateUserAudioStatus(uid, muted);
});remoteUserVideoMuted
远端用户视频静音状态变化事件。
typescript
remoteUserVideoMuted: (uid: string, muted: boolean) => void参数说明:
uid: 用户 IDmuted: 是否关闭视频,true 表示关闭,false 表示开启
javascript
engine.on('userVideoMuted', (uid, muted) => {
console.log(`用户 ${uid} 视频${muted ? '关闭' : '开启'}`);
// 更新 UI 显示视频状态
updateUserVideoStatus(uid, muted);
if (muted) {
// 显示用户头像或占位图
showUserAvatar(uid);
} else {
// 隐藏头像,显示视频
hideUserAvatar(uid);
}
});remoteUserScreenShareMuted
远端用户屏幕共享状态变化事件。
typescript
remoteUserScreenShareMuted: (uid: string, muted: boolean) => void参数说明:
uid: 用户 IDmuted: 是否停止屏幕共享,true 表示停止,false 表示开始
javascript
engine.on('userScreenMuted', (uid, muted) => {
console.log(`用户 ${uid} ${muted ? '停止' : '开始'}屏幕共享`);
if (muted) {
// 隐藏屏幕共享显示区域
hideScreenShareContainer(uid);
} else {
// 显示屏幕共享显示区域
showScreenShareContainer(uid);
}
});