Parcourir la source

评测时,挤账号处理释放播放器和录音。

Steven il y a 7 mois
Parent
commit
77ee8b6b85

+ 23 - 0
KulexiuForStudent/KulexiuForStudent/Common/Base/AccompanyWebView/KSAccompanyWebViewController.m

@@ -258,8 +258,31 @@
     [self configAudioSession];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appEnterBackground) name:@"appEnterBackground" object:nil];
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appEnterForeground) name:@"appEnterForeground" object:nil];
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(otherLogin) name:@"otherLogin" object:nil];
 }
 
+- (void)otherLogin {
+    // 停止播放和录制
+    [self stopSession];
+    [self stopPlayAction];
+    [self stopRecordService];
+    [self stopTuner];
+    
+    if (_AQManager) {
+        [_AQManager freeAudioQueue];
+    }
+    // 如果退出评测页面 清除 playerEngine
+    if (self.playerEngine) {
+        [self.playerEngine cleanup];
+        self.playerEngine = nil;
+    }
+    // 返回不保存视频
+    [self ignorRecordVideo];
+    [self freeMp3Player];
+    [self removeTuner];
+}
+
+
 - (void)checkMessage:(id)message {
     NSDictionary *result = [message mj_JSONObject];
     NSString *type = [[result ks_dictionaryValueForKey:@"header"] ks_stringValueForKey:@"type"];

+ 18 - 22
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/KSMediaMergeView.m

@@ -414,23 +414,26 @@
 }
 
 - (void)backAction {
-    if (self.hasModify) {
-        MJWeakSelf;
-        [self.alertView configTitle:@"提示" descMessage:@"是否将本次录制的作品保存为草稿?" leftButtonTitle:@"取消" rightButtonTitle:@"确认" leftButtonAction:^{
-            [weakSelf removeViewTips:NO];
-        } rightButtonAction:^{
-            [weakSelf saveCurrentDraft:YES];
-        }];
-        [self.alertView showAlert];
-    }
-    else {
-        if (self.mergeCallback) {
-            [self removeViewTips:NO];
+    [self stopPlay];
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        if (self.hasModify) {
+            MJWeakSelf;
+            [self.alertView configTitle:@"提示" descMessage:@"是否将本次录制的作品保存为草稿?" leftButtonTitle:@"取消" rightButtonTitle:@"确认" leftButtonAction:^{
+                [weakSelf removeViewTips:NO];
+            } rightButtonAction:^{
+                [weakSelf saveCurrentDraft:YES];
+            }];
+            [self.alertView showAlert];
         }
         else {
-            [self removeView];
+            if (self.mergeCallback) {
+                [self removeViewTips:NO];
+            }
+            else {
+                [self removeView];
+            }
         }
-    }
+    });
 }
 
 #pragma mark ----- lazying
@@ -581,6 +584,7 @@
             break;
         case MERGEACTION_UPLOAD:  // 上传
         {
+            [self stopPlay];
             [self showPublishAlert];
             
         }
@@ -610,8 +614,6 @@
     switch (type) {
         case PUBLISH_ACTION_PUBLISH:
         {
-            // 暂停播放
-            [self stopPlay];
             self.desc = [NSString isEmptyString:self.publishAlert.publishContainView.textView.text] ? @"我发布了一首演奏作品,快来听听吧~" :self.publishAlert.publishContainView.textView.text;
             if (self.settingImage || self.videoCoverImage) { // 上传图片
                 [self updateWithCoverImage];
@@ -623,8 +625,6 @@
             break;
         case PUBLISH_ACTION_CHOOSEIMG:
         {
-            // 暂停播放
-            [self stopPlay];
             self.isChooseVideoCover = NO;
 
             // 调用相册
@@ -653,8 +653,6 @@
             break;
         case PUBLISH_ACTION_VIDEOCOVER: // 视频封面
         {
-            // 暂停播放
-            [self stopPlay];
             self.isChooseVideoCover = YES;
             // 调用相册
             self.mediaManager = [[KSMediaManager alloc] init];
@@ -682,8 +680,6 @@
             break;
         case PUBLISH_ACTION_VIDEOCROP:
         {
-            // 暂停播放
-            [self stopPlay];
             KSVideoCropViewController *ctrl = [[KSVideoCropViewController alloc] init];
             [ctrl configWithVideoPath:self.videoUrl];
             UIViewController *baseCtrl = [self findViewController];