|
@@ -58,6 +58,7 @@
|
|
|
|
|
|
#import "TXDanMuView.h"
|
|
|
#import "TXTimeView.h"
|
|
|
+#import "CoursewareAlertView.h"
|
|
|
|
|
|
#define MAXBIGPHOTONUMBER (3)
|
|
|
#define MAXPHOTONUMBER (3)
|
|
@@ -135,6 +136,8 @@
|
|
|
|
|
|
@property (nonatomic, assign) NSInteger soundVolume; // 伴奏音量
|
|
|
|
|
|
+@property (nonatomic, strong) CoursewareAlertView *coursewareView;
|
|
|
+
|
|
|
@property (nonatomic, strong) TRTCCloud *engine;
|
|
|
|
|
|
|
|
@@ -163,6 +166,10 @@
|
|
|
- (void)changeOrientation:(BOOL)isLandScape {
|
|
|
if (isLandScape) {
|
|
|
// 切换到横屏
|
|
|
+ if (IS_IPAD) {
|
|
|
+ self.zh_statusBarHidden = YES;
|
|
|
+ }
|
|
|
+
|
|
|
AppDelegate* delegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
|
|
|
delegate.allowAutoRotate = YES;
|
|
|
[UIDevice switchNewOrientation:UIInterfaceOrientationLandscapeRight inController:self];
|
|
@@ -172,6 +179,9 @@
|
|
|
AppDelegate* delegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
|
|
|
delegate.allowAutoRotate = NO;
|
|
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
|
|
+ if (IS_IPAD) {
|
|
|
+ self.zh_statusBarHidden = NO;
|
|
|
+ }
|
|
|
[UIDevice switchNewOrientation:UIInterfaceOrientationPortrait inController:self];
|
|
|
});
|
|
|
}
|
|
@@ -197,6 +207,7 @@
|
|
|
[self judgeShowAlert];
|
|
|
}
|
|
|
[IQKeyboardManager sharedManager].enableAutoToolbar = YES;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- (void)hideAlertView {
|
|
@@ -250,6 +261,7 @@
|
|
|
[super viewDidLoad];
|
|
|
// Do any additional setup after loading the view.
|
|
|
self.ks_prefersNavigationBarHidden = YES;
|
|
|
+
|
|
|
self.view.backgroundColor = [UIColor whiteColor];
|
|
|
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(leaveRoomAction) name:@"classroomLogout" object:nil];
|
|
|
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(quitRoomAction) name:@"classroomQuit" object:nil];
|
|
@@ -379,12 +391,10 @@
|
|
|
case ClassTitleViewActionTagMic:
|
|
|
{
|
|
|
|
|
|
- if (tagButton.isSelected == NO) {
|
|
|
-
|
|
|
+ if (tagButton.isSelected == NO) { // 关闭
|
|
|
[[ClassroomService sharedService] enableDevice:NO songId:0 withType:DeviceTypeMicrophone];
|
|
|
}
|
|
|
- else {
|
|
|
- tagButton.isSelected = NO;
|
|
|
+ else { // 打开
|
|
|
[[ClassroomService sharedService] enableDevice:YES songId:0 withType:DeviceTypeMicrophone];
|
|
|
}
|
|
|
}
|
|
@@ -392,7 +402,6 @@
|
|
|
case ClassTitleViewActionTagCamera:
|
|
|
{
|
|
|
if (tagButton.isSelected == NO) {
|
|
|
-
|
|
|
[[ClassroomService sharedService] enableDevice:NO songId:0 withType:DeviceTypeCamera];
|
|
|
}
|
|
|
else {
|
|
@@ -444,7 +453,6 @@
|
|
|
break;
|
|
|
case ClassTitleViewActionTagHangup:
|
|
|
{
|
|
|
-
|
|
|
[self showQuitAlert];
|
|
|
}
|
|
|
default:
|
|
@@ -926,6 +934,8 @@
|
|
|
}
|
|
|
self.toolView.isVideoDisplay = NO;
|
|
|
[self.view bringSubviewToFront:self.timeView];
|
|
|
+ [self.view bringSubviewToFront:self.titleView];
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- (void)refreshWhiteBoardFrame {
|
|
@@ -1148,12 +1158,9 @@
|
|
|
case MainToolButtonTagMic: // 麦克风
|
|
|
{
|
|
|
if (toolButton.isSelected) { // 打开
|
|
|
- toolButton.isSelected = NO;
|
|
|
[[ClassroomService sharedService] enableDevice:YES songId:0 withType:DeviceTypeMicrophone];
|
|
|
}
|
|
|
else { // 关闭
|
|
|
-
|
|
|
- toolButton.isSelected = YES;
|
|
|
[[ClassroomService sharedService] enableDevice:NO songId:0 withType:DeviceTypeMicrophone];
|
|
|
}
|
|
|
}
|
|
@@ -1161,12 +1168,10 @@
|
|
|
case MainToolButtonTagCamero: // 摄像头
|
|
|
{
|
|
|
if (toolButton.isSelected) { // 打开
|
|
|
- toolButton.isSelected = NO;
|
|
|
[[ClassroomService sharedService] enableDevice:YES songId:0 withType:DeviceTypeCamera];
|
|
|
}
|
|
|
else { // 关闭
|
|
|
|
|
|
- toolButton.isSelected = YES;
|
|
|
[[ClassroomService sharedService] enableDevice:NO songId:0 withType:DeviceTypeCamera];
|
|
|
}
|
|
|
}
|
|
@@ -1350,14 +1355,16 @@
|
|
|
- (void)showNetworkingStatus:(TRTCQuality)quality remoteQuality:(NSArray<TRTCQualityInfo *> *)remoteQuality {
|
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
// 本地
|
|
|
- if ([self.containerView.member.userId isEqualToString:UserDefault(UIDKey)]) {
|
|
|
+ NSString *currentUserID = [ClassroomService sharedService].currentRoom.currentMemberId;
|
|
|
+
|
|
|
+ if ([self.containerView.member.userId isEqualToString:currentUserID]) {
|
|
|
[self.containerView.displayView updateUserQualityNetWorkingStatus:[self getNetStatusWithQuality:quality]];
|
|
|
}
|
|
|
|
|
|
- [self.videoListView updateUserQuality:UserDefault(UIDKey) netWorkingStatus:[self getNetStatusWithQuality:quality]];
|
|
|
+ [self.videoListView updateUserQuality:currentUserID netWorkingStatus:[self getNetStatusWithQuality:quality]];
|
|
|
// 更新full
|
|
|
if (self.squareOn) {
|
|
|
- [self.squareView updateUserQuality:UserDefault(UIDKey) netWorkingStatus:[self getNetStatusWithQuality:quality]];
|
|
|
+ [self.squareView updateUserQuality:currentUserID netWorkingStatus:[self getNetStatusWithQuality:quality]];
|
|
|
}
|
|
|
// 远端
|
|
|
for (TRTCQualityInfo *info in remoteQuality) {
|
|
@@ -1397,14 +1404,16 @@
|
|
|
}
|
|
|
|
|
|
- (void)didReportUserVolume:(NSArray<TRTCVolumeInfo *> *)userVolumes {
|
|
|
+ NSString *currentUserID = [ClassroomService sharedService].currentRoom.currentMemberId;
|
|
|
+
|
|
|
for (TRTCVolumeInfo *info in userVolumes) {
|
|
|
NSString *userId = info.userId;
|
|
|
if ([NSString isEmptyString:userId]) {
|
|
|
- userId = UserDefault(UIDKey);
|
|
|
+ userId = currentUserID;
|
|
|
}
|
|
|
[self.videoListView updateMicStatus:userId volume:info.volume];
|
|
|
// 更新title
|
|
|
- if ([UserDefault(UIDKey) isEqualToString:userId]) {
|
|
|
+ if ([currentUserID isEqualToString:userId]) {
|
|
|
[self.titleView updateUserVolume:info.volume];
|
|
|
}
|
|
|
// 更新container
|
|
@@ -1590,6 +1599,7 @@
|
|
|
if (!_wBoardCtrl) {
|
|
|
CGRect frame = [self getWBoardFrame];
|
|
|
_wBoardCtrl = [[KSWhiteboardControl alloc] initWithDelegate:self viewFrame:frame];
|
|
|
+ NSLog(@"----%@", [ClassroomService sharedService].currentRoom.roomId);
|
|
|
_wBoardCtrl.randomNumeric = [ClassroomService sharedService].currentRoom.randomNumeric;
|
|
|
NSString *roomId = [ClassroomService sharedService].currentRoom.roomId;
|
|
|
if ([roomId containsString:@"S"] || [roomId containsString:@"I"]) {
|
|
@@ -1929,18 +1939,7 @@
|
|
|
NSLog(@"-------sound volume %zd", self.soundVolume);
|
|
|
if (action == ACCOMPANYACTION_ADDSONG) {
|
|
|
// 添加伴奏
|
|
|
- MJWeakSelf;
|
|
|
- SongListViewController *songVC = [[SongListViewController alloc] init];
|
|
|
-// songVC.isChooseSong = YES;
|
|
|
- [songVC chooseSongCallback:^(NSString * _Nonnull songId, NSString * _Nonnull songName, NSString * _Nullable songUrl, NSString * _Nullable accompanyUrl) {
|
|
|
-
|
|
|
- [weakSelf notiferStudentDownload:songId songUrl:songUrl accompanyUrl:accompanyUrl songName:songName];
|
|
|
- }];
|
|
|
-
|
|
|
- CustomNavViewController *navCtrl = [[CustomNavViewController alloc] initWithRootViewController:songVC];
|
|
|
- navCtrl.modalPresentationStyle = UIModalPresentationFullScreen;
|
|
|
- _isPushChooseView = YES;
|
|
|
- [self presentViewController:navCtrl animated:YES completion:nil];
|
|
|
+ [self.coursewareView showView];
|
|
|
}
|
|
|
else if (action == ACCOMPANYACTION_STOP) {
|
|
|
|
|
@@ -1994,7 +1993,7 @@
|
|
|
}
|
|
|
|
|
|
- (void)notiferStudentDownload:(NSString *)songId songUrl:(NSString *)songUrl accompanyUrl:(NSString *)accompanyUrl songName:(NSString *)songName {
|
|
|
-
|
|
|
+ [self.coursewareView hideView];
|
|
|
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
for (RoomMember *member in [ClassroomService sharedService].currentRoom.memberList) {
|
|
|
|
|
@@ -2080,6 +2079,19 @@
|
|
|
}
|
|
|
return _danView;
|
|
|
}
|
|
|
+
|
|
|
+- (CoursewareAlertView *)coursewareView {
|
|
|
+ if (!_coursewareView) {
|
|
|
+ _coursewareView = [CoursewareAlertView shareInstance];
|
|
|
+ [_coursewareView configUI];
|
|
|
+ MJWeakSelf;
|
|
|
+ [_coursewareView chooseCoursewareCallback:^(NSString * _Nonnull musicUrl, NSString * _Nonnull musicName, NSString * _Nonnull songId) {
|
|
|
+
|
|
|
+ [weakSelf notiferStudentDownload:songId songUrl:musicUrl accompanyUrl:nil songName:musicName];
|
|
|
+ }];
|
|
|
+ }
|
|
|
+ return _coursewareView;
|
|
|
+}
|
|
|
/*
|
|
|
#pragma mark - Navigation
|
|
|
|