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
2fa1df59
Commit
2fa1df59
authored
Dec 05, 2024
by
Alex朱枝文
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
直播间小窗优化
parent
aa871f65
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
98 additions
and
49 deletions
+98
-49
YHBannerModel.swift
galaxy/galaxy/Classes/Modules/Home(首页)/M/YHBannerModel.swift
+1
-1
YHConfigModel.swift
galaxy/galaxy/Classes/Modules/Home(首页)/M/YHConfigModel.swift
+4
-1
YHHomeBannerView.swift
.../galaxy/Classes/Modules/Home(首页)/V/YHHomeBannerView.swift
+4
-3
YHJsApi.swift
...galaxy/Classes/Modules/InteractionH5(与H5交互)/YHJsApi.swift
+1
-1
YHLivePlayerViewController.swift
.../LivestreamSales(直播销售)/C/YHLivePlayerViewController.swift
+2
-3
YHPlayer.swift
...xy/Classes/Modules/LivestreamSales(直播销售)/C/YHPlayer.swift
+0
-0
YHPlayerManager.swift
...ses/Modules/LivestreamSales(直播销售)/C/YHPlayerManager.swift
+70
-31
YHVODPlayerViewController.swift
...s/LivestreamSales(直播销售)/C/YHVODPlayerViewController.swift
+3
-2
YHLiveDetailModel.swift
...s/Modules/LivestreamSales(直播销售)/M/YHLiveDetailModel.swift
+1
-1
YHRecordedDetailModel.swift
...dules/LivestreamSales(直播销售)/M/YHRecordedDetailModel.swift
+1
-1
YHLiveMessageCell.swift
...s/Modules/LivestreamSales(直播销售)/V/YHLiveMessageCell.swift
+2
-2
YHLiveMessageListView.swift
...dules/LivestreamSales(直播销售)/V/YHLiveMessageListView.swift
+3
-1
YHPlayerTopBarView.swift
.../Modules/LivestreamSales(直播销售)/V/YHPlayerTopBarView.swift
+6
-2
No files found.
galaxy/galaxy/Classes/Modules/Home(首页)/M/YHBannerModel.swift
View file @
2fa1df59
...
@@ -24,7 +24,7 @@ class YHBannerModel: SmartCodable {
...
@@ -24,7 +24,7 @@ class YHBannerModel: SmartCodable {
var
live_type
:
Int
=
0
// 播放类型:1 展示最新直播,2指定直播,3 指定录播
var
live_type
:
Int
=
0
// 播放类型:1 展示最新直播,2指定直播,3 指定录播
var
live_pull_url
:
String
=
""
//直播拉流链接
var
live_pull_url
:
String
=
""
//直播拉流链接
var
video_url
:
String
=
""
//视频链接
var
video_url
:
String
=
""
//视频链接
var
recorded_
cate
_id
:
Int
=
0
//录播分类ID
var
recorded_
video
_id
:
Int
=
0
//录播分类ID
var
app_id
:
String
=
""
//声网直播
var
app_id
:
String
=
""
//声网直播
var
token
:
String
=
""
//声网直播
var
token
:
String
=
""
//声网直播
var
rtmp_channel
:
String
=
""
//声网直播
var
rtmp_channel
:
String
=
""
//声网直播
...
...
galaxy/galaxy/Classes/Modules/Home(首页)/M/YHConfigModel.swift
View file @
2fa1df59
...
@@ -57,7 +57,10 @@ class YHHomeTabInfoModel : SmartCodable {
...
@@ -57,7 +57,10 @@ class YHHomeTabInfoModel : SmartCodable {
class
YHHomeLiveInfoModel
:
SmartCodable
{
class
YHHomeLiveInfoModel
:
SmartCodable
{
var
id
:
Int
=
0
var
id
:
Int
=
0
var
status
:
Int
=
0
var
status
:
Int
=
0
var
pull_url
:
Int
=
0
var
app_id
:
String
=
""
var
token
:
String
=
""
var
rtmp_channel
:
String
=
""
var
img_url
:
String
=
""
required
init
()
{
required
init
()
{
}
}
}
}
galaxy/galaxy/Classes/Modules/Home(首页)/V/YHHomeBannerView.swift
View file @
2fa1df59
...
@@ -244,7 +244,7 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
...
@@ -244,7 +244,7 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
// live_type 播放类型:1 展示最新直播,2指定直播,3 指定录播
// live_type 播放类型:1 展示最新直播,2指定直播,3 指定录播
// live_pull_url 直播拉流链接
// live_pull_url 直播拉流链接
// video_url 视频链接
// video_url 视频链接
// recorded_
cate_id 录播分类
id token: String? = nil, channelId
// recorded_
video_id 录播
id token: String? = nil, channelId
if
!
checkLogin
()
{
if
!
checkLogin
()
{
return
return
}
}
...
@@ -258,7 +258,7 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
...
@@ -258,7 +258,7 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
return
return
}
}
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
.
video_url
,
title
:
nil
,
roomId
:
nil
,
uid
:
nil
,
isLive
:
false
,
scene
:
.
fullscreen
)
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
model
.
recorded_video
_id
,
url
:
model
.
video_url
,
title
:
nil
,
roomId
:
nil
,
uid
:
nil
,
isLive
:
false
,
scene
:
.
fullscreen
)
YHPlayerManager
.
shared
.
enterVOD
(
from
:
cell
?
.
bannerImagV
,
playbackInfo
:
playbackInfo
)
YHPlayerManager
.
shared
.
enterVOD
(
from
:
cell
?
.
bannerImagV
,
playbackInfo
:
playbackInfo
)
case
102
:
//图片直播
case
102
:
//图片直播
printLog
(
"跳转录播"
)
printLog
(
"跳转录播"
)
...
@@ -316,7 +316,8 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
...
@@ -316,7 +316,8 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
YHPlayerManager
.
shared
.
enterBanner
(
playbackInfo
:
playbackInfo
,
inView
:
cell
.
bannerImagV
)
YHPlayerManager
.
shared
.
enterBanner
(
playbackInfo
:
playbackInfo
,
inView
:
cell
.
bannerImagV
)
}
else
{
}
else
{
let
player
=
YHPlayerManager
.
shared
.
getPlayer
(
.
secondary
)
let
player
=
YHPlayerManager
.
shared
.
getPlayer
(
.
secondary
)
player
?
.
setPlayView
(
nil
)
// player?.setPlayView(nil)
player
?
.
clearPlayerView
()
}
}
}
}
...
...
galaxy/galaxy/Classes/Modules/InteractionH5(与H5交互)/YHJsApi.swift
View file @
2fa1df59
...
@@ -626,7 +626,7 @@ extension YHJsApi {
...
@@ -626,7 +626,7 @@ extension YHJsApi {
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
id
.
intValue
(),
isLive
:
true
)
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
id
.
intValue
(),
isLive
:
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
)
let
playbackInfo
=
YHPlayerManager
.
PlaybackInfo
(
id
:
id
.
intValue
(),
isLive
:
false
,
needHideZoomButton
:
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 @
2fa1df59
...
@@ -184,10 +184,10 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
...
@@ -184,10 +184,10 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
playbackInfo
?
.
channelId
=
liveDetail
.
rtmp_channel
playbackInfo
?
.
channelId
=
liveDetail
.
rtmp_channel
playbackInfo
?
.
token
=
liveDetail
.
token
playbackInfo
?
.
token
=
liveDetail
.
token
playbackInfo
?
.
title
=
liveDetail
.
live_title
playbackInfo
?
.
title
=
liveDetail
.
live_title
messageListView
.
anchorName
=
liveDetail
.
hxNickname
if
needJoinLiveChannel
{
if
needJoinLiveChannel
{
if
!
liveDetail
.
rtmp_channel
.
isEmpty
,
!
liveDetail
.
token
.
isEmpty
,
let
uid
=
playbackInfo
?
.
uid
,
let
player
=
player
{
if
!
liveDetail
.
rtmp_channel
.
isEmpty
,
!
liveDetail
.
token
.
isEmpty
,
let
uid
=
playbackInfo
?
.
uid
,
let
player
=
player
{
player
.
setPlayView
(
playerView
)
YHPlayerManager
.
shared
.
joinChannel
(
for
:
player
,
token
:
liveDetail
.
token
,
channelId
:
liveDetail
.
rtmp_channel
,
uid
:
uid
,
view
:
playerView
)
YHPlayerManager
.
shared
.
joinChannel
(
for
:
player
,
token
:
liveDetail
.
token
,
channelId
:
liveDetail
.
rtmp_channel
,
uid
:
uid
)
}
else
if
currentPlayingURL
==
nil
,
!
liveDetail
.
pullUrl
.
isEmpty
{
}
else
if
currentPlayingURL
==
nil
,
!
liveDetail
.
pullUrl
.
isEmpty
{
play
(
url
:
liveDetail
.
pullUrl
)
// 如果没有预设URL,使用接口返回的URL播放
play
(
url
:
liveDetail
.
pullUrl
)
// 如果没有预设URL,使用接口返回的URL播放
}
}
...
@@ -245,7 +245,6 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
...
@@ -245,7 +245,6 @@ class YHLivePlayerViewController: YHBasePlayerViewController {
func
play
(
url
:
String
,
title
:
String
?
=
nil
)
{
func
play
(
url
:
String
,
title
:
String
?
=
nil
)
{
currentPlayingURL
=
url
currentPlayingURL
=
url
currentVideoTitle
=
title
currentVideoTitle
=
title
// controlView.setTitle(title ?? "")
YHPlayerManager
.
shared
.
play
(
url
:
url
,
inView
:
playerView
,
title
:
title
)
YHPlayerManager
.
shared
.
play
(
url
:
url
,
inView
:
playerView
,
title
:
title
)
}
}
...
...
galaxy/galaxy/Classes/Modules/LivestreamSales(直播销售)/C/YHPlayer.swift
View file @
2fa1df59
This diff is collapsed.
Click to expand it.
galaxy/galaxy/Classes/Modules/LivestreamSales(直播销售)/C/YHPlayerManager.swift
View file @
2fa1df59
...
@@ -31,6 +31,7 @@ class YHPlayerManager: NSObject {
...
@@ -31,6 +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
init
(
id
:
Int
,
init
(
id
:
Int
,
url
:
String
?
=
nil
,
url
:
String
?
=
nil
,
...
@@ -40,7 +41,9 @@ class YHPlayerManager: NSObject {
...
@@ -40,7 +41,9 @@ class YHPlayerManager: NSObject {
channelId
:
String
?
=
nil
,
channelId
:
String
?
=
nil
,
uid
:
UInt
?
=
nil
,
uid
:
UInt
?
=
nil
,
isLive
:
Bool
,
isLive
:
Bool
,
scene
:
PlaybackScene
=
.
fullscreen
)
{
scene
:
PlaybackScene
=
.
fullscreen
,
playerType
:
YHPlayerType
=
.
main
,
needHideZoomButton
:
Bool
=
false
)
{
self
.
id
=
id
self
.
id
=
id
self
.
url
=
url
self
.
url
=
url
self
.
title
=
title
self
.
title
=
title
...
@@ -50,7 +53,8 @@ class YHPlayerManager: NSObject {
...
@@ -50,7 +53,8 @@ class YHPlayerManager: NSObject {
self
.
uid
=
uid
self
.
uid
=
uid
self
.
isLive
=
isLive
self
.
isLive
=
isLive
self
.
scene
=
scene
self
.
scene
=
scene
playerType
=
.
main
self
.
playerType
=
playerType
self
.
needHideZoomButton
=
needHideZoomButton
}
}
static
func
==
(
lhs
:
Self
,
rhs
:
Self
)
->
Bool
{
static
func
==
(
lhs
:
Self
,
rhs
:
Self
)
->
Bool
{
...
@@ -101,12 +105,9 @@ class YHPlayerManager: NSObject {
...
@@ -101,12 +105,9 @@ class YHPlayerManager: NSObject {
// MARK: - Basic Playback Control
// MARK: - Basic Playback Control
func
play
(
url
:
String
,
inView
view
:
UIView
?
=
nil
,
title
:
String
?
=
nil
,
type
:
YHPlayerType
=
.
main
)
{
func
play
(
url
:
String
,
inView
view
:
UIView
?
=
nil
,
title
:
String
?
=
nil
,
type
:
YHPlayerType
=
.
main
,
isLive
:
Bool
=
false
)
{
let
player
=
player
(
for
:
type
)
let
player
=
player
(
for
:
type
)
if
let
view
=
view
{
player
.
play
(
url
:
url
,
title
:
title
,
view
:
view
,
isLive
:
isLive
)
player
.
setPlayView
(
view
)
}
player
.
play
(
url
:
url
,
title
:
title
,
view
:
view
)
}
}
func
pause
(
type
:
YHPlayerType
=
.
main
)
{
func
pause
(
type
:
YHPlayerType
=
.
main
)
{
...
@@ -121,10 +122,6 @@ class YHPlayerManager: NSObject {
...
@@ -121,10 +122,6 @@ class YHPlayerManager: NSObject {
activePlayers
[
type
]?
.
stop
()
activePlayers
[
type
]?
.
stop
()
}
}
func
setPlayView
(
_
view
:
UIView
?,
type
:
YHPlayerType
=
.
main
)
{
activePlayers
[
type
]?
.
setPlayView
(
view
)
}
func
getCurrentPlayer
(
type
:
YHPlayerType
=
.
main
)
->
YHPlayer
?
{
func
getCurrentPlayer
(
type
:
YHPlayerType
=
.
main
)
->
YHPlayer
?
{
return
activePlayers
[
type
]
return
activePlayers
[
type
]
}
}
...
@@ -208,13 +205,14 @@ class YHPlayerManager: NSObject {
...
@@ -208,13 +205,14 @@ class YHPlayerManager: NSObject {
func
joinChannel
(
for
player
:
YHPlayer
,
func
joinChannel
(
for
player
:
YHPlayer
,
token
:
String
,
token
:
String
,
channelId
:
String
,
channelId
:
String
,
uid
:
UInt
)
{
uid
:
UInt
,
view
:
UIView
?
)
{
let
option
=
AgoraRtcChannelMediaOptions
()
let
option
=
AgoraRtcChannelMediaOptions
()
option
.
publishCameraTrack
=
false
option
.
publishCameraTrack
=
false
option
.
publishMicrophoneTrack
=
false
option
.
publishMicrophoneTrack
=
false
option
.
autoSubscribeVideo
=
true
option
.
autoSubscribeVideo
=
true
option
.
autoSubscribeAudio
=
true
option
.
autoSubscribeAudio
=
true
option
.
clientRoleType
=
.
audience
option
.
clientRoleType
=
.
audience
player
.
setPlayModeAndPlayView
(
.
live
,
view
)
if
player
.
type
==
.
secondary
{
if
player
.
type
==
.
secondary
{
let
connection
=
AgoraRtcConnection
()
let
connection
=
AgoraRtcConnection
()
connection
.
channelId
=
channelId
connection
.
channelId
=
channelId
...
@@ -290,13 +288,25 @@ class YHPlayerManager: NSObject {
...
@@ -290,13 +288,25 @@ class YHPlayerManager: NSObject {
playerVC
.
startPosition
=
startPosition
playerVC
.
startPosition
=
startPosition
// 关闭小窗
// 关闭小窗
exitFloating
()
var
needExitFloating
=
false
if
floatingWindow
!=
nil
{
if
sourceView
!=
floatingWindow
?
.
contentView
{
needExitFloating
=
false
exitFloating
()
}
else
{
needExitFloating
=
true
}
}
if
let
url
=
playbackInfo
.
url
{
if
let
url
=
playbackInfo
.
url
{
player
.
play
(
url
:
url
,
title
:
playbackInfo
.
title
,
view
:
playerVC
.
playerView
)
player
.
play
(
url
:
url
,
title
:
playbackInfo
.
title
,
view
:
playerVC
.
playerView
)
}
}
present
(
navVC
,
from
:
sourceView
)
present
(
navVC
,
from
:
sourceView
)
if
needExitFloating
,
floatingWindow
!=
nil
{
floatingWindow
?
.
dismiss
()
floatingWindow
=
nil
}
}
}
func
enterLive
(
from
sourceView
:
UIView
?,
playbackInfo
:
PlaybackInfo
)
{
func
enterLive
(
from
sourceView
:
UIView
?,
playbackInfo
:
PlaybackInfo
)
{
...
@@ -323,17 +333,38 @@ class YHPlayerManager: NSObject {
...
@@ -323,17 +333,38 @@ class YHPlayerManager: NSObject {
playerVC
.
playbackInfo
=
updatedInfo
playerVC
.
playbackInfo
=
updatedInfo
// 关闭小窗
// 关闭小窗
exitFloating
()
var
needExitFloating
=
false
if
floatingWindow
!=
nil
{
if
sourceView
!=
floatingWindow
?
.
contentView
{
needExitFloating
=
false
exitFloating
()
}
else
{
needExitFloating
=
true
}
}
// 加入频道
// 加入频道
if
let
token
=
playbackInfo
.
token
,
if
let
token
=
playbackInfo
.
token
,
let
channelId
=
playbackInfo
.
channelId
,
let
uid
=
playbackInfo
.
uid
,
!
token
.
isEmpty
,
!
channelId
.
isEmpty
{
let
channelId
=
playbackInfo
.
channelId
,
let
uid
=
playbackInfo
.
uid
,
!
token
.
isEmpty
,
!
channelId
.
isEmpty
{
joinChannel
(
for
:
player
,
token
:
token
,
channelId
:
channelId
,
uid
:
uid
)
if
player
.
isJoined
{
leaveChannel
(
for
:
player
)
joinChannel
(
for
:
player
,
token
:
token
,
channelId
:
channelId
,
uid
:
uid
,
view
:
playerVC
.
playerView
)
// // 先清理上次的播放状态
// player.clearPlayerView()
// // 将播放状态转移到floating
// player.setPlayModeAndPlayView(.live, playerVC.playerView)
}
else
{
joinChannel
(
for
:
player
,
token
:
token
,
channelId
:
channelId
,
uid
:
uid
,
view
:
playerVC
.
playerView
)
}
}
else
if
let
url
=
playbackInfo
.
url
,
url
.
count
>
0
{
}
else
if
let
url
=
playbackInfo
.
url
,
url
.
count
>
0
{
player
.
play
(
url
:
url
,
title
:
playbackInfo
.
title
,
view
:
playerVC
.
playerView
)
player
.
play
(
url
:
url
,
title
:
playbackInfo
.
title
,
view
:
playerVC
.
playerView
)
}
}
present
(
navVC
,
from
:
sourceView
)
present
(
navVC
,
from
:
sourceView
)
if
needExitFloating
,
floatingWindow
!=
nil
{
floatingWindow
?
.
dismiss
()
floatingWindow
=
nil
}
}
}
func
enterFloating
(
from
viewController
:
UIViewController
?
=
nil
,
playbackInfo
:
PlaybackInfo
)
{
func
enterFloating
(
from
viewController
:
UIViewController
?
=
nil
,
playbackInfo
:
PlaybackInfo
)
{
...
@@ -346,14 +377,6 @@ class YHPlayerManager: NSObject {
...
@@ -346,14 +377,6 @@ class YHPlayerManager: NSObject {
updatedInfo
.
scene
=
.
floating
updatedInfo
.
scene
=
.
floating
updatedInfo
.
playerType
=
playerType
updatedInfo
.
playerType
=
playerType
currentPlaybackInfo
[
playerType
]
=
updatedInfo
currentPlaybackInfo
[
playerType
]
=
updatedInfo
// // 加入频道
// if let token = playbackInfo.token,
// let channelId = playbackInfo.channelId, let uid = playbackInfo.uid, !token.isEmpty, !channelId.isEmpty {
// joinChannel(for: player, token: token, channelId: channelId, uid: uid)
// } else if let url = playbackInfo.url, !url.isEmpty {
// player.play(url: url, title: playbackInfo.title)
// }
// 获取当前播放视图的截图和位置
// 获取当前播放视图的截图和位置
if
let
sourceView
=
player
.
currentPlayView
,
if
let
sourceView
=
player
.
currentPlayView
,
...
@@ -379,7 +402,17 @@ class YHPlayerManager: NSObject {
...
@@ -379,7 +402,17 @@ class YHPlayerManager: NSObject {
if
let
token
=
playbackInfo
.
token
,
if
let
token
=
playbackInfo
.
token
,
let
channelId
=
playbackInfo
.
channelId
,
let
channelId
=
playbackInfo
.
channelId
,
let
uid
=
playbackInfo
.
uid
,
!
token
.
isEmpty
,
!
channelId
.
isEmpty
{
let
uid
=
playbackInfo
.
uid
,
!
token
.
isEmpty
,
!
channelId
.
isEmpty
{
joinChannel
(
for
:
player
,
token
:
token
,
channelId
:
channelId
,
uid
:
uid
)
if
player
.
isJoined
{
leaveChannel
(
for
:
player
)
joinChannel
(
for
:
player
,
token
:
token
,
channelId
:
channelId
,
uid
:
uid
,
view
:
floatingWindow
.
contentView
)
// // 先清理上次的播放状态
// player.clearPlayerView()
// // 将播放状态转移到floating
// player.setPlayModeAndPlayView(.live, floatingWindow.contentView)
}
else
{
joinChannel
(
for
:
player
,
token
:
token
,
channelId
:
channelId
,
uid
:
uid
,
view
:
floatingWindow
.
contentView
)
}
}
else
if
let
url
=
playbackInfo
.
url
,
!
url
.
isEmpty
{
}
else
if
let
url
=
playbackInfo
.
url
,
!
url
.
isEmpty
{
player
.
play
(
url
:
url
,
title
:
playbackInfo
.
title
,
view
:
floatingWindow
.
contentView
)
player
.
play
(
url
:
url
,
title
:
playbackInfo
.
title
,
view
:
floatingWindow
.
contentView
)
}
}
...
@@ -391,7 +424,7 @@ class YHPlayerManager: NSObject {
...
@@ -391,7 +424,7 @@ class YHPlayerManager: NSObject {
},
completion
:
{
_
in
},
completion
:
{
_
in
snapshotView
.
removeFromSuperview
()
snapshotView
.
removeFromSuperview
()
floatingWindow
.
show
(
in
:
window
)
floatingWindow
.
show
(
in
:
window
)
player
.
setPlayView
(
floatingWindow
.
contentView
)
//
player.setPlayView(floatingWindow.contentView)
})
})
}
}
...
@@ -412,14 +445,14 @@ class YHPlayerManager: NSObject {
...
@@ -412,14 +445,14 @@ class YHPlayerManager: NSObject {
if
let
token
=
playbackInfo
.
token
,
if
let
token
=
playbackInfo
.
token
,
let
channelId
=
playbackInfo
.
channelId
,
let
channelId
=
playbackInfo
.
channelId
,
let
uid
=
playbackInfo
.
uid
,
!
token
.
isEmpty
,
!
channelId
.
isEmpty
{
let
uid
=
playbackInfo
.
uid
,
!
token
.
isEmpty
,
!
channelId
.
isEmpty
{
joinChannel
(
for
:
player
,
token
:
token
,
channelId
:
channelId
,
uid
:
uid
)
joinChannel
(
for
:
player
,
token
:
token
,
channelId
:
channelId
,
uid
:
uid
,
view
:
floatingWindow
.
contentView
)
}
else
if
let
url
=
playbackInfo
.
url
,
!
url
.
isEmpty
{
}
else
if
let
url
=
playbackInfo
.
url
,
!
url
.
isEmpty
{
player
.
play
(
url
:
url
,
title
:
playbackInfo
.
title
,
view
:
floatingWindow
.
contentView
)
player
.
play
(
url
:
url
,
title
:
playbackInfo
.
title
,
view
:
floatingWindow
.
contentView
)
}
}
let
showFloatingWindow
=
{
let
showFloatingWindow
=
{
floatingWindow
.
show
(
in
:
window
)
floatingWindow
.
show
(
in
:
window
)
player
.
setPlayView
(
floatingWindow
.
contentView
)
//
player.setPlayView(floatingWindow.contentView)
}
}
if
let
viewController
=
viewController
{
if
let
viewController
=
viewController
{
...
@@ -440,18 +473,22 @@ class YHPlayerManager: NSObject {
...
@@ -440,18 +473,22 @@ class YHPlayerManager: NSObject {
currentPlaybackInfo
[
playerType
]
=
updatedInfo
currentPlaybackInfo
[
playerType
]
=
updatedInfo
let
player
=
player
(
for
:
playerType
)
let
player
=
player
(
for
:
playerType
)
player
.
setPlayView
(
view
)
// 加入频道
// 加入频道
if
let
token
=
playbackInfo
.
token
,
if
let
token
=
playbackInfo
.
token
,
let
channelId
=
playbackInfo
.
channelId
,
let
uid
=
playbackInfo
.
uid
,
!
token
.
isEmpty
,
!
channelId
.
isEmpty
{
let
channelId
=
playbackInfo
.
channelId
,
let
uid
=
playbackInfo
.
uid
,
!
token
.
isEmpty
,
!
channelId
.
isEmpty
{
joinChannel
(
for
:
player
,
token
:
token
,
channelId
:
channelId
,
uid
:
uid
)
joinChannel
(
for
:
player
,
token
:
token
,
channelId
:
channelId
,
uid
:
uid
,
view
:
view
)
}
else
if
let
url
=
playbackInfo
.
url
,
!
url
.
isEmpty
{
}
else
if
let
url
=
playbackInfo
.
url
,
!
url
.
isEmpty
{
player
.
play
(
url
:
url
,
title
:
playbackInfo
.
title
,
view
:
view
)
player
.
play
(
url
:
url
,
title
:
playbackInfo
.
title
,
view
:
view
)
}
}
}
}
func
exitFloating
()
{
func
exitFloating
()
{
// 直播退出channel
if
floatingWindow
?
.
playbackInfo
?
.
isLive
==
true
,
let
player
=
floatingWindow
?
.
player
{
leaveChannel
(
for
:
player
)
}
else
{
floatingWindow
?
.
player
?
.
stop
()
}
floatingWindow
?
.
dismiss
()
floatingWindow
?
.
dismiss
()
floatingWindow
=
nil
floatingWindow
=
nil
}
}
...
@@ -505,7 +542,9 @@ extension YHPlayerManager: AgoraRtcMediaPlayerDelegate {
...
@@ -505,7 +542,9 @@ extension YHPlayerManager: AgoraRtcMediaPlayerDelegate {
}
}
if
floatingWindow
?
.
player
?
.
playerKit
===
playerKit
{
if
floatingWindow
?
.
player
?
.
playerKit
===
playerKit
{
floatingWindow
?
.
setVideoSize
(
videoSize
)
DispatchQueue
.
main
.
async
{
self
.
floatingWindow
?
.
setVideoSize
(
videoSize
)
}
}
}
}
}
}
}
...
...
galaxy/galaxy/Classes/Modules/LivestreamSales(直播销售)/C/YHVODPlayerViewController.swift
View file @
2fa1df59
...
@@ -42,7 +42,7 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
...
@@ -42,7 +42,7 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
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
,
isLive
:
false
)
}
}
// MARK: - Lifecycle
// MARK: - Lifecycle
...
@@ -73,6 +73,7 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
...
@@ -73,6 +73,7 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
topBarView
.
shareButtonClickEvent
=
{
[
weak
self
]
in
topBarView
.
shareButtonClickEvent
=
{
[
weak
self
]
in
self
?
.
shareLive
()
self
?
.
shareLive
()
}
}
topBarView
.
hideZoomButton
(
playbackInfo
?
.
needHideZoomButton
==
true
)
}
}
func
enterFloating
()
{
func
enterFloating
()
{
...
@@ -142,7 +143,7 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
...
@@ -142,7 +143,7 @@ class YHVODPlayerViewController: YHBasePlayerViewController {
return
return
}
}
let
item
=
detail
.
recordedVideoSlice
[
index
]
let
item
=
detail
.
recordedVideoSlice
[
index
]
self
?
.
player
?
.
seek
(
to
:
item
.
start_second
*
1000
)
self
?
.
player
?
.
seek
(
to
:
item
.
start_second
*
1000
+
1
)
}
}
// 时间改变回调
// 时间改变回调
progressControl
.
onTimeChanged
=
{
[
weak
self
]
time
in
progressControl
.
onTimeChanged
=
{
[
weak
self
]
time
in
...
...
galaxy/galaxy/Classes/Modules/LivestreamSales(直播销售)/M/YHLiveDetailModel.swift
View file @
2fa1df59
...
@@ -14,7 +14,7 @@ class YHLiveDetailModel: SmartCodable {
...
@@ -14,7 +14,7 @@ class YHLiveDetailModel: SmartCodable {
var
avatar
:
String
=
""
var
avatar
:
String
=
""
var
hxNickname
:
String
=
""
var
hxNickname
:
String
=
""
var
hxUid
:
String
=
""
var
hxUid
:
String
=
""
var
access_num
:
Int
=
0
var
access_num
:
String
=
""
var
tips
:
String
=
""
var
tips
:
String
=
""
// 1:直播中 2:未直播 0:未知状态 3:结束直播
// 1:直播中 2:未直播 0:未知状态 3:结束直播
var
status
:
Int
=
0
var
status
:
Int
=
0
...
...
galaxy/galaxy/Classes/Modules/LivestreamSales(直播销售)/M/YHRecordedDetailModel.swift
View file @
2fa1df59
...
@@ -12,7 +12,7 @@ import SmartCodable
...
@@ -12,7 +12,7 @@ import SmartCodable
class
YHRecordedDetailModel
:
SmartCodable
{
class
YHRecordedDetailModel
:
SmartCodable
{
var
account
:
String
=
""
var
account
:
String
=
""
var
avatar
:
String
=
""
var
avatar
:
String
=
""
var
access_num
:
Int
=
0
var
access_num
:
String
=
""
var
tips
:
String
=
""
var
tips
:
String
=
""
var
recorded_url
:
String
=
""
var
recorded_url
:
String
=
""
var
recorded_image
:
String
=
""
var
recorded_image
:
String
=
""
...
...
galaxy/galaxy/Classes/Modules/LivestreamSales(直播销售)/V/YHLiveMessageCell.swift
View file @
2fa1df59
...
@@ -62,8 +62,8 @@ class YHLiveMessageCell: UITableViewCell {
...
@@ -62,8 +62,8 @@ class YHLiveMessageCell: UITableViewCell {
}
}
}
}
func
configureNormalMessage
(
_
nickname
:
String
,
_
content
:
String
)
{
func
configureNormalMessage
(
_
nickname
:
String
,
_
content
:
String
,
isAnchor
:
Bool
)
{
let
nickAtt
=
ASAttributedString
(
string
:
nickname
+
":"
,
.
foreground
(
UIColor
.
white
.
withAlphaComponent
(
0.65
)),
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
13
)))
let
nickAtt
=
isAnchor
?
ASAttributedString
(
string
:
nickname
+
":"
,
.
foreground
(
UIColor
(
hexString
:
"#FFE3BB"
)
??
UIColor
.
white
),
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
13
)))
:
ASAttributedString
(
string
:
nickname
+
":"
,
.
foreground
(
UIColor
.
white
.
withAlphaComponent
(
0.65
)),
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
13
)))
let
contentAtt
=
ASAttributedString
(
string
:
content
,
.
foreground
(
UIColor
.
white
),
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
13
)))
let
contentAtt
=
ASAttributedString
(
string
:
content
,
.
foreground
(
UIColor
.
white
),
.
font
(
UIFont
.
PFSC_R
(
ofSize
:
13
)))
contentLabel
.
attributed
.
text
=
nickAtt
+
contentAtt
contentLabel
.
attributed
.
text
=
nickAtt
+
contentAtt
}
}
...
...
galaxy/galaxy/Classes/Modules/LivestreamSales(直播销售)/V/YHLiveMessageListView.swift
View file @
2fa1df59
...
@@ -11,6 +11,7 @@ import UIKit
...
@@ -11,6 +11,7 @@ import UIKit
class
YHLiveMessageListView
:
UIView
{
class
YHLiveMessageListView
:
UIView
{
private
var
messages
:
[
EMChatMessage
]
=
[]
private
var
messages
:
[
EMChatMessage
]
=
[]
var
anchorName
:
String
?
// MARK: - UI Components
// MARK: - UI Components
...
@@ -107,7 +108,8 @@ extension YHLiveMessageListView: UITableViewDelegate, UITableViewDataSource {
...
@@ -107,7 +108,8 @@ extension YHLiveMessageListView: UITableViewDelegate, UITableViewDataSource {
printLog
(
body
.
text
)
printLog
(
body
.
text
)
printLog
(
"
\(
nickName
)
:
\(
body
.
text
)
"
)
printLog
(
"
\(
nickName
)
:
\(
body
.
text
)
"
)
content
=
body
.
text
content
=
body
.
text
cell
.
configureNormalMessage
(
nickName
,
content
)
let
isAnchor
=
nickName
==
anchorName
cell
.
configureNormalMessage
(
nickName
,
content
,
isAnchor
:
isAnchor
)
}
else
if
let
body
=
message
.
body
as?
EMCustomMessageBody
,
body
.
event
==
YHChatRoomCustomLocal
.
tipsEvent
,
let
customExt
=
body
.
customExt
,
let
tips
=
customExt
[
YHChatRoomCustomLocal
.
tipsKey
]
{
}
else
if
let
body
=
message
.
body
as?
EMCustomMessageBody
,
body
.
event
==
YHChatRoomCustomLocal
.
tipsEvent
,
let
customExt
=
body
.
customExt
,
let
tips
=
customExt
[
YHChatRoomCustomLocal
.
tipsKey
]
{
cell
.
configureTipsMessage
(
tips
)
cell
.
configureTipsMessage
(
tips
)
}
}
...
...
galaxy/galaxy/Classes/Modules/LivestreamSales(直播销售)/V/YHPlayerTopBarView.swift
View file @
2fa1df59
...
@@ -80,7 +80,7 @@ class YHPlayerTopBarView: UIView {
...
@@ -80,7 +80,7 @@ class YHPlayerTopBarView: UIView {
fatalError
(
"init(coder:) has not been implemented"
)
fatalError
(
"init(coder:) has not been implemented"
)
}
}
func
setupTopBarView
(
headUrl
:
String
,
nickname
:
String
,
count
:
Int
)
{
func
setupTopBarView
(
headUrl
:
String
,
nickname
:
String
,
count
:
String
)
{
if
let
url
=
URL
(
string
:
headUrl
)
{
if
let
url
=
URL
(
string
:
headUrl
)
{
headPortrait
.
kf
.
setImage
(
with
:
url
,
placeholder
:
UIImage
(
named
:
"global_default_image"
))
headPortrait
.
kf
.
setImage
(
with
:
url
,
placeholder
:
UIImage
(
named
:
"global_default_image"
))
}
else
{
}
else
{
...
@@ -90,9 +90,13 @@ class YHPlayerTopBarView: UIView {
...
@@ -90,9 +90,13 @@ class YHPlayerTopBarView: UIView {
updateCountLabel
(
count
)
updateCountLabel
(
count
)
}
}
func
updateCountLabel
(
_
count
:
Int
)
{
func
updateCountLabel
(
_
count
:
String
)
{
infoCountLabel
.
text
=
"
\(
count
)
人来过"
infoCountLabel
.
text
=
"
\(
count
)
人来过"
}
}
func
hideZoomButton
(
_
hide
:
Bool
)
{
zoomButton
.
isHidden
=
hide
}
}
}
extension
YHPlayerTopBarView
{
extension
YHPlayerTopBarView
{
...
...
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