Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
pidan
/
FuSiLive
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
e7426994
authored
Mar 04, 2026
by
suolong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复播放小窗问题
parent
3755332c
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
91 additions
and
140 deletions
FuSiLive.xcworkspace/xcuserdata/server.xcuserdatad/UserInterfaceState.xcuserstate
FuSiLive.xcworkspace/xcuserdata/server.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Controller/FUSLiveMainViewController.m
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/MinimizeView/FUSLiveMinimizeView.h
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/MinimizeView/FUSLiveMinimizeView.m
FuSiLive.xcworkspace/xcuserdata/server.xcuserdatad/UserInterfaceState.xcuserstate
View file @
e7426994
No preview for this file type
FuSiLive.xcworkspace/xcuserdata/server.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
View file @
e7426994
...
...
@@ -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>
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/Controller/FUSLiveMainViewController.m
View file @
e7426994
...
...
@@ -2351,7 +2351,7 @@ typedef NS_ENUM(NSInteger, FUSStreamState) {
[
self
performSelector
:
@selector
(
setupPictureInPicture
)
afterDelay
:
0
.
3
];
}
-
(
void
)
setupPictureInPicture
{
return
;
if
(
self
.
autoStartPictureInPicture
==
NO
)
{
return
;
}
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/MinimizeView/FUSLiveMinimizeView.h
View file @
e7426994
...
...
@@ -11,6 +11,7 @@
typedef
NS_ENUM
(
NSInteger
,
FUSLiveMinimizeViewType
)
{
FUSLiveMinimizeViewTypeNormalLive
,
FUSLiveMinimizeViewTypePK
,
FUSLiveMinimizeViewTypeBytePK
,
FUSLiveMinimizeViewTypeLinkMicRoom
,
};
...
...
Modules/FUSShowRoomModule/FUSShowRoomModule/Features/NewLive/Main/View/MinimizeView/FUSLiveMinimizeView.m
View file @
e7426994
...
...
@@ -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
.
0
f
;
_linkMicImageView
.
layer
.
masksToBounds
=
YES
;
[
self
.
backgroundImageView
setWebImageWithSubURLString
:
FUSLiveHelper
.
shareInstance
.
roomInfoModel
.
face
placeholder
:
nil
];
self
.
backgroundImageView
.
layer
.
cornerRadius
=
self
.
backgroundImageView
.
width
/
2
.
0
f
;
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
;
if
(
self
.
type
==
FUSLiveMinimizeViewTypeLinkMicRoom
)
{
self
.
backgroundImageView
.
frame
=
CGRectInset
(
bounds
,
kFaceInset
,
kFaceInset
);
self
.
backgroundImageView
.
layer
.
cornerRadius
=
self
.
backgroundImageView
.
width
/
2
.
0
;
self
.
layer
.
masksToBounds
=
YES
;
break
;
}
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
{
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
);
}
return
_pkUserLogoImageView
;
}
-
(
UIImageView
*
)
linkMicImageView
{
if
(
!
_linkMicImageView
)
{
_linkMicImageView
=
[[
UIImageView
alloc
]
init
];
_linkMicImageView
.
contentMode
=
UIViewContentModeScaleAspectFill
;
-
(
UIImageView
*
)
backgroundImageView
{
if
(
!
_backgroundImageView
)
{
_backgroundImageView
=
[[
UIImageView
alloc
]
initWithFrame
:
CGRectInset
(
self
.
bounds
,
kFaceInset
,
kFaceInset
)];
_backgroundImageView
.
contentMode
=
UIViewContentModeScaleAspectFill
;
}
return
_
linkMic
ImageView
;
return
_
background
ImageView
;
}
-
(
UIView
*
)
contentView
{
if
(
!
_contentView
)
{
_contentView
=
[[
UIView
alloc
]
initWithFrame
:
self
.
bounds
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment