我正在使用范围 slider 来修剪正在运行的视频。但我无法将视频停止到特定时间。这是我正在使用的以下代码:
- (void)videoRange:(SAVideoRangeSlider *)videoRange didChangeLeftPosition: (CGFloat)leftPosition rightPosition:(CGFloat)rightPosition
{
self.startTime = leftPosition;
self.stopTime = rightPosition;
[self.movieController stop];
MPMoviePlayerController *player = self.movieController;
[player stop];
[player setCurrentPlaybackTime:self.startTime];
[player setEndPlaybackTime:self.stopTime];
[player play];
}
setCurrentPlaybackTime 有效,但“setEndPlaybackTime”无效。 请帮助我推进我的项目工作。 谢谢, 罗汉
最佳答案
我以前遇到过这个问题,并为此做了一个 swift 包
只需在您的 Xcode 中点击
文件 -> swift 包 -> 添加包 url
复制粘贴此网址https://github.com/madadoux/DUTrimVideoView
它有一个 View 模型,您可以创建自己的 View 模型,并将其传递给初始化器
示例
class ViewController: UIViewController,VideoTrimViewDelegate {
func rangeSliderValueChanged(trimView: DUTrimVideoView, rangeSlider: DURangeSlider) {
}
func add() {
let url = URL(fileURLWithPath: Bundle.main.path(forResource: "video", ofType: "mp4")!)
let trimView = DUTrimVideoView(asset: AVAsset(url: url), frame: CGRect(x: 20, y: 200, width: self.view.frame.width-40, height: 100))
trimView.delegate = self
let rangeSlider = trimView.rangeSlider!
rangeSlider.leftThumbImage = UIImage(named: "trim-right")
rangeSlider.rightThumbImage = UIImage(named: "trim-left")
rangeSlider.thumbWidth = 30
rangeSlider.thumbHeight = 30
self.view.addSubview(trimView)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let btn = UIButton(type: .infoLight, primaryAction: UIAction(handler: { (a) in
self.view.subviews.filter({$0 is DUTrimVideoView }).first?.removeFromSuperview()
self.add()
}))
btn.frame = CGRect(origin: .zero, size: CGSize(width: 50, height: 50))
btn.center = self.view.center
self.view.addSubview(btn)
}
}
希望能回答您的问题
关于iOS 使用范围 slider 修剪视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21304830/