Config/RemonConfig

Overview

RemoteMonster는 RemonCall, RemonCast객체에 직접 설정 정보를 지정할 수 있습니다. 이러한 설정 정보들을 별도의 객체에 생성해 두고, RemonCall, RemonCast 객체 생성 후 해당 설정 값을 사용하고자 하는 경우 혹은 다른 화면에서 설정값을 지정한 뒤 방송,통신 화면으로 전달하는 경우에 config값을 사용할 수 있습니다.

RemonCall, RemonCast 의 connect() 메쏘드 호출 시 config 정보를 함께 전달하게 되면, RemonCall, RemonCast 내부의 설정이 아닌 config 의 설정을 사용해 연결이 이루어집니다.

Android,Web 환경은 Config, iOS의 경우 RemonConfig 객체를 사용합니다.

Basics

가장 기본적으로 화면이 보일 View와 Service Id, Key를 지정하는 것이 필요합니다.

View

영상이 표출될 View를 지정하는 설정으로 뷰가 지정되지 않으면 영상이 보이지 않습니다. (iOS의 경우 View는 RemonConfig 에서 제공하지 않으므로, RemonCall, RemonCast 객체에 직접 지정해야 합니다.)

<video id="remoteVideo" autoplay controls></video>
<video id="localVideo" autoplay controls muted></video>
<script>
  const config = {
    view: {
      remote: '#remoteVideo', local: '#localVideo'
    }
  }
</script>

Service Id, Key

Service Id, Key를 지정 하는 단계로 필수 입니다.

const config = {
  credential: {
    serviceId: 'myServiceId', key: 'myKey'
  }
}

Meta

사용자의 UID, 프로퍼티 등 서비스에 필요한 meta 데이터를 설정 할 수 있습니다. 안드로이드의 경우 HashMap 객체를 전달할 수 있으며, iOS 는 String 데이터만 지원합니다.

N/A

Media

음성과 영상에 대한 보다 다양한 옵션이 제공됩니다.

각 플렛폼별 추가적인 설정은 아래를 참고하세요.

pageWeb - MediapageAndroid - MediapageiOS - Media

Select Video, Audio

비디오를 끄면 음성방송/통화 서비스를 만들 수 있습니다.

// Audio Only
const config = {
  media: {
    audio: true,
    video: false
  }
}

// Audio, Video
const config = {
  media: {
    audio: true,
    video: true
  }
}

Video Options

widthheight는 상대편에게 보낼 영상의 해상도를 결정하는 것입니다. 최대 640, 480의 해상도로 보낼 것을 설정하였지만 이것이 꼭 지켜지는 것은 아닙니다. WebRTC는 기본적으로 네트워크나 단말의 상태에 따라 해상도와 framerate등을 유연하게 변화시키면서 품질을 유지하고 있기 때문입니다. 해상도가 실제와 차이가 날 수는 있지만 ratio는 최대한 맞추기 위해 노력합니다.

Browser는 H.264와 VP8, VP9등의 영상 코덱을 지원하고 있습니다. RemoteMonster는 H.264를 기본 코덱으로 사용하고 있으며 변경이 필요하다면 이 설정으로 변경할 수 있습니다.

frameRate항목은 1초에 몇번의 프레임으로 인코딩할 지를 결정합니다. 일반적인 영상통화에서는 15정도도 적당합니다.

facingMode는 기기의 앞과 뒤에 카메라가 있을 때 어떤 쪽의 카메라를 사용할 것인지를 결정하는 것입니다. 현재 모바일 버전의 크롬 브라우저에서는 facingMode가 제대로 동작하지 않습니다.

startVideoBitrate는 해당 비디오의 대여폭을 설정 합니다. 무조건 높게 설정한다고 좋은 품질을 나타내진 않습니다. 앱의 전체적인 네트워크 트래픽을 고려하여 적절한 값을 사용해야 합니다.

const config = {
  media: {
    video: {
      width: {max: '640', min: '640'},
      height: {max: '480', min: '480'},
      codec: 'H264',                 // 'VP9', 'VP8', 'H264'
      frameRate: {max:15, min:15},
      facingMode: 'user',             // 'user', 'environment'
      maxBandwidth: '3000'
    }
  }
}

오디오 타입 : Voice, Music 타입

오디오 관련 작동방식을 설정 할 수 있습니다. Voice 타입은 주변 소음을 제거하고 음성을 전달하는데 초점이 맞추어져 있으며 통화에 적합합니다. Music 타입은 모든 소리를 가공 없이 전달하는데 중점이 있습니다.

let config = {
    media: {},
    rtc: {audioType: "music"}
};

기본 오디오 타입은 VOICE 입니다.

오디오 추가 설정

오디오 설정에는 다양한 세부항목이 있습니다. 아래와 같은 세부항목을 설정할 수 있습니다. 방송/통화 환경이나 목적에 따라 적합한 설정이 다를 수 있습니다. 설정 항목 들을 적절히 조합하여 이용하시기 바랍니다.

let config = {
  media: {
    audio: {
      channelCount: 2,
      maxBandwidth: 128,
      autoGainControl: false,
      echoCancellation: false,
      noiseSuppression: false,
    }
  },
  rtc: {
    audioType: "music"
  }
};

Debug

SILENT, ERROR, WARN, INFO, DEBUG, VERBOSE를 설정할 수 있으며 뒤로 갈 수록 더 자세한 로그를 확인할 수 있습니다.

const config = {
  dev:{
    logLevel: 'INFO'
  }
}

Last updated