Android 视频裁剪自定义 View
PlaySeekbar - Github
Android 视频裁剪自定义 View - 裁减播放的视频(本地视频)
功能需求与预览
有个视频裁剪功能,需要自定义 View 具体如下
裁剪选择区域模块,可以自定义最少裁剪时间
当选择低于最少裁剪时间时,再次滑动会自动推动左右选择轴,直至碰到边缘为止
选择空白区域,并左右滑动时自动推动选择轴的位置
可选控制(是否裁剪模式,是否显示播放进度,裁剪模式下(未选中的背景增加阴影图层),播放过的背景增加阴影图层等)
具体实现与使用
- VideoSeekBar.java
使用方法:
注意事项
跑demo前,自己需要找个视频, 并且在 MainActivity 设置本地视频地址
public void initValues(){// 初始化播放控制器playerControl = new PlayerControl(this, vHandler);// 根目录String rootPath = ProUtils.getSDCartPath();// 本地视频String videoUrl = rootPath + "/a.mp4";// --// videoUrl = rootPath + "/b.mp4";// 重新赋值地址PLAY_URL = videoUrl;// 加载视频封面playerControl.initLoad(COVER_URL, false);// 开始播放vHandler.sendEmptyMessage(FinalConstants.PLAY_START);// ====== 视频剪辑View ======// 进行重置am_video_seekbar.reset();
// // 是否需要绘制进度 - 白色进度动,以及走过的画面背景变暗 - 统一控制setProgressLine(isDrawProgress), setProgressBG(isDrawProgress)
// am_video_seekbar.setProgressDraw(isDrawProgress);
// 是否需要绘制进度 - 播放中,有个白色的线条在动
// am_video_seekbar.setProgressLine(isDrawProgressLine);
// // 是否需要绘制进度 - 播放过的画面背景变暗
// am_video_seekbar.setProgressBG(isDrawProgressBG);
// // 是否属于裁剪模式 - 两边有进度滑动
// am_video_seekbar.setCutMode(isCutMode);
// // 是否属于裁剪模式 - 是否绘制非裁剪模块变暗
// am_video_seekbar.setCutMode(isCutMode, isDrawProgressLine);// 视频关键帧间隔(毫秒,表示左右两个模块最低限度滑动时间,无法选择低于该关键帧的裁剪时间)float videoFrame = 60 * 1000f;// 设置本地视频路径 - 默认裁剪模式,则不绘制播放背景am_video_seekbar.setVideoUri(true, PLAY_URL, videoFrame);
// // 不设置关键帧时间,则默认最多是两个ImageView左右多出的宽度
// am_video_seekbar.setVideoUri(isCutMode, videoUri);}
Android 视频裁剪自定义 View相关推荐
- 红橙Darren Android视频笔记 自定义view的三个构造方法以及一种实现换肤的方案 测量mode
红橙Darren Android视频笔记 import android.content.Context; import android.support.annotation.Nullable; imp ...
- Android中的自定义View以及绘图工具
1.1自定义view的简介 为什么要使用自定义view 在Android开发中有很多业务场景,原生的控件是无法满足应用,并且经常也会遇到一个UI在多处 重复使用情况,那么就需要通过自定义View的方式 ...
- android标尺自定义view,android尺子的自定义view——RulerView详解
项目中用到自定义尺子的样式: 原效果为 因为跟自己要使用的view稍有不同 所以做了一些修改,修改的注释都放在代码中了,特此记录一下. 首先是一个自定义View: public class RuleV ...
- Android进阶之自定义View实战(二)九宫格手势解锁实现
一.引言 在上篇博客Android进阶之自定义View实战(一)仿iOS UISwitch控件实现中我们主要介绍了自定义View的最基本的实现方法.作为自定义View的入门篇,仅仅介绍了Canvas的 ...
- 仿微信录制视频之自定义View
最近公司一个项目需要实现仿微信拍照,然后我去看了看微信的界面: 然后我自己最后实现的界面是这样: 当然,这个界面不是重点,重点是这个自定义View需要实现单击实现拍照,长按实现录制视频.然后这个自定义 ...
- android中使用自定义View让图片像画卷一样被展开显示
首先看下效果图,有点卡顿,这是因为我是用android studio的screen record来录制手机视频的,然后找不到合适的mp4->gif的软件,就使用了一个录屏的软件,所以有点卡顿,但 ...
- Android中的自定义view和自定义属性TypedArray的使用
先总结下自定义View的步骤: 1.自定义View的属性 2.在View的构造方法中获得我们自定义的属性 [ 3.重写onMesure ] 4.重写onDraw 我把3用[]标出了,所以说3不一定是必 ...
- Android中实现自定义View组件并使其能跟随鼠标移动
场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建An ...
- Android开发之自定义view进行旋转动画
老套路先上图: 整个view非常简单,我自定义view里面都有详细的注释说明 先看自定义view部分代码: package cn.xiayiye5.customizestudy.view;import ...
- android自定义view生命周期,android基础之自定义view
一.Custom View 1.view的继承关系 view继承关系.png 2.Android 如何绘制试图层次 当activity获取焦点时,它必须提供layout层次的根节点,然后android ...
最新文章
- Grove Beginner Kits基础实验 Arduino
- BZOJ 3223: Tyvj 1729 文艺平衡树(splay)
- java线程 对文件copy 可能删除了 报异常_java线程对文件copy可能删除了报异常
- 大数运算(5)——大数除法(取模、取余)
- html纵向文本,html – 垂直对齐CSS圈中多行的文本
- ENISA报告:ICS-SCADA防护建议
- spring依赖日志_Spring:设置日志记录依赖项
- Java—Map集合详解(HashMap/Hashtable/LinkedHashMap/Properties/TreeMap/WeakHashMap/IdentityHashMap/EnumMap)
- 【报告分享】2022戴森品牌社媒营销分析报告:搭“消费升级”快车,走“升维打击”路线.pdf(附下载链接)...
- 模块d3d12.dll加载失败_语音控制模块
- 我的电脑上的软件推荐
- php权限无需验证的控制器,Thinkphp6用中间件实现多个控制器判断用户登录权限
- 如何构建一个可用的企业级API网关?
- Linux下更改Python的软链接
- Java中的十大组织
- 智慧物联下主机加固安全解决方案分析
- dreamweaver cs5 css教程,网页设计与制作——Dreamweaver CS5标准教程第12章 CSS+Div布局.pptx...
- 联想ghost重装系统_一键ghost怎么用|一键ghost重装系统教程|一键重装系统步骤
- 图解HTTP-阅读笔记
- MySQL分布式设计