VideoTrimmerControl
一个支持剪辑和拖动控制的 iOS 视频控制器
这个 iOS 视频控制器允许用户通过拖动两侧的手柄来定义如何剪切视频。当用户正在剪切时,暂停片刻可放大时间线以实现更高的精度。时间线显示基于 AVAsset 的视频帧缩略图。除了剪切外,该控制还可以选择性地允许用户通过点击时间线来拖动视频。
屏幕截图
非交互时的控件
用户剪切前后端部分时的控件
用户剪切前端部分时的控件
用户放大时间线时的控件
控件动作的动画 GIF
配置
asset
:用于缩略图的资产。设置此参数将自动更新范围和选择范围属性videoComposition
:使用 AVVideoComposition(参见 AVFoundation)minimumDuration
:视频的最短持续时间。用户不能剪辑短于此值的片段。range
:要使用的资源的范围。selectedRange
:用户选择的范围。如果没有进行剪辑,等于范围。progressIndicatorMode
:定义进度指示器的显示方式hiddenOnlyWhenTrimming
、alwaysShown
或alwaysHidden
progress
:影片的进度(例如,播放时的当前位置)horizontalInset
:时间轴和缩略图开始处从边界的缩进。默认值为16
。(允许缩放时进行溢出)trackBackgroundColor
:时间轴轨道的背景颜色thumbRestColor
:时间轴上没有视频但缩略图暂停时的背景颜色
状态属性
trimmingState
:如果用户未进行剪辑则为none
,如果他们从前面进行剪辑则为leading
,如果他们从末尾进行剪辑则为trailing
isZoomedIn
:如果用户在剪辑时缩放了时间轴则为 trueisScrubbing
:如果用户正在 scrubbing 则为 truevisibleRange
:当前显示的范围。在缩放时可能与范围不同selectedTime
:剪辑时当前选择的时间
手势识别器
您可以为以下手势识别器配置,例如要失败的 UITableView 的 panGestureRecognizer:
leadingGestureRecognizer
trailingGestureRecognizer
progressGestureRecognizer
thumbnailInteractionGestureRecognizer
事件
VideoTrimmer.didBeginTrimming
:当用户开始剪辑时触发VideoTrimmer.didEndTrimming
:当用户停止剪辑时触发VideoTrimmer.selectedRangeChanged
:当selectedRange
属性因用户剪辑而更改时触发didBeginScrubbing
:当用户开始通过视频 scrubbing 时触发didEndScrubbing
:当用户结束 scrubbing 时触发progressChanged
:当progress
属性因用户 scrubbing 而更改时触发