是否可以在两个进程之间共享SurfaceTexture,例如一个Activity和一个Service?
我想创建一个带有TextureView的Activity,并从单独的Service中更新其SurfaceTexture。
到目前为止,我正在使用生成的OpenGL纹理(通过glGenTextures)创建SurfaceTexture,然后将此SurfaceTexture设置为我的TextureView:
mSurfaceTexture = new SurfaceTexture(texture_id);
mTextureView.setSurfaceTexture(mSurfaceTexture);
将相机预览显示在活动中的此SurfaceTexture上正常工作:
mCamera = Camera.open();
mCamera.setPreviewTexture(mTextureView.getSurfaceTexture());
mCamera.startPreview();
我想要做类似的事情,但是从另一个服务传递texture_id,大致如下:
mCamera = Camera.open();
mCamera.setPreviewTexture(new SurfaceTexture(texture_id));
mCamera.startPreview();
原因是我有一个单独的进程调用私有API,需要SurfaceTexture来流传一些内容,而这个进程通过aidl从应用程序访问。
谢谢