Browse Source

处理合成页面气泡交互效果

Steven 9 months ago
parent
commit
7e7b195b6d

+ 4 - 4
KulexiuForStudent/KulexiuForStudent.xcodeproj/project.pbxproj

@@ -909,8 +909,8 @@
 		BCECE2542B3D670500C0D555 /* FeedbackBodyView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCECE2412B3D670500C0D555 /* FeedbackBodyView.m */; };
 		BCECE2552B3D670500C0D555 /* FeedbackNavView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCECE2432B3D670500C0D555 /* FeedbackNavView.m */; };
 		BCED0AF72C4651F800369AED /* KSMergeEnginePlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = BCED0AF52C4651F800369AED /* KSMergeEnginePlayer.m */; };
-		BCED0AF92C4653A900369AED /* KSToolLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCED0AF82C4653A800369AED /* KSToolLibrary.framework */; };
 		BCED0AFB2C4653DE00369AED /* CloudAccompanyLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCED0AFA2C4653DD00369AED /* CloudAccompanyLibrary.framework */; };
+		BCED0AFD2C467D7800369AED /* KSToolLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCED0AFC2C467D7800369AED /* KSToolLibrary.framework */; };
 		BCED5CA7284F55A0009A42DE /* FriendListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = BCED5CA6284F55A0009A42DE /* FriendListModel.m */; };
 		BCF425DD2AB8665200BCD942 /* TenantHomeBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCF425DC2AB8665200BCD942 /* TenantHomeBannerView.m */; };
 		BCF425DF2AB8665900BCD942 /* TenantHomeBannerView.xib in Resources */ = {isa = PBXBuildFile; fileRef = BCF425DE2AB8665900BCD942 /* TenantHomeBannerView.xib */; };
@@ -2471,8 +2471,8 @@
 		BCECE2442B3D670500C0D555 /* FeedbackListNavView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FeedbackListNavView.h; sourceTree = "<group>"; };
 		BCED0AF42C4651F800369AED /* KSMergeEnginePlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KSMergeEnginePlayer.h; sourceTree = "<group>"; };
 		BCED0AF52C4651F800369AED /* KSMergeEnginePlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KSMergeEnginePlayer.m; sourceTree = "<group>"; };
-		BCED0AF82C4653A800369AED /* KSToolLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = KSToolLibrary.framework; sourceTree = "<group>"; };
 		BCED0AFA2C4653DD00369AED /* CloudAccompanyLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CloudAccompanyLibrary.framework; sourceTree = "<group>"; };
+		BCED0AFC2C467D7800369AED /* KSToolLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = KSToolLibrary.framework; sourceTree = "<group>"; };
 		BCED5CA5284F55A0009A42DE /* FriendListModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FriendListModel.h; sourceTree = "<group>"; };
 		BCED5CA6284F55A0009A42DE /* FriendListModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FriendListModel.m; sourceTree = "<group>"; };
 		BCF425DB2AB8665200BCD942 /* TenantHomeBannerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TenantHomeBannerView.h; sourceTree = "<group>"; };
@@ -2569,7 +2569,7 @@
 				BCFEE1932AD15C0E000E888F /* SoundpipeAudioKit in Frameworks */,
 				BCED0AFB2C4653DE00369AED /* CloudAccompanyLibrary.framework in Frameworks */,
 				BCFEE18D2AD15BD4000E888F /* AudioKitEX in Frameworks */,
-				BCED0AF92C4653A900369AED /* KSToolLibrary.framework in Frameworks */,
+				BCED0AFD2C467D7800369AED /* KSToolLibrary.framework in Frameworks */,
 				BC8B6E152856E20800866917 /* WebKit.framework in Frameworks */,
 				BC8A45CB283DDEA100094BBB /* AVFoundation.framework in Frameworks */,
 				BCD9294F28F8FCA4006793E4 /* AudioKit in Frameworks */,
@@ -4661,7 +4661,7 @@
 			children = (
 				BC00A65F2BB58FDB00231B74 /* LLPhotoBrowse.bundle */,
 				BC00A6602BB58FDC00231B74 /* WMPlayer.bundle */,
-				BCED0AF82C4653A800369AED /* KSToolLibrary.framework */,
+				BCED0AFC2C467D7800369AED /* KSToolLibrary.framework */,
 				BC3A55682BAA7B19002E1616 /* KSTunerLibrary.framework */,
 				BCED0AFA2C4653DD00369AED /* CloudAccompanyLibrary.framework */,
 				BC3BF62F2B9EAFC800831494 /* client.p12 */,

+ 1 - 1
KulexiuForStudent/KulexiuForStudent.xcodeproj/xcshareddata/xcschemes/KulexiuForStudent.xcscheme

@@ -92,7 +92,7 @@
       buildConfiguration = "Debug">
    </AnalyzeAction>
    <ArchiveAction
-      buildConfiguration = "Release"
+      buildConfiguration = "TEST"
       revealArchiveInOrganizer = "YES">
    </ArchiveAction>
 </Scheme>

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

@@ -666,6 +666,9 @@
                 }
                 else {
                     if (self.AQManager && self.AQManager.audioUrl) {
+                        if (self->_videoRecordManager) {
+                            [self.videoRecordManager removeDisplay];
+                        }
                         self.recordUrl = self.AQManager.audioUrl;
                         [self.view addSubview:mergeView];
                         [mergeView mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -675,10 +678,17 @@
                         mergeView.recordId = [content ks_stringValueForKey:@"recordId"];
                         mergeView.songName = [content ks_stringValueForKey:@"title"];
                         mergeView.coverImage = [content ks_stringValueForKey:@"coverImg"];
+                        if ([[content allKeys] containsObject:@"speedRate"]) {
+                            mergeView.musicSpeed = [content ks_floatValueForKey:@"speedRate"];
+                        }
+                        else {
+                            mergeView.musicSpeed = 1.0f;
+                        }
                         MJWeakSelf;
                         NSInteger micDelay = [UserDefaultObjectForKey(@"micDelay") integerValue];
                         NSInteger defaultDelay = self.offsetTime + micDelay;
                         [mergeView configWithVideoUrl:self.videoRecordManager.videoFileURL bgAudioUrl:self.bgAudioUrl remoteBgUrl:self.accompanyUrl  recordUrl:self.recordUrl offsetTime:defaultDelay mergeCallback:^{
+                            [weakSelf appEnterForeground];
                             [weakSelf musicPublishCallBack:content];
                         }];
                     }

+ 4 - 3
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/KSMediaMergeView.m

@@ -125,7 +125,6 @@
     self = [super init];
     if (self) {
         self.hasModify = NO;
-        self.bgPlayerRate = 1.0;
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appEnterBackground) name:@"appEnterBackground" object:nil];
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(otherLogin) name:@"otherLogin" object:nil];
         [self configAudioSession];
