Commit e7426994 by suolong

修复播放小窗问题

parent 3755332c
......@@ -3,4 +3,18 @@
uuid = "B049FF9C-951B-453D-AC4A-81CEFF8490BE"
type = "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>
......@@ -2351,7 +2351,7 @@ typedef NS_ENUM(NSInteger, FUSStreamState) {
[self performSelector:@selector(setupPictureInPicture) afterDelay:0.3];
}
- (void)setupPictureInPicture {
return;
if (self.autoStartPictureInPicture == NO) {
return;
}
......
......@@ -11,6 +11,7 @@
typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewType) {
FUSLiveMinimizeViewTypeNormalLive,
FUSLiveMinimizeViewTypePK,
FUSLiveMinimizeViewTypeBytePK,
FUSLiveMinimizeViewTypeLinkMicRoom,
};
......
......@@ -7,9 +7,10 @@
//
#import "FUSLiveMinimizeView.h"
#import "FUSBlurImageView.h"
#import "FUSLiveHelper.h"
#import "FUSActionSheetView.h"
#import "FUSChatPublicDefine.h"
#define kFaceInset 12
......@@ -21,19 +22,7 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
@interface FUSLiveMinimizeView ()
// 头像
@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) UIImageView *backgroundImageView;
// 内容
@property (nonatomic, strong) UIView *contentView;
......@@ -115,6 +104,22 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
}
case FUSLiveMinimizeViewTypeLinkMicRoom:
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) {
if (viewType == FUSLiveMinimizeViewTypeLinkMicRoom) {
return 0;
} else if (viewType == FUSLiveMinimizeViewTypePK
} else if ((viewType == FUSLiveMinimizeViewTypePK || viewType == FUSLiveMinimizeViewTypeBytePK)
&& sizeType == FUSLiveMinimizeViewLevelTypeBig) {
return 16;
} else {
......@@ -140,17 +145,13 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
if (self) {
_sizeLevelType = FUSLiveMinimizeViewLevelTypeNormal;
self.clipsToBounds = YES;
[self addSubview:self.pkUserBgImageView];
[self.pkUserBgImageView addSubview:self.pkUserLogoImageView];
[self addSubview:self.roomUserBgImageView];
[self.roomUserBgImageView addSubview:self.roomUserlogoImageView];
[self addSubview:self.linkMicImageView];
[self addSubview:self.backgroundImageView];
[self addSubview:self.contentView];
[self.contentView addSubview:self.animImageView];
[self addSubview:self.closeBtn];
[self fus_setupGestures];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(fus_endLiveMinimizeView) name:FUSChatNotificationKeys.fus_FUS_RECEIVE_VCHAT_INVITE_NOTIFICATION object:nil];
}
return self;
}
......@@ -164,17 +165,11 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
_type = type;
switch (type) {
case FUSLiveMinimizeViewTypeNormalLive:
[self.animImageView stopAnimating];
self.animImageView.hidden = YES;
self.linkMicImageView.hidden = YES;
self.pkUserBgImageView.hidden = YES;
self.roomUserBgImageView.hidden = NO;
[_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.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;
......@@ -183,18 +178,9 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
case FUSLiveMinimizeViewTypePK:
[self.animImageView stopAnimating];
self.animImageView.hidden = YES;
self.linkMicImageView.hidden = YES;
self.pkUserBgImageView.hidden = NO;
self.roomUserBgImageView.hidden = NO;
[_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.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;
......@@ -203,19 +189,24 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
case FUSLiveMinimizeViewTypeLinkMicRoom:
[self.animImageView startAnimating];
self.animImageView.hidden = NO;
self.linkMicImageView.hidden = NO;
self.pkUserBgImageView.hidden = YES;
self.roomUserBgImageView.hidden = YES;
[_linkMicImageView setWebImageWithSubURLString:FUSLiveHelper.shareInstance.roomInfoModel.face];
_linkMicImageView.layer.cornerRadius = _linkMicImageView.width / 2.0f;
_linkMicImageView.layer.masksToBounds = YES;
[self.backgroundImageView setWebImageWithSubURLString:FUSLiveHelper.shareInstance.roomInfoModel.face placeholder:nil];
self.backgroundImageView.layer.cornerRadius = self.backgroundImageView.width / 2.0f;
self.backgroundImageView.layer.masksToBounds = YES;
self.closeBtn.origin = CGPointMake(self.contentView.right - self.closeBtn.width - 4, 4);
[self.closeBtn setImage:nil forState:UIControlStateNormal];
self.layer.cornerRadius = 0;
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];
......@@ -264,58 +255,20 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
CGRect bounds = CGRectZero;
bounds.size = size;
switch (self.type) {
case FUSLiveMinimizeViewTypeNormalLive:
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) {
if (!(self.type == FUSLiveMinimizeViewTypeLinkMicRoom)) {
self.backgroundImageView.hidden = YES;
}
/// playerView 内部是有做动画的
[UIView animateWithDuration:0.3 animations:^{
self.frame = frame;
switch (self.type) {
case FUSLiveMinimizeViewTypeNormalLive:
self.roomUserBgImageView.frame = bounds;
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;
break;
if (self.type == FUSLiveMinimizeViewTypeLinkMicRoom) {
self.backgroundImageView.frame = CGRectInset(bounds, kFaceInset, kFaceInset);
self.backgroundImageView.layer.cornerRadius = self.backgroundImageView.width / 2.0;
self.layer.masksToBounds = YES;
} else {
self.backgroundImageView.frame = bounds;
}
self.contentView.frame = bounds;
......@@ -324,6 +277,7 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
} completion:^(BOOL finished) {
self.contentView.userInteractionEnabled = YES;
self.backgroundImageView.hidden = NO;
}];
}
......@@ -456,12 +410,31 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
#pragma mark - UI Actions
- (void)clickClickCloseBtnAction:(UIButton *)sender {
[FUSLiveHelper.shareInstance.currentFunctionView fus_exitRoomCompelete:^{
FUSLiveHelper.shareInstance.liveMinimizeView = nil;
[self removeFromSuperview];
[self.animImageView stopAnimating];
}];
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.liveMinimizeView = nil;
[self removeFromSuperview];
[self.animImageView stopAnimating];
}];
}
}
- (void)fus_destroy{
......@@ -474,52 +447,15 @@ typedef NS_ENUM(NSInteger,FUSLiveMinimizeViewLevelType) {
#pragma mark - UI Quick Getters
- (FUSBlurImageView *)roomUserBgImageView {
if (!_roomUserBgImageView) {
_roomUserBgImageView = [[FUSBlurImageView alloc] init];
}
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);
- (UIImageView *)backgroundImageView {
if (!_backgroundImageView) {
_backgroundImageView = [[UIImageView alloc] initWithFrame:CGRectInset(self.bounds, kFaceInset, kFaceInset)];
_backgroundImageView.contentMode = UIViewContentModeScaleAspectFill;
}
return _pkUserLogoImageView;
return _backgroundImageView;
}
- (UIImageView *)linkMicImageView {
if (!_linkMicImageView) {
_linkMicImageView = [[UIImageView alloc] init];
_linkMicImageView.contentMode = UIViewContentModeScaleAspectFill;
}
return _linkMicImageView;
}
- (UIView *)contentView {
if (!_contentView) {
_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