#import "SVP.h"
#import "LBHLivePlayerViewController.h"
#import "LBHLivePlayerView.h"
@interface LBHLivePlayerViewController (){
SVPVideo *_video;
SVPPlayerList *_playList;
CGPoint pointLeftTop;
BOOL _viderIsEnd;
}
@property (assign, nonatomic) CGPoint beginpoint;
@property (assign, nonatomic) UIPanGestureRecognizer* pan;
@end
@implementation LBHLivePlayerViewController
//
static NSString *SVPMode = nil;
- (void)viewDidLoad {
[super viewDidLoad];
self.pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
[self.view addGestureRecognizer:self.pan];
NSNotificationCenter * orientChange = [NSNotificationCenter defaultCenter];
[orientChange addObserver:self selector:@selector(orientChangeLive:) name:UIDeviceOrientationDidChangeNotification object:nil];
// [self.video addObserver:self forKeyPath:@"isEnd" options:NSKeyValueObservingOptionNew context:nil];
}
-(void)orientChangeLive:(NSNotification*)notification{
UIDeviceOrientation orient = [UIDevice currentDevice].orientation;
switch (orient)
{
case UIDeviceOrientationFaceUp:
[self pansmall];
break;
case UIDeviceOrientationPortrait:
[self pansmall];
break;
case UIDeviceOrientationLandscapeLeft:
[self panlang];
break;
case UIDeviceOrientationUnknown:
[self pansmall];
break;
case UIDeviceOrientationLandscapeRight:
[self panlang];
break;
default:
[self pansmall];
break;
}
}
//-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
//
// if (self.video.isEnd) {
// _viderIsEnd=YES;
// }else{
// self.alertIsEndBtn.hidden=YES;
// }
//
// }
//}
-(void)panlang{
[self.view removeGestureRecognizer:self.pan];
[self.skinView addGestureRecognizer:self.pan];
}
-(void)pansmall{
[self.skinView removeGestureRecognizer:self.pan];
[self.view addGestureRecognizer:self.pan];
}
- (void)setPlayWindowStatus:(SVPlayerWindowsStatus)aWindowStatus
{
if (_playWindowStatus != aWindowStatus)
{
_playWindowStatus = aWindowStatus;
switch (_playWindowStatus) {
case SVPlayerOrientationPortraitNormal:
{
self.view.frame =CGRectMake(0, 0, Screen_Width, Screen_Height);
}
break;
case SVPlayerOrientationPortraitMini:
{
[UIView animateWithDuration:0.2 animations:^{
self.view.frame =CGRectMake(100,50,90,160);
}];
}
break;
case SVPlayerOrientationLandscapeNormal:
{
self.view.frame =CGRectMake(0, 0, Screen_Width, Screen_Height);
}
break;
case SVPlayerOrientationLandscapeMini:
{
[UIView animateWithDuration:0.2 animations:^{
self.view.frame =CGRectMake(Screen_Width-10-180,50,160,102);
}];
}
break;
default:
break;
}
}
}
- (Class)playerSkinClass{
return [LBHLivePlayerView class];
}
-(void)pan:(UIPanGestureRecognizer *)panGes{
if (_playWindowStatus == SVPlayerOrientationPortraitMini || _playWindowStatus == SVPlayerOrientationLandscapeMini)
{
UIView *piece = [panGes view];
CGPoint translation = [panGes translationInView:[piece superview]];
if ([panGes state] == UIGestureRecognizerStateBegan || [panGes state] == UIGestureRecognizerStateChanged) {
// [UIView animateWithDuration:0.2 animations :^{
//
// [piece setCenter:CGPointMake([piece center].x + translation.x,
// [piece center].y + translation.y)];
//
// [panGes setTranslation:CGPointZero inView:[piece superview]];
// }];
[UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
[piece setCenter:CGPointMake([piece center].x + translation.x,
[piece center].y + translation.y)];
[panGes setTranslation:CGPointZero inView:[piece superview]];
} completion:^(BOOL finished) {
}];
}
if([panGes state] == UIGestureRecognizerStateEnded){
if (_playWindowStatus == SVPlayerOrientationLandscapeMini )
{
[UIView animateWithDuration:0.2 animations:^{
if(([piece center].x + translation.x)<90){
[piece setCenter:CGPointMake(90,[piece center].y + translation.y)];
[panGes setTranslation:CGPointZero inView:[piece superview]];
}
if (([piece center].x + translation.x)>Screen_Width-90) {
[piece setCenter:CGPointMake(Screen_Width-90,[piece center].y + translation.y)];
[panGes setTranslation:CGPointZero inView:[piece superview]];
}
if (([piece center].y + translation.y)>Screen_Height-51) {
[piece setCenter:CGPointMake([piece center].x + translation.x,Screen_Height-51)];
[panGes setTranslation:CGPointZero inView:[piece superview]];
}
if (([piece center].y + translation.y)<51) {
[piece setCenter:CGPointMake([piece center].x + translation.x,51)];
[panGes setTranslation:CGPointZero inView:[piece superview]];
}
}];
}
if (_playWindowStatus == SVPlayerOrientationPortraitMini){
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
[UIView animateWithDuration:0.2 animations:^{
if(([piece center].x + translation.x)<45){
[piece setCenter:CGPointMake(45,[piece center].y + translation.y)];
[panGes setTranslation:CGPointZero inView:[piece superview]];
}
if (([piece center].x + translation.x)>Screen_Width-45) {
[piece setCenter:CGPointMake(Screen_Width-45,[piece center].y + translation.y)];
[panGes setTranslation:CGPointZero inView:[piece superview]];
}
if (([piece center].y + translation.y)>Screen_Height-80) {
[piece setCenter:CGPointMake([piece center].x + translation.x,Screen_Height-80)];
[panGes setTranslation:CGPointZero inView:[piece superview]];
}
if (([piece center].y + translation.y)<80) {
[piece setCenter:CGPointMake([piece center].x + translation.x,80)];
[panGes setTranslation:CGPointZero inView:[piece superview]];
}
}];
}
}
}else{
if([self.skinView.playerLoadingView isLoading]==NO && self.video.isEnd==NO && [LPLejuUtility isCouldConnectedNet]){
self.fullScreen=YES;
[super pan:panGes];
}
}
}
- (void)tapGestureHandler:(id)sender
{
if([self skinView].inChatMode)
{
if([self skinView].inVoiceRecordMode)
{
return;
}
if ([[[UIDevice currentDevice] systemVersion] intValue] < 6)
{
UITapGestureRecognizer *ges = (UITapGestureRecognizer*)sender;
CGPoint point = [ges locationInView:self.view];
UIView* result = [ges.view hitTest:point withEvent:nil];
if(result.frame.size.height < ges.view.frame.size.height)
{
return;
}
}
[self skinView].inChatMode = NO;
return;
}
}
@end
iOS 小窗手势拖动 小窗播放
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1、UIGestureRecognizer介绍 手势识别在iOS上非常重要,手势操作移动设备的重要特征,极大的增加...
- 序言 最近的项目中涉及到视频播放,在这里我把关于视频播放技术中的一些心得体会记录下来。 功能 完整演示 安装地址 ...
- UIGestureRecognizer是一个定义基本手势的抽象类: 1、拍击UITapGestureRecogni...