Commit 96c42844 authored by vadim's avatar vadim
Browse files

ExoPlayer - Add possibility to hide shutterView

parent e1c1eb6d
Loading
Loading
Loading
Loading
+8 −0
Changes for README.md: 8 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -693,6 +693,14 @@ useTextureView can only be set at same time you're setting the source.

Platforms: Android ExoPlayer

#### hideShutterView
Controls ExoPlayer shutterView(black screen while loading) visibility

* **false (default)** - Show shutterView 
* **true** - Hide shutterView

Platforms: Android ExoPlayer

#### volume
Adjust the volume.
* **1.0 (default)** - Play at full volume
+1 −0
Changes for Video.js: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -383,6 +383,7 @@ Video.propTypes = {
  fullscreenOrientation: PropTypes.oneOf(['all','landscape','portrait']),
  progressUpdateInterval: PropTypes.number,
  useTextureView: PropTypes.bool,
  hideShutterView: PropTypes.bool,
  onLoadStart: PropTypes.func,
  onLoad: PropTypes.func,
  onBuffer: PropTypes.func,
+10 −0
Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/ExoPlayerView.java: 10 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ public final class ExoPlayerView extends FrameLayout {
    private ViewGroup.LayoutParams layoutParams;

    private boolean useTextureView = false;
    private boolean hideShutterView = false;

    public ExoPlayerView(Context context) {
        this(context, null);
@@ -106,6 +107,10 @@ public final class ExoPlayerView extends FrameLayout {
        }
    }

    private void updateShutterViewVisibility() {
        shutterView.setVisibility(this.hideShutterView ? View.INVISIBLE : View.VISIBLE);
    }

    /**
     * Set the {@link SimpleExoPlayer} to use. The {@link SimpleExoPlayer#setTextOutput} and
     * {@link SimpleExoPlayer#setVideoListener} method of the player will be called and previous
@@ -161,6 +166,11 @@ public final class ExoPlayerView extends FrameLayout {
        updateSurfaceView();
    }

    public void setHideShutterView(boolean hideShutterView) {
        this.hideShutterView = hideShutterView;
        updateShutterViewVisibility();
    }

    private final Runnable measureAndLayout = new Runnable() {
        @Override
        public void run() {
+5 −0
Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -131,6 +131,7 @@ class ReactExoplayerView extends FrameLayout implements
    private float mProgressUpdateInterval = 250.0f;
    private boolean playInBackground = false;
    private boolean useTextureView = false;
    private boolean hideShutterView = false;
    private Map<String, String> requestHeaders;
    // \ End props

@@ -954,6 +955,10 @@ class ReactExoplayerView extends FrameLayout implements
        exoPlayerView.setUseTextureView(useTextureView);
    }

    public void setHideShutterView(boolean hideShutterView) {
        exoPlayerView.setHideShutterView(hideShutterView);
    }

    public void setBufferConfig(int newMinBufferMs, int newMaxBufferMs, int newBufferForPlaybackMs, int newBufferForPlaybackAfterRebufferMs) {
        minBufferMs = newMinBufferMs;
        maxBufferMs = newMaxBufferMs;
+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
@@ -51,6 +51,7 @@ public class ReactExoplayerViewManager extends ViewGroupManager<ReactExoplayerVi
    private static final String PROP_DISABLE_FOCUS = "disableFocus";
    private static final String PROP_FULLSCREEN = "fullscreen";
    private static final String PROP_USE_TEXTURE_VIEW = "useTextureView";
    private static final String PROP_HIDE_SHUTTER_VIEW = "hideShutterView";

    @Override
    public String getName() {
@@ -220,6 +221,11 @@ public class ReactExoplayerViewManager extends ViewGroupManager<ReactExoplayerVi
        videoView.setUseTextureView(useTextureView);
    }

    @ReactProp(name = PROP_HIDE_SHUTTER_VIEW, defaultBoolean = false)
    public void setHideShutterView(final ReactExoplayerView videoView, final boolean hideShutterView) {
        videoView.setHideShutterView(hideShutterView);
    }

    @ReactProp(name = PROP_BUFFER_CONFIG)
    public void setBufferConfig(final ReactExoplayerView videoView, @Nullable ReadableMap bufferConfig) {
        int minBufferMs = DefaultLoadControl.DEFAULT_MIN_BUFFER_MS;