Loading android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +55 −0 Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java: 55 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -64,6 +64,8 @@ import com.google.android.exoplayer2.upstream.BandwidthMeter; import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter; import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.Util; //Import PlayerControlView import com.google.android.exoplayer2.ui.PlayerControlView; import java.net.CookieHandler; import java.net.CookieManager; Loading Loading @@ -96,6 +98,8 @@ class ReactExoplayerView extends FrameLayout implements } private final VideoEventEmitter eventEmitter; //Create playerControlView instance private PlayerControlView playerControlView; private Handler mainHandler; private ExoPlayerView exoPlayerView; Loading Loading @@ -257,6 +261,41 @@ class ReactExoplayerView extends FrameLayout implements } // Internal methods /** * Toggling the visibility of the player control view */ private void togglePlayerControlVisibility() { if(playerControlView.isVisible()) { playerControlView.setVisibility(INVISIBLE); } else { playerControlView.setVisibility(VISIBLE); } } /** * Initialising Player control */ private void initialisePlayerControl() { playerControlView = new PlayerControlView(getContext()); LayoutParams layoutParams = new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); playerControlView.setLayoutParams(layoutParams); addView(playerControlView, 1, layoutParams); //Setting the player for the playerControlView playerControlView.setPlayer(player); //Invoking onClick event for exoplayerView exoPlayerView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { togglePlayerControlVisibility(); } }); } private void initializePlayer() { if (player == null) { TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(BANDWIDTH_METER); Loading Loading @@ -517,6 +556,10 @@ class ReactExoplayerView extends FrameLayout implements onBuffering(false); startProgressHandler(); videoLoaded(); //Setting the visibility for the playerControlView if(playerControlView != null) { playerControlView.setVisibility(VISIBLE); } break; case ExoPlayer.STATE_ENDED: text += "ended"; Loading Loading @@ -1056,4 +1099,16 @@ class ReactExoplayerView extends FrameLayout implements releasePlayer(); initializePlayer(); } /** * Handling controls prop * * @param controls value of the controls prop passed from react-native */ public void setControls(boolean controls) { if(controls && (exoPlayerView != null)) { //Initialise playerControlView initialisePlayerControl(); } } } android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java +6 −0 Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java: 6 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ public class ReactExoplayerViewManager extends ViewGroupManager<ReactExoplayerVi private static final String PROP_SELECTED_VIDEO_TRACK_TYPE = "type"; private static final String PROP_SELECTED_VIDEO_TRACK_VALUE = "value"; private static final String PROP_HIDE_SHUTTER_VIEW = "hideShutterView"; private static final String PROP_CONTROLS = "controls"; @Override public String getName() { Loading Loading @@ -255,6 +256,11 @@ public class ReactExoplayerViewManager extends ViewGroupManager<ReactExoplayerVi videoView.setHideShutterView(hideShutterView); } @ReactProp(name = PROP_CONTROLS, defaultBoolean = false) public void setControls(final ReactExoplayerView videoView, final boolean controls) { videoView.setControls(controls); } @ReactProp(name = PROP_BUFFER_CONFIG) public void setBufferConfig(final ReactExoplayerView videoView, @Nullable ReadableMap bufferConfig) { int minBufferMs = DefaultLoadControl.DEFAULT_MIN_BUFFER_MS; Loading Loading
android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +55 −0 Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java: 55 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -64,6 +64,8 @@ import com.google.android.exoplayer2.upstream.BandwidthMeter; import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter; import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.Util; //Import PlayerControlView import com.google.android.exoplayer2.ui.PlayerControlView; import java.net.CookieHandler; import java.net.CookieManager; Loading Loading @@ -96,6 +98,8 @@ class ReactExoplayerView extends FrameLayout implements } private final VideoEventEmitter eventEmitter; //Create playerControlView instance private PlayerControlView playerControlView; private Handler mainHandler; private ExoPlayerView exoPlayerView; Loading Loading @@ -257,6 +261,41 @@ class ReactExoplayerView extends FrameLayout implements } // Internal methods /** * Toggling the visibility of the player control view */ private void togglePlayerControlVisibility() { if(playerControlView.isVisible()) { playerControlView.setVisibility(INVISIBLE); } else { playerControlView.setVisibility(VISIBLE); } } /** * Initialising Player control */ private void initialisePlayerControl() { playerControlView = new PlayerControlView(getContext()); LayoutParams layoutParams = new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); playerControlView.setLayoutParams(layoutParams); addView(playerControlView, 1, layoutParams); //Setting the player for the playerControlView playerControlView.setPlayer(player); //Invoking onClick event for exoplayerView exoPlayerView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { togglePlayerControlVisibility(); } }); } private void initializePlayer() { if (player == null) { TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(BANDWIDTH_METER); Loading Loading @@ -517,6 +556,10 @@ class ReactExoplayerView extends FrameLayout implements onBuffering(false); startProgressHandler(); videoLoaded(); //Setting the visibility for the playerControlView if(playerControlView != null) { playerControlView.setVisibility(VISIBLE); } break; case ExoPlayer.STATE_ENDED: text += "ended"; Loading Loading @@ -1056,4 +1099,16 @@ class ReactExoplayerView extends FrameLayout implements releasePlayer(); initializePlayer(); } /** * Handling controls prop * * @param controls value of the controls prop passed from react-native */ public void setControls(boolean controls) { if(controls && (exoPlayerView != null)) { //Initialise playerControlView initialisePlayerControl(); } } }
android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java +6 −0 Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerViewManager.java: 6 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ public class ReactExoplayerViewManager extends ViewGroupManager<ReactExoplayerVi private static final String PROP_SELECTED_VIDEO_TRACK_TYPE = "type"; private static final String PROP_SELECTED_VIDEO_TRACK_VALUE = "value"; private static final String PROP_HIDE_SHUTTER_VIEW = "hideShutterView"; private static final String PROP_CONTROLS = "controls"; @Override public String getName() { Loading Loading @@ -255,6 +256,11 @@ public class ReactExoplayerViewManager extends ViewGroupManager<ReactExoplayerVi videoView.setHideShutterView(hideShutterView); } @ReactProp(name = PROP_CONTROLS, defaultBoolean = false) public void setControls(final ReactExoplayerView videoView, final boolean controls) { videoView.setControls(controls); } @ReactProp(name = PROP_BUFFER_CONFIG) public void setBufferConfig(final ReactExoplayerView videoView, @Nullable ReadableMap bufferConfig) { int minBufferMs = DefaultLoadControl.DEFAULT_MIN_BUFFER_MS; Loading