在我的WebRTC应用我发送拍摄的视频流到远程浏览器。我的目标是现在,我想在对Android的部分相同的视频流增加一些AR东西与wikitude(我使用Wikitude 7.2.1兼容的原因),并显示在显示屏上(它目前只显示摄像机输出)。我知道,我不能随便打开另一个摄像头实例,因为已经的WebRTC使用了一个,所以我需要通过从的WebRTC VideoCapturer输出(或可替代一些表面的内容是输出过于渲染?)到Wikitude SDK,但是,我有困难,这样做。
我已经看到,输入插件的外部摄像机输入wikitude需要使用像这样的ImageAvaibleListener一个ImageReader:
mWikitudeCamera2.start(new ImageReader.OnImageAvailableListener() { ... }
并在WikitudeCamera2方面:
mManager.openCamera(getCamera(), cameraStateCallback, null);
mImageReader = ImageReader.newInstance(mFrameWidth, mFrameHeight, ImageFormat.YUV_420_888, 2);
mImageReader.setOnImageAvailableListener(onImageAvailableListener, null);
该图像读取表面然后获取附接至实际的摄像机的输出:
CaptureRequest.Builder builder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
builder.addTarget(mImageReader.getSurface());
然而,因为我需要使用从的WebRTC提供CameraCapturer我不能够做到这一点。
有没有办法摆脱也许是的WebRTC的SurfaceViewRender相机流,或者使它对另一个(也许假的?)SurfaceView并附加的图象读。或者一些其他的方式来传递被sended到客户端wikitude而不使用的图像读取器的输出?或者通常一些其他的方式,我能得到这个工作,我还没有想到过。我真的很感激一些帮助,因为即时通讯停留在那一部分的现在。
你是在正确的道路上,但不幸的是,由于Wikitude的SDK在消费相机API,这是不可能的(但,SDK 8.2),以通过web视图/的WebRTC访问相同的数据流。你必须坚持的ImageReader方法现在找到一种方法来处理在本地环境的框架。
最好的祝福