diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..9f11b755a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea/ diff --git a/RtcSurfaceView.kt b/RtcSurfaceView.kt index 285478162..ba2a292ef 100644 --- a/RtcSurfaceView.kt +++ b/RtcSurfaceView.kt @@ -13,6 +13,8 @@ class RtcSurfaceView( ) : FrameLayout(context) { private var surface: SurfaceView private var canvas: VideoCanvas + private var isMediaOverlay = false + private var onTop = false private var channel: WeakReference? = null init { @@ -26,6 +28,7 @@ class RtcSurfaceView( } fun setZOrderMediaOverlay(isMediaOverlay: Boolean) { + this.isMediaOverlay = isMediaOverlay try { removeView(surface) surface.setZOrderMediaOverlay(isMediaOverlay) @@ -36,6 +39,7 @@ class RtcSurfaceView( } fun setZOrderOnTop(onTop: Boolean) { + this.onTop = onTop try { removeView(surface) surface.setZOrderOnTop(onTop) @@ -62,6 +66,12 @@ class RtcSurfaceView( } private fun setupVideoCanvas(engine: RtcEngine) { + removeAllViews() + surface = RtcEngine.CreateRendererView(context.applicationContext) + surface.setZOrderMediaOverlay(isMediaOverlay) + surface.setZOrderOnTop(onTop) + addView(surface) + canvas.view = surface if (canvas.uid == 0) { engine.setupLocalVideo(canvas) } else { diff --git a/RtcTextureView.kt b/RtcTextureView.kt index 4927e85e0..7dfc4f28e 100644 --- a/RtcTextureView.kt +++ b/RtcTextureView.kt @@ -42,6 +42,10 @@ class RtcTextureView( } private fun setupVideoCanvas(engine: RtcEngine) { + removeAllViews() + texture = RtcEngine.CreateTextureView(context.applicationContext) + addView(texture) + canvas.view = texture if (canvas.uid == 0) { engine.setupLocalVideo(canvas) } else {