刚做好一个基于MobileVLCKit的播放器,其中关于滑动屏幕快进和后退的功能困扰已久,在github下载各种播放器来借鉴,终有所得,故而分享之。
见代码:
#pragma mark - 滑动快进后退
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
UITouch *oneTouch = [touches anyObject];
beginTouchX = [oneTouch locationInView:oneTouch.view].x;
}
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
[super touchesMoved:touches withEvent:event];
UITouch *oneTouch = [touches anyObject];
CGFloat sign = offsetX;
offsetX = [oneTouch locationInView:oneTouch.view].x - beginTouchX;
NSLog(@"%f", offsetX - sign);
int progressInSec = 1;
if (offsetX - sign > 0 && ([[_movieVCtrl remainingTime] intValue] + progressInSec * 1000) < 0) {
[_movieVCtrl jumpForward:progressInSec];
}
if (offsetX - sign < 0 && ([[_movieVCtrl time] intValue] + progressInSec * 1000) > 0) {
[_movieVCtrl jumpBackward:progressInSec];
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
要注意的是,如果快进和后退超过视频播放时间边界,播放器就会crash。