package com.infobiprtcreactnative.video import android.content.Context import android.widget.FrameLayout import com.infobip.webrtc.sdk.api.InfobipRTC import com.infobip.webrtc.sdk.api.video.RTCVideoTrack import com.infobip.webrtc.sdk.api.video.VideoRenderer import org.webrtc.RendererCommon class RTCVideoView(context: Context) : FrameLayout(context) { private var renderer: VideoRenderer = VideoRenderer(context) init { renderer.keepScreenOn = true renderer.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT) renderer.setMirror(true) renderer.setZOrderMediaOverlay(true) renderer.init() addView(renderer) } fun attachTrack(id: String) { val track = getTrack(id) track?.addSink(renderer) } fun attachTrack(track: RTCVideoTrack?) { track?.addSink(renderer) } fun release() { renderer.release() } private fun getTrack(id: String): RTCVideoTrack? { val activeCall = InfobipRTC.getActiveCall() ?: return null return when (id) { "local" -> activeCall.localVideoTrack() "remote" -> activeCall.remoteVideoTrack() else -> null } } }