Przeglądaj źródła

完善视频播放器内核库

yangchong 3 lat temu
rodzic
commit
af7918d2ae
26 zmienionych plików z 70 dodań i 395 usunięć
  1. 1 1
      Demo/src/main/java/com/yc/ycvideoplayer/video/ad/AdControlView.java
  2. 1 1
      Demo/src/main/java/com/yc/ycvideoplayer/video/danmu/MyDanmakuView.java
  3. 1 1
      Demo/src/main/java/com/yc/ycvideoplayer/video/list/PlayerMonitor.java
  4. 1 1
      Demo/src/main/java/com/yc/ycvideoplayer/video/tiktok/TikTokView.java
  5. 8 8
      Demo/src/main/res/layout/activity_audio.xml
  6. 3 0
      Demo/src/main/res/layout/activity_main.xml
  7. 1 0
      MusicPlayer/build.gradle
  8. 13 0
      MusicPlayer/src/main/java/com/yc/music/tool/BaseAppHelper.java
  9. 24 13
      MusicPlayer/src/main/java/com/yc/music/utils/NotificationHelper.java
  10. 0 361
      MusicPlayer/src/main/java/com/yc/music/utils/NotificationUtils.java
  11. 1 1
      VideoPlayer/src/main/java/com/yc/video/controller/BaseVideoController.java
  12. 1 1
      VideoPlayer/src/main/java/com/yc/video/controller/GestureVideoController.java
  13. 1 1
      VideoPlayer/src/main/java/com/yc/video/controller/IGestureComponent.java
  14. 1 1
      VideoPlayer/src/main/java/com/yc/video/controller/InterViewController.java
  15. 1 1
      VideoPlayer/src/main/java/com/yc/video/ui/inter/InterControlView.java
  16. 1 1
      VideoPlayer/src/main/java/com/yc/video/ui/more/CustomNetworkView.java
  17. 1 1
      VideoPlayer/src/main/java/com/yc/video/ui/more/CustomTrailersView.java
  18. 1 1
      VideoPlayer/src/main/java/com/yc/video/ui/pip/CustomFloatView.java
  19. 1 0
      VideoPlayer/src/main/java/com/yc/video/ui/view/CustomBottomView.java
  20. 1 0
      VideoPlayer/src/main/java/com/yc/video/ui/view/CustomCompleteView.java
  21. 1 0
      VideoPlayer/src/main/java/com/yc/video/ui/view/CustomErrorView.java
  22. 1 0
      VideoPlayer/src/main/java/com/yc/video/ui/view/CustomLiveControlView.java
  23. 1 0
      VideoPlayer/src/main/java/com/yc/video/ui/view/CustomOncePlayView.java
  24. 1 0
      VideoPlayer/src/main/java/com/yc/video/ui/view/CustomPrepareView.java
  25. 1 0
      VideoPlayer/src/main/java/com/yc/video/ui/view/CustomTitleView.java
  26. 2 1
      VideoPlayer/src/main/res/layout/custom_video_player_completed.xml

+ 1 - 1
Demo/src/main/java/com/yc/ycvideoplayer/video/ad/AdControlView.java

@@ -17,7 +17,7 @@ import com.yc.ycvideoplayer.R;
 
 import com.yc.video.bridge.ControlWrapper;
 import com.yc.video.config.ConstantKeys;
-import com.yc.video.ui.view.InterControlView;
+import com.yc.video.ui.inter.InterControlView;
 import com.yc.video.tool.PlayerUtils;
 
 

+ 1 - 1
Demo/src/main/java/com/yc/ycvideoplayer/video/danmu/MyDanmakuView.java

@@ -21,7 +21,7 @@ import com.yc.ycvideoplayer.R;
 
 import com.yc.video.bridge.ControlWrapper;
 import com.yc.video.config.ConstantKeys;
-import com.yc.video.ui.view.InterControlView;
+import com.yc.video.ui.inter.InterControlView;
 import com.yc.video.tool.PlayerUtils;
 
 import master.flame.danmaku.controller.DrawHandler;

