Как записывать видео с веб-камеры и продолжать запись на нескольких страницах - PullRequest
3 голосов
/ 27 мая 2020

В настоящее время я пытаюсь найти способ записи видео с веб-камеры, используя WebRT C и getUserMedia . Мне удалось записать видео за определенное время, но я хотел начать запись на первой странице приложения и продолжать запись, пока пользователь не нажмет определенную кнопку после нескольких страниц. Вот что происходит: когда пользователь переходит на другую страницу, запись останавливается, даже если время не истекло.

Я как бы новичок в разработке интерфейса и использую Node.js. Есть ли способ использовать веб-камеру в глобальном масштабе через приложение?

Вот код, который я использовал для простой записи в HTML:

navigator.mediaDevices.getUserMedia({
    video: true,
    audio: true
  }).then(async function(stream) {
    let recorder = RecordRTC(stream, {
        type: 'video'
    });
    recorder.startRecording();

    const sleep = m => new Promise(r => setTimeout(r, m));
    await sleep(10000);

    recorder.stopRecording(function() {
        let blob = recorder.getBlob();
        invokeSaveAsDialog(blob);
        var url = URL.createObjectURL(blob);
        document.querySelector("video").src = url;
    });
  });

1 Ответ

2 голосов
/ 27 мая 2020

Не совсем так, потому что запись запускается кодом, запущенным на веб-странице, загруженной в браузер. Если эта страница больше не загружается (потому что пользователь перешел в свое окно на другую страницу), то, очевидно, этот код должен перестать работать. Таким образом, вам придется каждый раз начинать новый сеанс записи.

Если у вас было одностраничное приложение, в котором вся страница никогда не обновлялась, а изменения содержимого загружались через AJAX, вы могли бы его реализовать, но если на вашем сайте разные страницы, то это сложно посмотрите, как вы успешно реализуете свое требование.

...