diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java index fa3c1230af..0077c3b0cd 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java @@ -7,7 +7,6 @@ import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter; import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; -import com.google.android.exoplayer2.upstream.DefaultHttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.util.Util; diff --git a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java index babe0f7fc8..f0b59f47b4 100644 --- a/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +++ b/android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java @@ -496,20 +496,39 @@ public void onMetadata(Metadata metadata) { public void setSrc(final Uri uri, final String extension) { if (uri != null) { + boolean isOriginalSourceNull = srcUri == null; + boolean isSourceEqual = uri.equals(srcUri); + this.srcUri = uri; this.extension = extension; this.mediaDataSourceFactory = DataSourceUtil.getDefaultDataSourceFactory(getContext(), BANDWIDTH_METER); + + if (!isOriginalSourceNull && !isSourceEqual) { + reloadSource(); + } } } public void setRawSrc(final Uri uri, final String extension) { if (uri != null) { + boolean isOriginalSourceNull = srcUri == null; + boolean isSourceEqual = uri.equals(srcUri); + this.srcUri = uri; this.extension = extension; this.mediaDataSourceFactory = DataSourceUtil.getRawDataSourceFactory(getContext()); + + if (!isOriginalSourceNull && !isSourceEqual) { + reloadSource(); + } } } + private void reloadSource() { + playerNeedsSource = true; + initializePlayer(); + } + public void setResizeModeModifier(@ResizeMode.Mode int resizeMode) { exoPlayerView.setResizeMode(resizeMode); }