Browse Source

关于我们

Steven 1 year ago
parent
commit
9609b48cab

+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/aboutUs_icon.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "aboutUs_icon@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "aboutUs_icon@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/aboutUs_icon.imageset/aboutUs_icon@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/aboutUs_icon.imageset/aboutUs_icon@3x.png


+ 22 - 0
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/check_detailImage.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "check_detailImage@2x.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "check_detailImage@3x.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/check_detailImage.imageset/check_detailImage@2x.png


BIN
KulexiuForTeacher/KulexiuForTeacher/Assets.xcassets/Mine/check_detailImage.imageset/check_detailImage@3x.png


+ 12 - 0
KulexiuForTeacher/KulexiuForTeacher/Common/Base/KSAccompanyWebViewController.m

@@ -129,6 +129,9 @@
     if (_playerEngine) {
         [self stopPlayAction];
     }
+    if (_musicPlayer) {
+        [self stopMp3Player];
+    }
 }
 
 - (void)resumeAudioSession {
@@ -462,6 +465,15 @@
         // 返回不保存视频
         [self ignorRecordVideo];
         [self freeMp3Player];
+        [self removeTuner];
+    }
+}
+
+- (void)removeTuner {
+    if (_tuner) {
+        [_tuner freeTuner];
+        _tuner = nil;
+        NSLog(@"--- free tuner ");
     }
 }
 

+ 13 - 4
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/Controller/AboutUsViewController.m