+ 1 - 1
Demo/src/main/java/com/yc/ycvideoplayer/video/list/PlayerMonitor.java

@@ -8,7 +8,7 @@ import androidx.annotation.NonNull;
 import com.yc.videotool.VideoLogUtils;
 
 import com.yc.video.bridge.ControlWrapper;
-import com.yc.video.ui.view.InterControlView;
+import com.yc.video.ui.inter.InterControlView;
 import com.yc.video.tool.PlayerUtils;
 
 

+ 1 - 1
Demo/src/main/java/com/yc/ycvideoplayer/video/tiktok/TikTokView.java

@@ -20,7 +20,7 @@ import com.yc.ycvideoplayer.R;
 
 import com.yc.video.bridge.ControlWrapper;
 import com.yc.video.config.ConstantKeys;
-import com.yc.video.ui.view.InterControlView;
+import com.yc.video.ui.inter.InterControlView;
 
 public class TikTokView extends FrameLayout implements InterControlView {
 

+ 8 - 8
Demo/src/main/res/layout/activity_audio.xml

@@ -17,19 +17,19 @@
             android:id="@+id/btn_init"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="init" />
+            android:text="初始化" />
 
         <Button
             android:id="@+id/btn_speak_tts"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="speak tts" />
+            android:text="播放语音" />
 
         <Button
             android:id="@+id/btn_speak_media"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="speak mp3 " />
+            android:text="播放mp3" />
 
         <Button
             android:id="@+id/btn_mix_play"
@@ -41,31 +41,31 @@
             android:id="@+id/btn_pause"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="pause" />
+            android:text="暂停" />
 
         <Button
             android:id="@+id/btn_resume"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="resume" />
+            android:text="开始" />
 
         <Button
             android:id="@+id/btn_stop"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="stop" />
+            android:text="停止" />
 
         <Button
             android:id="@+id/btn_high_priority"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="HIGH_PRIORITY" />
+            android:text="高优先级" />
 
         <Button
             android:id="@+id/btn_release"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="release" />
+            android:text="销毁" />
         <Button
             android:id="@+id/btn_brazil"
             android:layout_width="match_parent"

+ 3 - 0
Demo/src/main/res/layout/activity_main.xml

@@ -37,6 +37,7 @@
             android:padding="10dp">
             <TextView
                 android:id="@+id/tv_1"
+                android:visibility="gone"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="10dp"
@@ -53,6 +54,7 @@
                 android:text="2.新改版视频播放器"/>
             <TextView
                 android:id="@+id/tv_3"
+                android:visibility="gone"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="10dp"
@@ -77,6 +79,7 @@
                 android:text="5.m3u8视频下载"/>
             <TextView
                 android:id="@+id/tv_6"
+                android:visibility="gone"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="10dp"

+ 1 - 0
MusicPlayer/build.gradle

@@ -25,6 +25,7 @@ dependencies {
     implementation fileTree(dir: "libs", include: ["*.jar"])
     implementation project.ext.AppDependencies['appcompat']
     implementation project.ext.AppDependencies['media']
+    implementation 'com.github.yangchong211.YCNotification:NotificationLib:1.0.4'
     implementation project(path: ':VideoTool')
 }
 

+ 13 - 0
MusicPlayer/src/main/java/com/yc/music/tool/BaseAppHelper.java

@@ -1,6 +1,7 @@
 package com.yc.music.tool;
 
 import android.annotation.SuppressLint;
+import android.app.Activity;
 import android.content.Context;
 
 import com.yc.music.inter.OnPlayerEventListener;
@@ -37,6 +38,10 @@ public class BaseAppHelper {
      * 播放进度监听器
      */
     private final List<OnPlayerEventListener> mOnPlayerEventListeners = new ArrayList<>();
+    /**
+     * 点击通知栏跳转的页面
+     */
+    private Class<? extends Activity> mMusicActivity;
 
     private BaseAppHelper() {
         //这里可以做一些初始化的逻辑
@@ -128,4 +133,12 @@ public class BaseAppHelper {
     public List<OnPlayerEventListener> getOnPlayerEventListeners() {
         return mOnPlayerEventListeners;
     }
+
+    public Class<? extends Activity> getMusicActivity() {
+        return mMusicActivity;
+    }
+
+    public void setMusicActivity(Class<? extends Activity> mMusicActivity) {
+        this.mMusicActivity = mMusicActivity;
+    }
 }

+ 24 - 13
MusicPlayer/src/main/java/com/yc/music/utils/NotificationHelper.java

@@ -1,5 +1,6 @@
 package com.yc.music.utils;
 
+import android.app.Activity;
 import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
@@ -13,6 +14,10 @@ import com.yc.music.model.AudioBean;
 import com.yc.music.receiver.NotificationStatusBarReceiver;
 import com.yc.music.service.AbsAudioService;
 import com.yc.music.service.PlayAudioService;
+import com.yc.music.tool.BaseAppHelper;
+import com.yc.music.tool.CoverLoader;
+import com.ycbjie.notificationlib.NotificationParams;
+import com.ycbjie.notificationlib.NotificationUtils;
 
 
 public class NotificationHelper {
@@ -95,24 +100,30 @@ public class NotificationHelper {
     }
 
     private Notification buildNotification(Context context, AudioBean music, boolean isPlaying) {
-//        Intent intent = new Intent(context, MusicActivity.class);
-//        intent.putExtra(Constant.EXTRA_NOTIFICATION, true);
-//        intent.setAction(Intent.ACTION_VIEW);
-//        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-//        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
-//        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-//        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
-
-
-        NotificationUtils.isVibration = false;
+        Class<? extends Activity> musicActivity = BaseAppHelper.get().getMusicActivity();
         NotificationUtils notificationUtils = new NotificationUtils(context);
-        notificationUtils
-//                .setContentIntent(pendingIntent)
+        NotificationParams notificationParams = new NotificationParams();
+        if (musicActivity!=null){
+            Intent intent = new Intent(context, musicActivity);
+            intent.setAction(Intent.ACTION_VIEW);
+            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+            intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            PendingIntent pendingIntent = PendingIntent.getActivity(context,
+                    0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+            notificationParams.setContentIntent(pendingIntent);
+        }
+        notificationParams
                 .setPriority(Notification.PRIORITY_DEFAULT)
                 .setTicker("叮咚音乐")
                 .setContent(getCustomViews(context, music, isPlaying))
                 .setOngoing(true);
-        Notification notification = notificationUtils.getNotification(music.getTitle(), music.getArtist(), R.drawable.default_cover);
+
+        notificationUtils.setNotificationParams(notificationParams);
+        Notification notification = notificationUtils.getNotification(
+                music.getTitle(),
+                music.getArtist(),
+                R.drawable.default_cover);
         return notification;
     }
 

+ 0 - 361
MusicPlayer/src/main/java/com/yc/music/utils/NotificationUtils.java

@@ -1,361 +0,0 @@
-package com.yc.music.utils;
-
-import android.annotation.TargetApi;
-import android.app.Notification;
-import android.app.NotificationChannel;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.ContextWrapper;
-import android.graphics.Color;
-import android.net.Uri;
-import android.os.Build;
-import android.widget.RemoteViews;
-
-import androidx.annotation.RequiresApi;
-import androidx.core.app.NotificationCompat;
-
-import static androidx.core.app.NotificationCompat.PRIORITY_DEFAULT;
-import static androidx.core.app.NotificationCompat.VISIBILITY_SECRET;
-
-/**
- * <pre>
- *     @author yangchong
- *     blog  : https://www.jianshu.com/p/514eb6193a06
- *     time  : 2018/2/10
- *     desc  : 通知栏工具类
- *     revise:
- * </pre>
- */
-public class NotificationUtils extends ContextWrapper {
-
-
-    public static final String CHANNEL_ID = "default";
-    private static final String CHANNEL_NAME = "Default_Channel";
-    public static boolean isVibration = false;
-    private NotificationManager mManager;
-    private int[] flags;
-
-    public NotificationUtils(Context base) {
-        super(base);
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            //android 8.0以上需要特殊处理,也就是targetSDKVersion为26以上
-            createNotificationChannel();
-        }
-    }
-
-    @TargetApi(Build.VERSION_CODES.O)
-    private void createNotificationChannel() {
-        //第一个参数:channel_id
-        //第二个参数:channel_name
-        //第三个参数:设置通知重要性级别
-        //注意:该级别必须要在 NotificationChannel 的构造函数中指定,总共要五个级别;
-        //范围是从 NotificationManager.IMPORTANCE_NONE(0) ~ NotificationManager.IMPORTANCE_HIGH(4)
-        NotificationChannel channel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME,
-                NotificationManager.IMPORTANCE_DEFAULT);
-        getManager().createNotificationChannel(channel);
-    }
-
-    /**
-     * 获取创建一个NotificationManager的对象
-     * @return                          NotificationManager对象
-     */
-    public NotificationManager getManager() {
-        if (mManager == null) {
-            mManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
-        }
-        return mManager;
-    }
-
-    /**
-     * 清空所有的通知
-     */
-    public void clearNotification(){
-        getManager().cancelAll();
-    }
-
-    /**
-     * 获取Notification
-     * @param title                     title
-     * @param content                   content
-     */
-    public Notification getNotification(String title, String content , int icon){
-        Notification build;
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            //android 8.0以上需要特殊处理,也就是targetSDKVersion为26以上
-            //通知用到NotificationCompat()这个V4库中的方法。但是在实际使用时发现书上的代码已经过时并且Android8.0已经不支持这种写法
-            Notification.Builder builder = getChannelNotification(title, content, icon);
-            build = builder.build();
-        } else {
-            NotificationCompat.Builder builder = getNotificationCompat(title, content, icon);
-            build = builder.build();
-        }
-        if (flags!=null && flags.length>0){
-            for (int a=0 ; a<flags.length ; a++){
-                build.flags |= flags[a];
-            }
-        }
-        return build;
-    }
-
-    /**
-     * 建议使用这个发送通知
-     * 调用该方法可以发送通知
-     * @param notifyId                  notifyId
-     * @param title                     title
-     * @param content                   content
-     */
-    public void sendNotification(int notifyId, String title, String content , int icon) {
-        Notification build;
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            //android 8.0以上需要特殊处理,也就是targetSDKVersion为26以上
-            //通知用到NotificationCompat()这个V4库中的方法。但是在实际使用时发现书上的代码已经过时并且Android8.0已经不支持这种写法
-            Notification.Builder builder = getChannelNotification(title, content, icon);
-            build = builder.build();
-        } else {
-            NotificationCompat.Builder builder = getNotificationCompat(title, content, icon);
-            build = builder.build();
-        }
-        if (flags!=null && flags.length>0){
-            for (int a=0 ; a<flags.length ; a++){
-                build.flags |= flags[a];
-            }
-        }
-        getManager().notify(notifyId, build);
-    }
-
-    /**
-     * 调用该方法可以发送通知
-     * @param notifyId                  notifyId
-     * @param title                     title
-     * @param content                   content
-     */
-    public void sendNotificationCompat(int notifyId, String title, String content , int icon) {
-        NotificationCompat.Builder builder = getNotificationCompat(title, content, icon);
-        Notification build = builder.build();
-        if (flags!=null && flags.length>0){
-            for (int a=0 ; a<flags.length ; a++){
-                build.flags |= flags[a];
-            }
-        }
-        getManager().notify(notifyId, build);
-    }
-
-
-    private NotificationCompat.Builder getNotificationCompat(String title, String content, int icon) {
-        NotificationCompat.Builder builder;
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            builder = new NotificationCompat.Builder(getApplicationContext(), CHANNEL_ID);
-        } else {
-            //注意用下面这个方法,在8.0以上无法出现通知栏。8.0之前是正常的。这里需要增强判断逻辑
-            builder = new NotificationCompat.Builder(getApplicationContext());
-            builder.setPriority(PRIORITY_DEFAULT);
-        }
-        builder.setContentTitle(title);
-        builder.setContentText(content);
-        builder.setSmallIcon(icon);
-        builder.setPriority(priority);
-        builder.setOnlyAlertOnce(onlyAlertOnce);
-        builder.setOngoing(ongoing);
-        if (remoteViews!=null){
-            builder.setContent(remoteViews);
-        }
-        if (intent!=null){
-            builder.setContentIntent(intent);
-        }
-        if (ticker!=null && ticker.length()>0){
-            builder.setTicker(ticker);
-        }
-        if (when!=0){
-            builder.setWhen(when);
-        }
-        if (sound!=null){
-            builder.setSound(sound);
-        }
-        if (defaults!=0){
-            builder.setDefaults(defaults);
-        }
-        //点击自动删除通知
-        builder.setAutoCancel(true);
-        return builder;
-    }
-
-
-    @RequiresApi(api = Build.VERSION_CODES.O)
-    private Notification.Builder getChannelNotification(String title, String content, int icon){
-        Notification.Builder builder = new Notification.Builder(getApplicationContext(), CHANNEL_ID);
-        Notification.Builder notificationBuilder = builder
-                //设置标题
-                .setContentTitle(title)
-                //消息内容
-                .setContentText(content)
-                //设置通知的图标
-                .setSmallIcon(icon)
-                //让通知左右滑的时候是否可以取消通知
-                .setOngoing(ongoing)
-                //设置优先级
-                .setPriority(priority)
-                //是否提示一次.true - 如果Notification已经存在状态栏即使在调用notify函数也不会更新
-                .setOnlyAlertOnce(onlyAlertOnce)
-                .setAutoCancel(true);
-        if (remoteViews!=null){
-            //设置自定义view通知栏
-            notificationBuilder.setContent(remoteViews);
-        }
-        if (intent!=null){
-            notificationBuilder.setContentIntent(intent);
-        }
-        if (ticker!=null && ticker.length()>0){
-            //设置状态栏的标题
-            notificationBuilder.setTicker(ticker);
-        }
-        if (when!=0){
-            //设置通知时间,默认为系统发出通知的时间,通常不用设置
-            notificationBuilder.setWhen(when);
-        }
-        if (sound!=null){
-            //设置sound
-            notificationBuilder.setSound(sound);
-        }
-        if (defaults!=0){
-            //设置默认的提示音
-            notificationBuilder.setDefaults(defaults);
-        }
-        if (pattern!=null){
-            //自定义震动效果
-            notificationBuilder.setVibrate(pattern);
-        }
-        return notificationBuilder;
-    }
-
-
-
-    private boolean ongoing = false;
-    private RemoteViews remoteViews = null;
-    private PendingIntent intent = null;
-    private String ticker = "";
-    private int priority = Notification.PRIORITY_DEFAULT;
-    private boolean onlyAlertOnce = false;
-    private long when = 0;
-    private Uri sound = null;
-    private int defaults = 0;
-    private long[] pattern = null;
-
-    /**
-     * 让通知左右滑的时候是否可以取消通知
-     * @param ongoing                   是否可以取消通知
-     * @return
-     */
-    public NotificationUtils setOngoing(boolean ongoing){
-        this.ongoing = ongoing;
-        return this;
-    }
-
-    /**
-     * 设置自定义view通知栏布局
-     * @param remoteViews               view
-     * @return
-     */
-    public NotificationUtils setContent(RemoteViews remoteViews){
-        this.remoteViews = remoteViews;
-        return this;
-    }
-
-    /**
-     * 设置内容点击
-     * @param intent                    intent
-     * @return
-     */
-    public NotificationUtils setContentIntent(PendingIntent intent){
-        this.intent = intent;
-        return this;
-    }
-
-    /**
-     * 设置状态栏的标题
-     * @param ticker                    状态栏的标题
-     * @return
-     */
-    public NotificationUtils setTicker(String ticker){
-        this.ticker = ticker;
-        return this;
-    }
-
-
-    /**
-     * 设置优先级
-     * 注意:
-     * Android 8.0以及上,在 NotificationChannel 的构造函数中指定,总共要五个级别;
-     * Android 7.1(API 25)及以下的设备,还得调用NotificationCompat 的 setPriority方法来设置
-     *
-     * @param priority                  优先级,默认是Notification.PRIORITY_DEFAULT
-     * @return
-     */
-    public NotificationUtils setPriority(int priority){
-        this.priority = priority;
-        return this;
-    }
-
-    /**
-     * 是否提示一次.true - 如果Notification已经存在状态栏即使在调用notify函数也不会更新
-     * @param onlyAlertOnce             是否只提示一次,默认是false
-     * @return
-     */
-    public NotificationUtils setOnlyAlertOnce(boolean onlyAlertOnce){
-        this.onlyAlertOnce = onlyAlertOnce;
-        return this;
-    }
-
-    /**
-     * 设置通知时间,默认为系统发出通知的时间,通常不用设置
-     * @param when                      when
-     * @return
-     */
-    public NotificationUtils setWhen(long when){
-        this.when = when;
-        return this;
-    }
-
-    /**
-     * 设置sound
-     * @param sound                     sound
-     * @return
-     */
-    public NotificationUtils setSound(Uri sound){
-        this.sound = sound;
-        return this;
-    }
-
-
-    /**
-     * 设置默认的提示音
-     * @param defaults                  defaults
-     * @return
-     */
-    public NotificationUtils setDefaults(int defaults){
-        this.defaults = defaults;
-        return this;
-    }
-
-    /**
-     * 自定义震动效果
-     * @param pattern                  pattern
-     * @return
-     */
-    public NotificationUtils setVibrate(long[] pattern){
-        this.pattern = pattern;
-        return this;
-    }
-
-    /**
-     * 设置flag标签
-     * @param flags                     flags
-     * @return
-     */
-    public NotificationUtils setFlags(int... flags){
-        this.flags = flags;
-        return this;
-    }
-
-}
-

