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