diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 07765cb..d181825 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -116,7 +116,7 @@
             android:exported="false"
             android:screenOrientation="landscape" />
         <activity
-            android:name=".player.ProVideoActivity"
+            android:name=".watcher.player.ProVideoActivity"
             android:exported="false"
             android:screenOrientation="landscape"
             android:theme="@style/FullscreenTheme" />
diff --git a/app/src/main/java/com/yinuo/safetywatcher/TestUtils.kt b/app/src/main/java/com/yinuo/safetywatcher/TestUtils.kt
index 00ef7ea..52a5309 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/TestUtils.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/TestUtils.kt
@@ -15,8 +15,8 @@ import com.yinuo.library.vlc.TxtOverlay
 import com.yinuo.safetywatcher.watcher.net.UploadFileApi
 import com.yinuo.safetywatcher.watcher.ui.view.CommonDialog
 import com.yinuo.safetywatcher.watcher.utils.DateUtils
-import com.yinuo.safetywatcher.xls.SimpleCellValue
-import com.yinuo.safetywatcher.xls.utils.ExcelUtils
+import com.yinuo.safetywatcher.watcher.xls.SimpleCellValue
+import com.yinuo.safetywatcher.watcher.xls.utils.ExcelUtils
 import kotlinx.coroutines.GlobalScope
 import kotlinx.coroutines.launch
 import java.io.BufferedReader
diff --git a/app/src/main/java/com/yinuo/safetywatcher/player/ProVideoActivity.java b/app/src/main/java/com/yinuo/safetywatcher/watcher/player/ProVideoActivity.java
similarity index 99%
rename from app/src/main/java/com/yinuo/safetywatcher/player/ProVideoActivity.java
rename to app/src/main/java/com/yinuo/safetywatcher/watcher/player/ProVideoActivity.java
index 8a647c7..b932e15 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/player/ProVideoActivity.java
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/player/ProVideoActivity.java
@@ -1,4 +1,4 @@
-package com.yinuo.safetywatcher.player;
+package com.yinuo.safetywatcher.watcher.player;
 
 /*
  * Copyright (C) 2015 Zhang Rui <bbcallen@gmail.com>
diff --git a/app/src/main/java/com/yinuo/safetywatcher/player/ProVideoView.java b/app/src/main/java/com/yinuo/safetywatcher/watcher/player/ProVideoView.java
similarity index 88%
rename from app/src/main/java/com/yinuo/safetywatcher/player/ProVideoView.java
rename to app/src/main/java/com/yinuo/safetywatcher/watcher/player/ProVideoView.java
index 5333c17..c5abbd2 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/player/ProVideoView.java
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/player/ProVideoView.java
@@ -1,11 +1,8 @@
-package com.yinuo.safetywatcher.player;
+package com.yinuo.safetywatcher.watcher.player;
 
 import android.content.Context;
-import android.net.Uri;
-import android.text.TextUtils;
 import android.util.AttributeSet;
 
-import tv.danmaku.ijk.media.player.IjkMediaPlayer;
 import tv.danmaku.ijk.media.widget.media.IjkVideoView;
 
 /**
diff --git a/app/src/main/java/com/yinuo/safetywatcher/player/VideoControllerView.java b/app/src/main/java/com/yinuo/safetywatcher/watcher/player/VideoControllerView.java
similarity index 90%
rename from app/src/main/java/com/yinuo/safetywatcher/player/VideoControllerView.java
rename to app/src/main/java/com/yinuo/safetywatcher/watcher/player/VideoControllerView.java
index 8796a37..96d5f9f 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/player/VideoControllerView.java
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/player/VideoControllerView.java
@@ -1,6 +1,9 @@
-package com.yinuo.safetywatcher.player;
+package com.yinuo.safetywatcher.watcher.player;
 
+import android.app.Activity;
 import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.StateListDrawable;
 import android.os.Handler;
 import android.os.Message;
 import android.util.AttributeSet;
@@ -18,6 +21,8 @@ import android.widget.SeekBar;
 import android.widget.SeekBar.OnSeekBarChangeListener;
 import android.widget.TextView;
 
+import androidx.appcompat.content.res.AppCompatResources;
+
 import com.yinuo.safetywatcher.R;
 
 import java.lang.ref.WeakReference;
@@ -56,6 +61,7 @@ public class VideoControllerView extends FrameLayout implements IMediaController
     private TextView mCurrentTime;          // 当前播放时间点
     private TextView mEndTime;              // 总时长
 
+    private View mControlView;
     private ImageButton mPauseButton;       // 暂停or开始
     private ImageButton mFastButton;        // 快进
     private ImageButton mRewindButton;      // 快退
@@ -227,8 +233,8 @@ public class VideoControllerView extends FrameLayout implements IMediaController
                 doPauseResume();
                 show(sDefaultTimeout);
 
-                if (mPauseButton != null) {
-                    mPauseButton.requestFocus();
+                if (mControlView != null) {
+                    mControlView.requestFocus();
                 }
             }
 
@@ -343,15 +349,15 @@ public class VideoControllerView extends FrameLayout implements IMediaController
         if (!mShowing && mAnchor != null) {
             setProgress();
 
-            if (mPauseButton != null) {
-                mPauseButton.requestFocus();
+            if (mControlView != null) {
+                mControlView.requestFocus();
             }
 
             disableUnsupportedButtons();
 
             LayoutParams tlp = new LayoutParams(
                     ViewGroup.LayoutParams.MATCH_PARENT,
-                    ViewGroup.LayoutParams.WRAP_CONTENT,
+                    ViewGroup.LayoutParams.MATCH_PARENT,
                     Gravity.BOTTOM);
 
             if (mAnchor instanceof ViewGroup) {
@@ -386,7 +392,7 @@ public class VideoControllerView extends FrameLayout implements IMediaController
      */
     protected View makeControllerView() {
         LayoutInflater inflate = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        mRoot = inflate.inflate(R.layout.media_controller, null);
+        mRoot = inflate.inflate(R.layout.media_controller, this, false);
         initControllerView(mRoot);
         return mRoot;
     }
