Skip to content

Commit 97b316e

Browse files
committed
重构BaseVideoController
1 parent 63965fa commit 97b316e

34 files changed

Lines changed: 513 additions & 548 deletions

dkplayer-java/src/main/java/com/dueeeke/videoplayer/controller/BaseVideoController.java

Lines changed: 237 additions & 240 deletions
Large diffs are not rendered by default.

dkplayer-java/src/main/java/com/dueeeke/videoplayer/controller/ControlWrapper.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,16 @@ public void showInner() {
239239
mController.showInner();
240240
}
241241

242+
@Override
243+
public boolean hasCutout() {
244+
return mController.hasCutout();
245+
}
246+
247+
@Override
248+
public int getCutoutHeight() {
249+
return mController.getCutoutHeight();
250+
}
251+
242252
/**
243253
* 切换锁定状态
244254
*/

dkplayer-java/src/main/java/com/dueeeke/videoplayer/controller/IControlComponent.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,12 @@ public interface IControlComponent {
1111

1212
View getView();
1313

14-
void show(Animation showAnim);
15-
16-
void hide(Animation hideAnim);
14+
void onVisibilityChanged(boolean isVisible, Animation anim);
1715

1816
void onPlayStateChanged(int playState);
1917

2018
void onPlayerStateChanged(int playerState);
2119

22-
void adjustView(int orientation, int space);
23-
2420
void setProgress(int duration, int position);
2521

2622
void onLockStateChanged(boolean isLocked);

dkplayer-java/src/main/java/com/dueeeke/videoplayer/controller/IVideoController.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,14 @@ public interface IVideoController {
4747
* 隐藏控制视图
4848
*/
4949
void showInner();
50+
51+
/**
52+
* 是否需要适配刘海
53+
*/
54+
boolean hasCutout();
55+
56+
/**
57+
* 获取刘海的高度
58+
*/
59+
int getCutoutHeight();
5060
}

dkplayer-java/src/main/java/com/dueeeke/videoplayer/player/VideoView.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ protected boolean prepareDataSource() {
310310
if (mAssetFileDescriptor != null) {
311311
mMediaPlayer.setDataSource(mAssetFileDescriptor);
312312
return true;
313-
} if (!TextUtils.isEmpty(mUrl)) {
313+
} else if (!TextUtils.isEmpty(mUrl)) {
314314
mMediaPlayer.setDataSource(mUrl, mHeaders);
315315
return true;
316316
}
@@ -334,9 +334,10 @@ public void pause() {
334334
&& mMediaPlayer.isPlaying()) {
335335
mMediaPlayer.pause();
336336
setPlayState(STATE_PAUSED);
337-
setKeepScreenOn(false);
338-
if (mAudioFocusHelper != null)
337+
if (mAudioFocusHelper != null) {
339338
mAudioFocusHelper.abandonFocus();
339+
}
340+
setKeepScreenOn(false);
340341
}
341342
}
342343

@@ -348,8 +349,9 @@ public void resume() {
348349
&& !mMediaPlayer.isPlaying()) {
349350
mMediaPlayer.start();
350351
setPlayState(STATE_PLAYING);
351-
if (mAudioFocusHelper != null)
352+
if (mAudioFocusHelper != null) {
352353
mAudioFocusHelper.requestFocus();
354+
}
353355
setKeepScreenOn(true);
354356
}
355357
}
@@ -535,13 +537,13 @@ public void onError() {
535537
*/
536538
@Override
537539
public void onCompletion() {
538-
setPlayState(STATE_PLAYBACK_COMPLETED);
539540
setKeepScreenOn(false);
540541
mCurrentPosition = 0;
541542
if (mProgressManager != null) {
542543
//播放完成,清除进度
543544
mProgressManager.saveProgress(mUrl, 0);
544545
}
546+
setPlayState(STATE_PLAYBACK_COMPLETED);
545547
}
546548

547549
@Override

dkplayer-java/src/main/java/com/dueeeke/videoplayer/util/PlayerUtils.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,20 @@ public static double getStatusBarHeight(Context context) {
4747
return statusBarHeight;
4848
}
4949

50+
/**
51+
* 获取竖屏下状态栏高度
52+
*/
53+
public static double getStatusBarHeightPortrait(Context context) {
54+
int statusBarHeight = 0;
55+
//获取status_bar_height_portrait资源的ID
56+
int resourceId = context.getResources().getIdentifier("status_bar_height_portrait", "dimen", "android");
57+
if (resourceId > 0) {
58+
//根据资源ID获取响应的尺寸值
59+
statusBarHeight = context.getResources().getDimensionPixelSize(resourceId);
60+
}
61+
return statusBarHeight;
62+
}
63+
5064
/**
5165
* 获取NavigationBar的高度
5266
*/

dkplayer-sample/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout"
7272
android:screenOrientation="portrait" />
7373
<activity
74-
android:name=".activity.api.DefinitionPlayerActivity"
74+
android:name=".activity.extend.DefinitionPlayerActivity"
7575
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout"
7676
android:screenOrientation="portrait" />
7777
<activity

dkplayer-sample/src/main/java/com/dueeeke/dkplayer/activity/api/ParallelPlayActivity.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import androidx.appcompat.app.AppCompatActivity;
88

99
import com.dueeeke.dkplayer.R;
10+
import com.dueeeke.dkplayer.util.DataUtil;
1011
import com.dueeeke.videocontroller.StandardVideoController;
1112
import com.dueeeke.videoplayer.player.VideoView;
1213

@@ -18,7 +19,8 @@
1819
*/
1920
public class ParallelPlayActivity extends AppCompatActivity {
2021

21-
private static final String VOD_URL = "http://vfx.mtime.cn/Video/2019/03/18/mp4/190318231014076505.mp4";
22+
private static final String VOD_URL_1 = "http://vfx.mtime.cn/Video/2019/03/18/mp4/190318231014076505.mp4";
23+
private static final String VOD_URL_2 = DataUtil.SAMPLE_URL;
2224

2325
private List<VideoView> mVideoViews = new ArrayList<>();
2426

@@ -34,7 +36,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
3436

3537

3638
VideoView player1 = findViewById(R.id.player_1);
37-
player1.setUrl(VOD_URL);
39+
player1.setUrl(VOD_URL_1);
3840

3941
//必须设置
4042
player1.setEnableAudioFocus(false);
@@ -44,7 +46,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
4446
mVideoViews.add(player1);
4547

4648
VideoView player2 = findViewById(R.id.player_2);
47-
player2.setUrl(VOD_URL);
49+
player2.setUrl(VOD_URL_2);
4850
//必须设置
4951
player2.setEnableAudioFocus(false);
5052
StandardVideoController controller2 = new StandardVideoController(this);

dkplayer-sample/src/main/java/com/dueeeke/dkplayer/activity/api/PlayerActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ protected void initView() {
9696

9797
//竖屏也开启手势操作,默认关闭
9898
// controller.setEnableInNormal(true);
99-
//手势
99+
//滑动调节亮度,音量,进度,默认开启
100100
// controller.setGestureEnabled(false);
101101
//适配刘海屏,默认开启
102102
// controller.setAdaptCutout(false);
@@ -123,7 +123,7 @@ protected void initView() {
123123
}
124124
}
125125

126-
private VideoView.OnStateChangeListener mOnStateChangeListener = new VideoView.OnStateChangeListener() {
126+
private VideoView.OnStateChangeListener mOnStateChangeListener = new VideoView.SimpleOnStateChangeListener() {
127127
@Override
128128
public void onPlayerStateChanged(int playerState) {
129129
switch (playerState) {

dkplayer-sample/src/main/java/com/dueeeke/dkplayer/activity/extend/ADActivity.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.danikula.videocache.HttpProxyCacheServer;
66
import com.dueeeke.dkplayer.R;
77
import com.dueeeke.dkplayer.activity.BaseActivity;
8+
import com.dueeeke.dkplayer.util.DataUtil;
89
import com.dueeeke.dkplayer.util.cache.ProxyVideoCacheManager;
910
import com.dueeeke.dkplayer.widget.component.AdControlView;
1011
import com.dueeeke.videocontroller.StandardVideoController;
@@ -17,9 +18,6 @@
1718

1819
public class ADActivity extends BaseActivity<VideoView> {
1920

20-
private static final String URL_VOD = "http://vfx.mtime.cn/Video/2019/03/12/mp4/190312143927981075.mp4";
21-
// private static final String URL_VOD = "http://baobab.wdjcdn.com/14564977406580.mp4";
22-
// private static final String URL_VOD = "http://uploads.cutv.com:8088/video/data/201703/10/encode_file/515b6a95601ba6b39620358f2677a17358c2472411d53.mp4";
2321
private static final String URL_AD = "https://gslb.miaopai.com/stream/IR3oMYDhrON5huCmf7sHCfnU5YKEkgO2.mp4";
2422

2523
private StandardVideoController mController;
@@ -79,7 +77,7 @@ private void playVideo() {
7977
mController.removeAllControlComponent();
8078
mController.addDefaultControlComponent("正片", false);
8179
//重新设置数据
82-
mVideoView.setUrl(URL_VOD);
80+
mVideoView.setUrl(DataUtil.SAMPLE_URL);
8381
//开始播放
8482
mVideoView.start();
8583
}

0 commit comments

Comments
 (0)