Skip to content

Commit

Permalink
Merge pull request #49 from shahen94/feature/resize-mode
Browse files Browse the repository at this point in the history
 feat(VideoPlayer): introduce resizeMode prop
  • Loading branch information
Shahen Hovhannisyan committed Mar 20, 2017
2 parents 052feeb + 7667424 commit ff3bd5b
Show file tree
Hide file tree
Showing 10 changed files with 615 additions and 501 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ class App extends Component {
playerWidth={300} // iOS only
playerHeight={500} // iOS only
style={{ backgroundColor: 'black' }}
resizeMode={VideoPlayer.Constants.resizeMode.CONTAIN}
onChange={({ nativeEvent }) => console.log({ nativeEvent })} // get Current time on every second
/>
<Trimmer
Expand Down
25 changes: 8 additions & 17 deletions android/react-native-video-processing.iml
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
Expand All @@ -82,8 +74,14 @@
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/23.0.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/23.0.1/jars" />
Expand All @@ -97,13 +95,6 @@
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.yqritc/android-scalablevideoview/1.0.4/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/org.webkit/android-jsc/r174650/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
</content>
<orderEntry type="jdk" jdkName="Android API 23 Platform (1)" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ public class VideoPlayerView extends ScalableVideoView implements
private RCTEventEmitter eventEmitter;
private String mediaSource;
private boolean mPlay = true;
private ScalableType mResizeMode = ScalableType.FIT_XY;
private String LOG_TAG = "RNVideoProcessing";
private Runnable progressRunnable = null;
private Handler progressUpdateHandler = new Handler();
Expand All @@ -71,6 +72,7 @@ public class VideoPlayerView extends ScalableVideoView implements
private int videoEndAt = -1;
private boolean mLooping = false;
private float mVolume = 10f;
private ScalableType resizeMode;


public VideoPlayerView(ThemedReactContext ctx) {
Expand Down Expand Up @@ -380,7 +382,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto
@Override
public void onPrepared(MediaPlayer mp) {
videoEndAt = mp.getDuration();
setScalableType(ScalableType.FIT_XY);
setScalableType(mResizeMode);
invalidate();

applyProps();
Expand Down Expand Up @@ -447,4 +449,18 @@ public boolean canSeekForward() {
public int getAudioSessionId() {
return 0;
}

public void setResizeMode(@Nullable ScalableType resizeMode) {
if (resizeMode == null) {
return;
}
Log.d(LOG_TAG, "setResizeMode: " + resizeMode.toString());
mResizeMode = resizeMode;

if (mMediaPlayer == null) {
return;
}
setScalableType(mResizeMode);
invalidate();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import com.facebook.react.uimanager.ThemedReactContext;
import com.shahenlibrary.Events.EventsEnum;
import com.shahenlibrary.Events.Events;
import com.yqritc.scalablevideoview.ScalableType;

import java.util.Map;

Expand All @@ -50,6 +51,7 @@ public class VideoPlayerViewManager extends SimpleViewManager<VideoPlayerView> {
private final String SET_PROGRESS_DELAY = "progressEventDelay";
private final String SET_VIDEO_END_TIME = "endTime";
private final String SET_VIDEO_START_TIME = "startTime";
private final String SET_VIDEO_RESIZE_MODE = "resizeMode";

private final int COMMAND_GET_INFO = 1;
private final int COMMAND_TRIM_MEDIA = 2;
Expand Down Expand Up @@ -102,6 +104,17 @@ public Map<String, Integer> getCommandsMap() {
);
}

@Nullable
@Override
public Map getExportedViewConstants() {
return MapBuilder.of(
"ScaleNone", Integer.toString(ScalableType.LEFT_TOP.ordinal()),
"ScaleToFill", Integer.toString(ScalableType.FIT_XY.ordinal()),
"ScaleAspectFit", Integer.toString(ScalableType.FIT_CENTER.ordinal()),
"ScaleAspectFill", Integer.toString(ScalableType.CENTER_CROP.ordinal())
);
}

@Override
public void receiveCommand(VideoPlayerView root, int commandId, @Nullable ReadableArray args) {
assert args != null;
Expand Down Expand Up @@ -176,4 +189,9 @@ public void setVideoStartTime(final VideoPlayerView player, float startTime) {
Log.d(VideoPlayerViewManager.REACT_PACKAGE, "setVideoStartTime: " + String.valueOf(startTime));
player.setVideoStartAt(mStart);
}

@ReactProp(name = SET_VIDEO_RESIZE_MODE)
public void setResizeMode(final VideoPlayerView player, String resizeModeOrdinalString) {
player.setResizeMode(ScalableType.values()[Integer.parseInt(resizeModeOrdinalString)]);
}
}
Loading

0 comments on commit ff3bd5b

Please sign in to comment.