@@ -41,13 +41,22 @@
 }
 
 - (void)configUI {
+    [self.scrollView removeFromSuperview];
     _bodyView = [AboutUsBodyView shareInstance];
-    [self.scrollView addSubview:_bodyView];
+    [self.view addSubview:_bodyView];
     [_bodyView mas_makeConstraints:^(MASConstraintMaker *make) {
-        make.top.mas_equalTo(self.scrollView.mas_top);
-        make.right.left.mas_equalTo(self.view);
-        make.height.mas_equalTo(kScreenHeight - kNaviBarHeight - iPhoneXSafeBottomMargin);
+        make.top.left.right.bottom.mas_equalTo(self.view);
     }];
+    
+    MJWeakSelf;
+    [_bodyView showCheckLink:^{
+        [weakSelf showCheckLink];
+    }];
+}
+
+- (void)showCheckLink {
+    // 外部浏览器打开
+    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://beian.miit.gov.cn/"] options: @{} completionHandler: nil];
 }
 /*
 #pragma mark - Navigation

+ 4 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/View/AboutUsBodyView.h

@@ -7,6 +7,8 @@
 
 #import <UIKit/UIKit.h>
 
+typedef void(^DisplayCheckLinkCallback)(void);
+
 NS_ASSUME_NONNULL_BEGIN
 
 @interface AboutUsBodyView : UIView
@@ -15,6 +17,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 - (void)configPhone:(NSString *)phone email:(NSString *)email;
 
+- (void)showCheckLink:(DisplayCheckLinkCallback)callback;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 18 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/View/AboutUsBodyView.m

@@ -13,6 +13,11 @@
 @property (weak, nonatomic) IBOutlet UILabel *phoneLabel;
 @property (weak, nonatomic) IBOutlet UILabel *emailLabel;
 
+@property (weak, nonatomic) IBOutlet NSLayoutConstraint *bottomSpace;
+
+@property (nonatomic, copy) DisplayCheckLinkCallback callback;
+
+
 @end
 
 @implementation AboutUsBodyView
@@ -22,6 +27,8 @@
     self.versionLabel.text = [NSString stringWithFormat:@"版本号%@",[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]];
     self.phoneLabel.text = @"15347100733";
     self.emailLabel.text = @"klx@kulexiu999.onexmail.com";
+    self.bottomSpace.constant = 6 + iPhoneXSafeBottomMargin;
+
 }
 
 - (void)configPhone:(NSString *)phone email:(NSString *)email {
@@ -34,6 +41,17 @@
     return view;
 }
 
+
+- (void)showCheckLink:(DisplayCheckLinkCallback)callback {
+    if (callback) {
+        self.callback = callback;
+    }
+}
+- (IBAction)openWebView:(id)sender {
+    if (self.callback) {
+        self.callback();
+    }
+}
 /*
 // Only override drawRect: if you perform custom drawing.
 // An empty implementation adversely affects performance during animation.

+ 93 - 37
KulexiuForTeacher/KulexiuForTeacher/Module/Mine/Setting/View/AboutUsBodyView.xib

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
     <device id="retina6_1" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -14,46 +14,46 @@
             <autoresizingMask key="autoresizingMask"/>
             <subviews>
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QYL-JY-4ew">
-                    <rect key="frame" x="14" y="15" width="386" height="300"/>
+                    <rect key="frame" x="0.0" y="0.0" width="414" height="372"/>
                     <subviews>
-                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="klx_logo" translatesAutoresizingMaskIntoConstraints="NO" id="cTa-D0-od4">
-                            <rect key="frame" x="125.5" y="42" width="135" height="40"/>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="aboutUs_icon" translatesAutoresizingMaskIntoConstraints="NO" id="cTa-D0-od4">
+                            <rect key="frame" x="137" y="42" width="140" height="140"/>
                         </imageView>
-                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="版本号:1.0.0" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7sa-Ud-PzI">
-                            <rect key="frame" x="149.5" y="93" width="87" height="20"/>
+                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="版本号:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7sa-Ud-PzI">
+                            <rect key="frame" x="182" y="195" width="50.5" height="20"/>
                             <constraints>
                                 <constraint firstAttribute="height" constant="20" id="Va0-Ci-tdX"/>
                             </constraints>
                             <fontDescription key="fontDescription" type="system" pointSize="14"/>
-                            <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                            <color key="textColor" red="0.54509803921568623" green="0.54509803921568623" blue="0.54509803921568623" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             <nil key="highlightedColor"/>
                         </label>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Llz-E9-UuO">
-                            <rect key="frame" x="0.0" y="245" width="386" height="50"/>
+                            <rect key="frame" x="0.0" y="307" width="414" height="60"/>
                             <subviews>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="E-mail" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zan-am-t8E">
-                                    <rect key="frame" x="16" y="15" width="75" height="20"/>
+                                    <rect key="frame" x="16" y="20" width="75" height="20"/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="75" id="aKh-78-34y"/>
                                     </constraints>
                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
-                                    <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                    <color key="textColor" red="0.070588235294117646" green="0.074509803921568626" blue="0.078431372549019607" alpha="1" colorSpace="calibratedRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cnn-JH-ETQ">
-                                    <rect key="frame" x="370" y="14" width="0.0" height="22"/>
+                                    <rect key="frame" x="398" y="19" width="0.0" height="22"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="22" id="fnZ-IC-1WB"/>
                                     </constraints>
                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
-                                    <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                                    <color key="textColor" red="0.54509803921568623" green="0.54509803921568623" blue="0.54509803921568623" alpha="1" colorSpace="calibratedRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                             </subviews>
                             <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <constraints>
                                 <constraint firstItem="zan-am-t8E" firstAttribute="centerY" secondItem="Llz-E9-UuO" secondAttribute="centerY" id="J0e-zN-IpI"/>
-                                <constraint firstAttribute="height" constant="50" id="M1m-bo-gOH"/>
+                                <constraint firstAttribute="height" constant="60" id="M1m-bo-gOH"/>
                                 <constraint firstItem="cnn-JH-ETQ" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="zan-am-t8E" secondAttribute="trailing" constant="12" id="W4N-Kb-gpR"/>
                                 <constraint firstItem="zan-am-t8E" firstAttribute="leading" secondItem="Llz-E9-UuO" secondAttribute="leading" constant="16" id="XIq-kX-qbY"/>
                                 <constraint firstItem="cnn-JH-ETQ" firstAttribute="centerY" secondItem="Llz-E9-UuO" secondAttribute="centerY" id="xyz-wD-GMm"/>
@@ -61,28 +61,28 @@
                             </constraints>
                         </view>
                         <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ebq-nd-C8r">
-                            <rect key="frame" x="0.0" y="195" width="386" height="50"/>
+                            <rect key="frame" x="0.0" y="247" width="414" height="60"/>
                             <subviews>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="客服电话" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sAj-jF-RYu">
-                                    <rect key="frame" x="16" y="15" width="75" height="20"/>
+                                    <rect key="frame" x="16" y="20" width="75" height="20"/>
                                     <constraints>
                                         <constraint firstAttribute="width" constant="75" id="jJi-zT-p8P"/>
                                     </constraints>
                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
-                                    <color key="textColor" red="0.20000000000000001" green="0.20000000000000001" blue="0.20000000000000001" alpha="1" colorSpace="calibratedRGB"/>
+                                    <color key="textColor" red="0.070588235294117646" green="0.074509803921568626" blue="0.078431372549019607" alpha="1" colorSpace="calibratedRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                                 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v4W-Tc-Z7P">
-                                    <rect key="frame" x="370" y="14" width="0.0" height="22"/>
+                                    <rect key="frame" x="398" y="19" width="0.0" height="22"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="22" id="YZF-fi-TdF"/>
                                     </constraints>
                                     <fontDescription key="fontDescription" type="system" pointSize="17"/>
-                                    <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                                    <color key="textColor" red="0.54509803921568623" green="0.54509803921568623" blue="0.54509803921568623" alpha="1" colorSpace="calibratedRGB"/>
                                     <nil key="highlightedColor"/>
                                 </label>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="uiK-CI-oZC">
-                                    <rect key="frame" x="10" y="49" width="366" height="1"/>
+                                    <rect key="frame" x="10" y="59" width="394" height="1"/>
                                     <color key="backgroundColor" red="0.94901960784313721" green="0.94901960784313721" blue="0.94901960784313721" alpha="1" colorSpace="calibratedRGB"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="1" id="g81-iD-VDo"/>
@@ -98,7 +98,7 @@
                                 <constraint firstAttribute="trailing" secondItem="v4W-Tc-Z7P" secondAttribute="trailing" constant="16" id="Of5-H2-upH"/>
                                 <constraint firstItem="sAj-jF-RYu" firstAttribute="leading" secondItem="Ebq-nd-C8r" secondAttribute="leading" constant="16" id="k9H-YA-caI"/>
                                 <constraint firstItem="uiK-CI-oZC" firstAttribute="leading" secondItem="Ebq-nd-C8r" secondAttribute="leading" constant="10" id="kNb-qR-XQk"/>
-                                <constraint firstAttribute="height" constant="50" id="lTh-2Z-bZ3"/>
+                                <constraint firstAttribute="height" constant="60" id="lTh-2Z-bZ3"/>
                                 <constraint firstAttribute="bottom" secondItem="uiK-CI-oZC" secondAttribute="bottom" id="s3I-hR-ozV"/>
                             </constraints>
                         </view>
@@ -106,13 +106,13 @@
                     <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                     <constraints>
                         <constraint firstAttribute="trailing" secondItem="Ebq-nd-C8r" secondAttribute="trailing" id="1th-5I-09q"/>
-                        <constraint firstAttribute="height" constant="300" id="2SY-FP-iDP"/>
                         <constraint firstItem="Ebq-nd-C8r" firstAttribute="leading" secondItem="QYL-JY-4ew" secondAttribute="leading" id="52M-Sm-2KK"/>
+                        <constraint firstItem="Ebq-nd-C8r" firstAttribute="top" secondItem="7sa-Ud-PzI" secondAttribute="bottom" constant="32" id="5Ba-C7-JFP"/>
                         <constraint firstItem="cTa-D0-od4" firstAttribute="centerX" secondItem="QYL-JY-4ew" secondAttribute="centerX" id="DgL-EJ-qaz"/>
                         <constraint firstItem="7sa-Ud-PzI" firstAttribute="centerX" secondItem="QYL-JY-4ew" secondAttribute="centerX" id="W98-HT-q2L"/>
                         <constraint firstItem="Llz-E9-UuO" firstAttribute="leading" secondItem="QYL-JY-4ew" secondAttribute="leading" id="e3f-KG-5gm"/>
                         <constraint firstAttribute="bottom" secondItem="Llz-E9-UuO" secondAttribute="bottom" constant="5" id="if4-hy-JZQ"/>
-                        <constraint firstItem="7sa-Ud-PzI" firstAttribute="top" secondItem="cTa-D0-od4" secondAttribute="bottom" constant="11" id="kLn-bC-hAy"/>
+                        <constraint firstItem="7sa-Ud-PzI" firstAttribute="top" secondItem="cTa-D0-od4" secondAttribute="bottom" constant="13" id="kLn-bC-hAy"/>
                         <constraint firstItem="cTa-D0-od4" firstAttribute="top" secondItem="QYL-JY-4ew" secondAttribute="top" constant="42" id="lKG-gx-cGs"/>
                         <constraint firstItem="Llz-E9-UuO" firstAttribute="top" secondItem="Ebq-nd-C8r" secondAttribute="bottom" id="s33-ak-GIU"/>
                         <constraint firstAttribute="trailing" secondItem="Llz-E9-UuO" secondAttribute="trailing" id="xlh-Lh-IXX"/>
@@ -123,36 +123,92 @@
                         </userDefinedRuntimeAttribute>
                     </userDefinedRuntimeAttributes>
                 </view>
-                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="22H-v9-w8r">
-                    <rect key="frame" x="50" y="335" width="314" height="29"/>
-                    <string key="text">Copyright©2021-2022
-酷乐秀 colexiu.com 版权所有</string>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Copyright@2021-2024|酷乐秀 colexiu.com 版权所有" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RCe-Qt-jJF">
+                    <rect key="frame" x="39" y="836" width="303" height="20"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="20" id="5DR-Vo-3dI"/>
+                    </constraints>
+                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                    <color key="textColor" red="0.69803921570000005" green="0.69803921570000005" blue="0.69803921570000005" alpha="1" colorSpace="calibratedRGB"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="网络安全等级保护备案号:42010043158-24001" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wc3-bW-281">
+                    <rect key="frame" x="39" y="816" width="303" height="20"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="20" id="bNI-MK-Ex8"/>
+                    </constraints>
                     <fontDescription key="fontDescription" type="system" pointSize="12"/>
-                    <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                    <color key="textColor" red="0.69803921570000005" green="0.69803921570000005" blue="0.69803921570000005" alpha="1" colorSpace="calibratedRGB"/>
                     <nil key="highlightedColor"/>
                 </label>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="增值电信业务经营许可证:鄂B2-20231246" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Mye-MS-osg">
+                    <rect key="frame" x="39" y="796" width="303" height="20"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="20" id="3gq-Hl-6Uf"/>
+                    </constraints>
+                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                    <color key="textColor" red="0.69803921570000005" green="0.69803921570000005" blue="0.69803921570000005" alpha="1" colorSpace="calibratedRGB"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ICP备案号:鄂ICP备2021020787号-5A" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="elj-Xx-PAq">
+                    <rect key="frame" x="39" y="776" width="224.5" height="20"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="20" id="5OE-CL-tuc"/>
+                    </constraints>
+                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                    <color key="textColor" red="0.69803921570000005" green="0.69803921570000005" blue="0.69803921570000005" alpha="1" colorSpace="calibratedRGB"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="check_detailImage" translatesAutoresizingMaskIntoConstraints="NO" id="IWT-MF-wFV">
+                    <rect key="frame" x="267.5" y="781" width="5" height="10"/>
+                </imageView>
+                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="w51-GE-XJy">
+                    <rect key="frame" x="39" y="766" width="233.5" height="40"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="40" id="XxL-EW-OBv"/>
+                    </constraints>
+                    <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
+                    <connections>
+                        <action selector="openWebView:" destination="iN0-l3-epB" eventType="touchUpInside" id="kPi-zL-ueU"/>
+                    </connections>
+                </button>
             </subviews>
-            <color key="backgroundColor" red="0.96470588235294119" green="0.97254901960784312" blue="0.97647058823529409" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+            <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
             <constraints>
-                <constraint firstItem="QYL-JY-4ew" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="15" id="6Se-bm-pwg"/>
-                <constraint firstItem="QYL-JY-4ew" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="14" id="FG5-oZ-Yh6"/>
-                <constraint firstItem="22H-v9-w8r" firstAttribute="top" secondItem="QYL-JY-4ew" secondAttribute="bottom" constant="20" id="ILu-zg-1dG"/>
-                <constraint firstAttribute="trailing" secondItem="QYL-JY-4ew" secondAttribute="trailing" constant="14" id="JEg-YC-TgD"/>
-                <constraint firstItem="22H-v9-w8r" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="50" id="lMW-TZ-D4t"/>
-                <constraint firstAttribute="trailing" secondItem="22H-v9-w8r" secondAttribute="trailing" constant="50" id="waq-zt-aic"/>
+                <constraint firstItem="wc3-bW-281" firstAttribute="leading" secondItem="Mye-MS-osg" secondAttribute="leading" id="29t-lA-OdR"/>
+                <constraint firstItem="Mye-MS-osg" firstAttribute="leading" secondItem="elj-Xx-PAq" secondAttribute="leading" id="3fh-cN-mHb"/>
+                <constraint firstAttribute="bottom" secondItem="RCe-Qt-jJF" secondAttribute="bottom" constant="40" id="3kr-YL-98f"/>
+                <constraint firstItem="QYL-JY-4ew" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="6Se-bm-pwg"/>
+                <constraint firstItem="elj-Xx-PAq" firstAttribute="leading" secondItem="w51-GE-XJy" secondAttribute="leading" id="9ca-J5-vpM"/>
+                <constraint firstItem="Mye-MS-osg" firstAttribute="top" secondItem="elj-Xx-PAq" secondAttribute="bottom" id="Cam-br-Qpj"/>
+                <constraint firstItem="wc3-bW-281" firstAttribute="top" secondItem="Mye-MS-osg" secondAttribute="bottom" id="D3r-0A-fjG"/>
+                <constraint firstItem="QYL-JY-4ew" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="FG5-oZ-Yh6"/>
+                <constraint firstItem="RCe-Qt-jJF" firstAttribute="top" secondItem="wc3-bW-281" secondAttribute="bottom" id="IJa-Yn-y4o"/>
+                <constraint firstItem="RCe-Qt-jJF" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="39" id="IKa-cz-GH3"/>
+                <constraint firstAttribute="trailing" secondItem="QYL-JY-4ew" secondAttribute="trailing" id="JEg-YC-TgD"/>
+                <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="RCe-Qt-jJF" secondAttribute="trailing" constant="15" id="OXD-19-s0w"/>
+                <constraint firstItem="IWT-MF-wFV" firstAttribute="trailing" secondItem="w51-GE-XJy" secondAttribute="trailing" id="PXo-KK-oKP"/>
+                <constraint firstItem="wc3-bW-281" firstAttribute="trailing" secondItem="Mye-MS-osg" secondAttribute="trailing" id="WKz-db-YKz"/>
+                <constraint firstItem="RCe-Qt-jJF" firstAttribute="leading" secondItem="wc3-bW-281" secondAttribute="leading" id="aZk-aK-JZI"/>
+                <constraint firstItem="IWT-MF-wFV" firstAttribute="leading" secondItem="elj-Xx-PAq" secondAttribute="trailing" constant="4" id="abb-6m-5lU"/>
+                <constraint firstItem="RCe-Qt-jJF" firstAttribute="trailing" secondItem="wc3-bW-281" secondAttribute="trailing" id="adO-nv-VSb"/>
+                <constraint firstItem="elj-Xx-PAq" firstAttribute="centerY" secondItem="IWT-MF-wFV" secondAttribute="centerY" id="oZu-8U-9d5"/>
+                <constraint firstItem="elj-Xx-PAq" firstAttribute="centerY" secondItem="w51-GE-XJy" secondAttribute="centerY" id="zLk-dc-8Bg"/>
             </constraints>
             <nil key="simulatedTopBarMetrics"/>
             <nil key="simulatedBottomBarMetrics"/>
             <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
             <connections>
+                <outlet property="bottomSpace" destination="3kr-YL-98f" id="0WP-mA-PBD"/>
                 <outlet property="emailLabel" destination="cnn-JH-ETQ" id="Tw7-E2-9rc"/>
                 <outlet property="phoneLabel" destination="v4W-Tc-Z7P" id="8Ny-d5-rLd"/>
                 <outlet property="versionLabel" destination="7sa-Ud-PzI" id="qhk-vt-cRf"/>
             </connections>
-            <point key="canvasLocation" x="132" y="79"/>
+            <point key="canvasLocation" x="131.8840579710145" y="78.348214285714278"/>
         </view>
     </objects>
     <resources>
-        <image name="klx_logo" width="135" height="40"/>
+        <image name="aboutUs_icon" width="140" height="140"/>
+        <image name="check_detailImage" width="5" height="10"/>
     </resources>
 </document>

+ 9 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Widget/Controller/ToneTuningViewController.m

@@ -159,6 +159,7 @@ static float correctTime = 0.5;
     BOOL isBack = [self isViewPopDismiss];
     if (isBack) {
         [METRONOME_MANAGER stopPlay];
+        [self removeTuner];
     }
 }
 
@@ -176,6 +177,14 @@ static float correctTime = 0.5;
     }
 }
 
+- (void)removeTuner {
+    if (_tuner) {
+        [_tuner freeTuner];
+        _tuner = nil;
+        NSLog(@"--- free tuner ");
+    }
+}
+
 - (CAGradientLayer *)createGradientLayerFromColor:(UIColor *)fromColor startPoint:(CGPoint)startPoint endColor:(UIColor *)endColor endPoint:(CGPoint)endPoint bounds:(CGRect)bounds {
     CAGradientLayer *gradientLayer = [CAGradientLayer layer];
     gradientLayer.colors = @[(__bridge id)fromColor.CGColor, (__bridge id)endColor.CGColor];

+ 10 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Widget/Model/TuningFunction/Tuner.swift

@@ -182,6 +182,16 @@ private let frequencies: [Float] = [
         engine!.stop()
     }
     
+    @objc public func freeTuner() {
+        microphone!.stop()
+        pitchTap!.stop()
+        engine!.stop()
+        microphone = nil
+        pitchTap = nil
+        silence = nil
+        engine = nil
+    }
+    
     func tap_handler(freq: [Float], amp: [Float]) -> Void {
         // Reduces sensitivity to background noise to prevent random / fluctuating data.
         guard amp[0] > 0.1 else { return }

+ 48 - 48
KulexiuForTeacher/Pods/Pods.xcodeproj/project.pbxproj

@@ -1476,21 +1476,21 @@
 		BBFC886BE411643AB497EFBE521E8051 /* TUISearchDataProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F2E93393755FF777528ED8DD15ECDDA /* TUISearchDataProvider.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
 		BC02F0668456CF63613403DCE730DF33 /* UIColor+TUIHexColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 223FD142167DB0EB62462BC9E5246B8E /* UIColor+TUIHexColor.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
 		BC0D261DD177DBE4F45A2F3739CB8BE9 /* RACEXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = BD80263C8C2D9E0C154A009CD3F0C149 /* RACEXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
-		BC15FCB62B8C79D900A3BED1 /* TXChatMusicMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BC15FCB22B8C79D900A3BED1 /* TXChatMusicMessage.m */; };
-		BC15FCB72B8C79D900A3BED1 /* TXChatMusicMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = BC15FCB32B8C79D900A3BED1 /* TXChatMusicMessage.h */; };
-		BC15FCB82B8C79D900A3BED1 /* TXLiveShareMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = BC15FCB42B8C79D900A3BED1 /* TXLiveShareMessage.h */; };
-		BC15FCB92B8C79D900A3BED1 /* TXLiveShareMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BC15FCB52B8C79D900A3BED1 /* TXLiveShareMessage.m */; };
-		BC15FCC22B8C79EC00A3BED1 /* TXLiveShareCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BC15FCBA2B8C79EB00A3BED1 /* TXLiveShareCell.m */; };
-		BC15FCC32B8C79EC00A3BED1 /* TXShareLiveCellContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = BC15FCBB2B8C79EB00A3BED1 /* TXShareLiveCellContentView.h */; };
-		BC15FCC42B8C79EC00A3BED1 /* TXShareMusicCellContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = BC15FCBC2B8C79EB00A3BED1 /* TXShareMusicCellContentView.h */; };
-		BC15FCC52B8C79EC00A3BED1 /* TXChatMusicShareCell.h in Headers */ = {isa = PBXBuildFile; fileRef = BC15FCBD2B8C79EC00A3BED1 /* TXChatMusicShareCell.h */; };
-		BC15FCC62B8C79EC00A3BED1 /* TXLiveShareCell.h in Headers */ = {isa = PBXBuildFile; fileRef = BC15FCBE2B8C79EC00A3BED1 /* TXLiveShareCell.h */; };
-		BC15FCC72B8C79EC00A3BED1 /* TXChatMusicShareCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BC15FCBF2B8C79EC00A3BED1 /* TXChatMusicShareCell.m */; };
-		BC15FCC82B8C79EC00A3BED1 /* TXShareLiveCellContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC15FCC02B8C79EC00A3BED1 /* TXShareLiveCellContentView.m */; };
-		BC15FCC92B8C79EC00A3BED1 /* TXShareMusicCellContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC15FCC12B8C79EC00A3BED1 /* TXShareMusicCellContentView.m */; };
 		BC1EDD9E04A0BADA5B6044EA69BFF1B2 /* KS3UploadPartRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = B2B629C4D21E5F7D92B27E0CD38FB132 /* KS3UploadPartRequest.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
 		BC7E44A4D37A2D3F12B5591BF89C156F /* TUIFileViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = C80F5E53353FDFC598414654F980EB14 /* TUIFileViewController.h */; settings = {ATTRIBUTES = (Project, ); }; };
 		BCC1FA5B68BCA0938ADCA00D436CBC64 /* JXCategoryImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 24038FE80E2EB4BAF38D56C93A64A672 /* JXCategoryImageView.h */; settings = {ATTRIBUTES = (Project, ); }; };