+ 1 - 1
VideoPlayer/src/main/java/com/yc/video/controller/BaseVideoController.java

@@ -39,7 +39,7 @@ import com.yc.video.player.VideoPlayer;
 import com.yc.video.tool.StatesCutoutUtils;
 import com.yc.video.tool.NetworkUtils;
 import com.yc.video.tool.PlayerUtils;
-import com.yc.video.ui.view.InterControlView;
+import com.yc.video.ui.inter.InterControlView;
 
 import com.yc.videotool.VideoLogUtils;
 

+ 1 - 1
VideoPlayer/src/main/java/com/yc/video/controller/GestureVideoController.java

@@ -31,7 +31,7 @@ import androidx.annotation.Nullable;
 import com.yc.videotool.VideoLogUtils;
 import com.yc.video.config.ConstantKeys;
 import com.yc.video.tool.PlayerUtils;
-import com.yc.video.ui.view.InterControlView;
+import com.yc.video.ui.inter.InterControlView;
 
 import java.util.Map;
 

+ 1 - 1
VideoPlayer/src/main/java/com/yc/video/controller/IGestureComponent.java

@@ -15,7 +15,7 @@ limitations under the License.
 */
 package com.yc.video.controller;
 
-import com.yc.video.ui.view.InterControlView;
+import com.yc.video.ui.inter.InterControlView;
 
 /**
  * <pre>

+ 1 - 1
VideoPlayer/src/main/java/com/yc/video/controller/InterViewController.java

@@ -15,7 +15,7 @@ limitations under the License.
 */
 package com.yc.video.controller;
 
