Skip to content

Commit 2d618c8

Browse files
committed
fix(recording): properly shutdown stream
1 parent 1ecfc48 commit 2d618c8

File tree

1 file changed

+7
-17
lines changed

1 file changed

+7
-17
lines changed

packages/client/logic/recording.ts

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ export function useRecording() {
6565

6666
if (showAvatar.value) {
6767
showAvatar.value = false
68-
closeCameraStream()
68+
if (!recording.value)
69+
closeStream(streamCamera)
6970
}
7071
else {
7172
await startCameraStream()
@@ -96,29 +97,19 @@ export function useRecording() {
9697

9798
watch(currentCamera, async(v) => {
9899
if (v === 'none') {
99-
closeCameraStream()
100+
closeStream(streamCamera)
100101
}
101102
else {
102103
if (recording.value)
103104
return
104105
// restart camera stream
105106
if (streamCamera.value) {
106-
await closeCameraStream()
107+
closeStream(streamCamera)
107108
await startCameraStream()
108109
}
109110
}
110111
})
111112

112-
async function closeCameraStream() {
113-
if (recording.value)
114-
return
115-
116-
if (streamCamera.value) {
117-
closeStream(streamCamera)
118-
streamCamera.value = undefined
119-
}
120-
}
121-
122113
async function startRecording() {
123114
await startCameraStream()
124115

@@ -163,19 +154,18 @@ export function useRecording() {
163154
const url = URL.createObjectURL(blob)
164155
download(getFilename('camera'), url)
165156
window.URL.revokeObjectURL(url)
166-
closeStream(streamCamera)
167157
recorderCamera.value = undefined
158+
if (!showAvatar.value)
159+
closeStream(streamCamera)
168160
})
169161
recorderSlides.value?.stopRecording(() => {
170162
const blob = recorderSlides.value!.getBlob()
171163
const url = URL.createObjectURL(blob)
172164
download(getFilename('screen'), url)
173165
window.URL.revokeObjectURL(url)
174-
closeCameraStream()
166+
closeStream(streamSlides)
175167
recorderSlides.value = undefined
176168
})
177-
178-
console.log('stopped')
179169
}
180170

181171
function closeStream(stream: Ref<MediaStream | undefined>) {

0 commit comments

Comments
 (0)