Можно ли использовать webrtc VideoCapturer без peerconnection?
У нас есть работающее приложение для Android (из примеров / androidapp). Мы взяли следующий код из рабочего приложения в отдельное действие, где мы используем захват камеры напрямую, не создавая одноранговое соединение. Мы создаем видеозахват (camera2), используя экземпляр CapturerObserver, а затем пытаемся отобразить его в org.webrtc.SurfaceViewRenderer. Ниже приведен код.
Как и ожидалось, onFrameCaptured из CapturerObserver вызывается несколько раз с допустимым объектом videoFrame. Оттуда мы передаем его в SurfaceViewRenderer. Тем не менее, видео не отображается и SurfaceViewRenderer остается черным.
Это правильный способ использования VideoCapturer и SurfaceViewRenderer? Требуется ли какое-либо преобразование формата перед отправкой в SurfaceViewRenderer?
private class MyCapturerObserver implements CapturerObserver {
@Override
public void onCapturerStarted(boolean b) {
Log.e(TAG, "capture started: " + b);
}
@Override
public void onCapturerStopped() {
Log.e(TAG, "capture stopped");
}
@Override
public void onFrameCaptured(final VideoFrame videoFrame) {
//fullscreenRenderer.onFrame(videoFrame);
runOnUiThread(new Runnable() {
@Override
public void run() {
fullscreenRenderer.onFrame(videoFrame);
}
});
}
}
capturer = createVideoCapturer();
captureObserver = new MyCapturerObserver();
surfaceTextureHelper =
SurfaceTextureHelper.create("CaptureThread", eglBase.getEglBaseContext());
capturer.initialize(surfaceTextureHelper, getApplicationContext(), captureObserver);
capturer.startCapture(1280, 720, 30);