视频会议
This commit is contained in:
@@ -525,16 +525,19 @@ const hangup = async () => {
|
|||||||
leaving.value = true
|
leaving.value = true
|
||||||
try {
|
try {
|
||||||
// 云律视频咨询:发起人(小程序端用户)在 CreateRoomForInternal 时被加成 host,
|
// 云律视频咨询:发起人(小程序端用户)在 CreateRoomForInternal 时被加成 host,
|
||||||
// 用户挂机即视为整个咨询结束,直接 endMeeting 让另一端(律师 iframe)也收到 room.ended 退出。
|
// 用户挂机 = 咨询结束,无条件 endMeeting 让律师 iframe 收到 room.ended 自动退出。
|
||||||
// 非 host 兜底走 leave,避免异常会议状态下挂机被卡住。
|
// 不依赖 meetingStore.isHost(host_id/userId 偶发类型不一致导致误判 false 只走 leave,
|
||||||
if (meetingStore.isHost) {
|
// 表现就是"用户端挂机后 PC 还停在会议里")。
|
||||||
await meetingStore.endMeeting()
|
console.log('[CloudLawVideoCall] hangup -> endMeeting', {
|
||||||
} else {
|
roomCode: meetingStore.currentRoom?.room_code,
|
||||||
await meetingStore.leave()
|
hostId: meetingStore.currentRoom?.host_id,
|
||||||
}
|
myUserId: userStore.userInfo?.id || userStore.userInfo?.user_id,
|
||||||
|
isHostComputed: meetingStore.isHost
|
||||||
|
})
|
||||||
|
await meetingStore.endMeeting()
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.warn('[CloudLawVideoCall] hangup failed', err)
|
console.warn('[CloudLawVideoCall] endMeeting failed, fallback leave', err)
|
||||||
// endMeeting 失败时兜底 leave,至少自己先退出
|
// endMeeting 失败时兜底 leave,至少自己先退出,避免卡死
|
||||||
try { await meetingStore.leave() } catch (leaveErr) { console.warn('[CloudLawVideoCall] fallback leave failed', leaveErr) }
|
try { await meetingStore.leave() } catch (leaveErr) { console.warn('[CloudLawVideoCall] fallback leave failed', leaveErr) }
|
||||||
} finally {
|
} finally {
|
||||||
ended.value = true
|
ended.value = true
|
||||||
|
|||||||
Reference in New Issue
Block a user