+		BCD6851C2B95AF5B0033CA25 /* TXChatMusicShareCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD685142B95AF5A0033CA25 /* TXChatMusicShareCell.m */; };
+		BCD6851D2B95AF5B0033CA25 /* TXShareLiveCellContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = BCD685152B95AF5A0033CA25 /* TXShareLiveCellContentView.h */; };
+		BCD6851E2B95AF5B0033CA25 /* TXShareMusicCellContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = BCD685162B95AF5A0033CA25 /* TXShareMusicCellContentView.h */; };
+		BCD6851F2B95AF5B0033CA25 /* TXShareMusicCellContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD685172B95AF5A0033CA25 /* TXShareMusicCellContentView.m */; };
+		BCD685202B95AF5B0033CA25 /* TXLiveShareCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD685182B95AF5A0033CA25 /* TXLiveShareCell.m */; };
+		BCD685212B95AF5B0033CA25 /* TXLiveShareCell.h in Headers */ = {isa = PBXBuildFile; fileRef = BCD685192B95AF5B0033CA25 /* TXLiveShareCell.h */; };
+		BCD685222B95AF5B0033CA25 /* TXChatMusicShareCell.h in Headers */ = {isa = PBXBuildFile; fileRef = BCD6851A2B95AF5B0033CA25 /* TXChatMusicShareCell.h */; };
+		BCD685232B95AF5B0033CA25 /* TXShareLiveCellContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD6851B2B95AF5B0033CA25 /* TXShareLiveCellContentView.m */; };
+		BCD685282B95AF6F0033CA25 /* TXLiveShareMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD685242B95AF6E0033CA25 /* TXLiveShareMessage.m */; };
+		BCD685292B95AF6F0033CA25 /* TXChatMusicMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = BCD685252B95AF6E0033CA25 /* TXChatMusicMessage.h */; };
+		BCD6852A2B95AF6F0033CA25 /* TXChatMusicMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD685262B95AF6E0033CA25 /* TXChatMusicMessage.m */; };
+		BCD6852B2B95AF6F0033CA25 /* TXLiveShareMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = BCD685272B95AF6E0033CA25 /* TXLiveShareMessage.h */; };
 		BCFCF49801DD5812B6D6934246E16A7D /* WhiteDisplayer.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEE0B84FC99F9BC2EAEEC98C4E664A1 /* WhiteDisplayer.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
 		BD073687BD43B037C23C71DE00164811 /* TUIEvaluationCellData.m in Sources */ = {isa = PBXBuildFile; fileRef = 4125024796E27136E6BF86CE87EBADDA /* TUIEvaluationCellData.m */; settings = {COMPILER_FLAGS = "-w -Xanalyzer -analyzer-disable-all-checks"; }; };
 		BD0E216CB170D951A5DFED540E1BE988 /* KS3MD5Util.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D500853E6F3F343F03C406000C81E11 /* KS3MD5Util.h */; settings = {ATTRIBUTES = (Project, ); }; };
