【m】状态图标修改

This commit is contained in:
zhangzheng
2026-03-12 15:33:34 +08:00
parent 80ff58ba15
commit 30f16592b4
3 changed files with 102 additions and 23 deletions

View File

@@ -233,23 +233,31 @@ class CallStateManager {
// 如果是关闭视频,释放摄像头资源
if (mediaType === 'video' && !value && this.state.localStream) {
this.state.session.localUser.mediaState.video = false;
this.state.localStream.getTracks().forEach(track => {
if (track.kind === 'video') {
track.stop();
}
});
// 发送媒体状态到服务器
this.emitMediaStateChange();
}
// 如果是音频状态变化,控制本地音频轨道
if (mediaType === 'audio' && this.state.localStream) {
this.state.session.localUser.mediaState.audio = value;
this.state.localStream.getTracks().forEach(track => {
if (track.kind === 'audio') {
track.enabled = value;
}
});
// 发送媒体状态到服务器
this.emitMediaStateChange();
}
// 通知UI更新用户列表
this.notify({ type: 'USER_LIST_UPDATE', localUser: this.state.session.localUser, remoteUser: this.state.session.remoteUser });
}
@@ -362,12 +370,17 @@ class CallStateManager {
};
// 初始化 RenderStreaming 实例后
this.renderstreaming.onMessage = (data) => {
console.log('收到聊天:', data);
console.log('收到消息:', data);
if (data.type === 'chat-message') {
// 处理聊天
// 添加到列表并更新UI
chatMessage.handleChatMessage(data.message);
} else if (data.type === 'media-state-changed') {
// 处理媒体状态变化
console.log('收到媒体状态变化:', data.data);
// 更新远程用户的媒体状态
this.updateRemoteMedia(data.data);
} else if (data.type === 'on-message') {
}
@@ -450,23 +463,9 @@ class CallStateManager {
...mediaState
};
this.notify({ type: 'REMOTE_MEDIA_CHANGE', mediaState });
// 通知UI更新用户列表
this.notify({ type: 'USER_LIST_UPDATE', localUser: this.state.session.localUser, remoteUser: this.state.session.remoteUser });
}
// 添加消息
addMessage(message) {
chatMessage.addMessage(message);
}
// 发送聊天消息
sendChatMessage(message) {
chatMessage.sendChatMessage(message, this.renderstreaming);
}
// 切换侧边栏
toggleSidebar() {
chatMessage.toggleSidebar();
}
// 结束通话
endCall() {
clearInterval(this.durationInterval);
@@ -801,7 +800,13 @@ class CallStateManager {
...this.state.session.localUser.mediaState
};
console.log('[WebSocket Emit] media-state-changed:', payload);
// socket.emit('media-state-changed', payload);
// 使用WebRTC发送媒体状态变化
if (this.renderstreaming) {
this.renderstreaming.sendMessage({
type: 'media-state-changed',
data: payload
});
}
}
// 显示统计信息