```
#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
```