android中的VideoView和TextureView和Suraceview有啥区别?
Posted
技术标签:
【中文标题】android中的VideoView和TextureView和Suraceview有啥区别?【英文标题】:What's the difference between VideoView and TextureView and Suraceview in android?android中的VideoView和TextureView和Suraceview有什么区别? 【发布时间】:2016-05-05 08:34:23 【问题描述】:android中VideoView和TextureView、Suraceview有什么区别?
我什么时候使用它们?
【问题讨论】:
VideoView 只是播放视频的 SurfaceView 的包装器。如果您想了解血腥细节,请参阅source.android.com/devices/graphics/architecture.html 【参考方案1】:对不起,迟到的答案,只是偶然发现了这个,但 TL;DR 的答案是这样的:
VideoView
-> VideoView 扩展了 SurfaceView,本质上就是 SurfaceView + MediaPlayer。为了您的方便,表面和 MediaPlayer 等的拆卸由小部件负责。
SurfaceView
-> 根据 Android 开发者的说法:
提供嵌入视图层次结构中的专用绘图表面。您可以控制此表面的格式,如果您愿意,还可以控制它的大小; SurfaceView 负责将表面放置在屏幕上的正确位置
表面是 Z 顺序的,因此它位于持有其 SurfaceView 的窗口后面; SurfaceView 在其窗口中打了一个洞以显示其表面
这意味着它从视图层次结构中获取信息来创建连接到 GPU 的专用绘图区域。其缺点是没有花哨的视图内容,例如动画和过渡。但性能更高
TextureView
-> 来自 Android 开发者:
与 SurfaceView 不同,TextureView 不会创建单独的窗口,而是像常规视图一样运行。这个关键区别允许对 TextureView 进行移动、转换、动画等操作
你知道了,TextureView 的缺点意味着,由于它是你的视图层次结构的一部分,它会在视图传递期间自行重绘它,从而消耗更多资源,但是你将有动画、过渡、alpha 等。
【讨论】:
以上是关于android中的VideoView和TextureView和Suraceview有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
媒体控制器不适用于 Android 中的 VideoView
为啥 Android 中的 VideoView 需要花费太多时间来加载和播放来自 http 链接的视频?