как транслировать вывод камеры Webrtc в SDK Wikitude на родной Android - PullRequest
0 голосов
/ 01 февраля 2019

В моем приложении webrtc я отправляю захваченный VideoStream в удаленный браузер.Теперь моя цель состоит в том, чтобы я хотел дополнить некоторые AR Stuff с помощью wikitude (я использую Wikitude 7.2.1 по соображениям совместимости) в том же видеопотоке на андроидной части и показать его на дисплее (в настоящее время он отображает только выходные данные камеры).Я знаю, что не могу просто открыть другой экземпляр камеры, так как Webrtc уже использует его, поэтому мне нужно передать вывод из webrtc VideoCapturer (или, в качестве альтернативы, содержимое какой-либо поверхности, выводимой тоже?), В Wikitude SDK, однако,у меня возникают трудности с этим.

Я видел, что для входного сигнала внешнего плагина необходим вход для внешнего входа камеры, используется ImageReader с ImageAvaibleListener, например:

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);

, после чего поверхность Image Readers присоединяется к фактическому выходу камеры:

CaptureRequest.Builder builder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
builder.addTarget(mImageReader.getSurface()); 

Однако, поскольку мне нужно использовать прилагаемый CameraCapturer от Webrtc, я не могу этого сделать.

Есть ли способ получить поток с камеры, возможно, из SurfaceViewRender Webrtc, или отобразить его в другом (возможно, поддельном?) SurfaceView и прикрепить его к считывателю изображений.Или каким-то другим способом передать вывод, который отправляется клиенту, в wikitude без использования Image Reader?Или вообще каким-то другим способом я мог заставить это работать, о котором я не думал.Я был бы очень признателен за помощь, так как я застрял на этой части прямо сейчас.

1 Ответ

0 голосов
/ 04 февраля 2019

Вы на правильном пути, но, к сожалению, поскольку SDK Wikitude использует API-интерфейс камеры, невозможно (пока SDK 8.2) получить доступ к тому же потоку через WebView / WebRTC.Сейчас вы должны придерживаться подхода ImageReader и найти способ обработки кадров в собственной среде.

С уважением

...