@@ -4080,21 +4080,21 @@
 		BC0E03AF41F652ABD10DEAF4A5F2BF58 /* KS3GetACLResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3GetACLResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetACLResponse.h; sourceTree = "<group>"; };
 		BC0F28A994A90A006A29D18A730FE791 /* WhiteRoomCallbacks+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "WhiteRoomCallbacks+Private.h"; path = "Whiteboard/Classes/Room/WhiteRoomCallbacks+Private.h"; sourceTree = "<group>"; };
 		BC12A61332E30620801BC9D57096A74D /* QCloudHTTPRequest_RequestID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudHTTPRequest_RequestID.h; path = QCloudCore/Classes/Base/QCLOUDRestNet/CoreRequest/QCloudHTTPRequest_RequestID.h; sourceTree = "<group>"; };
-		BC15FCB22B8C79D900A3BED1 /* TXChatMusicMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TXChatMusicMessage.m; path = ../../../../../Desktop/TXChatMusicMessage.m; sourceTree = "<group>"; };
-		BC15FCB32B8C79D900A3BED1 /* TXChatMusicMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TXChatMusicMessage.h; path = ../../../../../Desktop/TXChatMusicMessage.h; sourceTree = "<group>"; };
-		BC15FCB42B8C79D900A3BED1 /* TXLiveShareMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TXLiveShareMessage.h; path = ../../../../../Desktop/TXLiveShareMessage.h; sourceTree = "<group>"; };
-		BC15FCB52B8C79D900A3BED1 /* TXLiveShareMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TXLiveShareMessage.m; path = ../../../../../Desktop/TXLiveShareMessage.m; sourceTree = "<group>"; };
-		BC15FCBA2B8C79EB00A3BED1 /* TXLiveShareCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TXLiveShareCell.m; path = ../../../../../Desktop/TXLiveShareCell.m; sourceTree = "<group>"; };
-		BC15FCBB2B8C79EB00A3BED1 /* TXShareLiveCellContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TXShareLiveCellContentView.h; path = ../../../../../Desktop/TXShareLiveCellContentView.h; sourceTree = "<group>"; };
-		BC15FCBC2B8C79EB00A3BED1 /* TXShareMusicCellContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TXShareMusicCellContentView.h; path = ../../../../../Desktop/TXShareMusicCellContentView.h; sourceTree = "<group>"; };
-		BC15FCBD2B8C79EC00A3BED1 /* TXChatMusicShareCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TXChatMusicShareCell.h; path = ../../../../../Desktop/TXChatMusicShareCell.h; sourceTree = "<group>"; };
-		BC15FCBE2B8C79EC00A3BED1 /* TXLiveShareCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TXLiveShareCell.h; path = ../../../../../Desktop/TXLiveShareCell.h; sourceTree = "<group>"; };
-		BC15FCBF2B8C79EC00A3BED1 /* TXChatMusicShareCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TXChatMusicShareCell.m; path = ../../../../../Desktop/TXChatMusicShareCell.m; sourceTree = "<group>"; };
-		BC15FCC02B8C79EC00A3BED1 /* TXShareLiveCellContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TXShareLiveCellContentView.m; path = ../../../../../Desktop/TXShareLiveCellContentView.m; sourceTree = "<group>"; };
-		BC15FCC12B8C79EC00A3BED1 /* TXShareMusicCellContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TXShareMusicCellContentView.m; path = ../../../../../Desktop/TXShareMusicCellContentView.m; sourceTree = "<group>"; };
 		BC1656A9A5F7B44608A658DC1A25B651 /* UIButton+RACCommandSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+RACCommandSupport.m"; path = "ReactiveObjC/UIButton+RACCommandSupport.m"; sourceTree = "<group>"; };
 		BC84A68BE4D1593FFAE373F032ED9275 /* KS3BucketNameUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3BucketNameUtilities.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketNameUtilities.m; sourceTree = "<group>"; };
 		BCD0C2221E5611817DB49BBD62769A3D /* V2TIMManager+Group.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "V2TIMManager+Group.h"; path = "ImSDK_Plus.framework/Headers/V2TIMManager+Group.h"; sourceTree = "<group>"; };
+		BCD685142B95AF5A0033CA25 /* TXChatMusicShareCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TXChatMusicShareCell.m; sourceTree = "<group>"; };
+		BCD685152B95AF5A0033CA25 /* TXShareLiveCellContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TXShareLiveCellContentView.h; sourceTree = "<group>"; };
+		BCD685162B95AF5A0033CA25 /* TXShareMusicCellContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TXShareMusicCellContentView.h; sourceTree = "<group>"; };
+		BCD685172B95AF5A0033CA25 /* TXShareMusicCellContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TXShareMusicCellContentView.m; sourceTree = "<group>"; };
+		BCD685182B95AF5A0033CA25 /* TXLiveShareCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TXLiveShareCell.m; sourceTree = "<group>"; };
+		BCD685192B95AF5B0033CA25 /* TXLiveShareCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TXLiveShareCell.h; sourceTree = "<group>"; };
+		BCD6851A2B95AF5B0033CA25 /* TXChatMusicShareCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TXChatMusicShareCell.h; sourceTree = "<group>"; };
+		BCD6851B2B95AF5B0033CA25 /* TXShareLiveCellContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TXShareLiveCellContentView.m; sourceTree = "<group>"; };
+		BCD685242B95AF6E0033CA25 /* TXLiveShareMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TXLiveShareMessage.m; sourceTree = "<group>"; };
+		BCD685252B95AF6E0033CA25 /* TXChatMusicMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TXChatMusicMessage.h; sourceTree = "<group>"; };
+		BCD685262B95AF6E0033CA25 /* TXChatMusicMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TXChatMusicMessage.m; sourceTree = "<group>"; };
+		BCD685272B95AF6E0033CA25 /* TXLiveShareMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TXLiveShareMessage.h; sourceTree = "<group>"; };
 		BCEB404A10891B21E091409F59F9A4FB /* TUISearchResultHeaderFooterView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = TUISearchResultHeaderFooterView.h; path = TUISearch/UI_Classic/UI/TUISearchResultHeaderFooterView.h; sourceTree = "<group>"; };
 		BCF9059E3F901E84D23D10BA238CE105 /* RACEmptySignal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = RACEmptySignal.m; path = ReactiveObjC/RACEmptySignal.m; sourceTree = "<group>"; };
 		BD37A75AA78D79551CFE7DA130084907 /* QCloudUniversalPathFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCloudUniversalPathFactory.h; path = QCloudCore/Classes/Base/PathUtilities/QCloudUniversalPathFactory.h; sourceTree = "<group>"; };
@@ -5659,10 +5659,10 @@
 				28025B8EAEEB026C5A5DC7931435B4DE /* TUILinkCellData.m */,
 				F696902026AE1EE678A6186F53963265 /* TUIOrderCellData.h */,
 				6C90ACF926D2F8869C3ABC6B16BAA24B /* TUIOrderCellData.m */,
