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, но это слишком дорого, и я хочу самостоятельно разместить сервер).
Спасибо.