iOS VLC如何通过手势控制播放进度、音量与亮度

2025-09-23 07:36:07

1、预览界面增加轻扫手势,方便实现音量,亮度,播放进度的控制,self.playView为播放预览层,如下:

UIPanGestureRecognizer *panGes = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(onActionPanGes:)];

 [self.playView addGestureRecognizer:panGes];

iOS VLC如何通过手势控制播放进度、音量与亮度

2、根据手势的状态改变来判断方向,根据手势滑动的方向来控制音量,亮度以及播放进度,所有实现如下:

iOS VLC如何通过手势控制播放进度、音量与亮度

iOS VLC如何通过手势控制播放进度、音量与亮度

3、控制判断主要根据手势状态,每次响应手势获取到手势在播放预览层的相关位置点,在手势状态改变时进行逻辑处理,如下:

iOS VLC如何通过手势控制播放进度、音量与亮度

4、在手势状态改变下根据

ABS(speedDir.x) > ABS(speedDir.y)

来判断手势的方向,大于则为左右滑动,小于为上下滑动,如下:

iOS VLC如何通过手势控制播放进度、音量与亮度

5、[panGes translationInView:self.playView].x > 0来判断手势方向为向右滑动,<0则为左滑动,在相应判断下使用shortJumpForward与shortJumpBackward来实现快进与快退,如下:

BOOL bBackWard = YES;

            if ([panGes translationInView:self.playView].x > 0) { ///< 右滑,改变播放进度

                

                [self.player shortJumpForward];

                bBackWard = NO;

            }else { ///< 左滑,改变播放进度

       

                [self.player shortJumpBackward];

                bBackWard = YES;

            }

            

            [self makeToast:(bBackWard == YES ? @"<< 快退": @"快进 >>")

                   duration:2.0

                   position:[NSValue valueWithCGPoint:CGPointMake(self.playView.center.x, self.playView.center.y)]];

iOS VLC如何通过手势控制播放进度、音量与亮度

6、localPoint.x > self.playView.bounds.size.width * 0.5判断左右屏幕的上下滑动,音量控制中往上为加往下为减:

if (localPoint.x > self.playView.bounds.size.width * 0.5) { ///< 音量控制

                

                if ([panGes translationInView:self.playView].y > 0) { ///< 音量,减

                    

                    self.sliderVolume.value -= 0.03;

                    

                }else { ///< 音量,加

                    

                    self.sliderVolume.value += 0.03;

                }

                [self makeToast:[NSString stringWithFormat:@"音量 %.0f%%",self.sliderVolume.value * 100]

                       duration:2.0

                       position:[NSValue valueWithCGPoint:CGPointMake(self.playView.center.x, self.playView.center.y)]];

iOS VLC如何通过手势控制播放进度、音量与亮度

7、亮度控制使用[UIScreen mainScreen].brightness += 0.01来控制屏幕亮度,如下:

 if ([panGes translationInView:self.playView].y > 0) { ///< 亮度,减

                    

                    [UIScreen mainScreen].brightness -= 0.01;

                    

                }else { ///< 亮度,加

                    

                    [UIScreen mainScreen].brightness += 0.01;

                }

                [self makeToast:[NSString stringWithFormat:@"亮度 %.0f%%",[UIScreen mainScreen].brightness * 100]

                       duration:2.0

                       position:[NSValue valueWithCGPoint:CGPointMake(self.playView.center.x, self.playView.center.y)]];

iOS VLC如何通过手势控制播放进度、音量与亮度

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