-
-
+
+
+
+
diff --git a/player/src/main/java/xyz/doikki/videoplayer/controller/BaseVideoController.java b/player/src/main/java/xyz/doikki/videoplayer/controller/BaseVideoController.java
index c54dcb37..b3970c4a 100644
--- a/player/src/main/java/xyz/doikki/videoplayer/controller/BaseVideoController.java
+++ b/player/src/main/java/xyz/doikki/videoplayer/controller/BaseVideoController.java
@@ -396,7 +396,7 @@ public abstract class BaseVideoController extends FrameLayout
* 横竖屏切换
*/
protected void toggleFullScreen() {
- mControlWrapper.toggleFullScreenByVideoSize(mActivity);
+ mControlWrapper.toggleFullScreen(mActivity);
}
/**
@@ -508,47 +508,32 @@ public abstract class BaseVideoController extends FrameLayout
if (mIsLocked) return;
//没有开启设备方向监听的情况
if (!mEnableOrientation) return;
- int[] size = mControlWrapper.getVideoSize();
- int width = size[0];
- int height = size[1];
- int o = activity.getRequestedOrientation();
- if (width < height && o != ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
- activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- mControlWrapper.replay(true);
- }
+
+ activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+ mControlWrapper.stopFullScreen();
}
/**
* 横屏
*/
protected void onOrientationLandscape(Activity activity) {
- int[] size = mControlWrapper.getVideoSize();
- int width = size[0];
- int height = size[1];
- if (width > height) {
- if (mControlWrapper.isFullScreen()) {
- activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
- handlePlayerStateChanged(VideoView.PLAYER_FULL_SCREEN);
- } else {
- mControlWrapper.startFullScreen();
- }
- }
+ activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ if (mControlWrapper.isFullScreen()) {
+ handlePlayerStateChanged(VideoView.PLAYER_FULL_SCREEN);
+ } else {
+ mControlWrapper.startFullScreen();
+ }
}
/**
* 反向横屏
*/
protected void onOrientationReverseLandscape(Activity activity) {
- int[] size = mControlWrapper.getVideoSize();
- int width = size[0];
- int height = size[1];
- if (width > height) {
- if (mControlWrapper.isFullScreen()) {
- activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
- handlePlayerStateChanged(VideoView.PLAYER_FULL_SCREEN);
- } else {
- mControlWrapper.startFullScreen();
- }
+ activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
+ if (mControlWrapper.isFullScreen()) {
+ handlePlayerStateChanged(VideoView.PLAYER_FULL_SCREEN);
+ } else {
+ mControlWrapper.startFullScreen();
}
}
diff --git a/player/src/main/java/xyz/doikki/videoplayer/controller/ControlWrapper.java b/player/src/main/java/xyz/doikki/videoplayer/controller/ControlWrapper.java
index 5ab724d3..3b3ca692 100644
--- a/player/src/main/java/xyz/doikki/videoplayer/controller/ControlWrapper.java
+++ b/player/src/main/java/xyz/doikki/videoplayer/controller/ControlWrapper.java
@@ -11,15 +11,15 @@ import androidx.annotation.NonNull;
* 并对部分api做了封装,方便使用
*/
public class ControlWrapper implements MediaPlayerControl, IVideoController {
-
+
private MediaPlayerControl mPlayerControl;
private IVideoController mController;
-
+
public ControlWrapper(@NonNull MediaPlayerControl playerControl, @NonNull IVideoController controller) {
mPlayerControl = playerControl;
mController = controller;
}
-
+
@Override
public void start() {
mPlayerControl.start();
@@ -186,10 +186,16 @@ public class ControlWrapper implements MediaPlayerControl, IVideoController {
int[] size = getVideoSize();
int width = size[0];
int height = size[1];
- if (width < height) {
- activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+ if (isFullScreen()) {
+ stopFullScreen();
+ if (width > height) {
+ activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+ }
} else {
- activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ startFullScreen();
+ if (width > height) {
+ activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ }
}
}
diff --git a/player/src/main/java/xyz/doikki/videoplayer/player/VideoView.java b/player/src/main/java/xyz/doikki/videoplayer/player/VideoView.java
index 640f6e73..9f709c68 100644
--- a/player/src/main/java/xyz/doikki/videoplayer/player/VideoView.java
+++ b/player/src/main/java/xyz/doikki/videoplayer/player/VideoView.java
@@ -5,7 +5,6 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.res.AssetFileDescriptor;
import android.content.res.TypedArray;
-import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.net.Uri;
@@ -733,14 +732,6 @@ public class VideoView extends FrameLayout
//将播放器视图添加到DecorView中即实现了全屏
decorView.addView(mPlayerContainer);
- Activity activity = getActivity();
- int[] size = getVideoSize();
- int width = size[0];
- int height = size[1];
- if (width < height) {
- activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- }
-
setPlayerState(PLAYER_FULL_SCREEN);
}
@@ -788,14 +779,6 @@ public class VideoView
extends FrameLayout
decorView.removeView(mPlayerContainer);
this.addView(mPlayerContainer);
- Activity activity = getActivity();
- int[] size = getVideoSize();
- int width = size[0];
- int height = size[1];
- if (width < height) {
- activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- }
-
setPlayerState(PLAYER_NORMAL);
}
diff --git a/player/src/main/java/xyz/doikki/videoplayer/player/VideoViewConfig.java b/player/src/main/java/xyz/doikki/videoplayer/player/VideoViewConfig.java
index 5f61ee9f..1e805184 100644
--- a/player/src/main/java/xyz/doikki/videoplayer/player/VideoViewConfig.java
+++ b/player/src/main/java/xyz/doikki/videoplayer/player/VideoViewConfig.java
@@ -60,7 +60,7 @@ public class VideoViewConfig {
private boolean mIsEnableLog;
private boolean mPlayOnMobileNetwork = true;
- private boolean mEnableOrientation = true;
+ private boolean mEnableOrientation;
private boolean mEnableAudioFocus = true;
private ProgressManager mProgressManager;
private PlayerFactory mPlayerFactory;