Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
polyv-rn
PolyvRNCloudClassDemo
Commits
985b936b
Commit
985b936b
authored
Nov 04, 2019
by
MissYasiky
Browse files
LIVE-18534 云课堂RN SDK兼容 ios 13 并升级到 0.9.0 版本
parent
78dbfc21
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
132 additions
and
76 deletions
+132
-76
ios/Podfile
ios/Podfile
+4
-5
ios/PolyvCloudClassModule/Library/FTPageController/views/FTTitleViewCell.m
...ssModule/Library/FTPageController/views/FTTitleViewCell.m
+4
-4
ios/PolyvCloudClassModule/Library/PLVAlbum/Controller/ZNavigationController.m
...odule/Library/PLVAlbum/Controller/ZNavigationController.m
+1
-1
ios/PolyvCloudClassModule/PolyvRNCloudClassLoginModule.m
ios/PolyvCloudClassModule/PolyvRNCloudClassLoginModule.m
+4
-1
ios/PolyvCloudClassModule/Watch/Chatroom/PLVChatroomController.h
...yvCloudClassModule/Watch/Chatroom/PLVChatroomController.h
+2
-1
ios/PolyvCloudClassModule/Watch/Chatroom/PLVChatroomController.m
...yvCloudClassModule/Watch/Chatroom/PLVChatroomController.m
+14
-11
ios/PolyvCloudClassModule/Watch/Chatroom/PLVChatroomManager.m
...PolyvCloudClassModule/Watch/Chatroom/PLVChatroomManager.m
+6
-5
ios/PolyvCloudClassModule/Watch/Media/Controllers/Base/Live/PLVBaseMediaViewController+Live.m
...a/Controllers/Base/Live/PLVBaseMediaViewController+Live.m
+1
-1
ios/PolyvCloudClassModule/Watch/Media/Controllers/Base/PLVBaseMediaViewController.m
...Watch/Media/Controllers/Base/PLVBaseMediaViewController.m
+3
-1
ios/PolyvCloudClassModule/Watch/Media/Views/PLVPlayerSkinView.m
...lyvCloudClassModule/Watch/Media/Views/PLVPlayerSkinView.m
+12
-4
ios/PolyvCloudClassModule/Watch/PLVLiveViewController.m
ios/PolyvCloudClassModule/Watch/PLVLiveViewController.m
+31
-12
ios/PolyvCloudClassModule/Watch/PLVVodViewController.m
ios/PolyvCloudClassModule/Watch/PLVVodViewController.m
+21
-1
ios/PolyvRNCloudClassDemo.xcodeproj/project.pbxproj
ios/PolyvRNCloudClassDemo.xcodeproj/project.pbxproj
+4
-4
ios/PolyvRNCloudClassDemo/Info.plist
ios/PolyvRNCloudClassDemo/Info.plist
+25
-25
No files found.
ios/Podfile
View file @
985b936b
...
...
@@ -4,11 +4,10 @@ target 'PolyvRNCloudClassDemo' do
use_frameworks!
pod
'Masonry'
,
'~> 1.1.0'
pod
'SDWebImage'
,
'
~>
4.4.0'
pod
'PolyvCloudClassSDK'
,
'0.9.0
-beta
'
pod
'SDWebImage'
,
'4.4.0'
pod
'PolyvCloudClassSDK'
,
'0.9.0'
pod
'RNReanimated'
,
:path
=>
'../node_modules/react-native-reanimated'
pod
'RNGestureHandler'
,
:path
=>
'../node_modules/react-native-gesture-handler'
#pod 'RNReanimated', :path => '../node_modules/react-native-reanimated'
#pod 'RNGestureHandler', :path => '../node_modules/react-native-gesture-handler'
end
ios/PolyvCloudClassModule/Library/FTPageController/views/FTTitleViewCell.m
View file @
985b936b
...
...
@@ -14,17 +14,17 @@
self
=
[
super
initWithFrame
:
frame
];
if
(
self
)
{
CGFloat
width
=
100
.
0
;
CGFloat
height
=
44
.
0
;
//
CGFloat height = 44.0;
self
.
frame
=
CGRectMake
(
frame
.
origin
.
x
,
frame
.
origin
.
y
,
width
,
height
);
self
.
frame
=
CGRectMake
(
frame
.
origin
.
x
,
frame
.
origin
.
y
,
width
,
frame
.
size
.
height
);
_titleLabel
=
[[
UILabel
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
width
,
height
)];
_titleLabel
=
[[
UILabel
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
width
,
frame
.
size
.
height
)];
_titleLabel
.
textColor
=
[
UIColor
darkGrayColor
];
_titleLabel
.
font
=
[
UIFont
systemFontOfSize
:
16
];
_titleLabel
.
textAlignment
=
NSTextAlignmentCenter
;
[
self
addSubview
:
_titleLabel
];
_indicatorView
=
[[
UIView
alloc
]
initWithFrame
:
CGRectMake
(
34
,
41
,
32
,
3
)];
_indicatorView
=
[[
UIView
alloc
]
initWithFrame
:
CGRectMake
(
34
,
frame
.
size
.
height
-
3
,
32
,
3
)];
_indicatorView
.
backgroundColor
=
[
UIColor
colorWithRed
:
0x21
/
255
.
0
green
:
0x96
/
255
.
0
blue
:
0xf3
/
255
.
0
alpha
:
1
.
0
];
[
self
addSubview
:
_indicatorView
];
_indicatorView
.
hidden
=
YES
;
...
...
ios/PolyvCloudClassModule/Library/PLVAlbum/Controller/ZNavigationController.m
View file @
985b936b
...
...
@@ -25,7 +25,7 @@ UIColor *ViewBackgroupColor;
-
(
void
)
viewDidLoad
{
[
super
viewDidLoad
];
if
([
UIScreen
mainScreen
].
bounds
.
size
.
height
=
=
812
)
{
if
([
UIScreen
mainScreen
].
bounds
.
size
.
height
>
=
812
)
{
ToolbarHeight
=
84
.
0
;
LimitMemeory
=
1024
*
1024
*
120
;
MemeoryLarge
=
1024
*
1024
*
80
;
...
...
ios/PolyvCloudClassModule/PolyvRNCloudClassLoginModule.m
View file @
985b936b
...
...
@@ -137,7 +137,9 @@ RCT_EXPORT_METHOD(
// // 抽奖功能必须固定唯一的 nickName 和 userId,如果忘了填写上次的中奖信息,有固定的 userId 还会再次弹出相关填写页面
// liveVC.nickName = @"iOS user"; // 设置登录聊天室的用户名
// liveVC.avatarUrl = @"https://"; // 设置自定义聊天室用户头像地址
[
viewController
presentViewController
:
liveVC
animated
:
YES
completion
:
nil
];
liveVC
.
modalPresentationStyle
=
UIModalPresentationFullScreen
;
[
viewController
presentViewController
:
liveVC
animated
:
YES
completion
:
nil
];
resolve
(@[
@
(
PolyvCloudClassError_Success
)]);
...
...
@@ -155,6 +157,7 @@ RCT_EXPORT_METHOD(
// // 抽奖功能必须固定唯一的 nickName 和 userId,如果忘了填写上次的中奖信息,有固定的 userId 还会再次弹出相关填写页面
// liveVC.nickName = @"iOS user"; // 设置登录聊天室的用户名
// liveVC.avatarUrl = @"https://"; // 设置自定义聊天室用户头像地址
liveVC
.
modalPresentationStyle
=
UIModalPresentationFullScreen
;
[
viewController
presentViewController
:
liveVC
animated
:
YES
completion
:
nil
];
NSLog
(
@"频道菜单获取失败!%@"
,
error
);
...
...
ios/PolyvCloudClassModule/Watch/Chatroom/PLVChatroomController.h
View file @
985b936b
...
...
@@ -85,7 +85,8 @@ typedef NS_ENUM(NSInteger, PLVChatroomErrorCode) {
@property
(
nonatomic
,
assign
)
BOOL
allowToSpeakInTeacherMode
;
/**
是否有观看直播权限
是否有观看直播权限(0.9.0废弃,由服务器处理)
参看SocketIO -socketIO: didLoginFailed: 回调方法
@param roomId 房间号
@return YES/NO
...
...
ios/PolyvCloudClassModule/Watch/Chatroom/PLVChatroomController.m
View file @
985b936b
...
...
@@ -9,7 +9,7 @@
#import "PLVChatroomController.h"
#import <Masonry/Masonry.h>
#import <SDWebImage/SDWebImageDownloader.h>
#import <PolyvFoundationSDK/PLV
Date
Util.h>
#import <PolyvFoundationSDK/PLV
Fd
Util.h>
#import <PolyvCloudClassSDK/PLVLiveVideoConfig.h>
#import <PolyvCloudClassSDK/PLVLiveVideoAPI.h>
#import "PLVChatroomModel.h"
...
...
@@ -126,7 +126,7 @@ PLVSocketChatRoomObject *createTeacherAnswerObject() {
-
(
void
)
setSwitchInfo
:(
NSDictionary
*
)
switchInfo
{
_switchInfo
=
switchInfo
;
if
(
self
.
type
!=
PLVTextInputViewTypePrivate
)
{
//
_closed = ![switchInfo[@"chat"] boolValue];
_closed
=
!
[
switchInfo
[
@"chat"
]
boolValue
];
self
.
enableWelcome
=
[
switchInfo
[
@"welcome"
]
boolValue
];
// 欢迎语开关
if
([
switchInfo
[
@"viewerSendImgEnabled"
]
boolValue
])
{
// 图片开关
[
self
.
chatInputView
loadViews
:
self
.
type
enableMore
:
YES
];
...
...
@@ -295,7 +295,7 @@ PLVSocketChatRoomObject *createTeacherAnswerObject() {
switch
(
object
.
eventType
)
{
case
PLVSocketChatRoomEventType_LOGIN
:
{
NSString
*
userId
=
object
.
jsonDict
[
PLVSocketIOChatRoom_LOGIN_userKey
][
PLVSocketIOChatRoomUserUserIdKey
];
BOOL
me
=
[
userId
isEqualToString
:
socketUser
.
userId
];
BOOL
me
=
[
Fd_StringValueWithJsonValue
(
userId
)
isEqualToString
:
socketUser
.
userId
];
[
self
.
chatroomQueue
addSocketChatRoomObject
:
object
me
:
me
];
if
(
me
&&
self
.
delegate
&&
[
self
.
delegate
respondsToSelector
:
@selector
(
chatroom
:
userInfo
:
)])
{
[
self
.
delegate
chatroom
:
self
userInfo
:
object
.
jsonDict
];
...
...
@@ -312,9 +312,9 @@ PLVSocketChatRoomObject *createTeacherAnswerObject() {
[
self
presentViewController
:
alertController
animated
:
YES
completion
:
nil
];
}
break
;
case
PLVSocketChatRoomEventType_SET_NICK
:
{
NSString
*
status
=
object
.
jsonDict
[
@"status"
];
NSString
*
status
=
Fd_StringValueWithJsonValue
(
object
.
jsonDict
[
@"status"
]
)
;
if
([
status
isEqualToString
:
@"success"
])
{
// success:广播消息
if
([
object
.
jsonDict
[
@"userId"
]
isEqualToString
:
socketUser
.
userId
])
{
if
([
Fd_StringValueWithJsonValue
(
object
.
jsonDict
[
@"userId"
]
)
isEqualToString
:
socketUser
.
userId
])
{
[[
PLVChatroomManager
sharedManager
]
renameUserNick
:
object
.
jsonDict
[
@"nick"
]];
[
self
showMessage
:
object
.
jsonDict
[
@"message"
]];
}
...
...
@@ -331,17 +331,18 @@ PLVSocketChatRoomObject *createTeacherAnswerObject() {
[
self
clearAllData
];
}
break
;
case
PLVSocketChatRoomEventType_ADD_SHIELD
:
{
if
([
object
.
jsonDict
[
@"value"
]
isEqualToString
:
socketUser
.
clientIp
])
{
if
([
Fd_StringValueWithJsonValue
(
object
.
jsonDict
[
@"value"
]
)
isEqualToString
:
socketUser
.
clientIp
])
{
socketUser
.
banned
=
YES
;
}
}
break
;
case
PLVSocketChatRoomEventType_REMOVE_SHIELD
:
{
if
([
object
.
jsonDict
[
@"value"
]
isEqualToString
:
socketUser
.
clientIp
])
{
if
([
Fd_StringValueWithJsonValue
(
object
.
jsonDict
[
@"value"
]
)
isEqualToString
:
socketUser
.
clientIp
])
{
socketUser
.
banned
=
NO
;
}
}
break
;
case
PLVSocketChatRoomEventType_KICK
:
{
if
([
object
.
jsonDict
[
@"user"
][
@"userId"
]
isEqualToString
:
socketUser
.
userId
])
{
NSString
*
userId
=
Fd_StringValueWithJsonValue
(
object
.
jsonDict
[
@"user"
][
@"userId"
]);
if
([
userId
isEqualToString
:
socketUser
.
userId
])
{
[
forbiddenUsers
addObject
:
@
(
self
.
roomId
)];
if
(
self
.
delegate
&&
[
self
.
delegate
respondsToSelector
:
@selector
(
chatroom
:
didOpenError
:
)])
{
[
self
.
delegate
chatroom
:
self
didOpenError
:
PLVChatroomErrorCodeBeKicked
];
...
...
@@ -383,7 +384,7 @@ PLVSocketChatRoomObject *createTeacherAnswerObject() {
}
}
break
;
case
PLVSocketChatRoomEventType_LIKES
:
{
if
(
!
[
object
.
jsonDict
[
@"userId"
]
isEqualToString
:
socketUser
.
userId
])
{
if
(
!
[
Fd_StringValueWithJsonValue
(
object
.
jsonDict
[
@"userId"
]
)
isEqualToString
:
socketUser
.
userId
])
{
[
self
handleLikeSocket
:
object
];
}
}
break
;
...
...
@@ -393,7 +394,7 @@ PLVSocketChatRoomObject *createTeacherAnswerObject() {
}
break
;
}
if
(
object
.
eventType
==
PLVSocketChatRoomEventType_LOGIN
||
object
.
eventType
==
PLVSocketChatRoomEventType_LOGOUT
)
{
self
.
onlineCount
=
[
object
.
jsonDict
[
@"onlineUserNumber"
]
unsignedIntegerValue
]
;
self
.
onlineCount
=
Fd_IntegerValueWithJsonValue
(
object
.
jsonDict
[
@"onlineUserNumber"
]
)
;
if
(
self
.
delegate
&&
[
self
.
delegate
respondsToSelector
:
@selector
(
refreshLinkMicOnlineCount
:
number
:
)])
{
[
self
.
delegate
refreshLinkMicOnlineCount
:
self
number
:
self
.
onlineCount
];
}
...
...
@@ -839,6 +840,7 @@ PLVSocketChatRoomObject *createTeacherAnswerObject() {
pickerVC
.
delegate
=
self
;
ZNavigationController
*
navigationController
=
[[
ZNavigationController
alloc
]
initWithRootViewController
:
pickerVC
];
[
PCCUtils
deviceOnInterfaceOrientationMaskPortrait
];
if
(
@available
(
iOS
13
.
0
,
*
))
{
navigationController
.
modalPresentationStyle
=
UIModalPresentationFullScreen
;
}
[(
UIViewController
*
)
self
.
delegate
presentViewController
:
navigationController
animated
:
YES
completion
:
nil
];
}
...
...
@@ -847,6 +849,7 @@ PLVSocketChatRoomObject *createTeacherAnswerObject() {
PLVCameraViewController
*
cameraVC
=
[[
PLVCameraViewController
alloc
]
init
];
cameraVC
.
delegate
=
self
;
[
PCCUtils
deviceOnInterfaceOrientationMaskPortrait
];
if
(
@available
(
iOS
13
.
0
,
*
))
{
cameraVC
.
modalPresentationStyle
=
UIModalPresentationFullScreen
;
}
[(
UIViewController
*
)
self
.
delegate
presentViewController
:
cameraVC
animated
:
YES
completion
:
nil
];
}
...
...
@@ -959,7 +962,7 @@ PLVSocketChatRoomObject *createTeacherAnswerObject() {
#pragma mark Upload Image
-
(
void
)
uploadImage
:(
UIImage
*
)
image
{
NSString
*
imageId
=
[
NSString
stringWithFormat
:
@"chat_img_iOS_%@"
,
[
PLV
Date
Util
curTimeStamp
]];
NSString
*
imageId
=
[
NSString
stringWithFormat
:
@"chat_img_iOS_%@"
,
[
PLV
Fd
Util
curTimeStamp
]];
NSString
*
imageName
=
[
NSString
stringWithFormat
:
@"%@.jpeg"
,
imageId
];
PLVSocketChatRoomObject
*
uploadObject
=
[
PLVSocketChatRoomObject
chatRoomObjectForSendImageWithValues
:@[
imageId
,
image
]];
PLVChatroomModel
*
model
=
[
PLVChatroomModel
modelWithObject
:
uploadObject
];
...
...
ios/PolyvCloudClassModule/Watch/Chatroom/PLVChatroomManager.m
View file @
985b936b
...
...
@@ -7,6 +7,7 @@
//
#import "PLVChatroomManager.h"
#import <PolyvFoundationSDK/PLVFdUtil.h>
static
PLVChatroomManager
*
manager
=
nil
;
...
...
@@ -37,8 +38,8 @@ static PLVChatroomManager *manager = nil;
+
(
PLVChatroomModel
*
)
modelWithHistoryMessageDict
:(
NSDictionary
*
)
messageDict
{
PLVChatroomModel
*
model
;
NSString
*
msgType
=
messageDict
[
@"msgType"
];
NSString
*
msgSource
=
messageDict
[
@"msgSource"
];
NSString
*
msgType
=
Fd_StringValueWithJsonValue
(
messageDict
[
@"msgType"
]
)
;
NSString
*
msgSource
=
Fd_StringValueWithJsonValue
(
messageDict
[
@"msgSource"
]
)
;
if
(
msgType
)
{
if
([
msgType
isEqualToString
:
@"customMessage"
])
{
// 自定义消息
...
...
@@ -54,7 +55,7 @@ static PLVChatroomManager *manager = nil;
model
=
[
PLVChatroomModel
modelWithObject
:
chatroomObject
];
}
// redpaper(红包)、get_redpaper(领红包)
}
else
{
NSString
*
uid
=
[
NS
String
stringWithFormat
:
@"%@"
,
messageDict
[
@"user"
][
@"uid"
]
]
;
NSString
*
uid
=
Fd_
String
ValueWithJsonValue
(
messageDict
[
@"user"
][
@"uid"
]
)
;
if
([
uid
isEqualToString
:
@"1"
]
||
[
uid
isEqualToString
:
@"2"
])
{
// uid = 1,打赏消息;uid = 2,自定义消息
}
else
{
// 发言消息
...
...
@@ -75,10 +76,10 @@ static PLVChatroomManager *manager = nil;
PLVChatroomCustomModel
*
customModel
;
NSString
*
event
=
customMessage
[
@"EVENT"
];
if
(
[
customMessage
[
@"version"
]
integerValue
]
==
1
)
{
if
(
Fd_IntegerValueWithJsonValue
(
customMessage
[
@"version"
]
)
==
1
)
{
if
(
!
mine
)
{
// 如果提交的消息广播返回了自己需要过滤掉此消息
NSString
*
userId
=
customMessage
[
@"user"
][
@"userId"
];
NSString
*
userId
=
Fd_StringValueWithJsonValue
(
customMessage
[
@"user"
][
@"userId"
]
)
;
if
([
userId
isEqualToString
:
manager
.
socketUser
.
userId
])
{
return
nil
;
}
...
...
ios/PolyvCloudClassModule/Watch/Media/Controllers/Base/Live/PLVBaseMediaViewController+Live.m
View file @
985b936b
...
...
@@ -119,8 +119,8 @@
self
.
danmuLayer
.
autoresizingMask
=
UIViewAutoresizingFlexibleWidth
|
UIViewAutoresizingFlexibleHeight
;
self
.
danmuLayer
.
hidden
=
YES
;
self
.
danmuLayer
.
userInteractionEnabled
=
NO
;
[
self
.
view
insertSubview
:
self
.
danmuLayer
belowSubview
:
self
.
skinView
];
}
[
self
.
mainView
addSubview
:
self
.
danmuLayer
];
}
-
(
void
)
addDanmuInputView
{
...
...
ios/PolyvCloudClassModule/Watch/Media/Controllers/Base/PLVBaseMediaViewController.m
View file @
985b936b
...
...
@@ -25,6 +25,7 @@
@property
(
nonatomic
,
strong
)
PLVVideoMarquee
*
videoMarquee
;
// 视频跑马灯
@property
(
nonatomic
,
strong
)
UIButton
*
backBtn
;
@property
(
nonatomic
,
assign
)
BOOL
iPad
;
@property
(
nonatomic
,
assign
)
BOOL
hadSetEnableDanmuModule
;
@end
...
...
@@ -147,6 +148,7 @@
-
(
void
)
setEnableDanmuModule
:(
BOOL
)
enableDanmuModule
{
_enableDanmuModule
=
enableDanmuModule
;
[
self
refreshDanmuModuleState
];
_hadSetEnableDanmuModule
=
YES
;
}
-
(
void
)
setShowDanmuOnPortrait
:(
BOOL
)
showDanmuOnPortrait
{
...
...
@@ -238,7 +240,7 @@
UIDeviceOrientation
orientation
=
[
UIDevice
currentDevice
].
orientation
;
if
(
UIDeviceOrientationIsFlat
(
orientation
)
||
orientation
==
UIDeviceOrientationUnknown
)
{
if
(
self
.
hadSetEnableDanmuModule
&&
(
UIDeviceOrientationIsFlat
(
orientation
)
||
orientation
==
UIDeviceOrientationUnknown
)
)
{
return
;
}
...
...
ios/PolyvCloudClassModule/Watch/Media/Views/PLVPlayerSkinView.m
View file @
985b936b
...
...
@@ -9,7 +9,7 @@
#import "PLVPlayerSkinView.h"
#import <MediaPlayer/MPVolumeView.h>
#import <Masonry/Masonry.h>
#import <PolyvFoundationSDK/PLV
Date
Util.h>
#import <PolyvFoundationSDK/PLV
Fd
Util.h>
#import "PLVBrightnessView.h"
#import "PCCUtils.h"
...
...
@@ -260,10 +260,18 @@ typedef NS_ENUM(NSInteger, PLVPlayerSkinViewPanType) {
moreMargin
=
UIEdgeInsetsMake
(
10
.
0
,
-
1
.
0
,
-
1
.
0
,
lrPadding
);
self
.
zoomScreenBtn
.
hidden
=
YES
;
closeSecondaryMargin
=
UIEdgeInsetsMake
(
-
1
.
0
,
-
1
.
0
,
0
.
0
,
lrPadding
+
btnPadding
*
0
);
danmuMargin
=
UIEdgeInsetsMake
(
-
1
.
0
,
-
1
.
0
,
0
.
0
,
lrPadding
+
btnPadding
*
1
);
if
(
self
.
type
==
PLVPlayerSkinViewTypeNormalLive
)
{
danmuMargin
=
UIEdgeInsetsMake
(
-
1
.
0
,
-
1
.
0
,
0
.
0
,
lrPadding
);
}
else
{
danmuMargin
=
UIEdgeInsetsMake
(
-
1
.
0
,
-
1
.
0
,
0
.
0
,
lrPadding
+
btnPadding
*
1
);
}
}
else
{
closeSecondaryMargin
=
UIEdgeInsetsMake
(
-
1
.
0
,
-
1
.
0
,
0
.
0
,
lrPadding
+
btnPadding
*
1
);
danmuMargin
=
UIEdgeInsetsMake
(
-
1
.
0
,
-
1
.
0
,
0
.
0
,
lrPadding
+
btnPadding
*
2
);
if
(
self
.
type
==
PLVPlayerSkinViewTypeNormalLive
)
{
danmuMargin
=
UIEdgeInsetsMake
(
-
1
.
0
,
-
1
.
0
,
0
.
0
,
lrPadding
+
btnPadding
);
}
else
{
danmuMargin
=
UIEdgeInsetsMake
(
-
1
.
0
,
-
1
.
0
,
0
.
0
,
lrPadding
+
btnPadding
*
2
);
}
}
}
else
{
UIEdgeInsets
sliderBackgroundMargin
=
UIEdgeInsetsMake
(
-
1
.
0
,
0
.
0
,
44
.
0
,
0
.
0
);
...
...
@@ -403,7 +411,7 @@ typedef NS_ENUM(NSInteger, PLVPlayerSkinViewPanType) {
CGFloat
dx
=
p
.
x
-
self
.
lastPoint
.
x
;
self
.
slider
.
value
=
[
self
valueOfDistance
:
dx
baseValue
:
self
.
slider
.
value
];
self
.
seekSlider
.
value
=
self
.
slider
.
value
;
NSString
*
text
=
[
PLV
Date
Util
secondsToString
:
self
.
slider
.
value
*
self
.
duration
];
NSString
*
text
=
[
PLV
Fd
Util
secondsToString
:
self
.
slider
.
value
*
self
.
duration
];
self
.
currentPlayTimeLabel
.
text
=
text
;
self
.
seekTimeLable
.
text
=
text
;
if
(
gestureRecognizer
.
state
==
UIGestureRecognizerStateEnded
||
gestureRecognizer
.
state
==
UIGestureRecognizerStateCancelled
)
{
...
...
ios/PolyvCloudClassModule/Watch/PLVLiveViewController.m
View file @
985b936b
...
...
@@ -62,20 +62,28 @@
[
self
initData
];
BOOL
watchPermission
=
[
PLVChatroomController
havePermissionToWatchLive
:
self
.
channelId
];
if
(
watchPermission
)
{
[
self
addMediaViewController
];
[
self
loadChannelMenuInfos
];
}
else
{
__weak
typeof
(
self
)
weakSelf
=
self
;
dispatch_after
(
dispatch_time
(
DISPATCH_TIME_NOW
,
(
int64_t
)(
0
.
5
*
NSEC_PER_SEC
)),
dispatch_get_main_queue
(),
^
{
[
weakSelf
exitCurrentControllerWithAlert
:
nil
message
:
@"您未被授权观看本直播"
];
});
}
[
self
addMediaViewController
];
[
self
loadChannelMenuInfos
];
// [self playerPolling];
}
-
(
void
)
viewWillAppear
:(
BOOL
)
animated
{
[
super
viewWillAppear
:
animated
];
if
(
self
.
navigationController
)
{
self
.
navigationController
.
navigationBarHidden
=
YES
;
}
}
-
(
void
)
viewDidDisappear
:(
BOOL
)
animated
{
[
super
viewDidDisappear
:
animated
];
if
(
self
.
navigationController
)
{
self
.
navigationController
.
navigationBarHidden
=
NO
;
}
}
-
(
void
)
playerPolling
{
if
(
@available
(
iOS
10
.
0
,
*
))
{
self
.
pollingTimer
=
[
NSTimer
scheduledTimerWithTimeInterval
:
1
.
0
repeats
:
YES
block
:^
(
NSTimer
*
_Nonnull
timer
)
{
...
...
@@ -131,6 +139,7 @@
self
.
mediaVC
.
originFrame
=
CGRectMake
(
0
.
0
,
0
.
0
,
self
.
view
.
bounds
.
size
.
width
,
self
.
mediaViewControllerHeight
);
self
.
mediaVC
.
view
.
frame
=
self
.
mediaVC
.
originFrame
;
[
self
.
view
addSubview
:
self
.
mediaVC
.
view
];
//self.mediaVC.showDanmuOnPortrait = YES; // 竖屏显示弹幕按钮
CGFloat
secondaryWidth
=
(
int
)([
UIScreen
mainScreen
].
bounds
.
size
.
width
/
self
.
linkMicVC
.
colNum
);
CGFloat
secondaryHeight
=
(
int
)(
secondaryWidth
*
PPTPlayerViewScale
);
...
...
@@ -204,7 +213,7 @@
}
if
(
titles
.
count
>
0
&&
controllers
.
count
>
0
&&
titles
.
count
==
controllers
.
count
)
{
self
.
pageController
=
[[
FTPageController
alloc
]
initWithTitles
:
titles
controllers
:
controllers
barHeight
:
barHeight
touchHeight
:
2
6
.
0
];
self
.
pageController
=
[[
FTPageController
alloc
]
initWithTitles
:
titles
controllers
:
controllers
barHeight
:
barHeight
touchHeight
:
1
6
.
0
];
self
.
pageController
.
delegate
=
self
;
self
.
pageController
.
view
.
frame
=
pageCtrlFrame
;
[
self
.
view
insertSubview
:
self
.
pageController
.
view
belowSubview
:
self
.
mediaVC
.
view
];
// 需要添加在播放器下面,使得播放器全屏的时候能盖住聊天室
...
...
@@ -333,7 +342,11 @@
[
self
.
pollingTimer
invalidate
];
self
.
pollingTimer
=
nil
;
}
[
self
dismissViewControllerAnimated
:
YES
completion
:
nil
];
if
(
self
.
navigationController
)
{
[
self
.
navigationController
popViewControllerAnimated
:
YES
];
}
else
{
[
self
dismissViewControllerAnimated
:
YES
completion
:
nil
];
}
}
-
(
void
)
exitCurrentControllerWithAlert
:(
NSString
*
)
title
message
:(
NSString
*
)
message
{
...
...
@@ -365,6 +378,12 @@
}
#pragma mark - PLVSocketIODelegate
-
(
void
)
socketIO
:(
PLVSocketIO
*
)
socketIO
didLoginFailed
:(
NSDictionary
*
)
jsonDict
{
NSLog
(
@"%s %@"
,
__FUNCTION__
,
jsonDict
);
[
socketIO
disconnect
];
[
self
exitCurrentControllerWithAlert
:
nil
message
:
@"您未被授权观看本直播"
];
}
// 此方法可能多次调用,如锁屏后返回会重连聊天室
-
(
void
)
socketIO
:(
PLVSocketIO
*
)
socketIO
didConnectWithInfo
:(
NSString
*
)
info
{
NSLog
(
@"%@--%@"
,
NSStringFromSelector
(
_cmd
),
info
);
...
...
ios/PolyvCloudClassModule/Watch/PLVVodViewController.m
View file @
985b936b
...
...
@@ -68,6 +68,22 @@
// [self playerPolling];
}
-
(
void
)
viewWillAppear
:(
BOOL
)
animated
{
[
super
viewWillAppear
:
animated
];
if
(
self
.
navigationController
)
{
self
.
navigationController
.
navigationBarHidden
=
YES
;
}
}
-
(
void
)
viewDidDisappear
:(
BOOL
)
animated
{
[
super
viewDidDisappear
:
animated
];
if
(
self
.
navigationController
)
{
self
.
navigationController
.
navigationBarHidden
=
NO
;
}
}
-
(
void
)
playerPolling
{
if
(
@available
(
iOS
10
.
0
,
*
))
{
self
.
pollingTimer
=
[
NSTimer
scheduledTimerWithTimeInterval
:
1
.
0
repeats
:
YES
block
:^
(
NSTimer
*
_Nonnull
timer
)
{
...
...
@@ -155,7 +171,11 @@
[
self
.
pollingTimer
invalidate
];
self
.
pollingTimer
=
nil
;
}
[
self
dismissViewControllerAnimated
:
YES
completion
:
nil
];
if
(
self
.
navigationController
)
{
[
self
.
navigationController
popViewControllerAnimated
:
YES
];
}
else
{
[
self
dismissViewControllerAnimated
:
YES
completion
:
nil
];
}
}
-
(
void
)
statusBarAppearanceNeedsUpdate
:(
PLVBaseMediaViewController
*
)
mediaVC
{
...
...
ios/PolyvRNCloudClassDemo.xcodeproj/project.pbxproj
View file @
985b936b
...
...
@@ -2102,11 +2102,12 @@
baseConfigurationReference
=
C73086D9970902EF492AC86C
/* Pods-PolyvRNCloudClassDemo.debug.xcconfig */
;
buildSettings
=
{
ASSETCATALOG_COMPILER_APPICON_NAME
=
AppIcon
;
CURRENT_PROJECT_VERSION
=
1
;
CURRENT_PROJECT_VERSION
=
2
;
DEAD_CODE_STRIPPING
=
NO
;
DEVELOPMENT_TEAM
=
8BMZBNN3Q5
;
INFOPLIST_FILE
=
PolyvRNCloudClassDemo/Info.plist
;
LD_RUNPATH_SEARCH_PATHS
=
"$(inherited) @executable_path/Frameworks"
;
MARKETING_VERSION
=
1.0.1
;
OTHER_LDFLAGS
=
(
"$(inherited)"
,
"-ObjC"
,
...
...
@@ -2114,7 +2115,6 @@
);
PRODUCT_BUNDLE_IDENTIFIER
=
"org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"
;
PRODUCT_NAME
=
PolyvRNCloudClassDemo
;
SWIFT_VERSION
=
4.0
;
VERSIONING_SYSTEM
=
"apple-generic"
;
};
name
=
Debug
;
...
...
@@ -2124,10 +2124,11 @@
baseConfigurationReference
=
0AE56CE7DE9AD8FF238BD4D0
/* Pods-PolyvRNCloudClassDemo.release.xcconfig */
;
buildSettings
=
{
ASSETCATALOG_COMPILER_APPICON_NAME
=
AppIcon
;
CURRENT_PROJECT_VERSION
=
1
;
CURRENT_PROJECT_VERSION
=
2
;
DEVELOPMENT_TEAM
=
8BMZBNN3Q5
;
INFOPLIST_FILE
=
PolyvRNCloudClassDemo/Info.plist
;
LD_RUNPATH_SEARCH_PATHS
=
"$(inherited) @executable_path/Frameworks"
;
MARKETING_VERSION
=
1.0.1
;
OTHER_LDFLAGS
=
(
"$(inherited)"
,
"-ObjC"
,
...
...
@@ -2135,7 +2136,6 @@
);
PRODUCT_BUNDLE_IDENTIFIER
=
"org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"
;
PRODUCT_NAME
=
PolyvRNCloudClassDemo
;
SWIFT_VERSION
=
4.0
;
VERSIONING_SYSTEM
=
"apple-generic"
;
};
name
=
Release
;
...
...
ios/PolyvRNCloudClassDemo/Info.plist
View file @
985b936b
...
...
@@ -2,16 +2,6 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist
version=
"1.0"
>
<dict>
<key>
UIBackgroundModes
</key>
<array>
<string>
audio
</string>
</array>
<key>
NSMicrophoneUsageDescription
</key>
<string>
请允许访问您的麦克风以便连麦
</string>
<key>
NSCameraUsageDescription
</key>
<string>
请允许访问您的摄像头以便连麦或拍照
</string>
<key>
NSPhotoLibraryUsageDescription
</key>
<string>
请允许访问以便写入相片至您的相册
</string>
<key>
CFBundleDevelopmentRegion
</key>
<string>
en
</string>
<key>
CFBundleDisplayName
</key>
...
...
@@ -27,15 +17,38 @@
<key>
CFBundlePackageType
</key>
<string>
APPL
</string>
<key>
CFBundleShortVersionString
</key>
<string>
1.0
</string>
<string>
$(MARKETING_VERSION)
</string>
<key>
CFBundleSignature
</key>
<string>
????
</string>
<key>
CFBundleVersion
</key>
<string>
1
</string>
<string>
$(CURRENT_PROJECT_VERSION)
</string>
<key>
LSRequiresIPhoneOS
</key>
<true/>
<key>
NSAppTransportSecurity
</key>
<dict>
<key>
NSAllowsArbitraryLoads
</key>
<true/>
<key>
NSExceptionDomains
</key>
<dict>
<key>
localhost
</key>
<dict>
<key>
NSExceptionAllowsInsecureHTTPLoads
</key>
<true/>
</dict>
</dict>
</dict>
<key>
NSCameraUsageDescription
</key>
<string>
请允许访问您的摄像头以便连麦或拍照
</string>
<key>
NSLocationWhenInUseUsageDescription
</key>
<string></string>
<key>
NSMicrophoneUsageDescription
</key>
<string>
请允许访问您的麦克风以便连麦
</string>
<key>
NSPhotoLibraryUsageDescription
</key>
<string>
请允许访问以便写入相片至您的相册
</string>
<key>
UIBackgroundModes
</key>
<array>
<string>
audio
</string>
</array>
<key>
UILaunchStoryboardName
</key>
<string>
LaunchScreen
</string>
<key>
UIRequiredDeviceCapabilities
</key>
...
...
@@ -50,18 +63,5 @@
</array>
<key>
UIViewControllerBasedStatusBarAppearance
</key>
<false/>
<key>
NSAppTransportSecurity
</key>
<dict>
<key>
NSAllowsArbitraryLoads
</key>
<true/>
<key>
NSExceptionDomains
</key>
<dict>
<key>
localhost
</key>
<dict>
<key>
NSExceptionAllowsInsecureHTTPLoads
</key>
<true/>
</dict>
</dict>
</dict>
</dict>
</plist>
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