Я использую API трансляции видео Agora и пытаюсь транслировать сцену ARCore. В документации Agora найден метод rtcEngine (). SetVideoSource для получения потребителя фреймов. Я могу получить кадры ARCore и пытаюсь передать их потребителю следующим образом:
private volatile IVideoFrameConsumer mConsumer;
...
private class ExternalVideoInputThread extends Thread {
@Override
public void run() {
while (true) {
Frame frame = mVideoGridContainer.getArSceneView().getArFrame();
try {
Image im = frame.acquireCameraImage();
ByteBuffer buffer = im.getPlanes()[0].getBuffer();
mConsumer.consumeByteBufferFrame(
buffer,
MediaIO.PixelFormat.TEXTURE_OES.intValue(),
width,
height,
0,
frame.getAndroidCameraTimestamp());
} catch (Throwable e) {
e.printStackTrace();
}
try {
Thread.sleep(1000 / DEFAULT_SHARE_FRAME_RATE);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Но это не работает, и аудитория не видит кадры. Есть предложения?