Loading Video.js +7 −1 Changes for Video.js: 7 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -11,7 +11,13 @@ const styles = StyleSheet.create({ }, }); export { TextTrackType }; const { ExoPlayerConfig } = NativeModules const VideoPlayerConfig = Platform.OS === "android" ? ExoPlayerConfig : undefined; export { TextTrackType, VideoPlayerConfig}; export default class Video extends Component { Loading android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerConfig.java 0 → 100644 +47 −0 Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerConfig.java: 47 added lines, 0 removed lines. Original line number Diff line number Diff line package com.brentvatne.exoplayer; import android.content.Context; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; public class ExoPlayerConfig extends ReactContextBaseJavaModule { public ExoPlayerConfig(ReactApplicationContext reactContext) { super(reactContext); } @Override public String getName() { return "ExoPlayerConfig"; } @ReactMethod public void setMinBufferMs(final int newMinBufferMs, final Promise promise) { ReactExoplayerView.setMinBufferMs(newMinBufferMs); promise.resolve(null); } @ReactMethod public void setMaxBufferMs(final int newMaxBufferMs, final Promise promise) { ReactExoplayerView.setMaxBufferMs(newMaxBufferMs); promise.resolve(null); } @ReactMethod public void setBufferForPlaybackMs(final int newBufferForPlaybackMs, final Promise promise) { ReactExoplayerView.setBufferForPlaybackMs(newBufferForPlaybackMs); promise.resolve(null); } @ReactMethod public void setBufferForPlaybackAfterRebufferMs(final int newBufferForPlaybackAfterRebufferMs, final Promise promise) { ReactExoplayerView.setBufferForPlaybackAfterRebufferMs(newBufferForPlaybackAfterRebufferMs); promise.resolve(null); } } android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +26 −1 Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java: 26 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ import com.google.android.exoplayer2.trackselection.MappingTrackSelector; import com.google.android.exoplayer2.trackselection.TrackSelection; import com.google.android.exoplayer2.trackselection.TrackSelectionArray; import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DefaultAllocator; import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter; import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.Util; Loading Loading @@ -90,6 +91,11 @@ class ReactExoplayerView extends FrameLayout implements DEFAULT_COOKIE_MANAGER.setCookiePolicy(CookiePolicy.ACCEPT_ORIGINAL_SERVER); } private static int minBufferMs = DefaultLoadControl.DEFAULT_MIN_BUFFER_MS; private static int maxBufferMs = DefaultLoadControl.DEFAULT_MAX_BUFFER_MS; private static int bufferForPlaybackMs = DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS; private static int bufferForPlaybackAfterRebufferMs = DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS; private final VideoEventEmitter eventEmitter; private Handler mainHandler; Loading Loading @@ -234,7 +240,9 @@ class ReactExoplayerView extends FrameLayout implements if (player == null) { TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(BANDWIDTH_METER); trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory); player = ExoPlayerFactory.newSimpleInstance(getContext(), trackSelector, new DefaultLoadControl()); DefaultAllocator allocator = new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE); DefaultLoadControl defaultLoadControl = new DefaultLoadControl(allocator, minBufferMs, maxBufferMs, bufferForPlaybackMs, bufferForPlaybackAfterRebufferMs, -1, true); player = ExoPlayerFactory.newSimpleInstance(getContext(), trackSelector, defaultLoadControl); player.addListener(this); player.setMetadataOutput(this); exoPlayerView.setPlayer(player); Loading Loading @@ -931,4 +939,21 @@ class ReactExoplayerView extends FrameLayout implements public void setUseTextureView(boolean useTextureView) { exoPlayerView.setUseTextureView(useTextureView); } public static void setMinBufferMs(int newMinBufferMs) { minBufferMs = newMinBufferMs; } public static void setMaxBufferMs(int newMaxBufferMs) { maxBufferMs = newMaxBufferMs; } public static void setBufferForPlaybackMs(int newBufferForPlaybackMs) { bufferForPlaybackMs = newBufferForPlaybackMs; } public static void setBufferForPlaybackAfterRebufferMs(int newBufferForPlaybackAfterRebufferMs) { bufferForPlaybackAfterRebufferMs = newBufferForPlaybackAfterRebufferMs; } } android-exoplayer/src/main/java/com/brentvatne/react/ReactVideoPackage.java +7 −1 Changes for android-exoplayer/src/main/java/com/brentvatne/react/ReactVideoPackage.java: 7 added lines, 1 removed line. Original line number Diff line number Diff line package com.brentvatne.react; import com.brentvatne.exoplayer.ReactExoplayerViewManager; import com.brentvatne.exoplayer.ExoPlayerConfig; import com.facebook.react.ReactPackage; import com.facebook.react.bridge.JavaScriptModule; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.uimanager.ViewManager; import java.util.ArrayList; import java.util.Collections; import java.util.List; Loading @@ -14,7 +16,11 @@ public class ReactVideoPackage implements ReactPackage { @Override public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { return Collections.emptyList(); List<NativeModule> modules = new ArrayList<>(); modules.add(new ExoPlayerConfig(reactContext)); return modules; } // Deprecated RN 0.47 Loading Loading
Video.js +7 −1 Changes for Video.js: 7 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -11,7 +11,13 @@ const styles = StyleSheet.create({ }, }); export { TextTrackType }; const { ExoPlayerConfig } = NativeModules const VideoPlayerConfig = Platform.OS === "android" ? ExoPlayerConfig : undefined; export { TextTrackType, VideoPlayerConfig}; export default class Video extends Component { Loading
android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerConfig.java 0 → 100644 +47 −0 Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerConfig.java: 47 added lines, 0 removed lines. Original line number Diff line number Diff line package com.brentvatne.exoplayer; import android.content.Context; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; public class ExoPlayerConfig extends ReactContextBaseJavaModule { public ExoPlayerConfig(ReactApplicationContext reactContext) { super(reactContext); } @Override public String getName() { return "ExoPlayerConfig"; } @ReactMethod public void setMinBufferMs(final int newMinBufferMs, final Promise promise) { ReactExoplayerView.setMinBufferMs(newMinBufferMs); promise.resolve(null); } @ReactMethod public void setMaxBufferMs(final int newMaxBufferMs, final Promise promise) { ReactExoplayerView.setMaxBufferMs(newMaxBufferMs); promise.resolve(null); } @ReactMethod public void setBufferForPlaybackMs(final int newBufferForPlaybackMs, final Promise promise) { ReactExoplayerView.setBufferForPlaybackMs(newBufferForPlaybackMs); promise.resolve(null); } @ReactMethod public void setBufferForPlaybackAfterRebufferMs(final int newBufferForPlaybackAfterRebufferMs, final Promise promise) { ReactExoplayerView.setBufferForPlaybackAfterRebufferMs(newBufferForPlaybackAfterRebufferMs); promise.resolve(null); } }
android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +26 −1 Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java: 26 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ import com.google.android.exoplayer2.trackselection.MappingTrackSelector; import com.google.android.exoplayer2.trackselection.TrackSelection; import com.google.android.exoplayer2.trackselection.TrackSelectionArray; import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DefaultAllocator; import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter; import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.Util; Loading Loading @@ -90,6 +91,11 @@ class ReactExoplayerView extends FrameLayout implements DEFAULT_COOKIE_MANAGER.setCookiePolicy(CookiePolicy.ACCEPT_ORIGINAL_SERVER); } private static int minBufferMs = DefaultLoadControl.DEFAULT_MIN_BUFFER_MS; private static int maxBufferMs = DefaultLoadControl.DEFAULT_MAX_BUFFER_MS; private static int bufferForPlaybackMs = DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS; private static int bufferForPlaybackAfterRebufferMs = DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS; private final VideoEventEmitter eventEmitter; private Handler mainHandler; Loading Loading @@ -234,7 +240,9 @@ class ReactExoplayerView extends FrameLayout implements if (player == null) { TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(BANDWIDTH_METER); trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory); player = ExoPlayerFactory.newSimpleInstance(getContext(), trackSelector, new DefaultLoadControl()); DefaultAllocator allocator = new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE); DefaultLoadControl defaultLoadControl = new DefaultLoadControl(allocator, minBufferMs, maxBufferMs, bufferForPlaybackMs, bufferForPlaybackAfterRebufferMs, -1, true); player = ExoPlayerFactory.newSimpleInstance(getContext(), trackSelector, defaultLoadControl); player.addListener(this); player.setMetadataOutput(this); exoPlayerView.setPlayer(player); Loading Loading @@ -931,4 +939,21 @@ class ReactExoplayerView extends FrameLayout implements public void setUseTextureView(boolean useTextureView) { exoPlayerView.setUseTextureView(useTextureView); } public static void setMinBufferMs(int newMinBufferMs) { minBufferMs = newMinBufferMs; } public static void setMaxBufferMs(int newMaxBufferMs) { maxBufferMs = newMaxBufferMs; } public static void setBufferForPlaybackMs(int newBufferForPlaybackMs) { bufferForPlaybackMs = newBufferForPlaybackMs; } public static void setBufferForPlaybackAfterRebufferMs(int newBufferForPlaybackAfterRebufferMs) { bufferForPlaybackAfterRebufferMs = newBufferForPlaybackAfterRebufferMs; } }
android-exoplayer/src/main/java/com/brentvatne/react/ReactVideoPackage.java +7 −1 Changes for android-exoplayer/src/main/java/com/brentvatne/react/ReactVideoPackage.java: 7 added lines, 1 removed line. Original line number Diff line number Diff line package com.brentvatne.react; import com.brentvatne.exoplayer.ReactExoplayerViewManager; import com.brentvatne.exoplayer.ExoPlayerConfig; import com.facebook.react.ReactPackage; import com.facebook.react.bridge.JavaScriptModule; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.uimanager.ViewManager; import java.util.ArrayList; import java.util.Collections; import java.util.List; Loading @@ -14,7 +16,11 @@ public class ReactVideoPackage implements ReactPackage { @Override public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { return Collections.emptyList(); List<NativeModule> modules = new ArrayList<>(); modules.add(new ExoPlayerConfig(reactContext)); return modules; } // Deprecated RN 0.47 Loading