通过使用VLC框架实现播放器的自定义,通过屏幕手势来分别控制音量,屏幕亮度与播放进度。
工具/原料
Xcode
方法/步骤
1、预览界面增加轻扫手势,方便实现音量,亮度,播放进度的控制,self.playView为播放预览层,如下:UIPanGestureRecognizer*panGes=[[UIPanGestureRecognizeralloc]initWithTarget:selfaction:@selector(onActionPanGes:)];[self.playViewaddGestureRecognizer:panGes];
2、根据手势的状态改变来判断方向,根据手势滑动的方向来控制音量,亮度以及播放进度,所有实现如下:
3、控制判断主要根据手势状态,每次响应手势获取到手势在播放预览层的相关位置点,在手势状态改变时进行逻辑处理,如下:
4、在手势状态改变下根据ABS(speedDir.x)>ABS(speedDir.y)来判断手势的方向,大于则为左右滑动,小于为上下滑动,如下:
5、[panGestranslationInView:self.playView].x&壹执慵驾gt;0来判断手势方向牾肟甘道为向右滑动,<0则为左滑动,在相应判断下使用shortJumpForward与shortJumpBackward来实现快进与快退,如下:BOOLbBackWard=YES;if([panGestranslationInView:self.playView].x>0){///<右滑,改变播放进度[self.playershortJumpForward];bBackWard=NO;}else{///<左滑,改变播放进度[self.playershortJumpBackward];bBackWard=YES;}[selfmakeToast:(bBackWard==YES?@"<<快退":@"快进>>")duration:2.0position:[NSValuevalueWithCGPoint:CGPointMake(self.playView.center.x,self.playView.center.y)]];
6、localPoint.x争犸禀淫>self.playView.bounds.size.width*0.5判断左右屏幕的上下滑动,音量控制中往上为加往下为减:if(lo艘早祓胂calPoint.x>self.playView.bounds.size.width*0.5){///<音量控制if([panGestranslationInView:self.playView].y>0){///<音量,减self.sliderVolume.value-=0.03;}else{///<音量,加self.sliderVolume.value+=0.03;}[selfmakeToast:[NSStringstringWithFormat:@"音量%.0f%%",self.sliderVolume.value*100]duration:2.0position:[NSValuevalueWithCGPoint:CGPointMake(self.playView.center.x,self.playView.center.y)]];
7、亮度控制使用[UIScreenmainScreen].brightness+=0.01来控制屏幕亮度,如下:if([panGestranslationInView:self.playView].y>0){///<亮度,减[UIScreenmainScreen].brightness-=0.01;}else{///<亮度,加[UIScreenmainScreen].brightness+=0.01;}[selfmakeToast:[NSStringstringWithFormat:@"亮度%.0f%%",[UIScreenmainScreen].brightness*100]duration:2.0position:[NSValuevalueWithCGPoint:CGPointMake(self.playView.center.x,self.playView.center.y)]];