看起来像使用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)
});
我有同样的问题,但如果用AudioContext
参数创建LatencyHint
,波动的声音似乎消失了:
new AudioContext({LatencyHint: 'playback'});
在这里你可以阅读更多关于它:MDN AudioContext.AudioContext()
latencyHint:此值标识播放类型,这会影响音频输出延迟和功耗之间的权衡。首选值是“平衡”,“交互式”和“回放”,默认值为“交互式”。这些值意味着“平衡音频输出延迟和功耗”,“尽可能提供最低音频输出延迟而不会出现故障”,并“优先考虑持续播放,而不会中断音频输出延迟”。您还可以为延迟秒数指定double值,以实现更精细的控制。