【发布时间】:2015-03-04 20:00:13
【问题描述】:
我正在尝试在 Android 中渲染我的相机帧,并使用 canvas、bitmap、onDraw() 在我的 Surfaceview 上显示帧。然而,我在 Native 端进行渲染的代码性能占用了我的 CPU 的 70%。渲染速度不错,但 CPU 消耗很差。问题是我在渲染和捕获相机时有另一个覆盖的表面视图(surfaceview2)来显示其他内容。我想知道如何减少 cpu 消耗并更多地使用 gpu 等等。到目前为止可能的解决方案是: a)使用opengl在surfaceview上绘制我的框架,但资源和示例代码有限 b) 使用原生端来绘制我的框架,但资源也有限
有谁知道如何使用上述技术执行 YV12 到 rbg?
【问题讨论】:
-
这和stackoverflow.com/questions/28706700是同一个项目吗?你想做什么?似乎您是从那里的答案直接将其发送到 SurfaceView 或 TextureView ;你想在这里做什么?
-
Fadden,我有 Surfaceview1 正在显示某些东西,而 Surfaceview2(覆盖表面)正在做相机捕捉。我想从我的相机中抓取帧并渲染它们。我使用了性能很好的本机代码,但我的 cpu 百分比上升了。我正在寻找降低 CPU 使用率的解决方案。我在 Opengl 上找不到任何具体的内容。你认为openGl是解决方案吗? opengl 不是用原生的吗?
-
“OpenGL ES”和“native”不是同义词。正如 Isogen74 的回答中所指出的,相机数据可以被视为“外部”纹理。这用于 Grafika (github.com/google/grafika) 中的一些活动,例如“来自相机的纹理”。 Grafika 不会在应用程序本身中使用任何本机 (NDK) 代码。
-
我无法在我的设备上部署 Grafika...
-
我找到了这个,但我不确定如何在 GlSurfaceview 顶部使用覆盖表面
标签: android opengl-es android-ndk android-camera surfaceview