gpt4 book ai didi

android - 检测 Android SurfaceView 是否正在绘制/移动

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:02 25 4
gpt4 key购买 nike

我正在使用 libvlc 和 android 应用程序来播放网络流; native 代码在表面 View 上绘制图像。

假设视频停止并且我无法访问 native 代码,我如何检测 SurfaceView 是否仍在移动(视频未卡住)?

我尝试了 getViewTreeObserver().addOnDrawListener();和 getViewTreeObserver().addOnPreDrawListener();但它们没有我想要的效果。

谢谢

最佳答案

您无法从 SurfaceView 获取该信息,因为 SurfaceView 本身不知道。

SurfaceView 的工作是设置 Surface,并在 View 布局中创建一个您可以看到的洞。一旦它做了这些事情,它就不再主动参与显示视频的过程。内容从解码器流向由 SurfaceFlinger(系统图形合成器)管理的 Surface。

例如,这就是 DRM 视频的工作原理。 “播放”视频的应用无法访问受 DRM 保护的视频帧。 (实际上,SurfaceFlinger 也没有,但这是一个较长的故事。)

了解内容是否仍在送达的最佳方法是询问视频源是否仍在向您发送内容。另一种方法是将 SurfaceView 更改为 TextureView , 并提供一个 onSurfaceTextureUpdated() 回调方法。

关于android - 检测 Android SurfaceView 是否正在绘制/移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29043684/

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