在Chrome浏览器之间进行屏幕共享演示取决于WebRTC时,我遇到了一个大问题。
环境: MacBookPro macOS 10.13.3 , chrome:64.0.3282.119
为了获取屏幕媒体sourceId,我还进行了chrome扩展,后台脚本.js代码如下:
var screenOptions = ['screen', 'window'];
......
chrome.desktopCapture.chooseDesktopMedia(screenOptions, port.sender.tab, onAccessApproved);

在我的html javascript中获取媒体sourceId时,请求屏幕媒体如下:
var constraints = {
video: {
mandatory: {
chromeMediaSource: 'desktop',
maxWidth: 1280,
maxHeight: 720,
maxFrameRate: 30,
minAspectRatio: 1.77,
chromeMediaSourceId: sourceId
}
}
};
navigator.mediaDevices.getUserMedia(constraints).then(gotLocalStream).catch(function (e) {
alert('getUserMedia() error: ' + e.name);
});

问题出现了:当我在chrome:// webrtc-internals中检查WebRTC统计数据时,我发现当我在主显示器中播放视频时googFrameRateInput非常低(< = 10),而当googFrameRateInput可以达到30时在主显示屏上什么都不做。
我也在windows chrome中尝试这个,即使播放视频,googFrameRateInput也可以达到24~30。
为什么googFrameRateInput在mac chrome中太低了?
非常感谢。
答案 0 :(得分:0)
更新电子版6.0.2解决了这个问题。