美文网首页
Android 视频裁剪自定义 View

Android 视频裁剪自定义 View

作者: afkT | 来源:发表于2019-07-29 02:51 被阅读0次

PlaySeekbar - Github

Android 视频裁剪自定义 View - 裁减播放的视频(本地视频)

功能需求与预览

有个视频裁剪功能,需要自定义 View 具体如下

  1. 裁剪选择区域模块,可以自定义最少裁剪时间

  2. 当选择低于最少裁剪时间时,再次滑动会自动推动左右选择轴,直至碰到边缘为止

  3. 选择空白区域,并左右滑动时自动推动选择轴的位置

  4. 可选控制(是否裁剪模式,是否显示播放进度,裁剪模式下(未选中的背景增加阴影图层),播放过的背景增加阴影图层等)

image

具体实现与使用

使用方法:

    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);
    }

注意事项

跑demo前,自己需要找个视频, 并且在 MainActivity 设置本地视频地址

相关文章

网友评论

      本文标题:Android 视频裁剪自定义 View

      本文链接:https://www.haomeiwen.com/subject/kctvrctx.html