【发布时间】:2023-04-01 08:18:02
【问题描述】:
我有一个连接到显示器的第二代 Chromecast。我正在从 Chromecast 接收 1080p60。
Cast documentation 在多个地方声明 UI 的分辨率为 720p:
虽然 Chromecast 在 720p 图形平面上显示接收器页面,但包括 Android TV 在内的其他 Cast 平台可能会显示高达 1080p 的页面。
还有,media formats 上的这条注释:
图像的显示尺寸限制为 720p (1280x720)。图像应优化至 1280x720 或更小,以避免在接收器设备上缩小。
确实,如果您在接收器应用程序上打开调试控制台,您可以看到window.innerWidth 是1280,而window.innerHeight 是720。
这让我相信视频被硬件解码到它自己的层,直接到视频输出,并且基于浏览器的 UI 以较低的分辨率呈现并覆盖在它上面。但随后,我在 DOM 本身中看到了 <video> 元素,并想知道它是如何工作的。有一瞬间,我以为它可能是在控制一些后台硬件播放器,但是这个视频可以用 CSS 来操作,所以这没有任何意义。
我在 Web UI 中添加了一个 1920x1080 的测试图像并进行了捕捉。
我不确定这是否会出现在 Stack Overflow 的图像视图中,但测试图像是完美的。我可以看到每一行,这意味着图像实际上以 1920x1080 显示。
因此,文档似乎并不能说明全部情况。 UI 实际上是以输出分辨率呈现的……在我的例子中是 1920x1080。但它使用 1280x720 的虚拟像素大小。我宁愿访问完整的分辨率,所以我添加了适当的视口元标记,就像我为移动设备所做的那样:
<meta name="viewport" content="width=device-width, initial-scale=1" />
不幸的是,这没有效果!视口仍然是 1280x720,即使它在现实中以更高的分辨率渲染。
有没有办法解决这个问题?
【问题讨论】:
-
我无法找到任何方法来找出屏幕的实际分辨率或更改它,但可能有帮助的一件事是
window.devicePixelRattio似乎设置为1.5on我的电视。乘以720*1.5... 1080。不知道这如何适用于我的超高清电视..
标签: chromecast google-cast google-cast-sdk