现象
通过 chrome 参加飞书会议,在分享屏幕的时候,分辨率非常地差,经常看不清。

影响
- 对于日常使用飞书的 linux 用户,包括使用浏览器或者使用贵司的 linux 客户端,都无法正常地使用屏幕分享功能。这使得我不得不放弃 linux ,假如我在公司的影响力足够,我想我一定会要求大家放弃使用飞书。
- 面试时,很多候选人不会安装客户端,live coding 很难进行。也不太好要求候选人一定装飞书,毕竟面试不通过的概率还是挺大的。
可能原因
经过调查,发现可能是由于调用 getDisplayMedia 这个 api 时,传入的 constraint 指定了 video.width.max 及 video.height.max 所致。

而我分享的 chrome 大小应为:2107x1367
这里面原因我认为有两层:
第一,传入的 constrain 中的 max 语义上没问题,但是值比较奇怪,不是标准的 720p / 1080p 之类的 ratio ,难道是根据 screen size ,转换到 1280 width ?但无论如何,我认为这个值偏小了。
第二,chrome 没有正确处理 max ,可以看到返回的 video stream 的 size 是等于 max 值的。
建议的解决方案
我在浏览器通过打断点魔改 getDisplayMedia 函数的参数 e 的值,去掉 max, 可以看到清晰度就没问题了。
- 在界面上给一个开关,可以让用户关掉 max 的限制,最好能自定义 framerate 之类的
- 如果开发这个功能太麻烦,能否去掉 max 的值的指定
- 如果产品上就不允许,能否在脚本级留个 hook ,我写个 gm 脚本去魔改也行
其它
为什么跑到 v2 来发贴,是我没找到有哪里可以带图发贴的途径,总是给我跳出来下载客户端的提示。上面也是个机器人,我认为机器人解决不了这个问题。