-				BC15FCB32B8C79D900A3BED1 /* TXChatMusicMessage.h */,
-				BC15FCB22B8C79D900A3BED1 /* TXChatMusicMessage.m */,
-				BC15FCB42B8C79D900A3BED1 /* TXLiveShareMessage.h */,
-				BC15FCB52B8C79D900A3BED1 /* TXLiveShareMessage.m */,
+				BCD685252B95AF6E0033CA25 /* TXChatMusicMessage.h */,
+				BCD685262B95AF6E0033CA25 /* TXChatMusicMessage.m */,
+				BCD685272B95AF6E0033CA25 /* TXLiveShareMessage.h */,
+				BCD685242B95AF6E0033CA25 /* TXLiveShareMessage.m */,
 			);
 			name = Custom;
 			sourceTree = "<group>";
@@ -6465,14 +6465,14 @@
 				B85663B9139242775AC1BFF08842439C /* TUILinkCell.m */,
 				BAADB3F2F44951C8CCB6AE43B1F75D40 /* TUIOrderCell.h */,
 				F3B20EBCF86A08EAF2A66D96F7D41A86 /* TUIOrderCell.m */,
-				BC15FCBD2B8C79EC00A3BED1 /* TXChatMusicShareCell.h */,
-				BC15FCBF2B8C79EC00A3BED1 /* TXChatMusicShareCell.m */,
-				BC15FCBE2B8C79EC00A3BED1 /* TXLiveShareCell.h */,
-				BC15FCBA2B8C79EB00A3BED1 /* TXLiveShareCell.m */,
-				BC15FCBB2B8C79EB00A3BED1 /* TXShareLiveCellContentView.h */,
-				BC15FCC02B8C79EC00A3BED1 /* TXShareLiveCellContentView.m */,
-				BC15FCBC2B8C79EB00A3BED1 /* TXShareMusicCellContentView.h */,
-				BC15FCC12B8C79EC00A3BED1 /* TXShareMusicCellContentView.m */,
+				BCD6851A2B95AF5B0033CA25 /* TXChatMusicShareCell.h */,
+				BCD685142B95AF5A0033CA25 /* TXChatMusicShareCell.m */,
+				BCD685192B95AF5B0033CA25 /* TXLiveShareCell.h */,
+				BCD685182B95AF5A0033CA25 /* TXLiveShareCell.m */,
+				BCD685152B95AF5A0033CA25 /* TXShareLiveCellContentView.h */,
+				BCD6851B2B95AF5B0033CA25 /* TXShareLiveCellContentView.m */,
+				BCD685162B95AF5A0033CA25 /* TXShareMusicCellContentView.h */,
+				BCD685172B95AF5A0033CA25 /* TXShareMusicCellContentView.m */,
 			);
 			name = Custom;
 			sourceTree = "<group>";
