javascript - 如何在 Chrome 扩展中的桌面捕获中添加音频

标签 javascript google-chrome audio google-chrome-extension

我已将音频添加到桌面屏幕转换的 chrome 扩展中。但音频质量不佳。作为,我记录选项卡的屏幕。我得到了高质量的视频和音频。如何在桌面录音中获得高质量的音频。这是我正在使用的

 chrome.desktopCapture.chooseDesktopMedia(['screen', 'window', 'audio'], function (streamId) {
        if (streamId) {
              var obj = {
               audio: {
                mandatory: {
                        chromeMediaSource: 'desktop',
                        chromeMediaSourceId: streamId
                    }
               },
               video: {
                optional: [],
                   mandatory: {
                      chromeMediaSource: 'desktop',
                      chromeMediaSourceId: streamId,
                      maxWidth: 2560,
                      maxHeight: 1440
                   }
               }
            };

            countdownRun(function () {
                window.navigator.mediaDevices.getUserMedia(obj).then(function(stream) {
    $streamVideo = stream;
    $timeStart = Date.now();
    var audio = stream.getAudioTracks()[0];
    var video = stream.getVideoTracks()[0];
    alert(JSON.stringify(audio))
    alert(JSON.stringify(video))
    if (micSound) {
        window.navigator.webkitGetUserMedia({audio: true}, function (s) {
            $streamAudio = s;
            audio = s.getAudioTracks()[0];
            captureUseNacl(audio, video);
        }, function (e) {
            chrome.tabs.create({url: 'mic.html'});
        })
    } else {
        captureUseNacl(audio, video);

        (function () {
            var v = document.createElement('video');
            document.body.appendChild(v);
            v.setAttribute('autoplay', '');
            v.addEventListener('canplay', function () {
                console.log('play video');
            }, false);
            v.src = window.URL.createObjectURL(stream);
            $streamElement = v;
        })()
    }
}).catch(function(err) {
alert(err)
    alert(JSON.stringify(err));
});;
            })
        }
    });

最佳答案

您可以通过删除 document.createElement 和 createObject 部分来完成此操作。它只不过是在录音中添加 Nose 。如果您检查音频的就绪状态,它就结束了。它应该是活的。同样,将 maxFrameRate 添加到视频部分以同步音频和视频。这是你的代码

chrome.desktopCapture.chooseDesktopMedia(['screen', 'window', 'audio'], function (streamId) {
        if (streamId) {

              var obj = {
               audio: {
                mandatory: {
                        chromeMediaSource: 'desktop',
                        chromeMediaSourceId: streamId
                    }
               },
               video: {
                optional: [],
                   mandatory: {
                      chromeMediaSource: 'desktop',
                      chromeMediaSourceId: streamId,
                      maxWidth: 2560,
                      maxHeight: 1440,
                      maxFrameRate:30
                   }
               }
            };

            countdownRun(function () {
                navigator.mediaDevices.getUserMedia(obj).then(function(stream) {
    $streamVideo = stream;
    $timeStart = Date.now();
    var audio = stream.getAudioTracks()[0];
    var video = stream.getVideoTracks()[0];
    console.log(stream);
    if (micSound) {
        window.navigator.webkitGetUserMedia({audio: true}, function (s) {
            $streamAudio = s;
            audio = s.getAudioTracks()[0];
            captureUseNacl(audio, video);
        }, function (e) {
            chrome.tabs.create({url: 'mic.html'});
        })
    } else {
        captureUseNacl(audio, video);
    }
}).catch(function(err) {
 console.log(err)
});
            })
        }
    });

关于javascript - 如何在 Chrome 扩展中的桌面捕获中添加音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44353801/

相关文章:

audio - 从视频制作音频播客的服务?

javascript - 替换固定背景上的图像

javascript - Jquery .val() == ** 添加多个可能的答案 **

javascript - 选择的 RIA 技术

iphone - 如何在设置页面中设置打开和关闭iphone声音的开关

javascript - 使用 console.log() 在 html5 音频 api 和 javascript 中记录音频幅度

javascript - Chrome 卡在打印预览上 "loading preview"POS 打印机

javascript - 谷歌浏览器在alert()函数上的不可预测的行为

linux - 如何实用地通过代理路由 watir?

jquery - 即使响应包含 ajax 请求的 'Set-Cookie' header ,cookie 也不存储在浏览器上