Не удается получить звук динамика и микрофона при работе с chrome.desktopCapture и RecortRTC - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь создать расширение Chrome, которое захватывает экран пользователя с аудио их динамика (компьютерное аудио) и аудио с микрофона. Используя примеры из RecordRTC, я сложил нижеприведенное ниже, однако, когда я открываю записанный файл .webm, я вообще не слышу никаких звуков.

Есть ли что-то еще, что я должен сделать, чтобы получить аудио?

Ниже приведен код моего фонового скрипта с некоторыми удаленными разделами, чтобы сделать его более понятным. Когда кто-то нажимает кнопку начала записи, вызывается функция startRecording().

const OPTIONS = {
  type: 'video',
  disableLogs: false,
  mimeType: 'video/webm'
}

const captureUserMedia = callback => {
  chrome.desktopCapture.chooseDesktopMedia(['screen', 'window', 'audio'], chromeMediaSourceId => {
    const options = {
      audio: {
        mandatory: {
          chromeMediaSource: 'desktop',
          chromeMediaSourceId: chromeMediaSourceId,
          echoCancellation: true
        },
        optional: []
      },
      video: {
        mandatory: {
          chromeMediaSource: 'desktop',
          chromeMediaSourceId: chromeMediaSourceId
        },
        optional: []
      }
    };
    navigator.mediaDevices.getUserMedia(options)
      .then(callback)
      .catch(err => new Error(err));
    });
};

const startRecording = () => {
  captureUserMedia(mediaStream => {
    state.recordData = RecordRTC(mediaStream, OPTIONS);
    state.mediaStream = mediaStream;
    state.recordData.startRecording();
  });
}

const stopRecording = () => {
  state.recordData.stopRecording(function(videoURL) {
    chrome.tabs.create({ url: 'show-video.html?video=' + videoURL });
  });
  state.mediaStream.getTracks().forEach(track => track.stop());
}

1 Ответ

0 голосов
/ 28 июня 2018

Очевидно, что это не ошибка, а проблема самой MacOS. Chrome знает об этом, но, похоже, не планирует его исправлять: bugs.chromium.org / issue / 603259

...