JNI,使用本地代码访问SurfaceTexture

3
我需要能够在设备相机生成的视频流上执行本地代码(算法)。为此,我考虑使用OpenCV相机捕获。不幸的是,目标设备是我的三星G2,它运行的是Android 4.0.3,而当前版本的OpenCV不支持该设备。作为替代方案,我考虑使用Java Camera object进行捕获,并使用JNI将捕获的数据转换到本地域。然而,这会产生映射开销(复制数据)。为了避免这种情况,我考虑将捕获的图像(预览)呈现到GL Texture中(例如使用Camera.setPreviewTexture),并直接在本地域访问GL Texture,从而避免不必要的复制。 是否有一种方法可以直接访问本地域中的TextureSurface 任何帮助都将不胜感激。

纳达夫·阿特·索芬

1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
1

我认为,高通的Vuforia增强现实SDK发布的VideoPlayback示例应用程序可以实现这一点。我自己只是在过去几天才开始研究代码,其中很多对我来说都是新的,所以我不确定是否100%正确。

https://ar.qualcomm.at/content/video-playback-sample-app-posted

如果我没记错的话,该应用程序通过Java域的MediaPlayer类播放电影文件,该文件被渲染到SurfaceTexture上,然后在本地域中由OpenGL ES代码访问,以在实际的增强现实显示器上呈现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,