@@ -9538,7 +9538,6 @@
 				4BE554DD76758CE24C10CFAAF2C5F178 /* if_rom.h in Headers */,
 				11C8DC2451E231F529EADBECF557E2CD /* interf_dec.h in Headers */,
 				E5B8B4D884F9CA5A1B28F678299F8AFC /* interf_enc.h in Headers */,
-				BC15FCB82B8C79D900A3BED1 /* TXLiveShareMessage.h in Headers */,
 				7243622D0298B64FF90286BA7413B062 /* TUIAIDenoiseSignatureManager.h in Headers */,
 				F46D41EE8237A2D4FBCF6C9351B602FC /* TUIAudioRecorder.h in Headers */,
 				3BF38A7447F901BAEFF08D985911849E /* TUIBaseChatViewController.h in Headers */,
@@ -9560,11 +9559,10 @@
 				F642CFCBFD7BE9E8C2FC8E294EB7C6BC /* TUIChatCallingDataProvider.h in Headers */,
 				0311571B707403DB9813B8D79E80C842 /* TUIChatConfig.h in Headers */,
 				173CD5963FE662DEBA0A90A852A1AE2F /* TUIChatContextEmojiDetailController.h in Headers */,
-				BC15FCC52B8C79EC00A3BED1 /* TXChatMusicShareCell.h in Headers */,
 				17FB9D0F3F4D25A6BE093A682FA4F536 /* TUIChatConversationModel.h in Headers */,
-				BC15FCC32B8C79EC00A3BED1 /* TXShareLiveCellContentView.h in Headers */,
+				BCD6851D2B95AF5B0033CA25 /* TXShareLiveCellContentView.h in Headers */,
 				D08B6C20F4841E26976B6FC0B5BFA9B3 /* TUIChatDataProvider.h in Headers */,
