gpt4 book ai didi

android - webview 是否像 videoview 一样创建一个单独的表面?

转载 作者:行者123 更新时间:2023-11-29 20:51:35 25 4
gpt4 key购买 nike

我有一个困惑,期待对此的一些评论。我假设 WebView 创建了一个单独的表面来绘制并且不使用 Activity 的默认表面来绘制。但是,在 Surfaceflinger 转储中,我没有看到使用 webview 时创建的新表面。

当我使用 videoview 进行类似的实验时,我看到创建了一个单独的表面。

在 webview 上,我也想播放视频,所以假设将创建一个单独的表面,因此表面分辨率将与视频分辨率相同。但如果它使用应用程序的表面,则视频的最大分辨率必须是 UI 分辨率。

在 chromium 代码中,我看到了单独表面的代码,但实际上我看不到创建的代码。

谁能帮我澄清一下。

谢谢。

最佳答案

如果你看VideoView inheritance graph你会注意到它继承自 SurfaceView,而 WebView does not ,因此 WebView 只能通过创建外部 SurfaceView 来实现。

如果你 search for usages of ExternalVideoSurface in WebView part of Chromium code ,你会注意到它只有在启用“video hole”时才启用,它旨在仅用于解码加密视频,WebView 需要进行“打洞”。有一个 System API-level setting in WebView启用此行为,但它有其自身的局限性,因此不建议一般使用。

关于android - webview 是否像 videoview 一样创建一个单独的表面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29028315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com