Commit e7426994 by suolong

修复播放小窗问题

parent 3755332c
...@@ -3,4 +3,18 @@ ...@@ -3,4 +3,18 @@
uuid = "B049FF9C-951B-453D-AC4A-81CEFF8490BE" uuid = "B049FF9C-951B-453D-AC4A-81CEFF8490BE"
type = "0" type = "0"
version = "2.0"> version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.ExceptionBreakpoint">
<BreakpointContent
uuid = "D798D2B1-6DBF-4849-80D6-BA0F31D198E1"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
breakpointStackSelectionBehavior = "1"
scope = "1"
stopOnStyle = "0">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket> </Bucket>
...@@ -2351,7 +2351,7 @@ typedef NS_ENUM(NSInteger, FUSStreamState) { ...@@ -2351,7 +2351,7 @@ typedef NS_ENUM(NSInteger, FUSStreamState) {
[self performSelector:@selector(setupPictureInPicture) afterDelay:0.3]; [self performSelector:@selector(setupPictureInPicture) afterDelay:0.3];
} }
- (void)setupPictureInPicture { - (void)setupPictureInPicture {
return;
if (self.autoStartPictureInPicture == NO) { if (self.autoStartPictureInPicture == NO) {
return; return;
} }
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewType) { typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewType) {
FUSLiveMinimizeViewTypeNormalLive, FUSLiveMinimizeViewTypeNormalLive,
FUSLiveMinimizeViewTypePK, FUSLiveMinimizeViewTypePK,
FUSLiveMinimizeViewTypeBytePK,
FUSLiveMinimizeViewTypeLinkMicRoom, FUSLiveMinimizeViewTypeLinkMicRoom,
}; };
......
...@@ -7,9 +7,10 @@ ...@@ -7,9 +7,10 @@
// //
#import "FUSLiveMinimizeView.h" #import "FUSLiveMinimizeView.h"
#import "FUSBlurImageView.h"
#import "FUSLiveHelper.h" #import "FUSLiveHelper.h"
#import "FUSActionSheetView.h"
#import "FUSChatPublicDefine.h"
#define kFaceInset 12 #define kFaceInset 12
...@@ -21,19 +22,7 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) { ...@@ -21,19 +22,7 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
@interface FUSLiveMinimizeView () @interface FUSLiveMinimizeView ()
// 头像 @property (nonatomic, strong) UIImageView *backgroundImageView;
@property (nonatomic, strong) FUSBlurImageView *roomUserBgImageView;
// 主播头像上面显示的logo
@property (nonatomic, strong) UIImageView *roomUserlogoImageView;
// PK头像
@property (nonatomic, strong) FUSBlurImageView *pkUserBgImageView;
// PK头像上面显示的logo
@property (nonatomic, strong) UIImageView *pkUserLogoImageView;
/// 连麦房背景头像
@property (nonatomic, strong) UIImageView *linkMicImageView;
// 内容 // 内容
@property (nonatomic, strong) UIView *contentView; @property (nonatomic, strong) UIView *contentView;
...@@ -115,6 +104,22 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) { ...@@ -115,6 +104,22 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
} }
case FUSLiveMinimizeViewTypeLinkMicRoom: case FUSLiveMinimizeViewTypeLinkMicRoom:
return CGSizeMake(80, 80); return CGSizeMake(80, 80);
case FUSLiveMinimizeViewTypeBytePK: {
CGFloat width = UIView.fus_screenW / 2.0;
switch (sizeType) {
case FUSLiveMinimizeViewLevelTypeSmall:
width = UIView.fus_screenW / 3.0;
break;
case FUSLiveMinimizeViewLevelTypeNormal:
width = UIView.fus_screenW / 2.0;
break;
case FUSLiveMinimizeViewLevelTypeBig:
width = UIView.fus_screenW - 32;
break;
}
CGFloat height = width / 16.0 * 18.0;
return CGSizeMake(width, height);
}
} }
} }
...@@ -123,7 +128,7 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) { ...@@ -123,7 +128,7 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
if (viewType == FUSLiveMinimizeViewTypeLinkMicRoom) { if (viewType == FUSLiveMinimizeViewTypeLinkMicRoom) {
return 0; return 0;
} else if (viewType == FUSLiveMinimizeViewTypePK } else if ((viewType == FUSLiveMinimizeViewTypePK || viewType == FUSLiveMinimizeViewTypeBytePK)
&& sizeType == FUSLiveMinimizeViewLevelTypeBig) { && sizeType == FUSLiveMinimizeViewLevelTypeBig) {
return 16; return 16;
} else { } else {
...@@ -140,17 +145,13 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) { ...@@ -140,17 +145,13 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
if (self) { if (self) {
_sizeLevelType = FUSLiveMinimizeViewLevelTypeNormal; _sizeLevelType = FUSLiveMinimizeViewLevelTypeNormal;
self.clipsToBounds = YES; self.clipsToBounds = YES;
[self addSubview:self.pkUserBgImageView]; [self addSubview:self.backgroundImageView];
[self.pkUserBgImageView addSubview:self.pkUserLogoImageView];
[self addSubview:self.roomUserBgImageView];
[self.roomUserBgImageView addSubview:self.roomUserlogoImageView];
[self addSubview:self.linkMicImageView];
[self addSubview:self.contentView]; [self addSubview:self.contentView];
[self.contentView addSubview:self.animImageView]; [self.contentView addSubview:self.animImageView];
[self addSubview:self.closeBtn]; [self addSubview:self.closeBtn];
[self fus_setupGestures]; [self fus_setupGestures];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(fus_endLiveMinimizeView) name:FUSChatNotificationKeys.fus_FUS_RECEIVE_VCHAT_INVITE_NOTIFICATION object:nil];
} }
return self; return self;
} }
...@@ -164,17 +165,11 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) { ...@@ -164,17 +165,11 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
_type = type; _type = type;
switch (type) { switch (type) {
case FUSLiveMinimizeViewTypeNormalLive: case FUSLiveMinimizeViewTypeNormalLive:
[self.animImageView stopAnimating]; [self.animImageView stopAnimating];
self.animImageView.hidden = YES; self.animImageView.hidden = YES;
self.linkMicImageView.hidden = YES; [self.backgroundImageView cancelCurrentImageRequest];
self.pkUserBgImageView.hidden = YES; self.backgroundImageView.image = [FUSShowRoomCenterBunble imageNamed:@"live_default_head_bg"];
self.roomUserBgImageView.hidden = NO; self.backgroundImageView.layer.cornerRadius = 0;
[_roomUserBgImageView fus_setWebImageWithSubURLString:FUSLiveHelper.shareInstance.roomInfoModel.face placeholder:UIImage.fus_defaultIcon];
_roomUserBgImageView.layer.cornerRadius = 0;
self.roomUserlogoImageView.centerY = self.roomUserlogoImageView.height / 2.0 - 10;
self.roomUserlogoImageView.centerX = self.roomUserlogoImageView.width / 2.0;
self.closeBtn.origin = CGPointZero; self.closeBtn.origin = CGPointZero;
[self.closeBtn setImage:[FUSShowRoomCenterBunble imageNamed:@"Live_Close"] forState:UIControlStateNormal]; [self.closeBtn setImage:[FUSShowRoomCenterBunble imageNamed:@"Live_Close"] forState:UIControlStateNormal];
self.layer.cornerRadius = 10; self.layer.cornerRadius = 10;
...@@ -183,18 +178,9 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) { ...@@ -183,18 +178,9 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
case FUSLiveMinimizeViewTypePK: case FUSLiveMinimizeViewTypePK:
[self.animImageView stopAnimating]; [self.animImageView stopAnimating];
self.animImageView.hidden = YES; self.animImageView.hidden = YES;
self.linkMicImageView.hidden = YES; [self.backgroundImageView cancelCurrentImageRequest];
self.pkUserBgImageView.hidden = NO; self.backgroundImageView.image = [FUSShowRoomCenterBunble imageNamed:@"live_default_head_bg"];
self.roomUserBgImageView.hidden = NO; self.backgroundImageView.layer.cornerRadius = 0;
[_roomUserBgImageView fus_setWebImageWithSubURLString:FUSLiveHelper.shareInstance.roomInfoModel.face placeholder:UIImage.fus_defaultIcon];
[_pkUserBgImageView fus_setWebImageWithSubURLString:FUSLiveHelper.shareInstance.roomInfoModel.face placeholder:UIImage.fus_defaultIcon];
self.roomUserlogoImageView.centerY = self.roomUserlogoImageView.height / 2.0 - 10;
self.roomUserlogoImageView.centerX = self.roomUserlogoImageView.width / 2.0;
self.pkUserLogoImageView.centerY = self.pkUserLogoImageView.height / 2.0 - 10;
self.pkUserLogoImageView.centerX = self.pkUserLogoImageView.width / 2.0;
_roomUserBgImageView.layer.cornerRadius = 0;
self.closeBtn.origin = CGPointZero; self.closeBtn.origin = CGPointZero;
[self.closeBtn setImage:[FUSShowRoomCenterBunble imageNamed:@"Live_Close"] forState:UIControlStateNormal]; [self.closeBtn setImage:[FUSShowRoomCenterBunble imageNamed:@"Live_Close"] forState:UIControlStateNormal];
self.layer.cornerRadius = 10; self.layer.cornerRadius = 10;
...@@ -203,19 +189,24 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) { ...@@ -203,19 +189,24 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
case FUSLiveMinimizeViewTypeLinkMicRoom: case FUSLiveMinimizeViewTypeLinkMicRoom:
[self.animImageView startAnimating]; [self.animImageView startAnimating];
self.animImageView.hidden = NO; self.animImageView.hidden = NO;
self.linkMicImageView.hidden = NO; [self.backgroundImageView setWebImageWithSubURLString:FUSLiveHelper.shareInstance.roomInfoModel.face placeholder:nil];
self.backgroundImageView.layer.cornerRadius = self.backgroundImageView.width / 2.0f;
self.pkUserBgImageView.hidden = YES; self.backgroundImageView.layer.masksToBounds = YES;
self.roomUserBgImageView.hidden = YES;
[_linkMicImageView setWebImageWithSubURLString:FUSLiveHelper.shareInstance.roomInfoModel.face];
_linkMicImageView.layer.cornerRadius = _linkMicImageView.width / 2.0f;
_linkMicImageView.layer.masksToBounds = YES;
self.closeBtn.origin = CGPointMake(self.contentView.right - self.closeBtn.width - 4, 4); self.closeBtn.origin = CGPointMake(self.contentView.right - self.closeBtn.width - 4, 4);
[self.closeBtn setImage:nil forState:UIControlStateNormal]; [self.closeBtn setImage:nil forState:UIControlStateNormal];
self.layer.cornerRadius = 0; self.layer.cornerRadius = 0;
break; break;
case FUSLiveMinimizeViewTypeBytePK:
[self.animImageView stopAnimating];
self.animImageView.hidden = YES;
[self.backgroundImageView cancelCurrentImageRequest];
self.backgroundImageView.image = [FUSShowRoomCenterBunble imageNamed:@"live_default_head_bg"];
self.backgroundImageView.layer.cornerRadius = 0;
self.closeBtn.origin = CGPointZero;
[self.closeBtn setImage:[FUSShowRoomCenterBunble imageNamed:@"Live_Close"] forState:UIControlStateNormal];
self.layer.cornerRadius = 10;
self.layer.masksToBounds = YES;
break;
} }
[self fus_updateCurrentFrameWithAnim]; [self fus_updateCurrentFrameWithAnim];
...@@ -264,58 +255,20 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) { ...@@ -264,58 +255,20 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
CGRect bounds = CGRectZero; CGRect bounds = CGRectZero;
bounds.size = size; bounds.size = size;
switch (self.type) { if (!(self.type == FUSLiveMinimizeViewTypeLinkMicRoom)) {
case FUSLiveMinimizeViewTypeNormalLive: self.backgroundImageView.hidden = YES;
self.roomUserBgImageView.hidden = NO;
self.pkUserBgImageView.hidden = YES;
self.linkMicImageView.hidden = YES;
break;
case FUSLiveMinimizeViewTypePK:
self.roomUserBgImageView.hidden = NO;
self.pkUserBgImageView.hidden = NO;
self.linkMicImageView.hidden = YES;
break;
case FUSLiveMinimizeViewTypeLinkMicRoom:
self.roomUserBgImageView.hidden = YES;
self.pkUserBgImageView.hidden = YES;
self.linkMicImageView.hidden = NO;
break;
}
if (self.type != FUSLiveMinimizeViewTypeLinkMicRoom) {
} }
/// playerView 内部是有做动画的 /// playerView 内部是有做动画的
[UIView animateWithDuration:0.3 animations:^{ [UIView animateWithDuration:0.3 animations:^{
self.frame = frame; self.frame = frame;
switch (self.type) { if (self.type == FUSLiveMinimizeViewTypeLinkMicRoom) {
case FUSLiveMinimizeViewTypeNormalLive: self.backgroundImageView.frame = CGRectInset(bounds, kFaceInset, kFaceInset);
self.roomUserBgImageView.frame = bounds; self.backgroundImageView.layer.cornerRadius = self.backgroundImageView.width / 2.0;
self.roomUserlogoImageView.centerY = self.roomUserBgImageView.height / 2.0 - 10;
self.roomUserlogoImageView.centerX = self.roomUserBgImageView.width / 2.0;
break;
case FUSLiveMinimizeViewTypePK: {
CGRect frame = bounds;
frame.size.width = bounds.size.width / 2.0;
self.roomUserBgImageView.frame = frame;
frame.origin.x = frame.size.width;
self.pkUserBgImageView.frame = frame;
self.roomUserlogoImageView.centerY = self.roomUserBgImageView.height / 2.0 - 10;
self.roomUserlogoImageView.centerX = self.roomUserBgImageView.width / 2.0;
self.pkUserLogoImageView.centerY = self.pkUserBgImageView.height / 2.0 - 10;
self.pkUserLogoImageView.centerX = self.pkUserBgImageView.width / 2.0;
break;
}
case FUSLiveMinimizeViewTypeLinkMicRoom:
self.linkMicImageView.frame = CGRectInset(bounds, kFaceInset, kFaceInset);
self.linkMicImageView.layer.cornerRadius = self.linkMicImageView.width / 2.0;
self.layer.masksToBounds = YES; self.layer.masksToBounds = YES;
break; } else {
self.backgroundImageView.frame = bounds;
} }
self.contentView.frame = bounds; self.contentView.frame = bounds;
...@@ -324,6 +277,7 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) { ...@@ -324,6 +277,7 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
} completion:^(BOOL finished) { } completion:^(BOOL finished) {
self.contentView.userInteractionEnabled = YES; self.contentView.userInteractionEnabled = YES;
self.backgroundImageView.hidden = NO;
}]; }];
} }
...@@ -456,12 +410,31 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) { ...@@ -456,12 +410,31 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
#pragma mark - UI Actions #pragma mark - UI Actions
- (void)clickClickCloseBtnAction:(UIButton *)sender { - (void)clickClickCloseBtnAction:(UIButton *)sender {
if (FUSLiveHelper.shareInstance.liveRoomType == FUSRoomTypeLinkMic
&& FUSLiveHelper.shareInstance.liveType == FUSLiveTypeAnchor) {
[FUSActionSheetView showAcionSheetWithCancelTitle:[NSString fus_localString:@"取消"] otherTitles:@[[NSString fus_localString:@"保留聊天房并退出"], [NSString fus_localString:@"结束聊天房"]] clickBlock:^(NSInteger buttonIndex, NSString *buttonTitle) {
if (buttonIndex == 0) {
[FUSLiveHelper.shareInstance.currentFunctionView fus_exitKeepLinkMicRoom:^(BOOL succeed) {}];
FUSLiveHelper.shareInstance.liveMinimizeView = nil;
[self removeFromSuperview];
[self.animImageView stopAnimating];
} else if (buttonIndex == 1) {
[FUSLiveHelper.shareInstance.currentFunctionView fus_maximizeRoom];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[FUSLiveHelper.shareInstance.currentFunctionView fus_exitRoom];
});
FUSLiveHelper.shareInstance.liveMinimizeView = nil;
[self removeFromSuperview];
[self.animImageView stopAnimating];
}
}];
} else {
[FUSLiveHelper.shareInstance.currentFunctionView fus_exitRoomCompelete:^{ [FUSLiveHelper.shareInstance.currentFunctionView fus_exitRoomCompelete:^{
FUSLiveHelper.shareInstance.liveMinimizeView = nil; FUSLiveHelper.shareInstance.liveMinimizeView = nil;
[self removeFromSuperview]; [self removeFromSuperview];
[self.animImageView stopAnimating]; [self.animImageView stopAnimating];
}]; }];
}
} }
- (void)fus_destroy{ - (void)fus_destroy{
...@@ -474,52 +447,15 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) { ...@@ -474,52 +447,15 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
#pragma mark - UI Quick Getters #pragma mark - UI Quick Getters
- (FUSBlurImageView *)roomUserBgImageView { - (UIImageView *)backgroundImageView {
if (!_roomUserBgImageView) { if (!_backgroundImageView) {
_roomUserBgImageView = [[FUSBlurImageView alloc] init]; _backgroundImageView = [[UIImageView alloc] initWithFrame:CGRectInset(self.bounds, kFaceInset, kFaceInset)];
} _backgroundImageView.contentMode = UIViewContentModeScaleAspectFill;
return _roomUserBgImageView;
}
- (UIImageView *)roomUserlogoImageView {
if (!_roomUserlogoImageView) {
_roomUserlogoImageView = [[UIImageView alloc] initWithImage:[FUSShowRoomCenterBunble imageNamed:@"icon_logo"]];
_roomUserlogoImageView.frame = CGRectMake(0, 0, 60, 50);
}
return _roomUserlogoImageView;
}
- (FUSBlurImageView *)pkUserBgImageView {
if (!_pkUserBgImageView) {
_pkUserBgImageView = [[FUSBlurImageView alloc] init];
}
return _pkUserBgImageView;
}
- (UIImageView *)pkUserLogoImageView {
if (!_pkUserLogoImageView) {
_pkUserLogoImageView = [[UIImageView alloc] initWithImage:[FUSShowRoomCenterBunble imageNamed:@"icon_logo"]];
_pkUserLogoImageView.frame = CGRectMake(0, 0, 60, 50);
}
return _pkUserLogoImageView;
}
- (UIImageView *)linkMicImageView {
if (!_linkMicImageView) {
_linkMicImageView = [[UIImageView alloc] init];
_linkMicImageView.contentMode = UIViewContentModeScaleAspectFill;
} }
return _linkMicImageView; return _backgroundImageView;
} }
- (UIView *)contentView { - (UIView *)contentView {
if (!_contentView) { if (!_contentView) {
_contentView = [[UIView alloc] initWithFrame:self.bounds]; _contentView = [[UIView alloc] initWithFrame:self.bounds];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment