RemoteMonster Community

화상통화 기능 추가 질문입니다

제가 리모트 몬스터 화상 통화 기능에 시중에 다른 몇몇 카메라 어플처럼 얼굴인식을 통하여 얼굴에 이모티콘이나 캐릭터를 입히는 기능을 추가하고 싶습니다.
혹시 이부분에 대해서는 어떤 부분을 수정하면서 개발진행을 해야하는지 궁금합니다.
그리고 화상통화 화면을 무조건 org.webrtc.SurfaceViewRenderer 라는 view를 통해서 진행해야 하는지도 궁금하네요. 만약 그렇다면 org.webrtc.SurfaceViewRenderer의 기능을 어떻게 추가하거나 수정할수 있는지 여쭤보고 싶습니다.

안녕하세요.
AR 기능같은 경우 SDK내부적으로는 지원하지 않는 기능입니다.
AR 라이브러리를 통해 직접 입력 카메라 프레임을 가공하고, sdk 에 가공된 데이터를 전달해야 합니다.
SDK에 외부 캡처 소스를 받아들이는 API는 제공되나 기능적인 제약사항이 있어
렌퍼런스 문서등으로 공개되어 있지는 않습니다.

SurfaceviewRenderer 는 webrtc 내부에서 최종 프레임 데이터를 OpenGL ES로 렌더링하는 뷰로
SurfaceView를 상속받고 있습니다.
필요한 기능이 있다면 SurfaceViewRenderer를 상속받아 구현하실 수 있습니다.

감사합니다.

그렇다면 sdk에 가공된 데이터를 전달할때 어떤식으로 해야할까요? ㅠㅠ

안녕하세요.
해당 기능은 정식 버전이 아니고 디바이스 회전처리가 되어 있지 않아
실제 서비스에 사용은 권장 드리지 않습니다.
이 기능은 개발 로드맵상 향후 개선 및 변경될 예정이므로, 이 점 참고하셔서 살펴보셨으면 합니다.

우선 외부 캡처러는 config.useExternalCapturer = true 로 설정하면 사용할 수 있습니다.
이 경우 내부 카메라 모듈이 동작하지 않으며, 직접 카메라 루틴을 작성하셔야 합니다.

피어가 연결된 이후 그릴내용이 있을때 캡처러의 willOutputBuffer() 를 호출합니다.
RemonExternalCapturer capturer = remonCall.getCapturer();
capturer.willOutputBuffer( (canvas)-> {
// 카메라 프레임 그리기
// 다른 ui 요소 그리기
});

카메라 프레임을 그리기위한 포맷은 rgb 565 입니다.
단순히 canvas 를 사용하기에 일반적인 opengl 보다 렌더링 속도가 떨어지고,
Bitmap 처리등이 추가되므로 프레임레이트의 손실이 발생합니다.

감사합니다.

관련 기능 개발 도와드릴 수 있습니다

2 Likes

만드신 앱이 앱 스토어에 있으면, 제가 얼른 가서 별점 5점 드리겠습니다. 주소 좀…