-
Notifications
You must be signed in to change notification settings - Fork 53
video_range
zanxiaofei edited this page Sep 5, 2017
·
2 revisions
通过SDK的setEditPreviewRanges接口可以轻松完成视频的时长裁剪
另外为了丰富裁剪部分的功能实现,SDK还提供了获取缩略图、seek等接口,这些接口在Demo中均有示例 详细参考Demo中EditActivity中的video range部分
setEditPreviewRanges(long startTime, long endTime, bool immediately)
/**
* 调用此接口时, 需注意:
* 1. startTime和endTime中必有一值大于0
* 2. 当endTime大于0时, 其值必须大于startTime
* 当以上任一条件不满足时设置无效
* @param startTime 起始播放时间点, 单位为毫秒(MS)
* @param endTime 结束播放时间点, 单位为毫秒(MS)
* @param immediately 裁剪是否在预览立即生效
*/
public void setEditPreviewRanges(long startTime, long endTime, bool immediately)
Demo中裁剪视频时长的示例参考以下几个类:
- VideoRangeSeekBar:用于裁剪的seekbar
- ThumbnailMask:被裁剪掉的区域显示View
- RangeThumb:用于裁剪的按钮View
裁剪SeekBar的初始化参考Demo中initSeekBar()
getVideoThumbnailAtTime(long seekTime, int width, int height)
/**
* @brief 获取视频的缩略图,可设置缩略图的输出宽高以及所需缩略图的具体时间点
*
* @param url 视频地址
* @param seekTime 单位: 毫秒(MS)
* 该值为0,则以视频首帧为缩略图
* 若大于0,则会取离该时间点最近的一个关键帧为缩略图
* 该值大于视频时长时,以视频首帧为缩略图
* @param width 输出缩略图的宽,0时按照原始视频分辨率输出
* @param height 输出缩略图的高,0时按照原始视频分辨率输出
*
* @return 缩略图
*/
public Bitmap getVideoThumbnailAtTime(String url, long seekTime, int width, int height)
Demo中缩略图的获取和显示示例参考以下几个类:
- VideoThumbnailTask:异步获取缩略图
- VideoThumbnailInfo:缩略图的数据类
- VideoThumbnailAdapter:加载缩略图的Adapter
- HorizontalListView:显示缩略图的横向ListView
缩略图的初始化参考Demo中函数initThumbnailAdapter()
/**
* seek到指定的位置播放预览
* @param seek to seek的预览位置(MS)
*/
public void seekEditPreview(long seekto)
/**
* 获取当前preview的位置
* @return 当前preview的位置(MS)
*/
public long getCurrentPosition()
/**
* 获取原始的文件时长
* @return 原始文件时长(MS)
*/
public long getEditDuration(o)