Android интегрирует Deep AR SDK с Ant Media Server WebRTC SDK

Я новичок в Android и JAVA и хочу создать приложение для прямой трансляции с функциями красоты, сегментации фона и т. Д. Я уже подписался на Ant Media Server (AMS) в качестве сервера прямой трансляции, и он работает, ссылаясь на их пример кода и SDK здесь .

Теперь я хочу интегрировать AMS с Deep AR SDK. Я думаю, что Deep AR сначала обрабатывает кадры, снятые камерой мобильного телефона, а затем отправляет их в AMS. Я ссылаюсь на пример кода Deep AR здесь и здесь . Если только Deep AR, он работает хорошо, но при интеграции с AMS возникает ошибка.

Приложение открывается и запускается прямая трансляция, но это не влияет на прямую трансляцию и происходит сбой в течение нескольких секунд. Я пытаюсь найти проблему в разделе logcat, но не знаю, потому что слишком много сообщений. Ниже приведен код, который я пробовал, но не смог:

      // code within MainActivity.onCreate()
// first initialise deep AR
deepar = new DeepAR(this);
deepar.setLicenseKey("xxxxxx"); // please get from Deep AR
deepar.initialize(this, this); // second param please implements AREventListener

setupCamera(); // just copy from Deep AR sample code

arView = findViewById(R.id.surface); // using SurfaceViewRenderer ready by AMS
arView.getHolder().addCallback(this); // 'this' must implements 'SurfaceHolder.Callback'

// here setup AMS webRTC, it won't work with Deep AR
// or Deep AR will work if remove these part
webRTCClient = new WebRTCClient(this, this); // first param 'this' must implements IWebRTCListener
webRTCClient.setOpenFrontCamera(lensFacing == CameraSelector.LENS_FACING_FRONT);
webRTCClient.setVideoRenderers(null, arView);
Intent intent = getIntent(); // please refer sample code to add putExtra()
webRTCClient.init("ws://AMS IP", "RandomString", IWebRTCClient.MODE_PUBLISH, "tokenId", intent);
webRTCClient.setDataChannelObserver(this); // 'this' must implements IDataChannelObserver
new Handler(Looper.myLooper()).postDelayed(new Runnable() {
    @Override
    public void run() {
        attempt2Reconnect(); // please copy from AMS sample code
    }
}, 500);

Только другие важные части, пожалуйста, скопируйте все методы @Override из примера кода

      @Override
public void initialized() {
    deepar.switchEffect("background", "file:///android_asset/background_segmentation"); // please download sample from Deep AR
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
    deepar.setRenderSurface(holder.getSurface(), width, height);
}

Удалось ли кому-нибудь интегрировать AMS с Deep AR? Пожалуйста помоги. Или любой другой рекомендованный SDK, который имеет те же функции и работает с AMS (зависит от цены, Deep AR получил образец кода с Agora, но это слишком дорого, и я хочу самостоятельно разместить сервер).

Спасибо.

0 ответов

Другие вопросы по тегам