【m】增加未连接时的提示

This commit is contained in:
zhangzheng
2026-03-05 11:06:08 +08:00
parent 957ab561bf
commit dfc75172b8
2 changed files with 25 additions and 1 deletions

View File

@@ -91,6 +91,10 @@ class UIRenderer {
break; break;
case 'REMOTE_STREAM_OBTAINED': case 'REMOTE_STREAM_OBTAINED':
this.renderRemoteStream(state.remoteStream); this.renderRemoteStream(state.remoteStream);
// 当获取到远程流时,隐藏连接中提示
if (this.elements.connectingOverlay) {
this.elements.connectingOverlay.classList.add('hidden');
}
break; break;
case 'REMOTE_MEDIA_CHANGE': case 'REMOTE_MEDIA_CHANGE':
this.renderRemoteVideo(state.session.remoteUser); this.renderRemoteVideo(state.session.remoteUser);
@@ -106,12 +110,26 @@ class UIRenderer {
case 'NETWORK_CHANGE': case 'NETWORK_CHANGE':
this.renderNetworkStatus(changes.quality); this.renderNetworkStatus(changes.quality);
break; break;
case 'CALL_STATUS_CHANGE':
this.renderCallStatus(changes.status);
break;
case 'CALL_ENDED': case 'CALL_ENDED':
this.renderCallEnded(); this.renderCallEnded();
break; break;
} }
} }
// 渲染通话状态
renderCallStatus(status) {
if (this.elements.connectingOverlay) {
if (status === 'connecting') {
this.elements.connectingOverlay.classList.remove('hidden');
} else {
this.elements.connectingOverlay.classList.add('hidden');
}
}
}
// 渲染头部 // 渲染头部
renderHeader(session) { renderHeader(session) {
if (this.elements.headerTitle) { if (this.elements.headerTitle) {

View File

@@ -172,7 +172,9 @@ class CallStateManager {
async setUp(connectionId) { async setUp(connectionId) {
//TODO //TODO
this.connectionId = connectionId; // 获取连接ID this.connectionId = connectionId; // 获取连接ID
// 设置状态为连接中
this.state.session.status = 'connecting';
this.notify({ type: 'CALL_STATUS_CHANGE', status: 'connecting' });
// 确保本地流已经初始化 // 确保本地流已经初始化
if (!this.state.localStream) { if (!this.state.localStream) {
console.log('Local stream not available, waiting for initialization...'); console.log('Local stream not available, waiting for initialization...');
@@ -196,6 +198,10 @@ class CallStateManager {
// 连接建立回调 // 连接建立回调
this.renderstreaming.onConnect = () => { this.renderstreaming.onConnect = () => {
// 连接建立后更新状态为ongoing
this.state.session.status = 'ongoing';
this.notify({ type: 'CALL_STATUS_CHANGE', status: 'ongoing' });
if (this.state.localStream) { if (this.state.localStream) {
const tracks = this.state.localStream.getTracks(); // 获取本地媒体轨道 const tracks = this.state.localStream.getTracks(); // 获取本地媒体轨道
for (const track of tracks) { for (const track of tracks) {