desc:视频播放界面增加按钮返回

main
xiaowusky 2 years ago
parent fd039cff1c
commit 1dffd62edd

@ -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" />

@ -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

@ -1,4 +1,4 @@
package com.yinuo.safetywatcher.player;
package com.yinuo.safetywatcher.watcher.player;
/*
* Copyright (C) 2015 Zhang Rui <bbcallen@gmail.com>

@ -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;
/**

@ -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);
}
/**

@ -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

@ -1,4 +1,4 @@
package com.yinuo.safetywatcher.xls
package com.yinuo.safetywatcher.watcher.xls
interface ICellValue {
fun getValue(): String

@ -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 {

@ -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

@ -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

@ -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"

@ -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>
Loading…
Cancel
Save