问题标签 [textureview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 为什么要使用 SurfaceView 或 TextureView 进行自定义绘图?他们的 Canvas 没有硬件加速
所以我正在为动画制作一些 Canvas drawText、drawPath、drawArc、drawLine 和 drawCircle...
使用 SurfaceView,做 lockCanvas 和 unlockCanvasAndPost,最终发现绘制到画布需要 > 16ms 说 20 次中有 1 次
硬件绘制时间?0-2毫秒
那么为什么Lunar Lander <3 SurfaceView?我认为我永远无法击败硬件加速画布和软件减速画布。
android - MediaCodec 和 TextureView 的 Z 顺序问题
在我的 Android 应用程序中,我需要使用以下 Z 顺序渲染三个视图:
- 在底部,
MediaCodec
覆盖整个屏幕的解码器的输出表面。我有要求我必须转换由MediaCodec
(例如缩放它)产生的图像 - 在中间,一个
GLSurfaceView
(或我定义的其他运行 GL 着色器的表面/视图)覆盖整个屏幕。显然,这一层中的一些像素将是透明的,以便看到MediaCodec
下面的输出。 - 最重要的是,任何其他视图 - 比如说
ImageView
. 不确定我是否需要这些最顶层视图的透明度,也许完全不透明的矩形视图是可以的——它们只是不会覆盖整个屏幕并且会四处移动。
看起来这是不可能的,但也许我错过了一些东西,或者有一种方法可以在较低级别上付出更多的努力(例如 EGL 上下文或类似的东西......我目前不明白)。
我无法让它工作并且担心这是不可能的原因是:
- 对于底部
MediaCodec
输出层 (1),我必须能够转换图像。所以,我给 MediaCodec 渲染的表面必须来自TextureView
- 为了能够看穿中间
GLSurfaceView
(2)的透明像素,我必须调用GLSurfaceView.setZOrderOnTop(true)
. 否则 GLSurfaceView 是不透明的。 - 但是调用
GLSurfaceView.setZOrderOnTop(true)
意味着没有其他视图 (3) 呈现在GLSurfaceView
. 例如,一个ImageView
将始终出现在 的不透明像素后面GLSurfaceView
。
看起来调用GLSurfaceView.setZOrderMediaOverlay(true)
而不是GLSurfaceView.setZOrderOnTop(true)
旨在解决这个问题并促进这种类型的 Z 排序。如果最底层的MediaCodec
输出层是SurfaceView
. 但我需要它是一个TextureView
,所以我可以改变它。当它下面GLSurfaceView.setZOrderMediaOverlay(true)
有一个时似乎不起作用:它被中间层完全遮挡,而不是通过透明像素显示。TextureView
TextureView
GLSurfaceView
这种 Z 排序是不可能的,这是否正确?还是可以通过搞乱 EGL 和上下文等来完成?
android - 带有 MediaPlayer 的 Android TextureView 不会为每一帧更新
我正在使用 Android MediaPlayer 在 TextureView 上播放视频文件。我计算了 onSurfaceTextureUpdated 回调的次数,在某些设备上它小于视频的帧数,而在其他设备上它达到了总帧数。为什么会这样?表面纹理不应该为每一帧更新吗?可能是 TextureView 还是编解码器实现问题?
java - 如何在关闭应用程序之前停止纹理视图侦听器并显示图像
我有一个简单的 xml 布局,如下所示,FrameLayout 中只有一个 TextureView。
以及以下主要活动:
}
对于每一帧,我都会做一些详细说明,没关系。我想要的是添加一个按钮来停止相机并在 TextureView 中显示从 sdcard 加载的文件。
它的伪代码可以是这样的:
可以在不修改 xml 布局的情况下做到这一点吗?提前致谢!
java - 预览停止后,位图在表面视图中未正确显示
大家好,我有以下布局:
使用 TextureView 和 SurfaceView(我想我可以消除 SurfaceView,但我现在不知道如何)。
以下主要活动:
公共类 MainActivity 扩展 Activity 实现 TextureView.SurfaceTextureListener {
}
该程序运行良好(它拍摄了一些照片,详细说明它们并保存在 mSnapDir 目录中的输出“combined.jpg”文件中)直到几乎结束,即调用 onElaborateClicked(View view) 时。它正确地进行了详细说明并停止了预览,但是当我尝试在屏幕上显示位图时它不起作用。我添加了 SurfaceView 来调用 getHolder() (也许有一个最简单的方法)。
问题是:
1)为什么不显示位图(它存在!)?也许 SurfaceView 在 TextureView 的“背面”并且从未显示?
2) 我可以避免添加 SurfaceView 并直接在 TextureView 上完成所有工作吗?我添加 SurfaceView 只是为了显示最终的位图(我不知道其他地方该怎么做)。
任何帮助将不胜感激。提前致谢!
android - Android纹理视图闪烁
在下面的应用程序中,由于某种原因,屏幕总是闪烁,文本上方也有绘图伪影。有可能解决这个问题吗?我在 Nexus 7 设备上运行 Android 4.4.2。
android - 如何使用 Android 的“Surface”类?
Surface、SurfaceHolder、EGLSurface、SurfaceView、GLSurfaceView、SurfaceTexture、TextureView有详细解释吗?尤其是:
- SurfaceView 和 TextureView 有什么区别?
- 我是否需要使用 GLSurfaceView 才能使用 OpenGL ES?
- Surface 和 EGLSurface 如何交互?
- SurfaceTexture 有什么作用?
- 为什么我在 SurfaceView 上绘制的内容必须高于或低于其他所有内容?
- 什么是 SurfaceFlinger?
- 状态栏和导航栏的组成如何工作?
- 在此过程中,在 Android 上构建游戏循环的正确方法是什么?
android - Android TextureView OpenGLRenderer:GL_INVALID_OPERATION
我有两个片段,它们有一个 TextureView 来显示相机预览或播放视频。
使用该应用程序一段时间后,玩屏幕后,我在 logcat 中收到此错误
我从我的片段中释放所有内容,所有成员都设置为空。
我看到整个视图变得很奇怪......
我错过了什么?
android - 如何在 Android 中通过不同的按钮点击在同一 Activity 中播放原始文件夹中的 3 个视频?
Buttons
我必须在相同的 3 个不同的视频上播放三个视频Activity
。
我的第一个视频被播放,如果我播放另一个视频,最后一个屏幕截图(如图像)出现在前景中,当前视频在屏幕截图后面播放,如前一个视频的图像。
请帮助我,我之前问过这个问题并给出了这个http://blog.lemberg.co.uk/surface-view-playing-video解决方案,但这对我没有帮助..
我尝试过以不同的方式播放此视频,Activity
并且在视频完成后,它涉及上一个活动。但根据我目前的代码结构,它不适合我..
android - 手动绘制到 MediaPlayer 的表面
我将 TextureView 设置为 MetoaPlayer 来播放视频:
视频播放正常。
但是当我尝试在表面上绘制很多时,视频播放没有开始!
当我在媒体播放器上调用 play() 时,播放没有开始。
我想,Surface 移动到无效状态并且 MediaPlayer 无法播放视频。但是 logcat 是空的。有任何方法可以使用媒体播放器在同一表面上绘图。