-				BC15FCC42B8C79EC00A3BED1 /* TXShareMusicCellContentView.h in Headers */,
+				BCD6851E2B95AF5B0033CA25 /* TXShareMusicCellContentView.h in Headers */,
 				6901CAAB179521CBD976971A6C090601 /* TUIChatDefine.h in Headers */,
 				70924931FE2602BBEBC8215E2086E786 /* TUIChatExtensionObserver.h in Headers */,
 				0897B80395BD6B7B9DE134BDEB2A79A0 /* TUIChatFlexViewController.h in Headers */,
@@ -9584,6 +9582,7 @@
 				318FC0F20D258D310889C13589D2C30E /* TUIEmojiCell.h in Headers */,
 				14AB533A8FE2F3C99CF64B6F292F65BD /* TUIEmojiCellData.h in Headers */,
 				2AF84042773DF34C694A75962B349889 /* TUIEvaluationCell.h in Headers */,
+				BCD685222B95AF5B0033CA25 /* TXChatMusicShareCell.h in Headers */,
 				53D212A610CDD3A160FCD66019C6D232 /* TUIEvaluationCellData.h in Headers */,
 				7B0503DC51EF211758EF308B706776BC /* TUIFaceMessageCell.h in Headers */,
 				824162C7AE8AAB92E7050C3440487028 /* TUIFaceMessageCellData.h in Headers */,
@@ -9599,6 +9598,7 @@
 				31611E2FA624896F644A85D986289CFE /* TUIGroupPendencyController.h in Headers */,
 				635295C2E354B4C56C72BBC06FB4FF10 /* TUIGroupPendencyDataProvider.h in Headers */,
 				3C15FF48B930CD45B168E4B1E2F59A6E /* TUIImageCollectionCell.h in Headers */,
+				BCD6852B2B95AF6F0033CA25 /* TXLiveShareMessage.h in Headers */,
 				3E76620685D24830966474DDF68BA313 /* TUIImageMessageCell.h in Headers */,
 				0FFD4F8104CFBEE2F240B6F43C977BF9 /* TUIImageMessageCellData.h in Headers */,
 				1A8976CC0EC727AAF54BBE647BFB1AA8 /* TUIImageReplyQuoteView.h in Headers */,
@@ -9644,22 +9644,22 @@
 				2376C01A15E99CB174E9A4D7C8940BC7 /* TUIRecordView.h in Headers */,
 				F4781B480AC66C24BAA034F2AB016994 /* TUIReferenceMessageCell.h in Headers */,
 				6352D376CF5FA23EEEF5DC9015FEFAE4 /* TUIRepliesDetailViewController.h in Headers */,
-				BC15FCB72B8C79D900A3BED1 /* TXChatMusicMessage.h in Headers */,
 				0D365BD80E26D8AAA019407CC59AE654 /* TUIReplyMessageCell.h in Headers */,
 				989B78EF1B5FD199411D5C74F2942C20 /* TUIReplyMessageCellData.h in Headers */,
 				F885D82803590DEDE9C0716C7531DE84 /* TUIReplyPreviewBar.h in Headers */,
 				6DE377CE153049B717AB2BBEAFD0C46E /* TUIReplyPreviewData.h in Headers */,
 				36809BA9B53B7ACC046324F36A63DFDE /* TUIReplyQuoteView.h in Headers */,
+				BCD685292B95AF6F0033CA25 /* TXChatMusicMessage.h in Headers */,
 				226AA246065B9AC707D44E4E841ED1D4 /* TUIReplyQuoteViewData.h in Headers */,
 				C251EE90B225E4288FE75FB00BFBA74D /* TUIResponderTextView.h in Headers */,
 				DC2932D6A8AC1C5338C8F30FEC91C831 /* TUITextMessageCell.h in Headers */,
-				BC15FCC62B8C79EC00A3BED1 /* TXLiveShareCell.h in Headers */,
 				37DE9F10CDB049CF4A3ADC40BBF1365F /* TUITextMessageCellData.h in Headers */,
 				7FFC55A7F1BFC19EBFADCFA11C2E4FDC /* TUITextReplyQuoteView.h in Headers */,
 				B4C3C9A88B016A0940BA65026F8357F4 /* TUITextReplyQuoteViewData.h in Headers */,
 				A1DAE44AF674D08FFE6BE5908294BEF9 /* TUITypingStatusCellData.h in Headers */,
 				63869C7A5976C25FCF3A6D98DE6C37AE /* TUIVideoCollectionCell.h in Headers */,
 				F28FE7B587EE775F09340D0F787602DC /* TUIVideoMessageCell.h in Headers */,
+				BCD685212B95AF5B0033CA25 /* TXLiveShareCell.h in Headers */,
 				8B20E740A120BC935D21607CBDBFC9D6 /* TUIVideoMessageCellData.h in Headers */,
 				18AF494630ADD9E25D9A88278FDC57CA /* TUIVideoReplyQuoteView.h in Headers */,
 				C0910552DF03EEF98F1CBE1599EF6E46 /* TUIVideoReplyQuoteViewData.h in Headers */,
@@ -11328,7 +11328,6 @@
 				C41036070B730A9CC6EF54866263570B /* TUIBaseChatViewController.m in Sources */,
 				1116691716B2330264BC7F2604913079 /* TUIBaseMessageController.m in Sources */,
 				C98CDCDC7088846FF8B27C032C370AD8 /* TUIC2CChatViewController.m in Sources */,
-				BC15FCC22B8C79EC00A3BED1 /* TXLiveShareCell.m in Sources */,
 				EF7A37555016FD882639CA5AF0BE10D4 /* TUICameraManager.m in Sources */,
 				AC78C142ADF9E91DC3097A0150D2445E /* TUICameraView.m in Sources */,
 				6B67A5E139B15426C3AA47802DC1E207 /* TUICameraViewController.m in Sources */,
@@ -11345,7 +11344,6 @@
 				050CE3CC5FB8C9592820D05B017C61E2 /* TUIChatDataProvider.m in Sources */,
 				7DD432699FF7B6020101A91A09AD7FCE /* TUIChatExtensionObserver.m in Sources */,
 				4A0D9F391A9A967E1AA8CD319AD63987 /* TUIChatFlexViewController.m in Sources */,
-				BC15FCB92B8C79D900A3BED1 /* TXLiveShareMessage.m in Sources */,
 				B3B5924E8AD1B4CD61C0F5E73942EDB4 /* TUIChatMediaDataProvider.m in Sources */,
 				9F9791EC24D55E77C7A15D2198D6018B /* TUIChatModifyMessageHelper.m in Sources */,
 				B8EE7E65F11D2FCA330A576EE8ABA28B /* TUIChatObjectFactory.m in Sources */,
@@ -11353,7 +11351,6 @@
 				42714285ACD208E03D7007F88231C453 /* TUIChatPopContextController.m in Sources */,
 				4C13DE399D0A96C76E30C6D4C469D094 /* TUIChatPopContextRecentView.m in Sources */,
 				6423D9C29ED0A8BD71C802EBED301CA3 /* TUIChatPopEmojiView.m in Sources */,
