Я пытаюсь создать расширение 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());
}