视频会议
This commit is contained in:
@@ -467,26 +467,27 @@ const acquireVideoTrack = async () => {
|
||||
}
|
||||
|
||||
const onMicToggle = async () => {
|
||||
pushDebug(`mic点击 loading=${audioLoading.value} leaving=${leaving.value} on=${audioEnabled.value} producer=${meetingStore.localProducers?.audio || 'null'}`)
|
||||
pushDebug(`mic点击 loading=${audioLoading.value} on=${audioEnabled.value} producer=${meetingStore.localProducers?.audio || 'null'}`)
|
||||
if (audioLoading.value || leaving.value) {
|
||||
pushDebug('mic 被 loading/leaving 拦住')
|
||||
return
|
||||
}
|
||||
audioLoading.value = true
|
||||
try {
|
||||
if (audioEnabled.value) {
|
||||
pushDebug('mic -> stopLocalAudio')
|
||||
await meetingStore.stopLocalAudio()
|
||||
pushDebug('mic stop 完成')
|
||||
if (meetingStore.localProducers?.audio) {
|
||||
// 已经有 producer:只 mute/unmute,不释放硬件(关键:WebView 释放后申请会被拒)
|
||||
pushDebug(`mic -> setLocalAudioMuted(${audioEnabled.value})`)
|
||||
await meetingStore.setLocalAudioMuted(audioEnabled.value)
|
||||
pushDebug(`mic mute 切换完成 enabled=${meetingStore.localAudioEnabled}`)
|
||||
} else {
|
||||
// 没 producer:兜底走完整流程,自己 getUserMedia 拿 track(用户手势作用域内)
|
||||
pushDebug('mic -> getUserMedia(audio)')
|
||||
const track = await acquireAudioTrack()
|
||||
pushDebug(`mic 拿到 track id=${track?.id?.slice(0, 8)} label=${track?.label || ''}`)
|
||||
pushDebug('mic -> startLocalAudio(track)')
|
||||
await meetingStore.startLocalAudio(undefined, track)
|
||||
pushDebug(`mic start 完成 enabled=${meetingStore.localAudioEnabled}`)
|
||||
localMediaError.value = ''
|
||||
}
|
||||
localMediaError.value = ''
|
||||
} catch (err) {
|
||||
pushDebug(`mic 报错: ${err?.name || ''} ${err?.message || err}`)
|
||||
localMediaError.value = `麦克风:${err?.message || err}`
|
||||
@@ -496,26 +497,25 @@ const onMicToggle = async () => {
|
||||
}
|
||||
|
||||
const onCamToggle = async () => {
|
||||
pushDebug(`cam点击 loading=${videoLoading.value} leaving=${leaving.value} on=${videoEnabled.value} producer=${meetingStore.localProducers?.video || 'null'}`)
|
||||
pushDebug(`cam点击 loading=${videoLoading.value} on=${videoEnabled.value} producer=${meetingStore.localProducers?.video || 'null'}`)
|
||||
if (videoLoading.value || leaving.value) {
|
||||
pushDebug('cam 被 loading/leaving 拦住')
|
||||
return
|
||||
}
|
||||
videoLoading.value = true
|
||||
try {
|
||||
if (videoEnabled.value) {
|
||||
pushDebug('cam -> stopLocalVideo')
|
||||
await meetingStore.stopLocalVideo()
|
||||
pushDebug('cam stop 完成')
|
||||
if (meetingStore.localProducers?.video) {
|
||||
pushDebug(`cam -> setLocalVideoMuted(${videoEnabled.value})`)
|
||||
await meetingStore.setLocalVideoMuted(videoEnabled.value)
|
||||
pushDebug(`cam mute 切换完成 enabled=${meetingStore.localVideoEnabled}`)
|
||||
} else {
|
||||
pushDebug('cam -> getUserMedia(video)')
|
||||
const track = await acquireVideoTrack()
|
||||
pushDebug(`cam 拿到 track id=${track?.id?.slice(0, 8)} label=${track?.label || ''}`)
|
||||
pushDebug('cam -> startLocalVideo(track)')
|
||||
await meetingStore.startLocalVideo(undefined, track)
|
||||
pushDebug(`cam start 完成 enabled=${meetingStore.localVideoEnabled}`)
|
||||
localMediaError.value = ''
|
||||
}
|
||||
localMediaError.value = ''
|
||||
} catch (err) {
|
||||
pushDebug(`cam 报错: ${err?.name || ''} ${err?.message || err}`)
|
||||
localMediaError.value = `摄像头:${err?.message || err}`
|
||||
|
||||
Reference in New Issue
Block a user