Skip to main content

Starting March 27, 2026, RC is rebranded as Nexconn. Existing RC SDK customers can continue using this documentation. New customers should refer to the Nexconn developer documentation.

Engine Configuration

Quick Reference

The RTC engine provides the following configurable parameters:

PlatformConfiguration ItemDefault Value
AllAuto-reconnectEnabled
AllStats report callback interval1000ms
AllAudio initialization - Codec typeOpus
AndroidAudio initialization - Audio sourceVoice communication
AndroidAudio initialization - Sample rate16000
AndroidAudio initialization - StereoEnabled
AndroidAudio initialization - Microphone captureEnabled
AllVideo initialization - SimulcastEnabled
AndroidVideo initialization - Hardware encodingEnabled
AndroidVideo initialization - Hardware decodingEnabled
AndroidVideo initialization - High compression encodingDisabled
AndroidVideo initialization - Hardware encoder frame rate30 Fps
AndroidVideo initialization - Texture-based capture/decodingEnabled

Auto-reconnect

Auto-reconnect is enabled by default. Disable it during engine initialization:

RCRTCEngineSetup setup = RCRTCEngineSetup.create(reconnectable: false);
engine = RCRTCEngine.create(setup);

Stats Report Callback Interval

The default callback interval is 1000ms (minimum 100ms). Note that shorter intervals may impact performance.

Modify during initialization:

/// Set callback interval to 2 seconds
RCRTCEngineSetup setup = RCRTCEngineSetup.create(statsReportInterval: 2000);
engine = RCRTCEngine.create(setup);

Audio Initialization

Modify Audio Codec Type

Supports PCMU and OPUS (default: OPUS). Configure during initialization:

/// Set audio codec to PCMU
RCRTCAudioSetup audioSetup = RCRTCAudioSetup.create(codec: RCRTCAudioCodecType.pcmu);
RCRTCEngineSetup setup = RCRTCEngineSetup.create(audioSetup: audioSetup);
engine = RCRTCEngine.create(setup);

Modify Audio Source

Default source: Voice communication. Android-only configuration:

/// Set audio source to microphone
RCRTCAudioSetup audioSetup = RCRTCAudioSetup.create(audioSource: RCRTCAudioSource.mic);
RCRTCEngineSetup setup = RCRTCEngineSetup.create(audioSetup: audioSetup);
engine = RCRTCEngine.create(setup);

RCRTCAudioSource maps to Android's MediaRecorder.AudioSource.

Modify Sample Rate

Supported rates: 8000, 16000, 32000, 44100, 48000 (default: 16000). Android-only:

/// Set sample rate to 32000
RCRTCAudioSetup audioSetup = RCRTCAudioSetup.create(audioSampleRate: 32000);
RCRTCEngineSetup setup = RCRTCEngineSetup.create(audioSetup: audioSetup);
engine = RCRTCEngine.create(setup);

Enable/Disable Stereo

Enabled by default. Disable during initialization (Android-only):

RCRTCAudioSetup audioSetup = RCRTCAudioSetup.create(enableStereo: false);
RCRTCEngineSetup setup = RCRTCEngineSetup.create(audioSetup: audioSetup);
engine = RCRTCEngine.create(setup);

Enable/Disable Microphone Capture

Enabled by default. Disable during initialization (Android-only):

RCRTCAudioSetup audioSetup = RCRTCAudioSetup.create(enableMicrophone: false);
RCRTCEngineSetup setup = RCRTCEngineSetup.create(audioSetup: audioSetup);
engine = RCRTCEngine.create(setup);
tip

Once disabled, microphone capture cannot be re-enabled during the engine's lifecycle.

Video Initialization

Enable/Disable Simulcast

Enabled by default. Disable during initialization:

RCRTCVideoSetup videoSetup = RCRTCVideoSetup.create(enableTinyStream: false);
RCRTCEngineSetup setup = RCRTCEngineSetup.create(videoSetup: videoSetup);
engine = RCRTCEngine.create(setup);

Enable/Disable Hardware Encoding

Enabled by default. Disable during initialization (Android-only):

RCRTCVideoSetup videoSetup = RCRTCVideoSetup.create(enableHardwareEncoder: false);
RCRTCEngineSetup setup = RCRTCEngineSetup.create(videoSetup: videoSetup);
engine = RCRTCEngine.create(setup);

Enable/Disable Hardware Decoding

Enabled by default. Disable during initialization (Android-only):

RCRTCVideoSetup videoSetup = RCRTCVideoSetup.create(enableHardwareDecoder: false);
RCRTCEngineSetup setup = RCRTCEngineSetup.create(videoSetup: videoSetup);
engine = RCRTCEngine.create(setup);

Enable/Disable High Compression Encoding

Disabled by default. Enable during initialization (Android-only):

RCRTCVideoSetup videoSetup = RCRTCVideoSetup.create(enableHardwareEncoderHighProfile: true);
RCRTCEngineSetup setup = RCRTCEngineSetup.create(videoSetup: videoSetup);
engine = RCRTCEngine.create(setup);
tip

High compression encoding may cause compatibility issues. Use with caution.

Configure Hardware Encoder Frame Rate

Range: 0-30 FPS (default: 30). Android-only configuration:

/// Set hardware encoder frame rate to 25 FPS
RCRTCVideoSetup videoSetup = RCRTCVideoSetup.create(hardwareEncoderFrameRate: 25);
RCRTCEngineSetup setup = RCRTCEngineSetup.create(videoSetup: videoSetup);
engine = RCRTCEngine.create(setup);

Enable/Disable Texture-based Capture/Decoding

Enabled by default. Disable during initialization (Android-only):

RCRTCVideoSetup videoSetup = RCRTCVideoSetup.create(enableTexture: false);
RCRTCEngineSetup setup = RCRTCEngineSetup.create(videoSetup: videoSetup);
engine = RCRTCEngine.create(setup);
tip

When disabled, capture/decoding will use YUV data format. Recommended for Android 5.0+ devices for better compatibility.