-import com.yc.video.ui.view.InterControlView;
+import com.yc.video.ui.inter.InterControlView;
 
 /**
  * <pre>

+ 1 - 1
VideoPlayer/src/main/java/com/yc/video/ui/view/InterControlView.java → VideoPlayer/src/main/java/com/yc/video/ui/inter/InterControlView.java

@@ -13,7 +13,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 */
-package com.yc.video.ui.view;
+package com.yc.video.ui.inter;
 
 import android.view.View;
 import android.view.animation.Animation;

+ 1 - 1
VideoPlayer/src/main/java/com/yc/video/ui/more/CustomNetworkView.java

@@ -25,7 +25,7 @@ import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
 import com.yc.video.bridge.ControlWrapper;
-import com.yc.video.ui.view.InterControlView;
+import com.yc.video.ui.inter.InterControlView;
 
 /**
  * <pre>

+ 1 - 1
VideoPlayer/src/main/java/com/yc/video/ui/more/CustomTrailersView.java

@@ -25,7 +25,7 @@ import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
 import com.yc.video.bridge.ControlWrapper;
-import com.yc.video.ui.view.InterControlView;
+import com.yc.video.ui.inter.InterControlView;
 
 /**
  * <pre>

+ 1 - 1
VideoPlayer/src/main/java/com/yc/video/ui/pip/CustomFloatView.java

@@ -34,7 +34,7 @@ import com.yc.video.bridge.ControlWrapper;
 
 import com.yc.video.R;
 
-import com.yc.video.ui.view.InterControlView;
+import com.yc.video.ui.inter.InterControlView;
 
 /**
  * <pre>

+ 1 - 0
VideoPlayer/src/main/java/com/yc/video/ui/view/CustomBottomView.java

@@ -43,6 +43,7 @@ import com.yc.video.config.VideoPlayerConfig;
 import com.yc.video.tool.PlayerUtils;
 
 import com.yc.video.R;
+import com.yc.video.ui.inter.InterControlView;
 
 /**
  * <pre>

+ 1 - 0
VideoPlayer/src/main/java/com/yc/video/ui/view/CustomCompleteView.java

@@ -35,6 +35,7 @@ import com.yc.video.tool.BaseToast;
 import com.yc.video.tool.PlayerUtils;
 
 import com.yc.video.R;
+import com.yc.video.ui.inter.InterControlView;
 
 
 /**

+ 1 - 0
VideoPlayer/src/main/java/com/yc/video/ui/view/CustomErrorView.java

@@ -36,6 +36,7 @@ import com.yc.video.bridge.ControlWrapper;
 
 import com.yc.video.R;
 import com.yc.video.tool.PlayerUtils;
+import com.yc.video.ui.inter.InterControlView;
 
 
 /**

+ 1 - 0
VideoPlayer/src/main/java/com/yc/video/ui/view/CustomLiveControlView.java

@@ -33,6 +33,7 @@ import com.yc.video.bridge.ControlWrapper;
 import com.yc.video.tool.PlayerUtils;
 
 import com.yc.video.R;
+import com.yc.video.ui.inter.InterControlView;
 
 
 /**

+ 1 - 0
VideoPlayer/src/main/java/com/yc/video/ui/view/CustomOncePlayView.java

@@ -33,6 +33,7 @@ import com.yc.video.bridge.ControlWrapper;
 import com.yc.video.config.ConstantKeys;
 import com.yc.video.tool.BaseToast;
 import com.yc.video.tool.PlayerUtils;
+import com.yc.video.ui.inter.InterControlView;
 
 
 /**

+ 1 - 0
VideoPlayer/src/main/java/com/yc/video/ui/view/CustomPrepareView.java

@@ -33,6 +33,7 @@ import com.yc.video.bridge.ControlWrapper;
 import com.yc.video.player.VideoViewManager;
 
 import com.yc.video.R;
+import com.yc.video.ui.inter.InterControlView;
 
 
 /**

+ 1 - 0
VideoPlayer/src/main/java/com/yc/video/ui/view/CustomTitleView.java

@@ -38,6 +38,7 @@ import com.yc.video.bridge.ControlWrapper;
 import com.yc.video.tool.PlayerUtils;
 
 import com.yc.video.R;
+import com.yc.video.ui.inter.InterControlView;
 
 
 /**

+ 2 - 1
VideoPlayer/src/main/res/layout/custom_video_player_completed.xml

@@ -55,13 +55,14 @@
                 android:layout_height="wrap_content"
                 android:text="@string/replay"
                 android:layout_marginTop="12dp"
+                android:textSize="14sp"
                 android:textColor="@android:color/white" />
         </LinearLayout>
 
 
         <LinearLayout
             android:id="@+id/ll_share"
-            android:visibility="visible"
+            android:visibility="gone"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginLeft="5dp"