@@ -220,7 +219,6 @@
     [self downloadAccompany];
     [self downloadAudio];
     dispatch_group_notify(self.requestGroup, dispatch_get_main_queue(), ^{
-        [LOADING_MANAGER removeCustomLoading];
         [self configUI];
         [self configPlayer];
     });
@@ -242,7 +240,8 @@
 
 // 修改文件速度
 - (void)modifyBgSpeed:(NSURL *)musicUrl callback:(void(^)(void))callback {
-    if (self.musicSpeed != 1) {
+    if (self.musicSpeed > 1.0 || self.musicSpeed < 1.0) {
+        [LOADING_MANAGER showCustomLoading:@"资源下载中"];
         [KSMediaEditor modifyAudioFileSpeed:musicUrl rate:self.musicSpeed completion:^(NSString * _Nonnull outPath, BOOL isSuccess, NSString * _Nonnull desc) {
             if (isSuccess) {
                 self.bgAudioUrl = [NSURL fileURLWithPath:outPath];
@@ -911,6 +910,7 @@
 
 - (void)videoPlayerIsReadyPlay:(AVPlayer *)player {
     if (self.mergePlayer.isReady) {
+        [LOADING_MANAGER removeCustomLoading];
         [self startPlay];
     }
 }
@@ -953,6 +953,7 @@
 
 - (void)enginePlayerIsReadyPlay:(KSMergeEnginePlayer *)player {
     dispatch_main_async_safe(^{
+        [LOADING_MANAGER removeCustomLoading];
         [self refreshTotalTime];
         if (self.isVideoPlay) {
             if (self.videoView.isReady) {

+ 23 - 2
KulexiuForStudent/KulexiuForStudent/Common/MediaMerge/AudioMerge/KSMergeAudioControlView.m

@@ -101,6 +101,13 @@
     self.recordSlider.value = recordVolume;
     self.bgVolume = bgVolume;
     self.bgSlider.value = bgVolume;
+    
+    // 处理数据
+    self.recordBubbleLabel.text = [NSString stringWithFormat:@"%zd",bgVolume];
+    self.recordCenterX.constant = 30 + ((recordVolume *1.0)/ 100)*237;
+    
+    self.bgVolumeBubble.text = [NSString stringWithFormat:@"%zd",bgVolume];
+    self.bgCenterX.constant = 30 + ((bgVolume *1.0)/ 100)*237;
 }
 
 + (instancetype)shareIntance {
@@ -128,9 +135,17 @@
 
 - (void)configRecordVolumeValue:(NSInteger)volume {
     self.recordVolume = volume;
-    self.recordBubble.hidden = NO;
+    
     self.recordBubbleLabel.text = [NSString stringWithFormat:@"%zd",volume];
     self.recordCenterX.constant = 30 + ((volume *1.0)/ 100)*237;
+    
+    [UIView animateWithDuration:0.1f animations:^{
+        [self layoutIfNeeded];
+    } completion:^(BOOL finished) {
+        if (finished) {
+            self.recordBubble.hidden = NO;
+        }
+    }];
     if (self.callback) {
         self.callback(MERGEACTION_MODIFY, self.recordVolume, self.bgVolume, self.offsetTime);
     }
@@ -138,9 +153,15 @@
 
 - (void)configBgVolumeValue:(NSInteger)volume {
     self.bgVolume = volume;
-    self.bgBubble.hidden =NO;
     self.bgVolumeBubble.text = [NSString stringWithFormat:@"%zd",volume];
     self.bgCenterX.constant = 30 + ((volume *1.0)/ 100)*237;
+    [UIView animateWithDuration:0.1f animations:^{
+        [self layoutIfNeeded];
+    } completion:^(BOOL finished) {
+        if (finished) {
+            self.bgBubble.hidden =NO;
+        }
+    }];
     if (self.callback) {
         self.callback(MERGEACTION_MODIFY, self.recordVolume, self.bgVolume, self.offsetTime);
     }

BIN
KulexiuForStudent/KulexiuForStudent/ToolKit/KSToolLibrary.framework/KSToolLibrary