【问题标题】:why SurfaceView is not deprecated?为什么 SurfaceView 不被弃用?
【发布时间】:2015-08-11 02:40:22
【问题描述】:

我知道 TextureView 是在 ICS 之后出现的。 但是,SurfaceView 在 ICS 中并未被弃用。

SurfaceView 有打孔结构,所以有很多限制点。 不能堆叠两个SurfaceView,不能翻译等等。

为什么尽管出现了 TextureView,但 SurfaceView 没有被弃用?

【问题讨论】:

    标签: android surfaceview textureview


    【解决方案1】:

    SurfaceView 速度更快,并且可以处理受 DRM 保护的视频。

    打孔结构是必要的,因为SurfaceView的Surface是由系统合成器直接处理的。对于 TextureView,您在 Surface 上绘图,该 Surface 在应用程序内转换为 GL 纹理,应用程序第二次将其渲染到 View 层上。所以有一个额外的副本。

    对于受 DRM 保护的视频,不允许任何用户或系统代码(甚至 Linux 内核)查看未加密的像素。只有视频解码器和显示硬件。因为 SurfaceView 只是转发引用,而不接触实际数据,所以这是可行的。

    更多详情,请参阅graphics architecture doc。

    【讨论】:

    • 感谢您的详细解释。简化,由于 SurfaceView 是直接处理数据(没有副本),SurfaceView 需要进行 DRM 或轻量级处理。那么,为什么没有“复制”或“直接绘制”选项?两个组件很难结合吗?我的意思是像标志选项。
    • 我不确定你在问什么。这两个类履行不同的角色——一个用于应用内渲染,具有很多控制但对性能的影响很小,另一个是流线型但控制有限。听起来你想要介于两者之间的东西?
    猜你喜欢
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 2019-03-09
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多