Chrome扩展程序:通过增加缓冲区大小来防止chrome.tabCapture.capture断断续续的声音?

时间:2017-08-28 01:16:51

标签: javascript google-chrome-extension web-audio web-audio-api

似乎使用chrome.tabCapture.capture进行音频捕捉会产生一些不稳定的声音。

此处已有bug report

是否可以增加接收捕获流的缓冲区以防止口吃,或者tabCapture方法是否已经定义了缓冲区?

基本捕捉:

chrome.tabCapture.capture({
        audio: true,
        video: false
    }, function (stream) {
        var ctx = new AudioContext();
        var output = ctx.createMediaStreamSource(stream);
        output.connect(ctx.destination)
    });

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,但如果您使用AudioContext参数创建LatencyHint,则不稳定的声音似乎消失了:

new AudioContext({LatencyHint: 'playback'});

您可以在此处详细了解:MDN AudioContext.AudioContext()

  

latencyHint:此值标识播放类型,这会影响音频输出延迟和功耗之间的权衡。首选值为“平衡”,“交互式”和“播放”,默认值为“交互式”。这些值意味着“平衡音频输出延迟和功耗”,“尽可能提供最低音频输出延迟而不会出现故障”,并且“优先考虑持续播放,而不会中断音频输出延迟”。您还可以为延迟的秒数指定double值,以实现更好的控制。