Skip to content

Commit

Permalink
fix(recording): properly shutdown stream
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu committed May 8, 2021
1 parent 1ecfc48 commit 2d618c8
Showing 1 changed file with 7 additions and 17 deletions.
24 changes: 7 additions & 17 deletions packages/client/logic/recording.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ export function useRecording() {

if (showAvatar.value) {
showAvatar.value = false
closeCameraStream()
if (!recording.value)
closeStream(streamCamera)
}
else {
await startCameraStream()
Expand Down Expand Up @@ -96,29 +97,19 @@ export function useRecording() {

watch(currentCamera, async(v) => {
if (v === 'none') {
closeCameraStream()
closeStream(streamCamera)
}
else {
if (recording.value)
return
// restart camera stream
if (streamCamera.value) {
await closeCameraStream()
closeStream(streamCamera)
await startCameraStream()
}
}
})

async function closeCameraStream() {
if (recording.value)
return

if (streamCamera.value) {
closeStream(streamCamera)
streamCamera.value = undefined
}
}

async function startRecording() {
await startCameraStream()

Expand Down Expand Up @@ -163,19 +154,18 @@ export function useRecording() {
const url = URL.createObjectURL(blob)
download(getFilename('camera'), url)
window.URL.revokeObjectURL(url)
closeStream(streamCamera)
recorderCamera.value = undefined
if (!showAvatar.value)
closeStream(streamCamera)
})
recorderSlides.value?.stopRecording(() => {
const blob = recorderSlides.value!.getBlob()
const url = URL.createObjectURL(blob)
download(getFilename('screen'), url)
window.URL.revokeObjectURL(url)
closeCameraStream()
closeStream(streamSlides)
recorderSlides.value = undefined
})

console.log('stopped')
}

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

0 comments on commit 2d618c8

Please sign in to comment.