Agora потоковое видео с ARCore - PullRequest
2 голосов
/ 25 марта 2020

Я использую 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();
            }
        }
    }
}

Но это не работает, и аудитория не видит кадры. Есть предложения?

1 Ответ

1 голос
/ 25 марта 2020

Вы можете использовать этот пример ARCore Github: https://github.com/ysc1995/ARCoreAgora. В AgoraARStreamerAcitivity вы можете найти логи c для установки пользовательского источника видео. Спасибо!

...