-				BC15FCC82B8C79EC00A3BED1 /* TXShareLiveCellContentView.m in Sources */,
 				27D21E1B503D861DFC43853998329A5F /* TUIChatPopMenu.m in Sources */,
 				0DFE265017E3B0C2D5E0401E5D38768F /* TUIChatPopRecentView.m in Sources */,
 				CE27EBC962F3EAA7C8ABE47D3234CDC6 /* TUIChatService.m in Sources */,
@@ -11386,7 +11383,6 @@
 				C3B3FD1CB84BA85FBE9077197F17B02C /* TUIInputController.m in Sources */,
 				1B8282D64A5A9B51AD1D4EFA55E4BADD /* TUIInputMoreCell.m in Sources */,
 				89C86EB7790DEE0F3FBE4386F36E41C4 /* TUIInputMoreCellData.m in Sources */,
-				BC15FCC72B8C79EC00A3BED1 /* TXChatMusicShareCell.m in Sources */,
 				22D6C9674A2CAC045F81A88A0C1B372A /* TUIJoinGroupMessageCell.m in Sources */,
 				7FB59612A29F79223136DB0E14DF966E /* TUIJoinGroupMessageCellData.m in Sources */,
 				81FF9B7403E7D023F202B086E1F7D8EC /* TUILinkCell.m in Sources */,
@@ -11395,6 +11391,7 @@
 				6D27AC0CBA70F03AF23F15024C312EAA /* TUIMediaView.m in Sources */,
 				19B17A6608B81FF1300E1373B26E5D5B /* TUIMemberCell.m in Sources */,
 				C92ACE0D246113A6BC954DD6CBAC21AB /* TUIMemberCellData.m in Sources */,
+				BCD6851F2B95AF5B0033CA25 /* TXShareMusicCellContentView.m in Sources */,
 				D9C78BF60D17437FF71314694197FBA4 /* TUIMenuCell.m in Sources */,
 				F4320943034E86632201AE14CDED54C9 /* TUIMenuCellData.m in Sources */,
 				4869F0D232BB6BB259E5F888520161E3 /* TUIMenuView.m in Sources */,
@@ -11405,7 +11402,9 @@
 				20D76E32732529034EA394636A554BC4 /* TUIMergeReplyQuoteViewData.m in Sources */,
 				D55884723FB3243913D55F9EF0363170 /* TUIMessageBaseDataProvider.m in Sources */,
 				313CEE0901CE1A6CE56C22586B88F10F /* TUIMessageBaseMediaDataProvider.m in Sources */,
+				BCD6851C2B95AF5B0033CA25 /* TXChatMusicShareCell.m in Sources */,
 				6840F77C14F926783F70D334D2F02EB6 /* TUIMessageCellConfig.m in Sources */,
+				BCD685232B95AF5B0033CA25 /* TXShareLiveCellContentView.m in Sources */,
 				8C7C36E099414752AE247BEEB2FBFB3E /* TUIMessageController.m in Sources */,
 				2BCE963710C6CF3031B910B57075FBD0 /* TUIMessageDataProvider.m in Sources */,
 				51D478E46EBDDDBE1E86B7F9C7EAB81B /* TUIMessageDataProvider+MessageDeal.m in Sources */,
@@ -11413,6 +11412,7 @@
 				53CFB0101226D88AA41EDFB62044586A /* TUIMessageMediaDataProvider.m in Sources */,
 				44BEF10B043179E0D2A34B4612206D4E /* TUIMessageMultiChooseView.m in Sources */,
 				0CAA0A1DD9D1A42F501DFDA84C47D252 /* TUIMessageProgressManager.m in Sources */,
+				BCD685202B95AF5B0033CA25 /* TXLiveShareCell.m in Sources */,
 				F95F241BFB93AD8227BE96F0BEF6D600 /* TUIMessageReadViewController.m in Sources */,
 				2C7FCC397864E6AB56F61816A44123ED /* TUIMessageSearchDataProvider.m in Sources */,
 				7924408C0BEBD717F61976B1705D6950 /* TUIMoreView.m in Sources */,
@@ -11422,13 +11422,13 @@
 				A81F6E76952F13E8E98A6053A7F2B4A0 /* TUIOrderCellData.m in Sources */,
 				66D329DCD74091BFC7CBC0DAB7F5CEFB /* TUIRecordView.m in Sources */,
 				B0DAD5D3ECA78BEDA20AB42CE1EB7B22 /* TUIReferenceMessageCell.m in Sources */,
+				BCD685282B95AF6F0033CA25 /* TXLiveShareMessage.m in Sources */,
 				0FEC82343921CCF89CD889B44B3A8CA7 /* TUIRepliesDetailViewController.m in Sources */,
 				CC38715025D28E08F771A0501AF1E00B /* TUIReplyMessageCell.m in Sources */,
 				EE24FC92C3F32BC82A77803E0717EF53 /* TUIReplyMessageCellData.m in Sources */,
 				6593C64BE9CA983C0604909038CF36AB /* TUIReplyPreviewBar.m in Sources */,
 				4C080268C01D91A6B7D5E4BE3E21F367 /* TUIReplyPreviewData.m in Sources */,
 				E3E638A13C97960206257F937B7576D9 /* TUIReplyQuoteView.m in Sources */,
-				BC15FCC92B8C79EC00A3BED1 /* TXShareMusicCellContentView.m in Sources */,
 				C66C5695E939EBD07487634B57D7387F /* TUIReplyQuoteViewData.m in Sources */,
 				70060CD8CD001B8548755C54502C9C1D /* TUIResponderTextView.m in Sources */,
 				8F4F53F01883DD4255A364F18C7A7940 /* TUITextMessageCell.m in Sources */,
@@ -11444,10 +11444,10 @@
 				B24CC0AFFED39A37EABEC6F34701E5E7 /* TUIVoiceMessageCell.m in Sources */,
 				AD01F68F346273C6CFDC0619100F64F7 /* TUIVoiceMessageCellData.m in Sources */,
 				33EBBA5FE85A7AE34F9D379E27D5543B /* TUIVoiceReplyQuoteView.m in Sources */,
+				BCD6852A2B95AF6F0033CA25 /* TXChatMusicMessage.m in Sources */,
 				6CA8F106AE7EA501343EAAF233AD7993 /* TUIVoiceReplyQuoteViewData.m in Sources */,
 				38BC59ECC19D83ED7A3F80F97DFCC535 /* UIAlertController+TUICustomStyle.m in Sources */,
 				4960603A066943905C35DD3577DC37EE /* UIImage+ImageEffects.m in Sources */,
-				BC15FCB62B8C79D900A3BED1 /* TXChatMusicMessage.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};