From 768eef6fcd101737542ddf18ce6a6b3330a1483a Mon Sep 17 00:00:00 2001 From: Armands Malejevs Date: Thu, 25 May 2023 12:39:40 +0300 Subject: [PATCH 1/3] Fix surface view switching --- .../java/com/brentvatne/exoplayer/ExoPlayerView.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java b/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java index 12044344dd..0d7bc1d312 100644 --- a/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java +++ b/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java @@ -149,12 +149,20 @@ private void setVideoView() { private void updateSurfaceView() { View view; if (!useTextureView || useSecureView) { - view = new SurfaceView(context); + if (surfaceView instanceof TextureView) { + view = surfaceView; + } else { + view = new SurfaceView(context); + } if (useSecureView) { ((SurfaceView)view).setSecure(true); } } else { - view = new TextureView(context); + if (surfaceView instanceof TextureView) { + view = surfaceView; + } else { + view = new TextureView(context); + } } view.setLayoutParams(layoutParams); From e8a7c50fc088381dae37a068c07280bd92f62fcc Mon Sep 17 00:00:00 2001 From: Armands Malejevs Date: Tue, 30 May 2023 11:20:46 +0300 Subject: [PATCH 2/3] Fix surface reuse issues and logging --- .../com/brentvatne/exoplayer/ExoPlayerView.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java b/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java index 0d7bc1d312..ac0de88afe 100644 --- a/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java +++ b/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java @@ -131,6 +131,7 @@ public void setAdOverlay(FrameLayout adOverlay) { } private void clearVideoView() { + Log.w("RNV", "clearVideoView()"); if (surfaceView instanceof TextureView) { player.clearVideoTextureView((TextureView) surfaceView); } else if (surfaceView instanceof SurfaceView) { @@ -139,6 +140,7 @@ private void clearVideoView() { } private void setVideoView() { + Log.w("RNV", "setVideoView()"); if (surfaceView instanceof TextureView) { player.setVideoTextureView((TextureView) surfaceView); } else if (surfaceView instanceof SurfaceView) { @@ -148,19 +150,27 @@ private void setVideoView() { private void updateSurfaceView() { View view; + Log.w("RNV", "DEBUG1"); if (!useTextureView || useSecureView) { - if (surfaceView instanceof TextureView) { + Log.w("RNV", "DEBUG2"); + if (surfaceView != null && surfaceView instanceof SurfaceView) { + Log.w("RNV", "DEBUG3"); view = surfaceView; } else { + Log.w("RNV", "DEBUG4"); view = new SurfaceView(context); } if (useSecureView) { + Log.w("RNV", "DEBUG5"); ((SurfaceView)view).setSecure(true); } } else { - if (surfaceView instanceof TextureView) { + Log.w("RNV", "DEBUG6"); + if (surfaceView != null && surfaceView instanceof TextureView) { + Log.w("RNV", "DEBUG7"); view = surfaceView; } else { + Log.w("RNV", "DEBUG8"); view = new TextureView(context); } } @@ -173,6 +183,7 @@ private void updateSurfaceView() { layout.addView(surfaceView, 0, layoutParams); if (this.player != null) { + Log.w("RNV", "DEBUG9"); setVideoView(); } } From 3895f64f0aace5578d9589a2bb70893f5bd2939d Mon Sep 17 00:00:00 2001 From: Armands Malejevs Date: Tue, 30 May 2023 11:28:44 +0300 Subject: [PATCH 3/3] Clean up --- .../java/com/brentvatne/exoplayer/ExoPlayerView.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java b/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java index ac0de88afe..4628d417b6 100644 --- a/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java +++ b/android/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java @@ -131,7 +131,6 @@ public void setAdOverlay(FrameLayout adOverlay) { } private void clearVideoView() { - Log.w("RNV", "clearVideoView()"); if (surfaceView instanceof TextureView) { player.clearVideoTextureView((TextureView) surfaceView); } else if (surfaceView instanceof SurfaceView) { @@ -140,7 +139,6 @@ private void clearVideoView() { } private void setVideoView() { - Log.w("RNV", "setVideoView()"); if (surfaceView instanceof TextureView) { player.setVideoTextureView((TextureView) surfaceView); } else if (surfaceView instanceof SurfaceView) { @@ -150,27 +148,19 @@ private void setVideoView() { private void updateSurfaceView() { View view; - Log.w("RNV", "DEBUG1"); if (!useTextureView || useSecureView) { - Log.w("RNV", "DEBUG2"); if (surfaceView != null && surfaceView instanceof SurfaceView) { - Log.w("RNV", "DEBUG3"); view = surfaceView; } else { - Log.w("RNV", "DEBUG4"); view = new SurfaceView(context); } if (useSecureView) { - Log.w("RNV", "DEBUG5"); ((SurfaceView)view).setSecure(true); } } else { - Log.w("RNV", "DEBUG6"); if (surfaceView != null && surfaceView instanceof TextureView) { - Log.w("RNV", "DEBUG7"); view = surfaceView; } else { - Log.w("RNV", "DEBUG8"); view = new TextureView(context); } } @@ -183,7 +173,6 @@ private void updateSurfaceView() { layout.addView(surfaceView, 0, layoutParams); if (this.player != null) { - Log.w("RNV", "DEBUG9"); setVideoView(); } }