Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
galaxy-iOS
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
mobile-group
galaxy-iOS
Commits
98325ece
Commit
98325ece
authored
Dec 10, 2024
by
Alex朱枝文
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
直播优化
parent
91244bed
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
172 additions
and
110 deletions
+172
-110
YHHomePageViewController.swift
...Classes/Modules/Home(首页)/C/YHHomePageViewController.swift
+1
-1
YHHomeBannerView.swift
.../galaxy/Classes/Modules/Home(首页)/V/YHHomeBannerView.swift
+23
-20
YHJsApi.swift
...galaxy/Classes/Modules/InteractionH5(与H5交互)/YHJsApi.swift
+2
-2
YHLivePlayerViewController.swift
.../LivestreamSales(直播销售)/C/YHLivePlayerViewController.swift
+32
-12
YHPlayerManager.swift
...ses/Modules/LivestreamSales(直播销售)/C/YHPlayerManager.swift
+68
-68
YHVODPlayerViewController.swift
...s/LivestreamSales(直播销售)/C/YHVODPlayerViewController.swift
+31
-6
YHFloatingWindow.swift
...es/Modules/LivestreamSales(直播销售)/V/YHFloatingWindow.swift
+15
-1
No files found.
galaxy/galaxy/Classes/Modules/Home(首页)/C/YHHomePageViewController.swift
View file @
98325ece
...
@@ -136,7 +136,7 @@ private extension YHHomePageViewController {
...
@@ -136,7 +136,7 @@ private extension YHHomePageViewController {
if
liveInfo
.
status
==
1
{
if
liveInfo
.
status
==
1
{
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
liveInfo
.
id
,
token
:
liveInfo
.
token
,
channelId
:
liveInfo
.
rtmp_channel
,
uid
:
UInt
(
liveInfo
.
user_id
),
isLive
:
true
,
scene
:
.
floating
,
playerType
:
.
main
)
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
liveInfo
.
id
,
token
:
liveInfo
.
token
,
channelId
:
liveInfo
.
rtmp_channel
,
uid
:
UInt
(
liveInfo
.
user_id
),
isLive
:
true
,
scene
:
.
floating
,
playerType
:
.
main
)
YHPlayerManager
.
shared
.
enterFloating
(
from
:
nil
,
playbackInfo
:
playbackInfo
,
isConfigured
:
true
)
YHPlayerManager
.
shared
.
enterFloating
(
from
:
nil
,
playbackInfo
:
playbackInfo
,
isConfigured
:
true
)
}
else
{
}
else
if
YHPlayerManager
.
shared
.
floatingWindow
?
.
source
==
.
configured
{
YHPlayerManager
.
shared
.
exitFloating
()
YHPlayerManager
.
shared
.
exitFloating
()
}
}
}
}
...
...
galaxy/galaxy/Classes/Modules/Home(首页)/V/YHHomeBannerView.swift
View file @
98325ece
...
@@ -24,17 +24,19 @@ class YHHomeBannerView: UIView {
...
@@ -24,17 +24,19 @@ class YHHomeBannerView: UIView {
self
.
indicatorView
.
curIndicatorIndex
=
0
self
.
indicatorView
.
curIndicatorIndex
=
0
// 指定显示图片为第一个
// 指定显示图片为第一个
bannerView
.
selectItem
(
at
:
0
,
animated
:
false
)
bannerView
.
selectItem
(
at
:
0
,
animated
:
false
)
if
let
index
=
dataArr
.
firstIndex
(
where
:
{
// 开启定时器开始滚动
$0
.
skip_type
==
100
bannerView
.
automaticSlidingInterval
=
bannerSildingInterval
})
{
// if let index = dataArr.firstIndex(where: {
// 开启定时器开始滚动
// $0.skip_type == 100
bannerView
.
automaticSlidingInterval
=
0
// }) {
bannerView
.
scrollToItem
(
at
:
index
,
animated
:
false
)
// // 开启定时器开始滚动
indicatorView
.
curIndicatorIndex
=
index
// bannerView.automaticSlidingInterval = 0
}
else
{
// bannerView.scrollToItem(at: index, animated: false)
// 开启定时器开始滚动
// indicatorView.curIndicatorIndex = index
bannerView
.
automaticSlidingInterval
=
bannerSildingInterval
// } else {
}
// // 开启定时器开始滚动
// bannerView.automaticSlidingInterval = bannerSildingInterval
// }
bannerView
.
removesInfiniteLoopForSingleItem
=
true
bannerView
.
removesInfiniteLoopForSingleItem
=
true
bannerView
.
alwaysBounceHorizontal
=
true
bannerView
.
alwaysBounceHorizontal
=
true
}
}
...
@@ -244,10 +246,10 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
...
@@ -244,10 +246,10 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
return
return
}
}
let
cell
:
YHHomeBannerCollectionViewCell
?
=
pagerView
.
cellForItem
(
at
:
index
)
as?
YHHomeBannerCollectionViewCell
let
cell
:
YHHomeBannerCollectionViewCell
?
=
pagerView
.
cellForItem
(
at
:
index
)
as?
YHHomeBannerCollectionViewCell
if
let
player
=
YHPlayerManager
.
shared
.
getPlayer
(
.
secondary
)
{
//
if let player = YHPlayerManager.shared.getPlayer(.secondary) {
YHPlayerManager
.
shared
.
leaveChannel
(
for
:
player
)
//
YHPlayerManager.shared.leaveChannel(for: player)
player
.
clearPlayerView
()
//
player.clearPlayerView()
}
//
}
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
model
.
live_id
,
url
:
nil
,
title
:
nil
,
roomId
:
nil
,
token
:
model
.
token
,
channelId
:
model
.
rtmp_channel
,
uid
:
model
.
user_id
!=
0
?
UInt
(
model
.
user_id
)
:
nil
,
isLive
:
true
,
scene
:
.
fullscreen
)
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
model
.
live_id
,
url
:
nil
,
title
:
nil
,
roomId
:
nil
,
token
:
model
.
token
,
channelId
:
model
.
rtmp_channel
,
uid
:
model
.
user_id
!=
0
?
UInt
(
model
.
user_id
)
:
nil
,
isLive
:
true
,
scene
:
.
fullscreen
)
YHPlayerManager
.
shared
.
enterLive
(
from
:
cell
?
.
bannerImagV
,
playbackInfo
:
playbackInfo
)
YHPlayerManager
.
shared
.
enterLive
(
from
:
cell
?
.
bannerImagV
,
playbackInfo
:
playbackInfo
)
printLog
(
"跳转直播"
)
printLog
(
"跳转直播"
)
...
@@ -268,10 +270,10 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
...
@@ -268,10 +270,10 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
if
!
checkLogin
()
{
if
!
checkLogin
()
{
return
return
}
}
if
let
player
=
YHPlayerManager
.
shared
.
getPlayer
(
.
secondary
)
{
//
if let player = YHPlayerManager.shared.getPlayer(.secondary) {
YHPlayerManager
.
shared
.
leaveChannel
(
for
:
player
)
//
YHPlayerManager.shared.leaveChannel(for: player)
player
.
clearPlayerView
()
//
player.clearPlayerView()
}
//
}
let
cell
:
YHHomeBannerCollectionViewCell
?
=
pagerView
.
cellForItem
(
at
:
index
)
as?
YHHomeBannerCollectionViewCell
let
cell
:
YHHomeBannerCollectionViewCell
?
=
pagerView
.
cellForItem
(
at
:
index
)
as?
YHHomeBannerCollectionViewCell
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
model
.
live_id
,
url
:
model
.
live_pull_url
,
title
:
nil
,
roomId
:
nil
,
token
:
model
.
token
,
channelId
:
model
.
rtmp_channel
,
uid
:
UInt
(
model
.
user_id
),
isLive
:
true
,
scene
:
.
fullscreen
)
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
model
.
live_id
,
url
:
model
.
live_pull_url
,
title
:
nil
,
roomId
:
nil
,
token
:
model
.
token
,
channelId
:
model
.
rtmp_channel
,
uid
:
UInt
(
model
.
user_id
),
isLive
:
true
,
scene
:
.
fullscreen
)
YHPlayerManager
.
shared
.
enterLive
(
from
:
cell
?
.
bannerImagV
,
playbackInfo
:
playbackInfo
)
YHPlayerManager
.
shared
.
enterLive
(
from
:
cell
?
.
bannerImagV
,
playbackInfo
:
playbackInfo
)
...
@@ -291,7 +293,7 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
...
@@ -291,7 +293,7 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
func
pagerViewDidEndScrollAnimation
(
_
pagerView
:
FSPagerView
)
{
func
pagerViewDidEndScrollAnimation
(
_
pagerView
:
FSPagerView
)
{
self
.
indicatorView
.
curIndicatorIndex
=
pagerView
.
currentIndex
self
.
indicatorView
.
curIndicatorIndex
=
pagerView
.
currentIndex
}
}
/*
func pagerView(_ pagerView: FSPagerView, willDisplay cell: FSPagerViewCell, forItemAt index: Int) {
func pagerView(_ pagerView: FSPagerView, willDisplay cell: FSPagerViewCell, forItemAt index: Int) {
if index >= dataArr.count {
if index >= dataArr.count {
...
@@ -333,4 +335,5 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
...
@@ -333,4 +335,5 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
}
}
}
}
}
}
*/
}
}
galaxy/galaxy/Classes/Modules/InteractionH5(与H5交互)/YHJsApi.swift
View file @
98325ece
...
@@ -630,10 +630,10 @@ extension YHJsApi {
...
@@ -630,10 +630,10 @@ extension YHJsApi {
return
return
}
}
if
type
==
1
{
if
type
==
1
{
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
id
.
intValue
(),
isLive
:
true
)
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
id
.
intValue
(),
isLive
:
true
,
isFromSaleDetail
:
true
)
YHPlayerManager
.
shared
.
enterLive
(
from
:
nil
,
playbackInfo
:
playbackInfo
)
YHPlayerManager
.
shared
.
enterLive
(
from
:
nil
,
playbackInfo
:
playbackInfo
)
}
else
if
type
==
2
{
}
else
if
type
==
2
{
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
id
.
intValue
(),
isLive
:
false
,
needHideZoomButton
:
true
)
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
id
.
intValue
(),
isLive
:
false
,
isFromSaleDetail
:
true
)
YHPlayerManager
.
shared
.
enterVOD
(
from
:
nil
,
playbackInfo
:
playbackInfo
)
YHPlayerManager
.
shared
.
enterVOD
(
from
:
nil
,
playbackInfo
:
playbackInfo
)
}
}
...
...
galaxy/galaxy/Classes/Modules/LivestreamSales(直播销售)/C/YHLivePlayerViewController.swift
View file @
98325ece
...
@@ -27,6 +27,7 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
...
@@ -27,6 +27,7 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
private
var
isFirstAppear
=
true
private
var
isFirstAppear
=
true
private
var
timer
:
DispatchSourceTimer
?
private
var
timer
:
DispatchSourceTimer
?
private
var
isDisappearFromZoom
=
false
private
var
isDisappearFromZoom
=
false
private
let
timeCount
:
Int
=
120
// MARK: - UI Components
// MARK: - UI Components
...
@@ -182,9 +183,20 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
...
@@ -182,9 +183,20 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
}
}
topBarView
.
zoomButtonClickEvent
=
{
[
weak
self
]
in
topBarView
.
zoomButtonClickEvent
=
{
[
weak
self
]
in
self
?
.
isDisappearFromZoom
=
true
if
let
playbackInfo
=
self
?
.
playbackInfo
,
playbackInfo
.
isFromSaleDetail
{
self
?
.
leaveLiveRoom
()
self
?
.
clearInfo
()
self
?
.
enterFloating
()
if
let
nav
=
self
?
.
navigationController
,
nav
.
viewControllers
.
count
>
1
{
nav
.
popViewController
(
animated
:
true
)
}
else
{
self
?
.
dismiss
(
animated
:
true
)
}
}
else
{
self
?
.
isDisappearFromZoom
=
true
self
?
.
quitChatRoom
()
self
?
.
leaveLiveRoom
()
// self?.clearInfo()
self
?
.
enterFloating
()
}
}
}
topBarView
.
shareButtonClickEvent
=
{
[
weak
self
]
in
topBarView
.
shareButtonClickEvent
=
{
[
weak
self
]
in
...
@@ -315,11 +327,11 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
...
@@ -315,11 +327,11 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
// MARK: - Public Methods
// MARK: - Public Methods
func
play
(
url
:
String
,
title
:
String
?
=
nil
)
{
//
func play(url: String, title: String? = nil) {
currentPlayingURL
=
url
//
currentPlayingURL = url
currentVideoTitle
=
title
//
currentVideoTitle = title
YHPlayerManager
.
shared
.
play
(
url
:
url
,
inView
:
playerView
,
title
:
title
)
//
YHPlayerManager.shared.play(url: url, inView: playerView, title: title)
}
//
}
func
enterFloating
()
{
func
enterFloating
()
{
guard
let
playbackInfo
=
playbackInfo
else
{
guard
let
playbackInfo
=
playbackInfo
else
{
...
@@ -377,15 +389,23 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
...
@@ -377,15 +389,23 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
}
}
}
}
}
}
private
func
cl
oseLive
()
{
private
func
cl
earInfo
()
{
quitChatRoom
()
quitChatRoom
()
leaveLiveRoom
()
leaveLiveRoom
()
// YHPlayerManager.shared.stop(type: .main)
// YHPlayerManager.shared.stop(type: .main)
if
let
player
=
player
{
if
let
player
=
player
{
YHPlayerManager
.
shared
.
leaveChannel
(
for
:
player
)
YHPlayerManager
.
shared
.
leaveChannel
(
for
:
player
)
}
}
dismiss
(
animated
:
true
)
}
private
func
closeLive
()
{
clearInfo
()
if
let
nav
=
navigationController
,
nav
.
viewControllers
.
count
>
1
{
nav
.
popViewController
(
animated
:
true
)
}
else
{
dismiss
(
animated
:
true
)
}
}
}
private
func
shareLive
()
{
private
func
shareLive
()
{
...
@@ -618,7 +638,7 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
...
@@ -618,7 +638,7 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
/// 设置定时器
/// 设置定时器
private
func
setupTimer
()
{
private
func
setupTimer
()
{
timer
=
DispatchSource
.
makeTimerSource
(
queue
:
.
main
)
timer
=
DispatchSource
.
makeTimerSource
(
queue
:
.
main
)
timer
?
.
schedule
(
deadline
:
.
now
(),
repeating
:
.
seconds
(
120
))
timer
?
.
schedule
(
deadline
:
.
now
(),
repeating
:
.
seconds
(
timeCount
))
timer
?
.
setEventHandler
(
handler
:
{
[
weak
self
]
in
timer
?
.
setEventHandler
(
handler
:
{
[
weak
self
]
in
guard
let
self
=
self
else
{
guard
let
self
=
self
else
{
return
return
...
...
galaxy/galaxy/Classes/Modules/LivestreamSales(直播销售)/C/YHPlayerManager.swift
View file @
98325ece
...
@@ -31,7 +31,7 @@ class YHPlayerManager: NSObject {
...
@@ -31,7 +31,7 @@ class YHPlayerManager: NSObject {
let
isLive
:
Bool
let
isLive
:
Bool
var
scene
:
PlaybackScene
var
scene
:
PlaybackScene
var
playerType
:
YHPlayerType
var
playerType
:
YHPlayerType
var
needHideZoomButton
:
Bool
=
false
var
isFromSaleDetail
:
Bool
=
false
init
(
id
:
Int
,
init
(
id
:
Int
,
url
:
String
?
=
nil
,
url
:
String
?
=
nil
,
...
@@ -43,7 +43,7 @@ class YHPlayerManager: NSObject {
...
@@ -43,7 +43,7 @@ class YHPlayerManager: NSObject {
isLive
:
Bool
,
isLive
:
Bool
,
scene
:
PlaybackScene
=
.
fullscreen
,
scene
:
PlaybackScene
=
.
fullscreen
,
playerType
:
YHPlayerType
=
.
main
,
playerType
:
YHPlayerType
=
.
main
,
needHideZoomButton
:
Bool
=
false
)
{
isFromSaleDetail
:
Bool
=
false
)
{
self
.
id
=
id
self
.
id
=
id
self
.
url
=
url
self
.
url
=
url
self
.
title
=
title
self
.
title
=
title
...
@@ -54,7 +54,7 @@ class YHPlayerManager: NSObject {
...
@@ -54,7 +54,7 @@ class YHPlayerManager: NSObject {
self
.
isLive
=
isLive
self
.
isLive
=
isLive
self
.
scene
=
scene
self
.
scene
=
scene
self
.
playerType
=
playerType
self
.
playerType
=
playerType
self
.
needHideZoomButton
=
needHideZoomButton
self
.
isFromSaleDetail
=
isFromSaleDetail
}
}
static
func
==
(
lhs
:
Self
,
rhs
:
Self
)
->
Bool
{
static
func
==
(
lhs
:
Self
,
rhs
:
Self
)
->
Bool
{
...
@@ -71,7 +71,7 @@ class YHPlayerManager: NSObject {
...
@@ -71,7 +71,7 @@ class YHPlayerManager: NSObject {
private
var
secondaryChannelDelegate
:
YHSecondaryChannelDelegate
?
private
var
secondaryChannelDelegate
:
YHSecondaryChannelDelegate
?
private
var
activePlayers
:
[
YHPlayerType
:
YHPlayer
]
=
[:]
private
var
activePlayers
:
[
YHPlayerType
:
YHPlayer
]
=
[:]
private
var
currentPlaybackInfo
:
[
YHPlayerType
:
PlaybackInfo
]
=
[:]
private
var
currentPlaybackInfo
:
[
YHPlayerType
:
PlaybackInfo
]
=
[:]
private
var
floatingWindow
:
YHFloatingWindow
?
private
(set)
var
floatingWindow
:
YHFloatingWindow
?
private(set)
var
isInRecommendPage
:
Bool
=
false
private(set)
var
isInRecommendPage
:
Bool
=
false
private(set)
var
isConfigFloating
:
Bool
?
=
nil
private(set)
var
isConfigFloating
:
Bool
?
=
nil
private
var
bannerAutoPlayEnabled
:
Bool
=
true
private
var
bannerAutoPlayEnabled
:
Bool
=
true
...
@@ -145,7 +145,7 @@ class YHPlayerManager: NSObject {
...
@@ -145,7 +145,7 @@ class YHPlayerManager: NSObject {
activePlayers
.
forEach
{
$0
.
value
.
stop
()
}
activePlayers
.
forEach
{
$0
.
value
.
stop
()
}
// 释放副播放器
// 释放副播放器
releasePlayer
(
.
secondary
)
//
releasePlayer(.secondary)
// 清理播放信息
// 清理播放信息
currentPlaybackInfo
.
removeAll
()
currentPlaybackInfo
.
removeAll
()
...
@@ -302,14 +302,14 @@ class YHPlayerManager: NSObject {
...
@@ -302,14 +302,14 @@ class YHPlayerManager: NSObject {
// 如果是从banner跳转,需要转移播放进度
// 如果是从banner跳转,需要转移播放进度
var
startPosition
:
Int
=
0
var
startPosition
:
Int
=
0
if
let
bannerPlayer
=
activePlayers
[
.
secondary
]
{
//
if let bannerPlayer = activePlayers[.secondary] {
startPosition
=
bannerPlayer
.
getPosition
()
//
startPosition = bannerPlayer.getPosition()
if
bannerPlayer
.
playMode
==
.
live
{
//
if bannerPlayer.playMode == .live {
leaveChannel
(
for
:
bannerPlayer
)
//
leaveChannel(for: bannerPlayer)
}
else
{
//
} else {
bannerPlayer
.
pause
()
//
bannerPlayer.pause()
}
//
}
}
//
}
var
lastVodVC
:
YHVODPlayerViewController
?
var
lastVodVC
:
YHVODPlayerViewController
?
var
lastNav
:
UINavigationController
?
var
lastNav
:
UINavigationController
?
var
lastLiveVC
:
YHLivePlayerViewController
?
var
lastLiveVC
:
YHLivePlayerViewController
?
...
@@ -372,13 +372,13 @@ class YHPlayerManager: NSObject {
...
@@ -372,13 +372,13 @@ class YHPlayerManager: NSObject {
updatedInfo
.
playerType
=
playerType
updatedInfo
.
playerType
=
playerType
// 如果是从banner跳转,需要转移播放进度
// 如果是从banner跳转,需要转移播放进度
if
let
bannerPlayer
=
activePlayers
[
.
secondary
]
{
//
if let bannerPlayer = activePlayers[.secondary] {
if
bannerPlayer
.
playMode
==
.
live
{
//
if bannerPlayer.playMode == .live {
leaveChannel
(
for
:
bannerPlayer
)
//
leaveChannel(for: bannerPlayer)
}
else
{
//
} else {
bannerPlayer
.
pause
()
//
bannerPlayer.pause()
}
//
}
}
//
}
var
lastVodVC
:
YHVODPlayerViewController
?
var
lastVodVC
:
YHVODPlayerViewController
?
var
lastNav
:
UINavigationController
?
var
lastNav
:
UINavigationController
?
var
lastLiveVC
:
YHLivePlayerViewController
?
var
lastLiveVC
:
YHLivePlayerViewController
?
...
@@ -471,13 +471,13 @@ class YHPlayerManager: NSObject {
...
@@ -471,13 +471,13 @@ class YHPlayerManager: NSObject {
}
}
// 如果是从banner跳转,需要转移播放进度
// 如果是从banner跳转,需要转移播放进度
if
let
bannerPlayer
=
activePlayers
[
.
secondary
]
{
//
if let bannerPlayer = activePlayers[.secondary] {
if
bannerPlayer
.
playMode
==
.
live
{
//
if bannerPlayer.playMode == .live {
leaveChannel
(
for
:
bannerPlayer
)
//
leaveChannel(for: bannerPlayer)
}
else
{
//
} else {
bannerPlayer
.
pause
()
//
bannerPlayer.pause()
}
//
}
}
//
}
let
playerType
=
determinePlayerType
(
for
:
.
floating
)
let
playerType
=
determinePlayerType
(
for
:
.
floating
)
let
player
:
YHPlayer
=
player
(
for
:
playerType
)
let
player
:
YHPlayer
=
player
(
for
:
playerType
)
...
@@ -781,20 +781,20 @@ extension YHPlayerManager {
...
@@ -781,20 +781,20 @@ extension YHPlayerManager {
if
isRecommendPage
{
if
isRecommendPage
{
if
isConfigFloating
==
true
{
if
isConfigFloating
==
true
{
if
let
window
=
floatingWindow
,
let
player
=
window
.
player
,
window
.
source
==
.
configured
{
if
let
window
=
floatingWindow
,
let
player
=
window
.
player
,
window
.
source
==
.
configured
{
stopBannerPlayback
()
//
stopBannerPlayback()
resumeConfiguredFloatingWindow
(
window
,
player
)
resumeConfiguredFloatingWindow
(
window
,
player
)
}
}
}
else
{
}
else
{
if
let
window
=
floatingWindow
,
window
.
source
==
.
configured
{
if
let
window
=
floatingWindow
,
window
.
source
==
.
configured
{
exitFloating
()
exitFloating
()
}
}
enableBannerAutoPlay
()
//
enableBannerAutoPlay()
}
}
}
else
{
}
else
{
if
let
window
=
floatingWindow
,
window
.
source
==
.
configured
{
if
let
window
=
floatingWindow
,
window
.
source
==
.
configured
{
exitFloating
()
exitFloating
()
}
}
stopBannerPlayback
()
//
stopBannerPlayback()
}
}
}
}
...
@@ -828,45 +828,45 @@ extension YHPlayerManager {
...
@@ -828,45 +828,45 @@ extension YHPlayerManager {
}
}
}
}
private
func
stopBannerPlayback
()
{
//
private func stopBannerPlayback() {
bannerAutoPlayEnabled
=
false
//
bannerAutoPlayEnabled = false
if
let
player
=
getPlayer
(
.
secondary
)
{
//
if let player = getPlayer(.secondary) {
if
player
.
playMode
==
.
live
{
//
if player.playMode == .live {
leaveChannel
(
for
:
player
)
//
leaveChannel(for: player)
}
else
{
//
} else {
player
.
stop
()
//
player.stop()
}
//
}
}
//
}
}
//
}
private
func
resumeBannerPlayback
()
{
//
private func resumeBannerPlayback() {
guard
bannerAutoPlayEnabled
,
let
bannerPlayerView
=
bannerPlayerView
else
{
//
guard bannerAutoPlayEnabled, let bannerPlayerView = bannerPlayerView else {
return
//
return
}
//
}
if
let
player
=
getPlayer
(
.
secondary
)
{
//
if let player = getPlayer(.secondary) {
if
let
playbackInfo
=
currentPlaybackInfo
[
.
secondary
]
{
//
if let playbackInfo = currentPlaybackInfo[.secondary] {
if
playbackInfo
.
isLive
{
//
if playbackInfo.isLive {
if
let
token
=
playbackInfo
.
token
,
//
if let token = playbackInfo.token,
let
channelId
=
playbackInfo
.
channelId
,
//
let channelId = playbackInfo.channelId,
let
uid
=
playbackInfo
.
uid
{
//
let uid = playbackInfo.uid {
joinChannel
(
for
:
player
,
//
joinChannel(for: player,
token
:
token
,
//
token: token,
channelId
:
channelId
,
//
channelId: channelId,
uid
:
uid
,
//
uid: uid,
view
:
bannerPlayerView
,
defaultMuted
:
true
)
//
view: bannerPlayerView, defaultMuted: true)
}
//
}
}
else
{
//
} else {
if
let
url
=
playbackInfo
.
url
{
//
if let url = playbackInfo.url {
player
.
play
(
url
:
url
,
//
player.play(url: url,
title
:
playbackInfo
.
title
,
//
title: playbackInfo.title,
view
:
bannerPlayerView
)
//
view: bannerPlayerView)
player
.
isMuted
=
true
//
player.isMuted = true
}
//
}
}
//
}
}
//
}
//
}
//
}
}
//
}
private
func
enableBannerAutoPlay
()
{
private
func
enableBannerAutoPlay
()
{
bannerAutoPlayEnabled
=
true
bannerAutoPlayEnabled
=
true
...
...
galaxy/galaxy/Classes/Modules/LivestreamSales(直播销售)/C/YHVODPlayerViewController.swift
View file @
98325ece
...
@@ -22,6 +22,11 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
...
@@ -22,6 +22,11 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
return
view
return
view
}()
}()
private
lazy
var
bottomImageView
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"live_player_bg"
))
return
imageView
}()
private
var
isFirstAppear
=
true
private
var
isFirstAppear
=
true
// MARK: - Initialization
// MARK: - Initialization
...
@@ -58,16 +63,27 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
...
@@ -58,16 +63,27 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
super
.
viewWillAppear
(
animated
)
// if !isFirstAppear {
if
!
isFirstAppear
{
// player?.resume()
if
player
?
.
getPlayState
()
!=
.
paused
{
// }
if
let
url
=
playbackInfo
?
.
url
{
if
player
?
.
currentURL
!=
nil
{
play
(
url
:
url
,
title
:
playbackInfo
?
.
title
)
player
?
.
resume
()
player
?
.
seek
(
to
:
startPosition
)
player
?
.
resume
()
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
0.25
,
execute
:
{
self
.
progressControl
.
setPlaying
(
self
.
player
?
.
getPlayState
()
==
.
playing
)
})
}
}
else
{
player
?
.
resume
()
}
}
}
}
}
override
func
viewWillDisappear
(
_
animated
:
Bool
)
{
override
func
viewWillDisappear
(
_
animated
:
Bool
)
{
super
.
viewWillDisappear
(
animated
)
super
.
viewWillDisappear
(
animated
)
if
let
player
=
player
{
startPosition
=
player
.
getPosition
()
}
player
?
.
pause
()
player
?
.
pause
()
}
}
...
@@ -81,6 +97,11 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
...
@@ -81,6 +97,11 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
// MARK: - SetupView
// MARK: - SetupView
private
func
setupUI
()
{
private
func
setupUI
()
{
playerView
.
addSubview
(
bottomImageView
)
bottomImageView
.
snp
.
makeConstraints
{
make
in
make
.
edges
.
equalToSuperview
()
}
containerView
.
addSubview
(
progressControl
)
containerView
.
addSubview
(
progressControl
)
progressControl
.
snp
.
makeConstraints
{
make
in
progressControl
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
bottom
.
equalToSuperview
()
make
.
left
.
right
.
bottom
.
equalToSuperview
()
...
@@ -127,7 +148,11 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
...
@@ -127,7 +148,11 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
private
func
closeLive
()
{
private
func
closeLive
()
{
YHPlayerManager
.
shared
.
stop
(
type
:
.
main
)
YHPlayerManager
.
shared
.
stop
(
type
:
.
main
)
dismiss
(
animated
:
true
)
if
let
nav
=
navigationController
,
nav
.
viewControllers
.
count
>
1
{
nav
.
popViewController
(
animated
:
true
)
}
else
{
dismiss
(
animated
:
true
)
}
}
}
private
func
shareLive
()
{
private
func
shareLive
()
{
...
...
galaxy/galaxy/Classes/Modules/LivestreamSales(直播销售)/V/YHFloatingWindow.swift
View file @
98325ece
...
@@ -118,6 +118,11 @@ class YHFloatingWindow: NSObject {
...
@@ -118,6 +118,11 @@ class YHFloatingWindow: NSObject {
view
.
frame
=
CGRect
(
x
:
0
,
y
:
0
,
width
:
Size
.
defaultWidth
,
height
:
20
)
view
.
frame
=
CGRect
(
x
:
0
,
y
:
0
,
width
:
Size
.
defaultWidth
,
height
:
20
)
return
view
return
view
}()
}()
private
lazy
var
bottomImageView
:
UIImageView
=
{
let
imageView
=
UIImageView
(
image
:
UIImage
(
named
:
"live_player_bg"
))
return
imageView
}()
// MARK: - Initialization
// MARK: - Initialization
...
@@ -143,7 +148,7 @@ class YHFloatingWindow: NSObject {
...
@@ -143,7 +148,7 @@ class YHFloatingWindow: NSObject {
containerView
.
layer
.
shadowOffset
=
CGSize
(
width
:
0
,
height
:
2
)
containerView
.
layer
.
shadowOffset
=
CGSize
(
width
:
0
,
height
:
2
)
containerView
.
layer
.
shadowRadius
=
4
containerView
.
layer
.
shadowRadius
=
4
containerView
.
layer
.
shadowOpacity
=
0.3
containerView
.
layer
.
shadowOpacity
=
0.3
containerView
.
addSubview
(
contentView
)
containerView
.
addSubview
(
contentView
)
contentView
.
translatesAutoresizingMaskIntoConstraints
=
false
contentView
.
translatesAutoresizingMaskIntoConstraints
=
false
NSLayoutConstraint
.
activate
([
NSLayoutConstraint
.
activate
([
...
@@ -152,6 +157,15 @@ class YHFloatingWindow: NSObject {
...
@@ -152,6 +157,15 @@ class YHFloatingWindow: NSObject {
contentView
.
topAnchor
.
constraint
(
equalTo
:
containerView
.
topAnchor
),
contentView
.
topAnchor
.
constraint
(
equalTo
:
containerView
.
topAnchor
),
contentView
.
bottomAnchor
.
constraint
(
equalTo
:
containerView
.
bottomAnchor
),
contentView
.
bottomAnchor
.
constraint
(
equalTo
:
containerView
.
bottomAnchor
),
])
])
contentView
.
addSubview
(
bottomImageView
)
bottomImageView
.
translatesAutoresizingMaskIntoConstraints
=
false
NSLayoutConstraint
.
activate
([
bottomImageView
.
leadingAnchor
.
constraint
(
equalTo
:
contentView
.
leadingAnchor
),
bottomImageView
.
trailingAnchor
.
constraint
(
equalTo
:
contentView
.
trailingAnchor
),
bottomImageView
.
topAnchor
.
constraint
(
equalTo
:
contentView
.
topAnchor
),
bottomImageView
.
bottomAnchor
.
constraint
(
equalTo
:
contentView
.
bottomAnchor
),
])
containerView
.
addSubview
(
closeButtonContainer
)
containerView
.
addSubview
(
closeButtonContainer
)
closeButtonContainer
.
translatesAutoresizingMaskIntoConstraints
=
false
closeButtonContainer
.
translatesAutoresizingMaskIntoConstraints
=
false
...
...
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