@@ -394,7 +400,6 @@ public class VideoControllerView extends FrameLayout implements IMediaController
     private void initControllerView(View v) {
         mPauseButton = (ImageButton) v.findViewById(R.id.pause);
         if (mPauseButton != null) {
-            mPauseButton.requestFocus();
             mPauseButton.setOnClickListener(mPauseListener);
         }
 
@@ -434,6 +439,39 @@ public class VideoControllerView extends FrameLayout implements IMediaController
         } else {
             v.findViewById(R.id.seek_bar_container).setVisibility(VISIBLE);
         }
+
+        View backArea = v.findViewById(R.id.back_area);
+        backArea.setOnClickListener(v1 -> {
+            if (mContext instanceof Activity) {
+                ((Activity) mContext).finish();
+            }
+        });
+
+        setCommonBg(backArea);
+        mControlView = v.findViewById(R.id.control_area);
+        mControlView.setOnKeyListener((v12, keyCode, event) -> {
+            if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) {
+                if (event.getAction() == KeyEvent.ACTION_DOWN) {
+                    mPauseButton.performClick();
+                }
+                return true;
+            }
+            return false;
+        });
+        setCommonBg(mControlView);
+        mControlView.requestFocus();
+    }
+
+    private void setCommonBg(View v) {
+        StateListDrawable bg = new StateListDrawable();
+        Drawable currentBackground = v.getBackground();
+        Drawable drawable = AppCompatResources.getDrawable(
+                mContext,
+                com.yinuo.safetywatcher.R.drawable.focus_bg
+        );
+        bg.addState(new int[]{android.R.attr.state_focused}, drawable);
+        bg.addState(new int[]{}, currentBackground);
+        v.setBackground(bg);
     }
 
     /**
diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HistoryVideoActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HistoryVideoActivity.kt
index c22587f..1c97604 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HistoryVideoActivity.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HistoryVideoActivity.kt
@@ -5,13 +5,11 @@ import android.view.View
 import androidx.activity.result.contract.ActivityResultContracts
 import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.LinearLayoutManager
-import androidx.recyclerview.widget.RecyclerView
 import com.common.commonlib.db.DBUtils
-import com.common.commonlib.db.entity.Gas
 import com.common.commonlib.db.entity.Video
 import com.yinuo.safetywatcher.R
 import com.yinuo.safetywatcher.databinding.ActivityHistoryVideoBinding
-import com.yinuo.safetywatcher.player.ProVideoActivity
+import com.yinuo.safetywatcher.watcher.player.ProVideoActivity
 import com.yinuo.safetywatcher.watcher.base.BaseActivity
 import com.yinuo.safetywatcher.watcher.constant.DEFAULT_QUERY_TIME_INTERVAL
 import com.yinuo.safetywatcher.watcher.ui.adapter.HistoryVideoAdapter
diff --git a/app/src/main/java/com/yinuo/safetywatcher/xls/ICellValue.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/xls/ICellValue.kt
similarity index 54%
rename from app/src/main/java/com/yinuo/safetywatcher/xls/ICellValue.kt
rename to app/src/main/java/com/yinuo/safetywatcher/watcher/xls/ICellValue.kt
index 8f9e953..a9f7e47 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/xls/ICellValue.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/xls/ICellValue.kt
@@ -1,4 +1,4 @@
-package com.yinuo.safetywatcher.xls
+package com.yinuo.safetywatcher.watcher.xls
 
 interface ICellValue {
     fun getValue(): String
diff --git a/app/src/main/java/com/yinuo/safetywatcher/xls/SimpleCellValue.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/xls/SimpleCellValue.kt
similarity index 75%
rename from app/src/main/java/com/yinuo/safetywatcher/xls/SimpleCellValue.kt
rename to app/src/main/java/com/yinuo/safetywatcher/watcher/xls/SimpleCellValue.kt
index 44f95c1..ef9802f 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/xls/SimpleCellValue.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/xls/SimpleCellValue.kt
@@ -1,4 +1,4 @@
-package com.yinuo.safetywatcher.xls
+package com.yinuo.safetywatcher.watcher.xls
 
 data class SimpleCellValue(val content: String) : ICellValue {
     override fun getValue(): String {
diff --git a/app/src/main/java/com/yinuo/safetywatcher/xls/utils/ExcelUtils.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/xls/utils/ExcelUtils.kt
similarity index 97%
rename from app/src/main/java/com/yinuo/safetywatcher/xls/utils/ExcelUtils.kt
rename to app/src/main/java/com/yinuo/safetywatcher/watcher/xls/utils/ExcelUtils.kt
index fa58161..55bde46 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/xls/utils/ExcelUtils.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/xls/utils/ExcelUtils.kt
@@ -1,8 +1,8 @@
-package com.yinuo.safetywatcher.xls.utils
+package com.yinuo.safetywatcher.watcher.xls.utils
 
 import android.content.Context
 import android.util.Log
-import com.yinuo.safetywatcher.xls.ICellValue
+import com.yinuo.safetywatcher.watcher.xls.ICellValue
 import com.yinuo.safetywatcher.R
 import jxl.Workbook
 import jxl.WorkbookSettings
diff --git a/app/src/main/java/com/yinuo/safetywatcher/xls/utils/PathUtils.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/xls/utils/PathUtils.kt
similarity index 97%
rename from app/src/main/java/com/yinuo/safetywatcher/xls/utils/PathUtils.kt
rename to app/src/main/java/com/yinuo/safetywatcher/watcher/xls/utils/PathUtils.kt
index f86bd85..1698a0f 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/xls/utils/PathUtils.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/xls/utils/PathUtils.kt
@@ -1,4 +1,4 @@
-package com.yinuo.safetywatcher.xls.utils
+package com.yinuo.safetywatcher.watcher.xls.utils
 
 import android.content.Context
 import android.os.Environment
diff --git a/app/src/main/res/layout/activity_main_pro.xml b/app/src/main/res/layout/activity_main_pro.xml
index b7881ee..c386406 100644
--- a/app/src/main/res/layout/activity_main_pro.xml
+++ b/app/src/main/res/layout/activity_main_pro.xml
@@ -12,7 +12,7 @@
         android:layout_gravity="center"
         android:background="#000000">
 
-        <com.yinuo.safetywatcher.player.ProVideoView
+        <com.yinuo.safetywatcher.watcher.player.ProVideoView
             android:id="@+id/video_view"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
diff --git a/app/src/main/res/layout/media_controller.xml b/app/src/main/res/layout/media_controller.xml
index f169aa6..01f63e3 100644
--- a/app/src/main/res/layout/media_controller.xml
+++ b/app/src/main/res/layout/media_controller.xml
@@ -2,75 +2,102 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/media_controller_ll"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:background="#6000"
+    android:layout_height="match_parent"
     android:orientation="vertical">
 
     <LinearLayout
-        android:id="@+id/seek_bar_container"
+        android:id="@+id/back_area"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center_vertical"
-        android:paddingTop="@dimen/_30dp"
-        android:orientation="horizontal">
+        android:layout_height="@dimen/_87dp"
+        android:background="#6000"
+        android:focusable="true"
+        android:gravity="center_vertical">
 
-        <TextView
-            android:id="@+id/time_current"
+        <ImageView
             android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_horizontal"
-            android:paddingLeft="@dimen/_20dp"
-            android:paddingRight="@dimen/_20dp"
-            android:textColor="@color/white"
-            android:textSize="@dimen/_30dp"
-            android:textStyle="bold" />
+            android:layout_height="@dimen/_40dp"
+            android:layout_marginStart="@dimen/_31dp"
+            android:src="@mipmap/ic_back" />
+    </LinearLayout>
 
-        <SeekBar
-            android:id="@+id/media_controller_progress"
-            style="@style/CustomSeekbarStyle"
-            android:layout_width="0dip"
-            android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:progress="0"/>
+    <Space
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1" />
 
-        <TextView
-            android:id="@+id/total_time"
-            android:layout_width="wrap_content"
+    <LinearLayout
+        android:id="@+id/control_area"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="#6000"
+        android:focusable="true"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:id="@+id/seek_bar_container"
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_gravity="center_horizontal"
-            android:paddingLeft="@dimen/_20dp"
-            android:paddingRight="@dimen/_20dp"
-            android:textColor="@color/white"
-            android:textSize="@dimen/_30dp"
-            android:textStyle="bold" />
+            android:gravity="center_vertical"
+            android:orientation="horizontal"
+            android:paddingTop="@dimen/_30dp">
 
-    </LinearLayout>
+            <TextView
+                android:id="@+id/time_current"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal"
+                android:paddingLeft="@dimen/_20dp"
+                android:paddingRight="@dimen/_20dp"
+                android:textColor="@color/white"
+                android:textSize="@dimen/_30dp"
+                android:textStyle="bold" />
 
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/_108dp"
-        android:gravity="center"
-        android:orientation="horizontal"
-        android:paddingHorizontal="@dimen/_580dp">
+            <SeekBar
+                android:id="@+id/media_controller_progress"
+                style="@style/CustomSeekbarStyle"
+                android:layout_width="0dip"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:progress="0" />
 
-        <ImageButton
-            android:id="@+id/rewind"
-            style="@android:style/MediaButton.Rew"
-            android:layout_weight="1"
-            android:src="@drawable/new_moveback_btn" />
+            <TextView
+                android:id="@+id/total_time"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal"
+                android:paddingLeft="@dimen/_20dp"
+                android:paddingRight="@dimen/_20dp"
+                android:textColor="@color/white"
+                android:textSize="@dimen/_30dp"
+                android:textStyle="bold" />
 
-        <ImageButton
-            android:id="@+id/pause"
-            style="@android:style/MediaButton.Play"
-            android:layout_weight="1"
-            android:src="@drawable/new_stop_white" />
+        </LinearLayout>
 
-        <ImageButton
-            android:id="@+id/fast_forward"
-            style="@android:style/MediaButton.Ffwd"
-            android:layout_weight="1"
-            android:src="@drawable/new_forward_btn" />
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/_108dp"
+            android:gravity="center"
+            android:orientation="horizontal"
+            android:paddingHorizontal="@dimen/_580dp">
 
-    </LinearLayout>
+            <ImageButton
+                android:id="@+id/rewind"
+                style="@android:style/MediaButton.Rew"
+                android:layout_weight="1"
+                android:src="@drawable/new_moveback_btn" />
+
+            <ImageButton
+                android:id="@+id/pause"
+                style="@android:style/MediaButton.Play"
+                android:layout_weight="1"
+                android:src="@drawable/new_stop_white" />
 
+            <ImageButton
+                android:id="@+id/fast_forward"
+                style="@android:style/MediaButton.Ffwd"
+                android:layout_weight="1"
+                android:src="@drawable/new_forward_btn" />
+
+        </LinearLayout>
+    </LinearLayout>
 </LinearLayout>
\ No newline at end of file