diff --git a/iOS/Demo/.gitignore b/iOS/Demo/.gitignore deleted file mode 100644 index 8b137891..00000000 --- a/iOS/Demo/.gitignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/iOS/Demo/Podfile b/iOS/Demo/Podfile deleted file mode 100644 index 56e7cc28..00000000 --- a/iOS/Demo/Podfile +++ /dev/null @@ -1,48 +0,0 @@ -# Uncomment the next line to define a global platform for your project -platform :ios, '9.0' - -def tx_im - pod 'TXIMSDK_iOS' -end - -def swift_pods - pod 'RxSwift' - pod 'RxCocoa' - pod 'SnapKit' - pod 'Alamofire' - pod 'Toast-Swift' - pod 'Material' - pod 'NVActivityIndicatorView' -end - -def common_pods_all - pod 'Bugly' # 检测bug使用,非必须依赖 - pod 'SDWebImage' - pod 'Masonry' - pod 'MBProgressHUD', '~> 1.2.0' - pod 'MJExtension' - pod 'MJRefresh' - pod 'AFNetworking' - pod 'BlocksKit', '~> 2.2.5' - pod 'CWStatusBarNotification', '~> 2.3.5' -end - -def common_pods_smart - pod 'CWStatusBarNotification', '~> 2.3.5' -end - -target 'TXLiteAVDemo_Smart' do - # Comment the next line if you don't want to use dynamic frameworks - # Pods for TXLiteAVDemo_Smart - common_pods_all - common_pods_smart - tx_im - swift_pods -end - -target 'TXReplaykitUpload_Smart' do - # Comment the next line if you don't want to use dynamic frameworks - - # Pods for TXReplaykitUpload_Smart -end - diff --git a/iOS/Demo/Podfile.lock b/iOS/Demo/Podfile.lock deleted file mode 100644 index 85ff6605..00000000 --- a/iOS/Demo/Podfile.lock +++ /dev/null @@ -1,133 +0,0 @@ -PODS: - - AFNetworking (4.0.0): - - AFNetworking/NSURLSession (= 4.0.0) - - AFNetworking/Reachability (= 4.0.0) - - AFNetworking/Security (= 4.0.0) - - AFNetworking/Serialization (= 4.0.0) - - AFNetworking/UIKit (= 4.0.0) - - AFNetworking/NSURLSession (4.0.0): - - AFNetworking/Reachability - - AFNetworking/Security - - AFNetworking/Serialization - - AFNetworking/Reachability (4.0.0) - - AFNetworking/Security (4.0.0) - - AFNetworking/Serialization (4.0.0) - - AFNetworking/UIKit (4.0.0): - - AFNetworking/NSURLSession - - Alamofire (4.9.1) - - Bugly (2.5.2) - - CWStatusBarNotification (2.3.5) - - Masonry (1.1.0) - - Material (3.1.8): - - Material/Core (= 3.1.8) - - Material/Core (3.1.8): - - Motion (~> 3.1.1) - - MBProgressHUD (1.2.0) - - MJExtension (3.2.1) - - MJRefresh (3.3.1) - - Motion (3.1.3): - - Motion/Core (= 3.1.3) - - Motion/Core (3.1.3) - - NVActivityIndicatorView (4.8.0): - - NVActivityIndicatorView/Presenter (= 4.8.0) - - NVActivityIndicatorView/Presenter (4.8.0) - - RxCocoa (5.1.1): - - RxRelay (~> 5) - - RxSwift (~> 5) - - RxRelay (5.1.1): - - RxSwift (~> 5) - - RxSwift (5.1.1) - - SDWebImage (5.6.1): - - SDWebImage/Core (= 5.6.1) - - SDWebImage/Core (5.6.1) - - SnapKit (4.2.0) - - SuperPlayer/Enterprise (3.1.1): - - AFNetworking - - Masonry - - SDWebImage - - SuperPlayer/Player (3.1.1): - - AFNetworking - - Masonry - - SDWebImage - - SuperPlayer/Professional (3.1.1): - - AFNetworking - - Masonry - - SDWebImage - - SuperPlayer/UGC (3.1.1): - - AFNetworking - - Masonry - - SDWebImage - - Toast-Swift (5.0.1) - - TXIMSDK_iOS (4.9.1) - -DEPENDENCIES: - - AFNetworking - - Alamofire - - Bugly - - CWStatusBarNotification (~> 2.3.5) - - Masonry - - Material - - MBProgressHUD (~> 1.2.0) - - MJExtension - - MJRefresh - - NVActivityIndicatorView - - RxCocoa - - RxSwift - - SDWebImage - - SnapKit - - SuperPlayer/Enterprise (from `./TXLiteAVDemo/SuperPlayerKit/SuperPlayer.podspec`) - - SuperPlayer/Player (from `./TXLiteAVDemo/SuperPlayerKit/SuperPlayer.podspec`) - - SuperPlayer/Professional (from `./TXLiteAVDemo/SuperPlayerKit/SuperPlayer.podspec`) - - SuperPlayer/UGC (from `./TXLiteAVDemo/SuperPlayerKit/SuperPlayer.podspec`) - - Toast-Swift - - TXIMSDK_iOS (= 4.9.1) - -SPEC REPOS: - trunk: - - AFNetworking - - Alamofire - - Bugly - - CWStatusBarNotification - - Masonry - - Material - - MBProgressHUD - - MJExtension - - MJRefresh - - Motion - - NVActivityIndicatorView - - RxCocoa - - RxRelay - - RxSwift - - SDWebImage - - SnapKit - - Toast-Swift - - TXIMSDK_iOS - -EXTERNAL SOURCES: - SuperPlayer: - :path: "./TXLiteAVDemo/SuperPlayerKit/SuperPlayer.podspec" - -SPEC CHECKSUMS: - AFNetworking: d9fdf484a3c723ec3c558a41cc5754c7e845ee77 - Alamofire: 85e8a02c69d6020a0d734f6054870d7ecb75cf18 - Bugly: dbac48b55ad469a97cc4321045cd50df8f63d44f - CWStatusBarNotification: 3d2738b25c3207f60cc50201388d3c96182545ff - Masonry: 678fab65091a9290e40e2832a55e7ab731aad201 - Material: a2a3f400a3b549d53ef89e56c58c4535b29db387 - MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406 - MJExtension: 635f2c663dcb1bf76fa4b715b2570a5710aec545 - MJRefresh: eeda70fbf0ad277f3178cef1cd0c3532591d6237 - Motion: cf1e060e489f6661126374d5c60dbd2ed991605c - NVActivityIndicatorView: d24b7ebcf80af5dcd994adb650e2b6c93379270f - RxCocoa: 32065309a38d29b5b0db858819b5bf9ef038b601 - RxRelay: d77f7d771495f43c556cbc43eebd1bb54d01e8e9 - RxSwift: 81470a2074fa8780320ea5fe4102807cb7118178 - SDWebImage: 7edb9c3ea661e77a66661f7f044de8c1b55d1120 - SnapKit: fe8a619752f3f27075cc9a90244d75c6c3f27e2a - SuperPlayer: 3f49af712410a59c42c2c9bfcacd33e3a0e3e5ab - Toast-Swift: 9b6a70f28b3bf0b96c40d46c0c4b9d6639846711 - TXIMSDK_iOS: 587e25fa8b42c9f228bb9065084270fa6990190f - -PODFILE CHECKSUM: 9f9c01708049368d6ce44e85b2fa857e1e46c08a - -COCOAPODS: 1.10.1 diff --git a/iOS/Demo/ReplaykitUpload/Info.plist b/iOS/Demo/ReplaykitUpload/Info.plist deleted file mode 100644 index ccdaf55f..00000000 --- a/iOS/Demo/ReplaykitUpload/Info.plist +++ /dev/null @@ -1,33 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - 视频云工具包 - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - XPC! - CFBundleShortVersionString - 8.9.1103 - CFBundleVersion - 1103 - NSExtension - - NSExtensionPointIdentifier - com.apple.broadcast-services-upload - NSExtensionPrincipalClass - SampleHandler - RPBroadcastProcessMode - RPBroadcastProcessModeSampleBuffer - - - diff --git a/iOS/Demo/ReplaykitUpload/Localized/English.lproj/ReplayKitLocalized.strings b/iOS/Demo/ReplaykitUpload/Localized/English.lproj/ReplayKitLocalized.strings deleted file mode 100644 index d146cdb7..00000000 --- a/iOS/Demo/ReplaykitUpload/Localized/English.lproj/ReplayKitLocalized.strings +++ /dev/null @@ -1,7 +0,0 @@ -/* - ReplayKitLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/22. - Copyright © 2021 Tencent. All rights reserved. -*/ diff --git a/iOS/Demo/ReplaykitUpload/Localized/ReplayKitLocalized.h b/iOS/Demo/ReplaykitUpload/Localized/ReplayKitLocalized.h deleted file mode 100644 index 4f0159aa..00000000 --- a/iOS/Demo/ReplaykitUpload/Localized/ReplayKitLocalized.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// ReplayKitLocalized.h -// TXLiteAVDemo -// -// Created by adams on 2021/3/22. -// Copyright © 2021 Tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN -#pragma mark - Base - -extern NSString *ReplayKitLocalizeFromTable(NSString *key, NSString *table); -extern NSString *ReplayKitLocalizeFromTableAndCommon(NSString *key, NSString *common, NSString *table); - -#pragma mark - Replace String -extern NSString *ReplayKitLocalizeReplaceXX(NSString *origin, NSString *xxx_replace); -extern NSString *ReplayKitLocalizeReplace(NSString *origin, NSString *xxx_replace, NSString *yyy_replace); -extern NSString *ReplayKitLocalizeReplaceThreeCharacter(NSString *origin, NSString *xxx_replace, NSString *yyy_replace, NSString *zzz_replace); -extern NSString *ReplayKitLocalizeReplaceFourCharacter(NSString *origin, NSString *xxx_replace, NSString *yyy_replace, NSString *zzz_replace, NSString *mmm_replace); -extern NSString *ReplayKitLocalizeReplaceFiveCharacter(NSString *origin, NSString *xxx_replace, NSString *yyy_replace, NSString *zzz_replace, NSString *mmm_replace, NSString *nnn_replace); - -#pragma mark - ReplayKit -extern NSString *const ReplayKit_Localize_TableName; -extern NSString *ReplayKitLocalize(NSString *key); - - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/ReplaykitUpload/Localized/ReplayKitLocalized.m b/iOS/Demo/ReplaykitUpload/Localized/ReplayKitLocalized.m deleted file mode 100644 index a8379689..00000000 --- a/iOS/Demo/ReplaykitUpload/Localized/ReplayKitLocalized.m +++ /dev/null @@ -1,51 +0,0 @@ -// -// ReplayKitLocalized.m -// TXLiteAVDemo -// -// Created by adams on 2021/3/22. -// Copyright © 2021 Tencent. All rights reserved. -// - -#import "ReplayKitLocalized.h" - -#pragma mark - Base -NSString *ReplayKitLocalizeFromTable(NSString *key, NSString *table) { - return [NSBundle.mainBundle localizedStringForKey:key value:@"" table:table]; -} - -NSString *ReplayKitLocalizeFromTableAndCommon(NSString *key, NSString *common, NSString *table) { - return ReplayKitLocalizeFromTable(key, table); -} - -#pragma mark - Replace String -NSString *ReplayKitLocalizeReplaceXX(NSString *origin, NSString *xxx_replace) { - return [origin stringByReplacingOccurrencesOfString:@"xxx" withString:xxx_replace]; -} - -NSString *ReplayKitLocalizeReplace(NSString *origin, NSString *xxx_replace, NSString *yyy_replace) { - return [[origin stringByReplacingOccurrencesOfString:@"xxx" withString:xxx_replace] stringByReplacingOccurrencesOfString:@"yyy" withString:yyy_replace]; -} - -NSString *ReplayKitLocalizeReplaceThreeCharacter(NSString *origin, NSString *xxx_replace, NSString *yyy_replace, NSString *zzz_replace) { - return [[[origin stringByReplacingOccurrencesOfString:@"xxx" withString:xxx_replace] stringByReplacingOccurrencesOfString:@"yyy" withString:yyy_replace] - stringByReplacingOccurrencesOfString:@"zzz" withString:zzz_replace]; -} - -NSString *ReplayKitLocalizeReplaceFourCharacter(NSString *origin, NSString *xxx_replace, NSString *yyy_replace, NSString *zzz_replace, NSString *mmm_replace) { - return [[[[origin stringByReplacingOccurrencesOfString:@"xxx" withString:xxx_replace] stringByReplacingOccurrencesOfString:@"yyy" withString:yyy_replace] - stringByReplacingOccurrencesOfString:@"zzz" withString:zzz_replace] - stringByReplacingOccurrencesOfString:@"mmm" withString:mmm_replace]; -} - -NSString *ReplayKitLocalizeReplaceFiveCharacter(NSString *origin, NSString *xxx_replace, NSString *yyy_replace, NSString *zzz_replace, NSString *mmm_replace, NSString *nnn_replace) { - return [[[[[origin stringByReplacingOccurrencesOfString:@"xxx" withString:xxx_replace] stringByReplacingOccurrencesOfString:@"yyy" withString:yyy_replace] - stringByReplacingOccurrencesOfString:@"zzz" withString:zzz_replace] - stringByReplacingOccurrencesOfString:@"mmm" withString:mmm_replace] - stringByReplacingOccurrencesOfString:@"nnn" withString:nnn_replace]; -} - -#pragma mark - ReplayKit -NSString *const ReplayKit_Localize_TableName = @"ReplayKitLocalized"; -NSString *ReplayKitLocalize(NSString *key) { - return ReplayKitLocalizeFromTable(key, ReplayKit_Localize_TableName); -} diff --git a/iOS/Demo/ReplaykitUpload/Localized/en.lproj/InfoPlist.strings b/iOS/Demo/ReplaykitUpload/Localized/en.lproj/InfoPlist.strings deleted file mode 100644 index 53dacd25..00000000 --- a/iOS/Demo/ReplaykitUpload/Localized/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,9 +0,0 @@ -/* - InfoPlist.strings - TXLiteAVDemo - - Created by adams on 2021/3/24. - Copyright © 2021 Tencent. All rights reserved. -*/ - -CFBundleDisplayName = "TRTC"; diff --git a/iOS/Demo/ReplaykitUpload/Localized/en.lproj/ReplayKitLocalized.strings b/iOS/Demo/ReplaykitUpload/Localized/en.lproj/ReplayKitLocalized.strings deleted file mode 100644 index ab2f4084..00000000 --- a/iOS/Demo/ReplaykitUpload/Localized/en.lproj/ReplayKitLocalized.strings +++ /dev/null @@ -1,21 +0,0 @@ -/* - ReplayKitLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/22. - Copyright © 2021 Tencent. All rights reserved. -*/ - -"ReplayKitUpload.SampleHandler.tencentcloudpushstream" = "Stream Screen Recording"; -"ReplayKitUpload.SampleHandler.pushstreamstop" = "Push stopped"; -"ReplayKitUpload.SampleHandler.exchangeerror" = "Switch failed"; -"ReplayKitUpload.SampleHandler.replaystart" = "Screen recording has started. Return to Cloud Video Toolkit -> MLVB -> Push (Screen Recording) to set the push URL, page orientation, and definition. "; -"ReplayKitUpload.SampleHandler.replaystop" = "Screen recording paused"; -"ReplayKitUpload.SampleHandler.replayrestored" = "Screen recording resumed"; -"ReplayKitUpload.SampleHandler.replayend" = "Screen recording ended"; -"ReplayKitUpload.SampleHandler.replayfailed" = "Push failed. Please try again."; -"ReplayKitUpload.SampleHandler.connectsuccess" = "Connected. Start pushing."; -"ReplayKitUpload.SampleHandler.networkuplink" = "Insufficient upstream bandwidth"; -"ReplayKitUpload.SampleHandler.screenshareend" = "Screen sharing ended"; -"ReplayKitUpload.SampleHandler.applicationtodisconnect" = "Disconnected"; -"ReplayKitUpload.SampleHandler.integrationerror" = "Integration error (inconsistent SDK version)"; diff --git a/iOS/Demo/ReplaykitUpload/Localized/zh-Hans.lproj/InfoPlist.strings b/iOS/Demo/ReplaykitUpload/Localized/zh-Hans.lproj/InfoPlist.strings deleted file mode 100644 index 00dc1a5e..00000000 --- a/iOS/Demo/ReplaykitUpload/Localized/zh-Hans.lproj/InfoPlist.strings +++ /dev/null @@ -1,9 +0,0 @@ -/* - InfoPlist.strings - TXLiteAVDemo - - Created by adams on 2021/3/24. - Copyright © 2021 Tencent. All rights reserved. -*/ - -CFBundleDisplayName = "TRTC多人会议录屏"; diff --git a/iOS/Demo/ReplaykitUpload/Localized/zh-Hans.lproj/ReplayKitLocalized.strings b/iOS/Demo/ReplaykitUpload/Localized/zh-Hans.lproj/ReplayKitLocalized.strings deleted file mode 100644 index 4a23ad16..00000000 --- a/iOS/Demo/ReplaykitUpload/Localized/zh-Hans.lproj/ReplayKitLocalized.strings +++ /dev/null @@ -1,21 +0,0 @@ -/* - ReplayKitLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/22. - Copyright © 2021 Tencent. All rights reserved. -*/ - -"ReplayKitUpload.SampleHandler.tencentcloudpushstream" = "腾讯云录屏推流"; -"ReplayKitUpload.SampleHandler.pushstreamstop" = "推流已停止"; -"ReplayKitUpload.SampleHandler.exchangeerror" = "切换失败"; -"ReplayKitUpload.SampleHandler.replaystart" = "录屏已开始,请从这里点击回到Demo->直播->录屏推流->设置推流URL与横竖屏和清晰度"; -"ReplayKitUpload.SampleHandler.replaystop" = "录屏已暂停"; -"ReplayKitUpload.SampleHandler.replayrestored" = "录屏已恢复"; -"ReplayKitUpload.SampleHandler.replayend" = "录屏已结束"; -"ReplayKitUpload.SampleHandler.replayfailed" = "推流失败!请换个姿势再来一次"; -"ReplayKitUpload.SampleHandler.connectsuccess" = "连接成功!开始推流"; -"ReplayKitUpload.SampleHandler.networkuplink" = "网络上行带宽不足"; -"ReplayKitUpload.SampleHandler.screenshareend" = "屏幕共享已结束"; -"ReplayKitUpload.SampleHandler.applicationtodisconnect" = "应用断开"; -"ReplayKitUpload.SampleHandler.integrationerror" = "集成错误(SDK 版本号不相符合)"; diff --git a/iOS/Demo/ReplaykitUpload/SampleHandler.h b/iOS/Demo/ReplaykitUpload/SampleHandler.h deleted file mode 100644 index dbcdc6a2..00000000 --- a/iOS/Demo/ReplaykitUpload/SampleHandler.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// SampleHandler.h -// ReplaykitUpload -// -// Created by annidyfeng on 2018/5/24. -// Copyright © 2018年 Tencent. All rights reserved. -// - -#import - -@interface SampleHandler : RPBroadcastSampleHandler - -@end diff --git a/iOS/Demo/ReplaykitUpload/SampleHandler.m b/iOS/Demo/ReplaykitUpload/SampleHandler.m deleted file mode 100644 index 5e703622..00000000 --- a/iOS/Demo/ReplaykitUpload/SampleHandler.m +++ /dev/null @@ -1,109 +0,0 @@ -// -// SampleHandler.m -// ReplayKit2Upload -// -// Created by rushanting on 2018/3/26. -// Copyright © 2018年 Tencent. All rights reserved. -// - - -#import "SampleHandler.h" -#import "ReplayKit2Define.h" -#import -#import "ReplayKitLocalized.h" -#import - -// To handle samples with a subclass of RPBroadcastSampleHandler set the following in the extension's Info.plist file: -// - RPBroadcastProcessMode should be set to RPBroadcastProcessModeSampleBuffer - -@interface SampleHandler() -@end - -@implementation SampleHandler { - -} - -- (void)dealloc { -} - -- (void)sendLocalNotificationToHostAppWithTitle:(NSString*)title msg:(NSString*)msg userInfo:(NSDictionary*)userInfo -{ - UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter]; - - UNMutableNotificationContent* content = [[UNMutableNotificationContent alloc] init]; - content.title = [NSString localizedUserNotificationStringForKey:title arguments:nil]; - content.body = [NSString localizedUserNotificationStringForKey:msg arguments:nil]; - content.sound = [UNNotificationSound defaultSound]; - content.userInfo = userInfo; - - // 在 设定时间 后推送本地推送 - UNTimeIntervalNotificationTrigger* trigger = [UNTimeIntervalNotificationTrigger - triggerWithTimeInterval:0.1f repeats:NO]; - - UNNotificationRequest* request = [UNNotificationRequest requestWithIdentifier:@"ReplayKit2Demo" - content:content trigger:trigger]; - - //添加推送成功后的处理! - [center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) { - - }]; -} - -#pragma mark - RPBroadcastSampleHandler -- (void)broadcastStartedWithSetupInfo:(NSDictionary *)setupInfo { - [self sendLocalNotificationToHostAppWithTitle:ReplayKitLocalize(@"ReplayKitUpload.SampleHandler.tencentcloudpushstream") msg:ReplayKitLocalize(@"ReplayKitUpload.SampleHandler.replaystart") userInfo:@{kReplayKit2UploadingKey: kReplayKit2Uploading}]; - [[TXReplayKitExt sharedInstance] setupWithAppGroup:kReplayKit2AppGroupId delegate:self]; -} - -- (void)broadcastPaused { - // User has requested to pause the broadcast. Samples will stop being delivered. - NSLog(@"broadcastPaused"); - [self sendLocalNotificationToHostAppWithTitle:ReplayKitLocalize(@"ReplayKitUpload.SampleHandler.tencentcloudpushstream") msg:ReplayKitLocalize(@"ReplayKitUpload.SampleHandler.replaystop") userInfo:nil]; -} - -- (void)broadcastResumed { - // User has requested to resume the broadcast. Samples delivery will resume. - NSLog(@"broadcastResumed"); - [self sendLocalNotificationToHostAppWithTitle:ReplayKitLocalize(@"ReplayKitUpload.SampleHandler.tencentcloudpushstream") msg:ReplayKitLocalize(@"ReplayKitUpload.SampleHandler.replayrestored") userInfo:nil]; -} - -- (void)broadcastFinished { - // User has requested to finish the broadcast. - NSLog(@"broadcastFinished"); - [self sendLocalNotificationToHostAppWithTitle:ReplayKitLocalize(@"ReplayKitUpload.SampleHandler.tencentcloudpushstream") msg:ReplayKitLocalize(@"ReplayKitUpload.SampleHandler.replayend") userInfo:@{kReplayKit2UploadingKey: kReplayKit2Stop}]; - [[TXReplayKitExt sharedInstance] broadcastFinished]; -} - - -- (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer withType:(RPSampleBufferType)sampleBufferType { - if (sampleBufferType != RPSampleBufferTypeAudioMic) { - /// 声音由主APP采集发送 - [[TXReplayKitExt sharedInstance] sendSampleBuffer:sampleBuffer withType:sampleBufferType]; - } -} - -#pragma mark - TXReplayKitExtDelegate -- (void)broadcastFinished:(TXReplayKitExt *)broadcast reason:(TXReplayKitExtReason)reason -{ - NSString *tip = @""; - switch (reason) { - case TXReplayKitExtReasonRequestedByMain: - tip = ReplayKitLocalize(@"ReplayKitUpload.SampleHandler.screenshareend"); - break; - case TXReplayKitExtReasonDisconnected: - tip = ReplayKitLocalize(@"ReplayKitUpload.SampleHandler.applicationtodisconnect"); - break; - case TXReplayKitExtReasonVersionMismatch: - tip = ReplayKitLocalize(@"ReplayKitUpload.SampleHandler.integrationerror"); - break; - } - - NSError *error = [NSError errorWithDomain:NSStringFromClass(self.class) - code:0 - userInfo:@{ - NSLocalizedFailureReasonErrorKey:tip - }]; - [self finishBroadcastWithError:error]; -} - -@end diff --git a/iOS/Demo/ReplaykitUpload/SimpleIPC.h b/iOS/Demo/ReplaykitUpload/SimpleIPC.h deleted file mode 100644 index 68acf808..00000000 --- a/iOS/Demo/ReplaykitUpload/SimpleIPC.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// SimpleIPC.h -// TXLiteAVDemo -// -// Created by cui on 2020/4/21. -// Copyright © 2020 Tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface SimpleIPC : NSObject -- (instancetype)initWithPort:(int)port; -- (void)startListenWithHandler:(void(^)(NSString *cmd, NSDictionary *info))handler; -- (void)sendCmd:(NSString*)cmd info:(NSDictionary *)info; -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/ReplaykitUpload/SimpleIPC.m b/iOS/Demo/ReplaykitUpload/SimpleIPC.m deleted file mode 100644 index 9619a174..00000000 --- a/iOS/Demo/ReplaykitUpload/SimpleIPC.m +++ /dev/null @@ -1,137 +0,0 @@ -// -// SimpleIPC.m -// TXLiteAVDemo -// -// Created by cui on 2020/4/21. -// Copyright © 2020 Tencent. All rights reserved. -// - -#import "SimpleIPC.h" -#import -#import - -@implementation SimpleIPC -{ - int sockfd; - int _port; - void(^_handler)(NSString *cmd, NSDictionary *info); -} - -- (instancetype)initWithPort:(int)port { - if (self = [super init]) { - sockfd = -1; - _port = port; - } - return self; -} - -- (void)startListenWithHandler:(void(^)(NSString *cmd, NSDictionary *info))handler { - if (sockfd >= 0) { - NSLog(@"Already running"); - return; - } - sockfd = 0; - _handler = handler; - [NSThread detachNewThreadSelector:@selector(socketMain) toTarget:self withObject:nil]; -} - -- (void)socketMain { - sockfd = socket(AF_INET , SOCK_STREAM , 0); - - if (sockfd == -1){ - printf("Fail to create a socket."); - return; - } - - struct sockaddr_in info; - bzero(&info,sizeof(info)); - info.sin_family = PF_INET; - info.sin_addr.s_addr = inet_addr("127.0.0.1"); - info.sin_port = htons(_port); - bind(sockfd,(struct sockaddr *)&info, sizeof(info)); - listen(sockfd, 1); - - struct sockaddr_in clientInfo; - socklen_t addrlen = sizeof(clientInfo); - bzero(&clientInfo, sizeof(clientInfo)); - int clientSockfd = 0; - NSMutableData *buffer = [[NSMutableData alloc] init]; - const size_t readLen = 1024; - char *buff = (char*)malloc(readLen); - while(1) { - @autoreleasepool { - clientSockfd = accept(sockfd, (struct sockaddr *)&clientInfo, &addrlen); - ssize_t len = 0; - do { - len = read(clientSockfd, buff, readLen); - const char boundary = '\n'; - int pos = 0; - while(pos < len && buff[pos] != boundary) { - ++pos; - } - [buffer appendBytes:buff length:pos]; - - if (pos < len) { // has boundary - NSError *error = nil; - NSDictionary *json = [NSJSONSerialization JSONObjectWithData:buffer options:0 error:&error]; - if (error) { - NSLog(@"Error when parsing JSON: %@", error); - } else { - NSString *cmd = json[@"cmd"]; - void(^handler)(NSString *cmd, NSDictionary *info) = _handler; - dispatch_async(dispatch_get_main_queue(), ^{ - handler(cmd, json); - }); - } - [buffer setLength:0]; - if (len-pos-1 > 0) { - [buffer appendBytes:buff+pos+1 length:len-pos-1]; - } - } else if (buffer.length > 2048) { - // discard - [buffer setLength:0]; - } - } while(len > 0); - [buffer setLength:0]; - close(clientSockfd); - } - } -} - -- (void)sendCmd:(NSString*)cmd info:(NSDictionary *)info -{ - int sockfd = 0; - sockfd = socket(AF_INET, SOCK_STREAM , 0); - - if (sockfd == -1){ - printf("Fail to create a socket."); - return; - } - - struct sockaddr_in srvInfo; - bzero(&srvInfo,sizeof(srvInfo)); - srvInfo.sin_family = PF_INET; - srvInfo.sin_addr.s_addr = inet_addr("127.0.0.1"); - srvInfo.sin_port = htons(_port); - int set = 1; - setsockopt(sockfd, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(int)); - - int err = connect(sockfd,(struct sockaddr *)&srvInfo,sizeof(srvInfo)); - if(err == -1){ - printf("Connection error"); - close(sockfd); - return; - } - NSMutableDictionary *msg = [NSMutableDictionary dictionaryWithDictionary:info]; - if (msg[@"cmd"]) { - msg[@"_cmd"] = msg[@"cmd"]; - } - msg[@"cmd"] = cmd; - NSData *data = [NSJSONSerialization dataWithJSONObject:msg options:0 error:nil]; - if (data) { - write(sockfd, data.bytes, data.length); - write(sockfd, "\n", 1); - } - close(sockfd); -} -@end diff --git a/iOS/Demo/ReplaykitUpload/TRTCInfo.plist b/iOS/Demo/ReplaykitUpload/TRTCInfo.plist deleted file mode 100644 index 9ac6b9c6..00000000 --- a/iOS/Demo/ReplaykitUpload/TRTCInfo.plist +++ /dev/null @@ -1,33 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - TRTC多人会议录屏 - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - XPC! - CFBundleShortVersionString - $(MARKETING_VERSION) - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSExtension - - NSExtensionPointIdentifier - com.apple.broadcast-services-upload - NSExtensionPrincipalClass - SampleHandler - RPBroadcastProcessMode - RPBroadcastProcessModeSampleBuffer - - - diff --git a/iOS/Demo/ReplaykitUpload/en.lproj/InfoPlist.strings b/iOS/Demo/ReplaykitUpload/en.lproj/InfoPlist.strings deleted file mode 100644 index 2ae7c77c..00000000 --- a/iOS/Demo/ReplaykitUpload/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - File.strings - TXLiteAVDemo - - Created by adams on 2021/3/24. - Copyright © 2021 Tencent. All rights reserved. -*/ -CFBundleDisplayName = "TCToolkit"; diff --git a/iOS/Demo/ReplaykitUpload/zh-Hans.lproj/InfoPlist.strings b/iOS/Demo/ReplaykitUpload/zh-Hans.lproj/InfoPlist.strings deleted file mode 100644 index 3d5b7f78..00000000 --- a/iOS/Demo/ReplaykitUpload/zh-Hans.lproj/InfoPlist.strings +++ /dev/null @@ -1,8 +0,0 @@ -/* - File.strings - TXLiteAVDemo - - Created by adams on 2021/3/24. - Copyright © 2021 Tencent. All rights reserved. -*/ -CFBundleDisplayName = "腾讯云工具包"; diff --git a/iOS/Demo/TXLiteAVDemo.xcodeproj/project.pbxproj b/iOS/Demo/TXLiteAVDemo.xcodeproj/project.pbxproj deleted file mode 100644 index bb973066..00000000 --- a/iOS/Demo/TXLiteAVDemo.xcodeproj/project.pbxproj +++ /dev/null @@ -1,5461 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 52; - objects = { - -/* Begin PBXBuildFile section */ - 1A3F71DC268599AD00AB46B3 /* TRTCAlertControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A1267C7B4A007990F0 /* TRTCAlertControl.swift */; }; - 1A3F71DD268599AD00AB46B3 /* MineViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609A267C7B4A007990F0 /* MineViewModel.swift */; }; - 1A3F71DE268599AD00AB46B3 /* MineAlertContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A0267C7B4A007990F0 /* MineAlertContentView.swift */; }; - 1A3F71DF268599AD00AB46B3 /* MineAboutResignViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609B267C7B4A007990F0 /* MineAboutResignViewController.swift */; }; - 1A3F71E0268599AD00AB46B3 /* TRTCAlerts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609F267C7B4A007990F0 /* TRTCAlerts.swift */; }; - 1A3F71E1268599AD00AB46B3 /* MineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609D267C7B4A007990F0 /* MineViewController.swift */; }; - 1A3F71E2268599AD00AB46B3 /* MineAboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609C267C7B4A007990F0 /* MineAboutViewController.swift */; }; - 1A3F71E3268599AD00AB46B3 /* MineRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88856099267C7B4A007990F0 /* MineRootView.swift */; }; - 1A3F71E4268599AD00AB46B3 /* LayoutDefine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A2267C7B4A007990F0 /* LayoutDefine.swift */; }; - 1A865FBB266FA853008A861A /* SimpleIPC.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CC58AA246290BB002A914E /* SimpleIPC.m */; }; - 1A865FBC266FA853008A861A /* AppLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8C893260AECC4001CF672 /* AppLocalized.m */; }; - 1A865FBD266FA853008A861A /* SampleHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 91D47F3D20B6B13C0072AC0B /* SampleHandler.m */; }; - 1A865FBE266FA853008A861A /* ReplayKitLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47740FF226147EE90098482E /* ReplayKitLocalized.m */; }; - 1A865FC0266FA853008A861A /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */; }; - 1A865FC1266FA853008A861A /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A289F8230FB93A00B9B73F /* OpenAL.framework */; }; - 1A865FC2266FA853008A861A /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */; }; - 1A865FC3266FA853008A861A /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855481EE8FDF100EE47D7 /* libresolv.tbd */; }; - 1A865FC4266FA853008A861A /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45D2971F15C527003506D1 /* libc++.tbd */; }; - 1A865FC6266FA853008A861A /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 91D47F3920B6B13C0072AC0B /* ReplayKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 1A865FC7266FA853008A861A /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 1A865FCA266FA853008A861A /* LivePlayerLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */; }; - 1A865FCB266FA853008A861A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C9D2260B54E5001CF672 /* InfoPlist.strings */; }; - 1A865FCC266FA853008A861A /* V2LiveLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */; }; - 1A865FCD266FA853008A861A /* AppPortalLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */; }; - 1A865FCE266FA853008A861A /* LoginNetworkLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */; }; - 1A865FCF266FA853008A861A /* ReplayKitLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47740FF526147EE90098482E /* ReplayKitLocalized.strings */; }; - 1A865FD0266FA853008A861A /* UGCLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C884260AECC4001CF672 /* UGCLocalized.strings */; }; - 1A865FD1266FA853008A861A /* TRTCDemoLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */; }; - 1A865FD9266FA877008A861A /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 1A865FDC266FA8F8008A861A /* BuildFile in Embed App Extensions */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 1A865FFD2670A3E7008A861A /* TRTCWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88ABB5EF266DCB0D0050C38A /* TRTCWebViewController.swift */; }; - 1A865FFF2670A3EC008A861A /* PrivacyPopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88ABB6C7266F17900050C38A /* PrivacyPopView.swift */; }; - 1A8660432670BFF5008A861A /* PushLogView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A1C109A2281A674005D7BD9 /* PushLogView.m */; }; - 1AF0835C266A1A8C004FBE74 /* UIViewController+BackButtonHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB7260B5C05001CF672 /* UIViewController+BackButtonHandler.m */; }; - 1AF0835D266A1A8C004FBE74 /* UIView+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB4260B5C05001CF672 /* UIView+Additions.m */; }; - 1AF0835E266A1A8C004FBE74 /* UISlider+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA925B0355400B4B469 /* UISlider+V2.m */; }; - 1AF0835F266A1A8C004FBE74 /* V2SettingsBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA025B0355400B4B469 /* V2SettingsBaseCell.m */; }; - 1AF08360266A1A8C004FBE74 /* V2MainItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D8E25B0355400B4B469 /* V2MainItemCell.m */; }; - 1AF08361266A1A8C004FBE74 /* GenerateTestUserSig.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F8DC2446E6C5000C37A3 /* GenerateTestUserSig.m */; }; - 1AF08362266A1A8C004FBE74 /* TRTCLoginAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6D20736262FCCD0001A80D7 /* TRTCLoginAlertView.swift */; }; - 1AF08363266A1A8C004FBE74 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3B2459466900AF53CB /* ProfileViewController.swift */; }; - 1AF08364266A1A8C004FBE74 /* V2PlayerSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9225B0355400B4B469 /* V2PlayerSettingViewController.m */; }; - 1AF08365266A1A8C004FBE74 /* UILabel+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DAA25B0355400B4B469 /* UILabel+V2.m */; }; - 1AF08366266A1A8C004FBE74 /* V2MainProtocolSelectViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9125B0355400B4B469 /* V2MainProtocolSelectViewController.m */; }; - 1AF08367266A1A8C004FBE74 /* ThemeConfigurator.m in Sources */ = {isa = PBXBuildFile; fileRef = 45E74D9A23B22BCD00C22B31 /* ThemeConfigurator.m */; }; - 1AF08368266A1A8C004FBE74 /* V2MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB825B0355400B4B469 /* V2MainViewController.m */; }; - 1AF08369266A1A8C004FBE74 /* AddressBar.m in Sources */ = {isa = PBXBuildFile; fileRef = A035043D20D2511A007E61C6 /* AddressBar.m */; }; - 1AF0836A266A1A8C004FBE74 /* UIButton+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB5260B5C05001CF672 /* UIButton+Additions.m */; }; - 1AF0836B266A1A8C004FBE74 /* NSData+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB6260B5C05001CF672 /* NSData+Common.m */; }; - 1AF0836C266A1A8C004FBE74 /* V2LiveUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DBB25B0355400B4B469 /* V2LiveUtils.m */; }; - 1AF0836D266A1A8C004FBE74 /* V2SettingsContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA225B0355400B4B469 /* V2SettingsContainerViewController.m */; }; - 1AF0836E266A1A8C004FBE74 /* QRCode.m in Sources */ = {isa = PBXBuildFile; fileRef = A035040720D20A01007E61C6 /* QRCode.m */; }; - 1AF0836F266A1A8C004FBE74 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853261EE8FC8400EE47D7 /* AppDelegate.m */; }; - 1AF08370266A1A8C004FBE74 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; - 1AF08372266A1A8C004FBE74 /* AppLogMgr.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853281EE8FC8400EE47D7 /* AppLogMgr.m */; }; - 1AF08373266A1A8C004FBE74 /* V2PusherSettingModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9625B0355400B4B469 /* V2PusherSettingModel.m */; }; - 1AF08374266A1A8C004FBE74 /* LoginViewController+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B392459466900AF53CB /* LoginViewController+UI.swift */; }; - 1AF08375266A1A8C004FBE74 /* UISlider+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5664C264ABB5000B85C1C /* UISlider+Leb.m */; }; - 1AF08376266A1A8C004FBE74 /* AppUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F9DB2446EF11000C37A3 /* AppUtils.swift */; }; - 1AF08377266A1A8C004FBE74 /* UIImage+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC3260B5C05001CF672 /* UIImage+Additions.m */; }; - 1AF08378266A1A8C004FBE74 /* AppLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8C893260AECC4001CF672 /* AppLocalized.m */; }; - 1AF08379266A1A8C004FBE74 /* MainTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532A1EE8FC8400EE47D7 /* MainTableViewCell.m */; }; - 1AF0837A266A1A8C004FBE74 /* V2SettingsBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA125B0355400B4B469 /* V2SettingsBaseViewController.m */; }; - 1AF0837B266A1A8C004FBE74 /* V2SettingBottomBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9A25B0355400B4B469 /* V2SettingBottomBar.m */; }; - 1AF0837C266A1A8C004FBE74 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3A2459466900AF53CB /* LoginViewController.swift */; }; - 1AF0837D266A1A8C004FBE74 /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532C1EE8FC8400EE47D7 /* MainViewController.m */; }; - 1AF0837E266A1A8C004FBE74 /* UIButton+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA625B0355400B4B469 /* UIButton+V2.m */; }; - 1AF0837F266A1A8C004FBE74 /* NSString+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABA260B5C05001CF672 /* NSString+Common.m */; }; - 1AF08380266A1A8C004FBE74 /* ProfileViewController+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3C2459466900AF53CB /* ProfileViewController+UI.swift */; }; - 1AF08381266A1A8C004FBE74 /* UIView+CustomAutoLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABD260B5C05001CF672 /* UIView+CustomAutoLayout.m */; }; - 1AF08382266A1A8C004FBE74 /* AddressBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = A035042F20D24F99007E61C6 /* AddressBarController.m */; }; - 1AF08383266A1A8C004FBE74 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; - 1AF08384266A1A8C004FBE74 /* UIButton+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56649264ABB5000B85C1C /* UIButton+Leb.m */; }; - 1AF08385266A1A8C004FBE74 /* V2PusherViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB725B0355400B4B469 /* V2PusherViewController.m */; }; - 1AF08386266A1A8C004FBE74 /* CommonUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F9DC2446EF11000C37A3 /* CommonUtils.swift */; }; - 1AF08387266A1A8C004FBE74 /* LebLiveUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56711264AC54F00B85C1C /* LebLiveUtils.m */; }; - 1AF08388266A1A8C004FBE74 /* V2PlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB125B0355400B4B469 /* V2PlayerViewController.m */; }; - 1AF08389266A1A8C004FBE74 /* LebSettingBottomBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5663D264ABB5000B85C1C /* LebSettingBottomBar.m */; }; - 1AF0838A266A1A8C004FBE74 /* TXColor.m in Sources */ = {isa = PBXBuildFile; fileRef = A06E8559214F9EC200DF949B /* TXColor.m */; }; - 1AF0838B266A1A8C004FBE74 /* UILabel+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5664D264ABB5000B85C1C /* UILabel+Leb.m */; }; - 1AF0838C266A1A8C004FBE74 /* LebLauncherViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C565BC264A2D7000B85C1C /* LebLauncherViewController.m */; }; - 1AF0838E266A1A8C004FBE74 /* V2PusherSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9325B0355400B4B469 /* V2PusherSettingViewController.m */; }; - 1AF0838F266A1A8C004FBE74 /* LebQRScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56713264AC55000B85C1C /* LebQRScanViewController.m */; }; - 1AF08390266A1A8C004FBE74 /* UIButton+Glossy.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABC260B5C05001CF672 /* UIButton+Glossy.m */; }; - 1AF08391266A1A8C004FBE74 /* LebPlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C565CE264A31D400B85C1C /* LebPlayerViewController.m */; }; - 1AF08392266A1A8C004FBE74 /* NSObject+CommonBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB3260B5C05001CF672 /* NSObject+CommonBlock.m */; }; - 1AF08393266A1A8C004FBE74 /* LebSettingsBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56643264ABB5000B85C1C /* LebSettingsBaseCell.m */; }; - 1AF08394266A1A8C004FBE74 /* UISegmentedControl+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA825B0355400B4B469 /* UISegmentedControl+V2.m */; }; - 1AF08395266A1A8C004FBE74 /* LebPlayerSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56635264ABB5000B85C1C /* LebPlayerSettingViewController.m */; }; - 1AF08396266A1A8C004FBE74 /* UISegmentedControl+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5664B264ABB5000B85C1C /* UISegmentedControl+Leb.m */; }; - 1AF08397266A1A8C004FBE74 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A010024506F740037A219 /* main.m */; }; - 1AF08399266A1A8C004FBE74 /* LebSettingsBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56644264ABB5000B85C1C /* LebSettingsBaseViewController.m */; }; - 1AF0839A266A1A8C004FBE74 /* ProfileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3E2459466900AF53CB /* ProfileManager.swift */; }; - 1AF0839B266A1A8C004FBE74 /* SimpleIPC.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CC58AA246290BB002A914E /* SimpleIPC.m */; }; - 1AF0839C266A1A8C004FBE74 /* NSString+UISize.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABE260B5C05001CF672 /* NSString+UISize.m */; }; - 1AF0839D266A1A8C004FBE74 /* V2QRGenerateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB225B0355400B4B469 /* V2QRGenerateViewController.m */; }; - 1AF0839E266A1A8C004FBE74 /* UIColor+MLPFlatColors.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAAF260B5C05001CF672 /* UIColor+MLPFlatColors.m */; }; - 1AF0839F266A1A8C004FBE74 /* NSDictionary+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC5260B5C05001CF672 /* NSDictionary+Common.m */; }; - 1AF083A0266A1A8C004FBE74 /* V2QRScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D8F25B0355400B4B469 /* V2QRScanViewController.m */; }; - 1AF083A1266A1A8C004FBE74 /* V2MainProtocolSelectSegmentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9D25B0355400B4B469 /* V2MainProtocolSelectSegmentView.m */; }; - 1AF083A3266A1A8C004FBE74 /* TCBeautyPanel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40AA536524458EC800303EF7 /* TCBeautyPanel.framework */; }; - 1AF083A4266A1A8C004FBE74 /* AudioEffectSettingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40B5C6832484BBE500D3A718 /* AudioEffectSettingKit.framework */; }; - 1AF083A5266A1A8C004FBE74 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */; }; - 1AF083A6266A1A8C004FBE74 /* QCloudCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0B8FC00207E235B008D7982 /* QCloudCore.framework */; }; - 1AF083A7266A1A8C004FBE74 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40407ACA1F3035CA006C7301 /* Foundation.framework */; }; - 1AF083A8266A1A8C004FBE74 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553C1EE8FDC500EE47D7 /* AVFoundation.framework */; }; - 1AF083A9266A1A8C004FBE74 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A4AD391F1F8AE300B4A806 /* MediaPlayer.framework */; }; - 1AF083AA266A1A8C004FBE74 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554E1EE8FE0100EE47D7 /* libiconv.tbd */; }; - 1AF083AC266A1A8C004FBE74 /* libmtasdk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4065C98724570E31002C0A38 /* libmtasdk.a */; }; - 1AF083AD266A1A8C004FBE74 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554C1EE8FDFC00EE47D7 /* libz.tbd */; }; - 1AF083AE266A1A8C004FBE74 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45D2971F15C527003506D1 /* libc++.tbd */; }; - 1AF083AF266A1A8C004FBE74 /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855481EE8FDF100EE47D7 /* libresolv.tbd */; }; - 1AF083B0266A1A8C004FBE74 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855461EE8FDE800EE47D7 /* SystemConfiguration.framework */; }; - 1AF083B1266A1A8C004FBE74 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855441EE8FDE100EE47D7 /* CoreTelephony.framework */; }; - 1AF083B2266A1A8C004FBE74 /* VideoToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855421EE8FDDA00EE47D7 /* VideoToolbox.framework */; }; - 1AF083B3266A1A8C004FBE74 /* QCloudCOSXML.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0B8FBFF207E235A008D7982 /* QCloudCOSXML.framework */; }; - 1AF083B4266A1A8C004FBE74 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855401EE8FDD300EE47D7 /* CoreMedia.framework */; }; - 1AF083B5266A1A8C004FBE74 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553E1EE8FDCC00EE47D7 /* CoreGraphics.framework */; }; - 1AF083B6266A1A8C004FBE74 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */; }; - 1AF083B7266A1A8C004FBE74 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855381EE8FDB600EE47D7 /* Security.framework */; }; - 1AF083B8266A1A8C004FBE74 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855361EE8FDAD00EE47D7 /* AssetsLibrary.framework */; }; - 1AF083BB266A1A8C004FBE74 /* TCBeautyPanelResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40AA536724458EC800303EF7 /* TCBeautyPanelResources.bundle */; }; - 1AF083BC266A1A8C004FBE74 /* AudioEffectSettingKitResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40B5C6872484BBE500D3A718 /* AudioEffectSettingKitResources.bundle */; }; - 1AF083BD266A1A8C004FBE74 /* V2QRGenerateViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7B5A2D8D25B0355400B4B469 /* V2QRGenerateViewController.xib */; }; - 1AF083BE266A1A8C004FBE74 /* AppPortalLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */; }; - 1AF083BF266A1A8C004FBE74 /* VerifyPicture.html in Resources */ = {isa = PBXBuildFile; fileRef = C6D20717262FC6C2001A80D7 /* VerifyPicture.html */; }; - 1AF083C0266A1A8C004FBE74 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853311EE8FC9B00EE47D7 /* LaunchScreen.storyboard */; }; - 1AF083C1266A1A8C004FBE74 /* UGCLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C884260AECC4001CF672 /* UGCLocalized.strings */; }; - 1AF083C2266A1A8C004FBE74 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40F853221EE8FC7300EE47D7 /* Assets.xcassets */; }; - 1AF083C3266A1A8C004FBE74 /* launchimage_en@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A9A261491B90020F1BA /* launchimage_en@2x.png */; }; - 1AF083C4266A1A8C004FBE74 /* LaunchScreen_en.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C603F9B826047CB9009E3AB2 /* LaunchScreen_en.storyboard */; }; - 1AF083C5266A1A8C004FBE74 /* FilterResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CE7C6E4A1FC2C5320095663F /* FilterResource.bundle */; }; - 1AF083C6266A1A8C004FBE74 /* TRTCDemoLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */; }; - 1AF083C7266A1A8C004FBE74 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 45C37797226765A60054D0B8 /* Settings.bundle */; }; - 1AF083C8266A1A8C004FBE74 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C603F9322603729D009E3AB2 /* InfoPlist.strings */; }; - 1AF083C9266A1A8C004FBE74 /* v2live.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7B5A2DBA25B0355400B4B469 /* v2live.xcassets */; }; - 1AF083CA266A1A8C004FBE74 /* LivePlayerLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */; }; - 1AF083CB266A1A8C004FBE74 /* V2LiveLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */; }; - 1AF083CC266A1A8C004FBE74 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853331EE8FC9B00EE47D7 /* Main.storyboard */; }; - 1AF083CD266A1A8C004FBE74 /* UserProtocol.html in Resources */ = {isa = PBXBuildFile; fileRef = C603F89F26034E93009E3AB2 /* UserProtocol.html */; }; - 1AF083CE266A1A8C004FBE74 /* LoginNetworkLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */; }; - 1AF083CF266A1A8C004FBE74 /* LebPlayer.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40C5675A264AD16400B85C1C /* LebPlayer.xcassets */; }; - 1AF083D0266A1A8C004FBE74 /* launchimage_en@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A99261491B90020F1BA /* launchimage_en@3x.png */; }; - 1AF083D1266A1A8C004FBE74 /* LoginCountryList.json in Resources */ = {isa = PBXBuildFile; fileRef = C6D2071F262FC6C6001A80D7 /* LoginCountryList.json */; }; - 1AF083F0266A1CA6004FBE74 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 1AF083F8266A292A004FBE74 /* CameraPushViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292FC2272BB2500C052B7 /* CameraPushViewController.m */; }; - 1AF083F9266A2945004FBE74 /* PushMoreSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50293012272BB2500C052B7 /* PushMoreSettingViewController.m */; }; - 1AF083FC266A2971004FBE74 /* PushSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50293052272BB2600C052B7 /* PushSettingViewController.m */; }; - 1AF083FE266A2AFD004FBE74 /* ScreenPushViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6E5D1C220B7B62000812B2F /* ScreenPushViewController.m */; }; - 1AF083FF266A3944004FBE74 /* PlayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292FA2272BB1C00C052B7 /* PlayViewController.m */; }; - 1DC7F349A2B6380DCA056281 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 1EA0A986FB03B486F983DE95 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 2009873FBDAEFB2B81E66489 /* LoginViewController+UI_Mock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47147D5A752EF1BBBA9EA243 /* LoginViewController+UI_Mock.swift */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 2840D91C24B8562200723FBC /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2840D91B24B8562200723FBC /* AudioToolbox.framework */; }; - 35B9B4C4D62F874010D759A8 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 40091E6B1F4FCBB9009B882D /* ScanQRController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 40F853561EE8FCDF00EE47D7 /* ScanQRController.mm */; }; - 40091E6F1F4FCBB9009B882D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853261EE8FC8400EE47D7 /* AppDelegate.m */; }; - 40091E761F4FCBB9009B882D /* AppLogMgr.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853281EE8FC8400EE47D7 /* AppLogMgr.m */; }; - 40091E791F4FCBB9009B882D /* MainTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532A1EE8FC8400EE47D7 /* MainTableViewCell.m */; }; - 40091E7F1F4FCBB9009B882D /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532C1EE8FC8400EE47D7 /* MainViewController.m */; }; - 40091E991F4FCBB9009B882D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40407ACA1F3035CA006C7301 /* Foundation.framework */; }; - 40091E9A1F4FCBB9009B882D /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553C1EE8FDC500EE47D7 /* AVFoundation.framework */; }; - 40091E9B1F4FCBB9009B882D /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A4AD391F1F8AE300B4A806 /* MediaPlayer.framework */; }; - 40091E9D1F4FCBB9009B882D /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554E1EE8FE0100EE47D7 /* libiconv.tbd */; }; - 40091E9E1F4FCBB9009B882D /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554C1EE8FDFC00EE47D7 /* libz.tbd */; }; - 40091EA11F4FCBB9009B882D /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855481EE8FDF100EE47D7 /* libresolv.tbd */; }; - 40091EA21F4FCBB9009B882D /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855461EE8FDE800EE47D7 /* SystemConfiguration.framework */; }; - 40091EA31F4FCBB9009B882D /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855441EE8FDE100EE47D7 /* CoreTelephony.framework */; }; - 40091EA41F4FCBB9009B882D /* VideoToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855421EE8FDDA00EE47D7 /* VideoToolbox.framework */; }; - 40091EA61F4FCBB9009B882D /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855401EE8FDD300EE47D7 /* CoreMedia.framework */; }; - 40091EA71F4FCBB9009B882D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553E1EE8FDCC00EE47D7 /* CoreGraphics.framework */; }; - 40091EA81F4FCBB9009B882D /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */; }; - 40091EA91F4FCBB9009B882D /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855381EE8FDB600EE47D7 /* Security.framework */; }; - 40091F121F4FCBB9009B882D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853311EE8FC9B00EE47D7 /* LaunchScreen.storyboard */; }; - 40091F1B1F4FCBB9009B882D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40F853221EE8FC7300EE47D7 /* Assets.xcassets */; }; - 40091F7D1F4FCBBE009B882D /* ScanQRController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 40F853561EE8FCDF00EE47D7 /* ScanQRController.mm */; }; - 40091F811F4FCBBE009B882D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853261EE8FC8400EE47D7 /* AppDelegate.m */; }; - 40091F881F4FCBBE009B882D /* AppLogMgr.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853281EE8FC8400EE47D7 /* AppLogMgr.m */; }; - 40091F8B1F4FCBBE009B882D /* MainTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532A1EE8FC8400EE47D7 /* MainTableViewCell.m */; }; - 40091F911F4FCBBE009B882D /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532C1EE8FC8400EE47D7 /* MainViewController.m */; }; - 40091FAB1F4FCBBE009B882D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40407ACA1F3035CA006C7301 /* Foundation.framework */; }; - 40091FAC1F4FCBBE009B882D /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553C1EE8FDC500EE47D7 /* AVFoundation.framework */; }; - 40091FAD1F4FCBBE009B882D /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A4AD391F1F8AE300B4A806 /* MediaPlayer.framework */; }; - 40091FAF1F4FCBBE009B882D /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554E1EE8FE0100EE47D7 /* libiconv.tbd */; }; - 40091FB01F4FCBBE009B882D /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554C1EE8FDFC00EE47D7 /* libz.tbd */; }; - 40091FB11F4FCBBE009B882D /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45D2971F15C527003506D1 /* libc++.tbd */; }; - 40091FB31F4FCBBE009B882D /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855481EE8FDF100EE47D7 /* libresolv.tbd */; }; - 40091FB41F4FCBBE009B882D /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855461EE8FDE800EE47D7 /* SystemConfiguration.framework */; }; - 40091FB51F4FCBBE009B882D /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855441EE8FDE100EE47D7 /* CoreTelephony.framework */; }; - 40091FB61F4FCBBE009B882D /* VideoToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855421EE8FDDA00EE47D7 /* VideoToolbox.framework */; }; - 40091FB81F4FCBBE009B882D /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855401EE8FDD300EE47D7 /* CoreMedia.framework */; }; - 40091FB91F4FCBBE009B882D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553E1EE8FDCC00EE47D7 /* CoreGraphics.framework */; }; - 40091FBA1F4FCBBE009B882D /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */; }; - 40091FBB1F4FCBBE009B882D /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855381EE8FDB600EE47D7 /* Security.framework */; }; - 40091FBC1F4FCBBE009B882D /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855361EE8FDAD00EE47D7 /* AssetsLibrary.framework */; }; - 400920241F4FCBBE009B882D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853311EE8FC9B00EE47D7 /* LaunchScreen.storyboard */; }; - 4009202D1F4FCBBE009B882D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40F853221EE8FC7300EE47D7 /* Assets.xcassets */; }; - 400920591F4FCBBE009B882D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853331EE8FC9B00EE47D7 /* Main.storyboard */; }; - 400921A51F4FCC52009B882D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853261EE8FC8400EE47D7 /* AppDelegate.m */; }; - 400921AC1F4FCC52009B882D /* AppLogMgr.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853281EE8FC8400EE47D7 /* AppLogMgr.m */; }; - 400921AF1F4FCC52009B882D /* MainTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532A1EE8FC8400EE47D7 /* MainTableViewCell.m */; }; - 400921B51F4FCC52009B882D /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532C1EE8FC8400EE47D7 /* MainViewController.m */; }; - 400921CF1F4FCC52009B882D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40407ACA1F3035CA006C7301 /* Foundation.framework */; }; - 400921D01F4FCC52009B882D /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553C1EE8FDC500EE47D7 /* AVFoundation.framework */; }; - 400921D11F4FCC52009B882D /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A4AD391F1F8AE300B4A806 /* MediaPlayer.framework */; }; - 400921D31F4FCC52009B882D /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554E1EE8FE0100EE47D7 /* libiconv.tbd */; }; - 400921D41F4FCC52009B882D /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554C1EE8FDFC00EE47D7 /* libz.tbd */; }; - 400921D51F4FCC52009B882D /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45D2971F15C527003506D1 /* libc++.tbd */; }; - 400921D71F4FCC52009B882D /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855481EE8FDF100EE47D7 /* libresolv.tbd */; }; - 400921D81F4FCC52009B882D /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855461EE8FDE800EE47D7 /* SystemConfiguration.framework */; }; - 400921D91F4FCC52009B882D /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855441EE8FDE100EE47D7 /* CoreTelephony.framework */; }; - 400921DA1F4FCC52009B882D /* VideoToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855421EE8FDDA00EE47D7 /* VideoToolbox.framework */; }; - 400921DC1F4FCC52009B882D /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855401EE8FDD300EE47D7 /* CoreMedia.framework */; }; - 400921DD1F4FCC52009B882D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553E1EE8FDCC00EE47D7 /* CoreGraphics.framework */; }; - 400921DE1F4FCC52009B882D /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */; }; - 400921DF1F4FCC52009B882D /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855381EE8FDB600EE47D7 /* Security.framework */; }; - 400921E01F4FCC52009B882D /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855361EE8FDAD00EE47D7 /* AssetsLibrary.framework */; }; - 400922481F4FCC52009B882D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853311EE8FC9B00EE47D7 /* LaunchScreen.storyboard */; }; - 400922511F4FCC52009B882D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40F853221EE8FC7300EE47D7 /* Assets.xcassets */; }; - 4009227D1F4FCC52009B882D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853331EE8FC9B00EE47D7 /* Main.storyboard */; }; - 400922B31F4FCC6E009B882D /* ScanQRController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 40F853561EE8FCDF00EE47D7 /* ScanQRController.mm */; }; - 400922B71F4FCC6E009B882D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853261EE8FC8400EE47D7 /* AppDelegate.m */; }; - 400922BE1F4FCC6E009B882D /* AppLogMgr.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853281EE8FC8400EE47D7 /* AppLogMgr.m */; }; - 400922C11F4FCC6E009B882D /* MainTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532A1EE8FC8400EE47D7 /* MainTableViewCell.m */; }; - 400922C71F4FCC6E009B882D /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532C1EE8FC8400EE47D7 /* MainViewController.m */; }; - 400922E11F4FCC6E009B882D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40407ACA1F3035CA006C7301 /* Foundation.framework */; }; - 400922E21F4FCC6E009B882D /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553C1EE8FDC500EE47D7 /* AVFoundation.framework */; }; - 400922E31F4FCC6E009B882D /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A4AD391F1F8AE300B4A806 /* MediaPlayer.framework */; }; - 400922E51F4FCC6E009B882D /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554E1EE8FE0100EE47D7 /* libiconv.tbd */; }; - 400922E61F4FCC6E009B882D /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554C1EE8FDFC00EE47D7 /* libz.tbd */; }; - 400922E71F4FCC6E009B882D /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45D2971F15C527003506D1 /* libc++.tbd */; }; - 400922E91F4FCC6E009B882D /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855481EE8FDF100EE47D7 /* libresolv.tbd */; }; - 400922EA1F4FCC6E009B882D /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855461EE8FDE800EE47D7 /* SystemConfiguration.framework */; }; - 400922EB1F4FCC6E009B882D /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855441EE8FDE100EE47D7 /* CoreTelephony.framework */; }; - 400922EC1F4FCC6E009B882D /* VideoToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855421EE8FDDA00EE47D7 /* VideoToolbox.framework */; }; - 400922EE1F4FCC6E009B882D /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855401EE8FDD300EE47D7 /* CoreMedia.framework */; }; - 400922EF1F4FCC6E009B882D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553E1EE8FDCC00EE47D7 /* CoreGraphics.framework */; }; - 400922F01F4FCC6E009B882D /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */; }; - 400922F11F4FCC6E009B882D /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855381EE8FDB600EE47D7 /* Security.framework */; }; - 400922F21F4FCC6E009B882D /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855361EE8FDAD00EE47D7 /* AssetsLibrary.framework */; }; - 4009235A1F4FCC6E009B882D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853311EE8FC9B00EE47D7 /* LaunchScreen.storyboard */; }; - 400923631F4FCC6E009B882D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40F853221EE8FC7300EE47D7 /* Assets.xcassets */; }; - 4009238F1F4FCC6E009B882D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853331EE8FC9B00EE47D7 /* Main.storyboard */; }; - 400C953A244955A000600BF0 /* AppUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F9DB2446EF11000C37A3 /* AppUtils.swift */; }; - 400C953B244955A000600BF0 /* CommonUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F9DC2446EF11000C37A3 /* CommonUtils.swift */; }; - 4028E6342456DC5B0000E428 /* QCloudCOSXML.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0B8FBFF207E235A008D7982 /* QCloudCOSXML.framework */; }; - 4028E6352456DC5F0000E428 /* QCloudCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0B8FC00207E235B008D7982 /* QCloudCore.framework */; }; - 402A00EE24506B7C0037A219 /* UGCRecordWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A00ED24506B7C0037A219 /* UGCRecordWrapper.m */; }; - 402A00F124506B9E0037A219 /* UGCVideoJoinWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A00F024506B9E0037A219 /* UGCVideoJoinWrapper.m */; }; - 402A00F424506BEB0037A219 /* UGCVideoEditWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A00F324506BEB0037A219 /* UGCVideoEditWrapper.m */; }; - 402A00F524506BEB0037A219 /* UGCVideoEditWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A00F324506BEB0037A219 /* UGCVideoEditWrapper.m */; }; - 402A00F624506BEB0037A219 /* UGCVideoEditWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A00F324506BEB0037A219 /* UGCVideoEditWrapper.m */; }; - 402A00F724506BF00037A219 /* UGCVideoJoinWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A00F024506B9E0037A219 /* UGCVideoJoinWrapper.m */; }; - 402A00F824506BF20037A219 /* UGCVideoJoinWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A00F024506B9E0037A219 /* UGCVideoJoinWrapper.m */; }; - 402A00F924506BF80037A219 /* UGCRecordWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A00ED24506B7C0037A219 /* UGCRecordWrapper.m */; }; - 402A00FA24506BFA0037A219 /* UGCRecordWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A00ED24506B7C0037A219 /* UGCRecordWrapper.m */; }; - 402A00FD24506D0D0037A219 /* UGCVideoUploadWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A00FC24506D0D0037A219 /* UGCVideoUploadWrapper.m */; }; - 402A00FE24506D0D0037A219 /* UGCVideoUploadWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A00FC24506D0D0037A219 /* UGCVideoUploadWrapper.m */; }; - 402A00FF24506D0D0037A219 /* UGCVideoUploadWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A00FC24506D0D0037A219 /* UGCVideoUploadWrapper.m */; }; - 402A010124506F740037A219 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A010024506F740037A219 /* main.m */; }; - 402A010224506F740037A219 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A010024506F740037A219 /* main.m */; }; - 402A010324506F740037A219 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A010024506F740037A219 /* main.m */; }; - 402A010424506F740037A219 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A010024506F740037A219 /* main.m */; }; - 402A010524506F740037A219 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A010024506F740037A219 /* main.m */; }; - 402A010624506F740037A219 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A010024506F740037A219 /* main.m */; }; - 4038CEDF2669CE3200813912 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */; }; - 4038CEE12669CE3A00813912 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */; }; - 4038CEE22669CE4000813912 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */; }; - 4038CEE32669CE4600813912 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */; }; - 40495B3F2459466A00AF53CB /* LoginViewController+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B392459466900AF53CB /* LoginViewController+UI.swift */; }; - 40495B402459466A00AF53CB /* LoginViewController+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B392459466900AF53CB /* LoginViewController+UI.swift */; }; - 40495B442459466A00AF53CB /* LoginViewController+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B392459466900AF53CB /* LoginViewController+UI.swift */; }; - 40495B452459466A00AF53CB /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3A2459466900AF53CB /* LoginViewController.swift */; }; - 40495B462459466A00AF53CB /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3A2459466900AF53CB /* LoginViewController.swift */; }; - 40495B4A2459466A00AF53CB /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3A2459466900AF53CB /* LoginViewController.swift */; }; - 40495B4B2459466A00AF53CB /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3B2459466900AF53CB /* ProfileViewController.swift */; }; - 40495B4C2459466A00AF53CB /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3B2459466900AF53CB /* ProfileViewController.swift */; }; - 40495B502459466A00AF53CB /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3B2459466900AF53CB /* ProfileViewController.swift */; }; - 40495B512459466A00AF53CB /* ProfileViewController+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3C2459466900AF53CB /* ProfileViewController+UI.swift */; }; - 40495B522459466A00AF53CB /* ProfileViewController+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3C2459466900AF53CB /* ProfileViewController+UI.swift */; }; - 40495B562459466A00AF53CB /* ProfileViewController+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3C2459466900AF53CB /* ProfileViewController+UI.swift */; }; - 40495B572459466A00AF53CB /* ProfileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3E2459466900AF53CB /* ProfileManager.swift */; }; - 40495B582459466A00AF53CB /* ProfileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3E2459466900AF53CB /* ProfileManager.swift */; }; - 40495B5C2459466A00AF53CB /* ProfileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3E2459466900AF53CB /* ProfileManager.swift */; }; - 405339122465449E00A6B478 /* ThemeConfigurator.m in Sources */ = {isa = PBXBuildFile; fileRef = 45E74D9A23B22BCD00C22B31 /* ThemeConfigurator.m */; }; - 4053392124654CEF00A6B478 /* TCHttpUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 4053391C24654CEF00A6B478 /* TCHttpUtil.m */; }; - 4053392224654CEF00A6B478 /* SmallButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4053391F24654CEF00A6B478 /* SmallButton.m */; }; - 4053392724654D2700A6B478 /* TCHttpUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 4053392524654D2700A6B478 /* TCHttpUtil.m */; }; - 405339292465511700A6B478 /* bgm_demo.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 405339282465511700A6B478 /* bgm_demo.mp3 */; }; - 4053395A246645D900A6B478 /* ScanQRController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 40533959246645D900A6B478 /* ScanQRController.mm */; }; - 4053395E2466460600A6B478 /* ScanQRController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4053395D2466460600A6B478 /* ScanQRController.mm */; }; - 405874DB2445BCBA009B3503 /* TCBeautyPanelResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40AA536724458EC800303EF7 /* TCBeautyPanelResources.bundle */; }; - 4065C98824570E31002C0A38 /* libmtasdk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4065C98724570E31002C0A38 /* libmtasdk.a */; }; - 4065C98924570E31002C0A38 /* libmtasdk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4065C98724570E31002C0A38 /* libmtasdk.a */; }; - 4065C98A24570E31002C0A38 /* libmtasdk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4065C98724570E31002C0A38 /* libmtasdk.a */; }; - 4071CF5B24441578000B7707 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 4071CF6024441764000B7707 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 4071CF6D2444423D000B7707 /* TXLiteAVSDK_Smart.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4071CF6B2444423D000B7707 /* TXLiteAVSDK_Smart.framework */; }; - 4071CF6E2444423D000B7707 /* TXLiteAVSDK_Smart.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4071CF6B2444423D000B7707 /* TXLiteAVSDK_Smart.framework */; }; - 4074E608249F01E2006C591F /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 4074E61C249F057F006C591F /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 4074E61F249F05BF006C591F /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 4074E625249F0F1B006C591F /* BuildFile in Embed App Extensions */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 4074E629249F0F30006C591F /* BuildFile in Embed App Extensions */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 4074E64D249F1FCF006C591F /* AudioEffectSettingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40B5C6832484BBE500D3A718 /* AudioEffectSettingKit.framework */; }; - 4074E64E249F1FD5006C591F /* AudioEffectSettingKitResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40B5C6872484BBE500D3A718 /* AudioEffectSettingKitResources.bundle */; }; - 4088EB4F24599236005BF1DD /* TCBeautyPanel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40AA536524458EC800303EF7 /* TCBeautyPanel.framework */; }; - 4088EB59245998E7005BF1DD /* TCBeautyPanel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40AA536524458EC800303EF7 /* TCBeautyPanel.framework */; }; - 4088EB6024599E25005BF1DD /* TCBeautyPanelResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40AA536724458EC800303EF7 /* TCBeautyPanelResources.bundle */; }; - 4088EB70245A6832005BF1DD /* UGCKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40A49D6524598CD700BFCB18 /* UGCKit.framework */; }; - 4088EB72245A683F005BF1DD /* TCBeautyPanel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40AA536524458EC800303EF7 /* TCBeautyPanel.framework */; }; - 408A7236264BBFFC00262009 /* LebPlayerSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56635264ABB5000B85C1C /* LebPlayerSettingViewController.m */; }; - 408A7237264BBFFC00262009 /* LebSettingsBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56643264ABB5000B85C1C /* LebSettingsBaseCell.m */; }; - 408A7238264BBFFC00262009 /* LebSettingsBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56644264ABB5000B85C1C /* LebSettingsBaseViewController.m */; }; - 408A7239264BBFFC00262009 /* LebLiveUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56711264AC54F00B85C1C /* LebLiveUtils.m */; }; - 408A723A264BBFFC00262009 /* LebQRScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56713264AC55000B85C1C /* LebQRScanViewController.m */; }; - 408A723B264BBFFC00262009 /* LebSettingBottomBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5663D264ABB5000B85C1C /* LebSettingBottomBar.m */; }; - 408A7242264BC01100262009 /* UISlider+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5664C264ABB5000B85C1C /* UISlider+Leb.m */; }; - 408A7243264BC01100262009 /* UILabel+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5664D264ABB5000B85C1C /* UILabel+Leb.m */; }; - 408A7244264BC01100262009 /* UIButton+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56649264ABB5000B85C1C /* UIButton+Leb.m */; }; - 408A7245264BC01100262009 /* UISegmentedControl+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5664B264ABB5000B85C1C /* UISegmentedControl+Leb.m */; }; - 408A724C264BC01A00262009 /* LebLauncherViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C565BC264A2D7000B85C1C /* LebLauncherViewController.m */; }; - 408A724D264BC01A00262009 /* LebPlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C565CE264A31D400B85C1C /* LebPlayerViewController.m */; }; - 408A7254264BC01E00262009 /* LebPlayer.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40C5675A264AD16400B85C1C /* LebPlayer.xcassets */; }; - 40986E6F269DB27D003095B8 /* CustomAudioFileReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 881C2888269D35EA0013B870 /* CustomAudioFileReader.m */; }; - 40986E71269DB27D003095B8 /* CustomAudioFileReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 881C2888269D35EA0013B870 /* CustomAudioFileReader.m */; }; - 40986E72269DB291003095B8 /* CustomAudioCapturor.m in Sources */ = {isa = PBXBuildFile; fileRef = 881C2887269D35EA0013B870 /* CustomAudioCapturor.m */; }; - 40986E73269DB291003095B8 /* CustomAudioCapturor.m in Sources */ = {isa = PBXBuildFile; fileRef = 881C2887269D35EA0013B870 /* CustomAudioCapturor.m */; }; - 40986E74269DB298003095B8 /* CustomAudio48000_1.pcm in Resources */ = {isa = PBXBuildFile; fileRef = 881C288C269D35EA0013B870 /* CustomAudio48000_1.pcm */; }; - 40986E75269DB299003095B8 /* CustomAudio48000_1.pcm in Resources */ = {isa = PBXBuildFile; fileRef = 881C288C269D35EA0013B870 /* CustomAudio48000_1.pcm */; }; - 40986E76269DB29C003095B8 /* CustomAudio44100_2.pcm in Resources */ = {isa = PBXBuildFile; fileRef = 881C288B269D35EA0013B870 /* CustomAudio44100_2.pcm */; }; - 40986E77269DB29D003095B8 /* CustomAudio44100_2.pcm in Resources */ = {isa = PBXBuildFile; fileRef = 881C288B269D35EA0013B870 /* CustomAudio44100_2.pcm */; }; - 409A062B268F1DB400633EBC /* SmallButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4053391F24654CEF00A6B478 /* SmallButton.m */; }; - 409A062D268F1DDD00633EBC /* TCHttpUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 4053391C24654CEF00A6B478 /* TCHttpUtil.m */; }; - 409A062E268F1DED00633EBC /* ScanQRController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 40533959246645D900A6B478 /* ScanQRController.mm */; }; - 409A062F268F1DF100633EBC /* ScanQRController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 40533959246645D900A6B478 /* ScanQRController.mm */; }; - 409A0630268F1DF700633EBC /* SmallButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4053391F24654CEF00A6B478 /* SmallButton.m */; }; - 409A0631268F1DFC00633EBC /* TCHttpUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 4053391C24654CEF00A6B478 /* TCHttpUtil.m */; }; - 409A0632268F1E5800633EBC /* PhotoUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B18A592670AEA500553049 /* PhotoUtil.m */; }; - 40A1DE97263840EB0011E532 /* UIView+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB4260B5C05001CF672 /* UIView+Additions.m */; }; - 40A1DE9F263840EB0011E532 /* UIView+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB4260B5C05001CF672 /* UIView+Additions.m */; }; - 40A1DEA6263840EF0011E532 /* UIView+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB4260B5C05001CF672 /* UIView+Additions.m */; }; - 40A1DEB42638412D0011E532 /* NSData+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB6260B5C05001CF672 /* NSData+Common.m */; }; - 40A1DEBB2638412D0011E532 /* NSData+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB6260B5C05001CF672 /* NSData+Common.m */; }; - 40A1DEC22638412E0011E532 /* NSData+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB6260B5C05001CF672 /* NSData+Common.m */; }; - 40A1DEC92638412F0011E532 /* NSData+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB6260B5C05001CF672 /* NSData+Common.m */; }; - 40A1DED0263841350011E532 /* NSDictionary+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC5260B5C05001CF672 /* NSDictionary+Common.m */; }; - 40A1DED7263841350011E532 /* NSDictionary+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC5260B5C05001CF672 /* NSDictionary+Common.m */; }; - 40A1DED8263841360011E532 /* NSDictionary+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC5260B5C05001CF672 /* NSDictionary+Common.m */; }; - 40A1DEDF263841370011E532 /* NSDictionary+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC5260B5C05001CF672 /* NSDictionary+Common.m */; }; - 40A1DEED2638413D0011E532 /* NSObject+CommonBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB3260B5C05001CF672 /* NSObject+CommonBlock.m */; }; - 40A1DEEE2638413E0011E532 /* NSObject+CommonBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB3260B5C05001CF672 /* NSObject+CommonBlock.m */; }; - 40A1DEF52638413F0011E532 /* NSObject+CommonBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB3260B5C05001CF672 /* NSObject+CommonBlock.m */; }; - 40A1DEF6263841400011E532 /* NSObject+CommonBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB3260B5C05001CF672 /* NSObject+CommonBlock.m */; }; - 40A1DEFD2638414B0011E532 /* NSString+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABA260B5C05001CF672 /* NSString+Common.m */; }; - 40A1DF042638414C0011E532 /* NSString+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABA260B5C05001CF672 /* NSString+Common.m */; }; - 40A1DF0B2638414D0011E532 /* NSString+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABA260B5C05001CF672 /* NSString+Common.m */; }; - 40A1DF122638414E0011E532 /* NSString+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABA260B5C05001CF672 /* NSString+Common.m */; }; - 40A1DF19263841520011E532 /* NSString+UISize.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABE260B5C05001CF672 /* NSString+UISize.m */; }; - 40A1DF20263841520011E532 /* NSString+UISize.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABE260B5C05001CF672 /* NSString+UISize.m */; }; - 40A1DF28263841540011E532 /* NSString+UISize.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABE260B5C05001CF672 /* NSString+UISize.m */; }; - 40A1DF2F263841590011E532 /* UIButton+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB5260B5C05001CF672 /* UIButton+Additions.m */; }; - 40A1DF36263841590011E532 /* UIButton+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB5260B5C05001CF672 /* UIButton+Additions.m */; }; - 40A1DF372638415A0011E532 /* UIButton+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB5260B5C05001CF672 /* UIButton+Additions.m */; }; - 40A1DF3E2638415B0011E532 /* UIButton+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB5260B5C05001CF672 /* UIButton+Additions.m */; }; - 40A1DF45263841890011E532 /* UIButton+Glossy.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABC260B5C05001CF672 /* UIButton+Glossy.m */; }; - 40A1DF4C2638418A0011E532 /* UIButton+Glossy.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABC260B5C05001CF672 /* UIButton+Glossy.m */; }; - 40A1DF542638418B0011E532 /* UIButton+Glossy.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABC260B5C05001CF672 /* UIButton+Glossy.m */; }; - 40A1DF5B2638418E0011E532 /* UIColor+MLPFlatColors.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAAF260B5C05001CF672 /* UIColor+MLPFlatColors.m */; }; - 40A1DF622638418F0011E532 /* UIColor+MLPFlatColors.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAAF260B5C05001CF672 /* UIColor+MLPFlatColors.m */; }; - 40A1DF63263841900011E532 /* UIColor+MLPFlatColors.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAAF260B5C05001CF672 /* UIColor+MLPFlatColors.m */; }; - 40A1DF6A263841900011E532 /* UIColor+MLPFlatColors.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAAF260B5C05001CF672 /* UIColor+MLPFlatColors.m */; }; - 40A1DF71263841930011E532 /* UIImage+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC3260B5C05001CF672 /* UIImage+Additions.m */; }; - 40A1DF78263841940011E532 /* UIImage+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC3260B5C05001CF672 /* UIImage+Additions.m */; }; - 40A1DF79263841950011E532 /* UIImage+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC3260B5C05001CF672 /* UIImage+Additions.m */; }; - 40A1DF80263841960011E532 /* UIImage+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC3260B5C05001CF672 /* UIImage+Additions.m */; }; - 40A1DF872638419C0011E532 /* UIView+CustomAutoLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABD260B5C05001CF672 /* UIView+CustomAutoLayout.m */; }; - 40A1DF8F2638419E0011E532 /* UIView+CustomAutoLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABD260B5C05001CF672 /* UIView+CustomAutoLayout.m */; }; - 40A1DF962638419E0011E532 /* UIView+CustomAutoLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABD260B5C05001CF672 /* UIView+CustomAutoLayout.m */; }; - 40A1DF9D263841AA0011E532 /* UIViewController+BackButtonHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB7260B5C05001CF672 /* UIViewController+BackButtonHandler.m */; }; - 40A1DFA5263841AB0011E532 /* UIViewController+BackButtonHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB7260B5C05001CF672 /* UIViewController+BackButtonHandler.m */; }; - 40A1DFAC263841AD0011E532 /* UIViewController+BackButtonHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB7260B5C05001CF672 /* UIViewController+BackButtonHandler.m */; }; - 40A49D6A24598D2A00BFCB18 /* UGCKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40A49D6524598CD700BFCB18 /* UGCKit.framework */; }; - 40A49D6F24598D4800BFCB18 /* UGCKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40A49D6524598CD700BFCB18 /* UGCKit.framework */; }; - 40A49D7424598DA000BFCB18 /* UGCKitResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40A49D6724598CD700BFCB18 /* UGCKitResources.bundle */; }; - 40A49D7524598DA800BFCB18 /* UGCKitResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40A49D6724598CD700BFCB18 /* UGCKitResources.bundle */; }; - 40A49D7624598DB500BFCB18 /* UGCKitResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40A49D6724598CD700BFCB18 /* UGCKitResources.bundle */; }; - 40A49D7A24598DEC00BFCB18 /* UGCKitResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40A49D6724598CD700BFCB18 /* UGCKitResources.bundle */; }; - 40A7CFEE2461102E00E792A5 /* SuperPlayer.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40A7CFED2461102E00E792A5 /* SuperPlayer.bundle */; }; - 40A7CFEF2461102E00E792A5 /* SuperPlayer.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40A7CFED2461102E00E792A5 /* SuperPlayer.bundle */; }; - 40A7CFF02461102E00E792A5 /* SuperPlayer.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40A7CFED2461102E00E792A5 /* SuperPlayer.bundle */; }; - 40A7CFF42461105B00E792A5 /* SuperPlayer.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40A7CFED2461102E00E792A5 /* SuperPlayer.bundle */; }; - 40AA52B0244554BA00303EF7 /* SampleHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 91D47F3D20B6B13C0072AC0B /* SampleHandler.m */; }; - 40AA52B5244554BA00303EF7 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A289F8230FB93A00B9B73F /* OpenAL.framework */; }; - 40AA52B6244554BA00303EF7 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */; }; - 40AA52B7244554BA00303EF7 /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855481EE8FDF100EE47D7 /* libresolv.tbd */; }; - 40AA52B8244554BA00303EF7 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45D2971F15C527003506D1 /* libc++.tbd */; }; - 40AA52BA244554BA00303EF7 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 91D47F3920B6B13C0072AC0B /* ReplayKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 40AA52C22445551E00303EF7 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 40AA5386244591DB00303EF7 /* TCBeautyPanel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40AA536524458EC800303EF7 /* TCBeautyPanel.framework */; }; - 40AA538A2445935800303EF7 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554C1EE8FDFC00EE47D7 /* libz.tbd */; }; - 40B18A5C2670AEA500553049 /* PhotoUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B18A592670AEA500553049 /* PhotoUtil.m */; }; - 40B18A5D2670AEA500553049 /* TXColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B18A5B2670AEA500553049 /* TXColor.m */; }; - 40B3F6762446E518000C37A3 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853261EE8FC8400EE47D7 /* AppDelegate.m */; }; - 40B3F6942446E518000C37A3 /* AppLogMgr.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853281EE8FC8400EE47D7 /* AppLogMgr.m */; }; - 40B3F6AE2446E518000C37A3 /* TCBeautyPanel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40AA536524458EC800303EF7 /* TCBeautyPanel.framework */; }; - 40B3F6AF2446E518000C37A3 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */; }; - 40B3F6B02446E518000C37A3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40407ACA1F3035CA006C7301 /* Foundation.framework */; }; - 40B3F6B22446E518000C37A3 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553C1EE8FDC500EE47D7 /* AVFoundation.framework */; }; - 40B3F6B32446E518000C37A3 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A4AD391F1F8AE300B4A806 /* MediaPlayer.framework */; }; - 40B3F6B42446E518000C37A3 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554E1EE8FE0100EE47D7 /* libiconv.tbd */; }; - 40B3F6B52446E518000C37A3 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554C1EE8FDFC00EE47D7 /* libz.tbd */; }; - 40B3F6B62446E518000C37A3 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45D2971F15C527003506D1 /* libc++.tbd */; }; - 40B3F6B72446E518000C37A3 /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855481EE8FDF100EE47D7 /* libresolv.tbd */; }; - 40B3F6B82446E518000C37A3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855461EE8FDE800EE47D7 /* SystemConfiguration.framework */; }; - 40B3F6B92446E518000C37A3 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855441EE8FDE100EE47D7 /* CoreTelephony.framework */; }; - 40B3F6BA2446E518000C37A3 /* VideoToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855421EE8FDDA00EE47D7 /* VideoToolbox.framework */; }; - 40B3F6BB2446E518000C37A3 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855401EE8FDD300EE47D7 /* CoreMedia.framework */; }; - 40B3F6BC2446E518000C37A3 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553E1EE8FDCC00EE47D7 /* CoreGraphics.framework */; }; - 40B3F6BD2446E518000C37A3 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */; }; - 40B3F6BE2446E518000C37A3 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (Required, ); }; }; - 40B3F6BF2446E518000C37A3 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855381EE8FDB600EE47D7 /* Security.framework */; }; - 40B3F6C02446E518000C37A3 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855361EE8FDAD00EE47D7 /* AssetsLibrary.framework */; }; - 40B3F6C22446E518000C37A3 /* TCBeautyPanelResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40AA536724458EC800303EF7 /* TCBeautyPanelResources.bundle */; }; - 40B3F6C72446E518000C37A3 /* FilterResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CE7C6E4A1FC2C5320095663F /* FilterResource.bundle */; }; - 40B3F6C82446E518000C37A3 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853311EE8FC9B00EE47D7 /* LaunchScreen.storyboard */; }; - 40B3F6CA2446E518000C37A3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40F853221EE8FC7300EE47D7 /* Assets.xcassets */; }; - 40B3F6CC2446E518000C37A3 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853331EE8FC9B00EE47D7 /* Main.storyboard */; }; - 40B3F9722446E6C6000C37A3 /* GenerateTestUserSig.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F8DC2446E6C5000C37A3 /* GenerateTestUserSig.m */; }; - 40B3F9E02446EF11000C37A3 /* AppUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F9DB2446EF11000C37A3 /* AppUtils.swift */; }; - 40B3F9E12446EF11000C37A3 /* CommonUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F9DC2446EF11000C37A3 /* CommonUtils.swift */; }; - 40B5C68C2484BBFC00D3A718 /* AudioEffectSettingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40B5C6832484BBE500D3A718 /* AudioEffectSettingKit.framework */; }; - 40B5C68F2484BC1200D3A718 /* AudioEffectSettingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40B5C6832484BBE500D3A718 /* AudioEffectSettingKit.framework */; }; - 40B5C6922484BC2500D3A718 /* AudioEffectSettingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40B5C6832484BBE500D3A718 /* AudioEffectSettingKit.framework */; }; - 40B5C6942484BE4800D3A718 /* AudioEffectSettingKitResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40B5C6872484BBE500D3A718 /* AudioEffectSettingKitResources.bundle */; }; - 40B5C6952484BE5100D3A718 /* AudioEffectSettingKitResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40B5C6872484BBE500D3A718 /* AudioEffectSettingKitResources.bundle */; }; - 40B5C6962484BE5700D3A718 /* AudioEffectSettingKitResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40B5C6872484BBE500D3A718 /* AudioEffectSettingKitResources.bundle */; }; - 40BE0EEA25EF724600C58D6C /* BuildFile in Resources */ = {isa = PBXBuildFile; }; - 40BEFEB6246942E400F4E10D /* TCBeautyPanelResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40AA536724458EC800303EF7 /* TCBeautyPanelResources.bundle */; }; - 40C0BD51244848D300931313 /* GenerateTestUserSig.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F8DC2446E6C5000C37A3 /* GenerateTestUserSig.m */; }; - 40C0BDAF2448504600931313 /* AppUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F9DB2446EF11000C37A3 /* AppUtils.swift */; }; - 40C0BDB02448504600931313 /* CommonUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F9DC2446EF11000C37A3 /* CommonUtils.swift */; }; - 40C0BDB7244851E300931313 /* TCBeautyPanelResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40AA536724458EC800303EF7 /* TCBeautyPanelResources.bundle */; }; - 40C0BDBF2448539500931313 /* GenerateTestUserSig.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F8DC2446E6C5000C37A3 /* GenerateTestUserSig.m */; }; - 40C56655264ABB5000B85C1C /* LebPlayerSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56635264ABB5000B85C1C /* LebPlayerSettingViewController.m */; }; - 40C56656264ABB5000B85C1C /* LebPlayerSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56635264ABB5000B85C1C /* LebPlayerSettingViewController.m */; }; - 40C5665E264ABB5000B85C1C /* LebSettingBottomBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5663D264ABB5000B85C1C /* LebSettingBottomBar.m */; }; - 40C5665F264ABB5000B85C1C /* LebSettingBottomBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5663D264ABB5000B85C1C /* LebSettingBottomBar.m */; }; - 40C56668264ABB5100B85C1C /* LebSettingsBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56644264ABB5000B85C1C /* LebSettingsBaseViewController.m */; }; - 40C5666E264ABB5100B85C1C /* UIButton+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56649264ABB5000B85C1C /* UIButton+Leb.m */; }; - 40C56670264ABB5100B85C1C /* UISegmentedControl+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5664B264ABB5000B85C1C /* UISegmentedControl+Leb.m */; }; - 40C56674264ABB5100B85C1C /* UISlider+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5664C264ABB5000B85C1C /* UISlider+Leb.m */; }; - 40C56676264ABB5100B85C1C /* UILabel+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5664D264ABB5000B85C1C /* UILabel+Leb.m */; }; - 40C56717264AC55000B85C1C /* LebQRScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56713264AC55000B85C1C /* LebQRScanViewController.m */; }; - 40C56718264AC55000B85C1C /* LebQRScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56713264AC55000B85C1C /* LebQRScanViewController.m */; }; - 40C5675B264AD16400B85C1C /* LebPlayer.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40C5675A264AD16400B85C1C /* LebPlayer.xcassets */; }; - 40C5675C264AD16400B85C1C /* LebPlayer.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40C5675A264AD16400B85C1C /* LebPlayer.xcassets */; }; - 4509E5D322816E8D001FF14A /* LiveRoomAccPlayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4509E5D222816E8D001FF14A /* LiveRoomAccPlayerView.m */; }; - 4509E5D422816E8D001FF14A /* LiveRoomAccPlayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4509E5D222816E8D001FF14A /* LiveRoomAccPlayerView.m */; }; - 4509E5D522816E8D001FF14A /* LiveRoomAccPlayerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4509E5D222816E8D001FF14A /* LiveRoomAccPlayerView.m */; }; - 450CFC2223AB5CC800A17FD0 /* VideoRecordConfigViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 450CFC1123AB5CC800A17FD0 /* VideoRecordConfigViewController.m */; }; - 450CFC2323AB5CC800A17FD0 /* VideoRecordConfigViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 450CFC1123AB5CC800A17FD0 /* VideoRecordConfigViewController.m */; }; - 450CFC2423AB5CC800A17FD0 /* VideoRecordConfigViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 450CFC1123AB5CC800A17FD0 /* VideoRecordConfigViewController.m */; }; - 450CFC2E23AB5CC800A17FD0 /* VideoRecordConfigViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 450CFC1623AB5CC800A17FD0 /* VideoRecordConfigViewController.xib */; }; - 450CFC2F23AB5CC800A17FD0 /* VideoRecordConfigViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 450CFC1623AB5CC800A17FD0 /* VideoRecordConfigViewController.xib */; }; - 450CFC3023AB5CC800A17FD0 /* VideoRecordConfigViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 450CFC1623AB5CC800A17FD0 /* VideoRecordConfigViewController.xib */; }; - 450CFC4C23AB5CC800A17FD0 /* VideoRecord.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 450CFC2023AB5CC800A17FD0 /* VideoRecord.xcassets */; }; - 450CFC4D23AB5CC800A17FD0 /* VideoRecord.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 450CFC2023AB5CC800A17FD0 /* VideoRecord.xcassets */; }; - 450CFC4E23AB5CC800A17FD0 /* VideoRecord.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 450CFC2023AB5CC800A17FD0 /* VideoRecord.xcassets */; }; - 4540802C23292D4400C3CAD5 /* PhotoUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 4540802B23292D4400C3CAD5 /* PhotoUtil.m */; }; - 4540803C23292D4D00C3CAD5 /* PhotoUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 4540802B23292D4400C3CAD5 /* PhotoUtil.m */; }; - 4540803D23292D4F00C3CAD5 /* PhotoUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 4540802B23292D4400C3CAD5 /* PhotoUtil.m */; }; - 45736EA2243F5DB800F7F601 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 45736EA3243F5DB900F7F601 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 45736EA4243F5DC000F7F601 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 45BB0B3823A9C3730084FE90 /* UGCKitWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 45BB0B2623A9C3730084FE90 /* UGCKitWrapper.m */; }; - 45BB0B3923A9C3730084FE90 /* UGCKitWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 45BB0B2623A9C3730084FE90 /* UGCKitWrapper.m */; }; - 45BB0B3A23A9C3730084FE90 /* UGCKitWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 45BB0B2623A9C3730084FE90 /* UGCKitWrapper.m */; }; - 45C37798226765A60054D0B8 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 45C37797226765A60054D0B8 /* Settings.bundle */; }; - 45C37799226765A60054D0B8 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 45C37797226765A60054D0B8 /* Settings.bundle */; }; - 45C3779A226765A60054D0B8 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 45C37797226765A60054D0B8 /* Settings.bundle */; }; - 45C3779B226765A60054D0B8 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 45C37797226765A60054D0B8 /* Settings.bundle */; }; - 45C848EAE10075D4C15A2735 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 45CC58AC246290BB002A914E /* SimpleIPC.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CC58AA246290BB002A914E /* SimpleIPC.m */; }; - 45CC58AD246290BB002A914E /* SimpleIPC.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CC58AA246290BB002A914E /* SimpleIPC.m */; }; - 45CC58AE246290BB002A914E /* SimpleIPC.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CC58AA246290BB002A914E /* SimpleIPC.m */; }; - 45CC58AF246290FA002A914E /* SimpleIPC.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CC58AA246290BB002A914E /* SimpleIPC.m */; }; - 45CC58B0246290FA002A914E /* SimpleIPC.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CC58AA246290BB002A914E /* SimpleIPC.m */; }; - 45CC58B1246290FB002A914E /* SimpleIPC.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CC58AA246290BB002A914E /* SimpleIPC.m */; }; - 45CC58B22462920A002A914E /* BuildFile in Embed App Extensions */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 45D8448D23B64395001CD3A9 /* UGCUploadList.m in Sources */ = {isa = PBXBuildFile; fileRef = 45D8448C23B64395001CD3A9 /* UGCUploadList.m */; }; - 45D8448E23B64395001CD3A9 /* UGCUploadList.m in Sources */ = {isa = PBXBuildFile; fileRef = 45D8448C23B64395001CD3A9 /* UGCUploadList.m */; }; - 45D8449023B64395001CD3A9 /* UGCUploadList.m in Sources */ = {isa = PBXBuildFile; fileRef = 45D8448C23B64395001CD3A9 /* UGCUploadList.m */; }; - 45D8449523B643A5001CD3A9 /* UGCUploadList.m in Sources */ = {isa = PBXBuildFile; fileRef = 45D8448C23B64395001CD3A9 /* UGCUploadList.m */; }; - 45E74D9B23B22BCD00C22B31 /* ThemeConfigurator.m in Sources */ = {isa = PBXBuildFile; fileRef = 45E74D9A23B22BCD00C22B31 /* ThemeConfigurator.m */; }; - 45E74D9C23B22BCD00C22B31 /* ThemeConfigurator.m in Sources */ = {isa = PBXBuildFile; fileRef = 45E74D9A23B22BCD00C22B31 /* ThemeConfigurator.m */; }; - 45F3B3A1232A239D00666F7C /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855361EE8FDAD00EE47D7 /* AssetsLibrary.framework */; }; - 4717325126705C4A005F772E /* SoundTouch.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4717324E26705C4A005F772E /* SoundTouch.xcframework */; }; - 4717325626705C77005F772E /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 4717325726705CE4005F772E /* BuildFile in Embed Frameworks */ = {isa = PBXBuildFile; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 4717325926705CE8005F772E /* SoundTouch.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4717324E26705C4A005F772E /* SoundTouch.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 47642A9B261491B90020F1BA /* launchimage_en@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A99261491B90020F1BA /* launchimage_en@3x.png */; }; - 47642A9C261491B90020F1BA /* launchimage_en@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A99261491B90020F1BA /* launchimage_en@3x.png */; }; - 47642A9D261491B90020F1BA /* launchimage_en@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A99261491B90020F1BA /* launchimage_en@3x.png */; }; - 47642A9E261491B90020F1BA /* launchimage_en@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A99261491B90020F1BA /* launchimage_en@3x.png */; }; - 47642A9F261491B90020F1BA /* launchimage_en@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A99261491B90020F1BA /* launchimage_en@3x.png */; }; - 47642AA0261491B90020F1BA /* launchimage_en@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A99261491B90020F1BA /* launchimage_en@3x.png */; }; - 47642AA1261491B90020F1BA /* launchimage_en@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A99261491B90020F1BA /* launchimage_en@3x.png */; }; - 47642AA3261491B90020F1BA /* launchimage_en@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A9A261491B90020F1BA /* launchimage_en@2x.png */; }; - 47642AA4261491B90020F1BA /* launchimage_en@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A9A261491B90020F1BA /* launchimage_en@2x.png */; }; - 47642AA5261491B90020F1BA /* launchimage_en@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A9A261491B90020F1BA /* launchimage_en@2x.png */; }; - 47642AA6261491B90020F1BA /* launchimage_en@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A9A261491B90020F1BA /* launchimage_en@2x.png */; }; - 47642AA7261491B90020F1BA /* launchimage_en@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A9A261491B90020F1BA /* launchimage_en@2x.png */; }; - 47642AA8261491B90020F1BA /* launchimage_en@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A9A261491B90020F1BA /* launchimage_en@2x.png */; }; - 47642AA9261491B90020F1BA /* launchimage_en@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 47642A9A261491B90020F1BA /* launchimage_en@2x.png */; }; - 4774100026147EE90098482E /* ReplayKitLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47740FF226147EE90098482E /* ReplayKitLocalized.m */; }; - 4774100126147EE90098482E /* ReplayKitLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47740FF226147EE90098482E /* ReplayKitLocalized.m */; }; - 4774100226147EE90098482E /* ReplayKitLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47740FF226147EE90098482E /* ReplayKitLocalized.m */; }; - 4774100326147EE90098482E /* ReplayKitLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47740FF226147EE90098482E /* ReplayKitLocalized.m */; }; - 4774101026147EE90098482E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47740FF326147EE90098482E /* InfoPlist.strings */; }; - 4774101A26147EE90098482E /* ReplayKitLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47740FF526147EE90098482E /* ReplayKitLocalized.strings */; }; - 4774101B26147EE90098482E /* ReplayKitLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47740FF526147EE90098482E /* ReplayKitLocalized.strings */; }; - 4774101C26147EE90098482E /* ReplayKitLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47740FF526147EE90098482E /* ReplayKitLocalized.strings */; }; - 4774101D26147EE90098482E /* ReplayKitLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47740FF526147EE90098482E /* ReplayKitLocalized.strings */; }; - 47B7AC4F2695C76400AC8D18 /* ShaderProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE12695C76300AC8D18 /* ShaderProcessor.m */; }; - 47B7AC502695C76400AC8D18 /* ShaderProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE12695C76300AC8D18 /* ShaderProcessor.m */; }; - 47B7AC512695C76400AC8D18 /* ShaderProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE12695C76300AC8D18 /* ShaderProcessor.m */; }; - 47B7AC522695C76400AC8D18 /* WaterMarkProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE32695C76300AC8D18 /* WaterMarkProcessor.m */; }; - 47B7AC532695C76400AC8D18 /* WaterMarkProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE32695C76300AC8D18 /* WaterMarkProcessor.m */; }; - 47B7AC542695C76400AC8D18 /* WaterMarkProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE32695C76300AC8D18 /* WaterMarkProcessor.m */; }; - 47B7AC552695C76400AC8D18 /* PixelBufferProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE52695C76300AC8D18 /* PixelBufferProcessor.m */; }; - 47B7AC562695C76400AC8D18 /* PixelBufferProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE52695C76300AC8D18 /* PixelBufferProcessor.m */; }; - 47B7AC572695C76400AC8D18 /* PixelBufferProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE52695C76300AC8D18 /* PixelBufferProcessor.m */; }; - 47B7AC582695C76400AC8D18 /* GLTextureOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE82695C76300AC8D18 /* GLTextureOutput.m */; }; - 47B7AC592695C76400AC8D18 /* GLTextureOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE82695C76300AC8D18 /* GLTextureOutput.m */; }; - 47B7AC5A2695C76400AC8D18 /* GLTextureOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE82695C76300AC8D18 /* GLTextureOutput.m */; }; - 47B7AC5B2695C76400AC8D18 /* GLFramebufferCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE92695C76300AC8D18 /* GLFramebufferCache.m */; }; - 47B7AC5C2695C76400AC8D18 /* GLFramebufferCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE92695C76300AC8D18 /* GLFramebufferCache.m */; }; - 47B7AC5D2695C76400AC8D18 /* GLFramebufferCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABE92695C76300AC8D18 /* GLFramebufferCache.m */; }; - 47B7AC5E2695C76400AC8D18 /* GLTextureInput.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABEA2695C76300AC8D18 /* GLTextureInput.m */; }; - 47B7AC5F2695C76400AC8D18 /* GLTextureInput.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABEA2695C76300AC8D18 /* GLTextureInput.m */; }; - 47B7AC602695C76400AC8D18 /* GLTextureInput.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABEA2695C76300AC8D18 /* GLTextureInput.m */; }; - 47B7AC612695C76400AC8D18 /* GLOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABEB2695C76300AC8D18 /* GLOutput.m */; }; - 47B7AC622695C76400AC8D18 /* GLOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABEB2695C76300AC8D18 /* GLOutput.m */; }; - 47B7AC632695C76400AC8D18 /* GLOutput.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABEB2695C76300AC8D18 /* GLOutput.m */; }; - 47B7AC642695C76400AC8D18 /* GLProgram.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABED2695C76300AC8D18 /* GLProgram.m */; }; - 47B7AC652695C76400AC8D18 /* GLProgram.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABED2695C76300AC8D18 /* GLProgram.m */; }; - 47B7AC662695C76400AC8D18 /* GLProgram.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABED2695C76300AC8D18 /* GLProgram.m */; }; - 47B7AC672695C76400AC8D18 /* GLFramebuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABF42695C76300AC8D18 /* GLFramebuffer.m */; }; - 47B7AC682695C76400AC8D18 /* GLFramebuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABF42695C76300AC8D18 /* GLFramebuffer.m */; }; - 47B7AC692695C76400AC8D18 /* GLFramebuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABF42695C76300AC8D18 /* GLFramebuffer.m */; }; - 47B7AC6A2695C76400AC8D18 /* GLUIElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABF52695C76300AC8D18 /* GLUIElement.m */; }; - 47B7AC6B2695C76400AC8D18 /* GLUIElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABF52695C76300AC8D18 /* GLUIElement.m */; }; - 47B7AC6C2695C76400AC8D18 /* GLUIElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABF52695C76300AC8D18 /* GLUIElement.m */; }; - 47B7AC6D2695C76400AC8D18 /* GLContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABF62695C76300AC8D18 /* GLContext.m */; }; - 47B7AC6E2695C76400AC8D18 /* GLContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABF62695C76300AC8D18 /* GLContext.m */; }; - 47B7AC6F2695C76400AC8D18 /* GLContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7ABF62695C76300AC8D18 /* GLContext.m */; }; - 47B7AC702695C76400AC8D18 /* Normal.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 47B7ABF92695C76300AC8D18 /* Normal.fsh */; }; - 47B7AC712695C76400AC8D18 /* Normal.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 47B7ABF92695C76300AC8D18 /* Normal.fsh */; }; - 47B7AC722695C76400AC8D18 /* Normal.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 47B7ABF92695C76300AC8D18 /* Normal.fsh */; }; - 47B7AC732695C76400AC8D18 /* YUVConversion.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 47B7ABFA2695C76300AC8D18 /* YUVConversion.fsh */; }; - 47B7AC742695C76400AC8D18 /* YUVConversion.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 47B7ABFA2695C76300AC8D18 /* YUVConversion.fsh */; }; - 47B7AC752695C76400AC8D18 /* YUVConversion.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 47B7ABFA2695C76300AC8D18 /* YUVConversion.fsh */; }; - 47B7AC762695C76400AC8D18 /* Normal.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 47B7ABFB2695C76300AC8D18 /* Normal.vsh */; }; - 47B7AC772695C76400AC8D18 /* Normal.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 47B7ABFB2695C76300AC8D18 /* Normal.vsh */; }; - 47B7AC782695C76400AC8D18 /* Normal.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 47B7ABFB2695C76300AC8D18 /* Normal.vsh */; }; - 47B7AC792695C76400AC8D18 /* YUVConversion.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 47B7ABFC2695C76300AC8D18 /* YUVConversion.vsh */; }; - 47B7AC7A2695C76400AC8D18 /* YUVConversion.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 47B7ABFC2695C76300AC8D18 /* YUVConversion.vsh */; }; - 47B7AC7B2695C76400AC8D18 /* YUVConversion.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 47B7ABFC2695C76300AC8D18 /* YUVConversion.vsh */; }; - 47B7AD122695C76400AC8D18 /* GLAlphaBlendFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7AC4B2695C76400AC8D18 /* GLAlphaBlendFilter.m */; }; - 47B7AD132695C76400AC8D18 /* GLAlphaBlendFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7AC4B2695C76400AC8D18 /* GLAlphaBlendFilter.m */; }; - 47B7AD142695C76400AC8D18 /* GLAlphaBlendFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7AC4B2695C76400AC8D18 /* GLAlphaBlendFilter.m */; }; - 47B7AD152695C76400AC8D18 /* GLFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7AC4C2695C76400AC8D18 /* GLFilter.m */; }; - 47B7AD162695C76400AC8D18 /* GLFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7AC4C2695C76400AC8D18 /* GLFilter.m */; }; - 47B7AD172695C76400AC8D18 /* GLFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 47B7AC4C2695C76400AC8D18 /* GLFilter.m */; }; - 47B7AEB02696A08100AC8D18 /* libyuv.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 47B7AE982696A08000AC8D18 /* libyuv.a */; }; - 47B7AEB12696A08100AC8D18 /* libyuv.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 47B7AE982696A08000AC8D18 /* libyuv.a */; }; - 47B7AEB22696A08100AC8D18 /* libyuv.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 47B7AE982696A08000AC8D18 /* libyuv.a */; }; - 47E8C894260AECC4001CF672 /* AppPortalLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */; }; - 47E8C895260AECC4001CF672 /* AppPortalLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */; }; - 47E8C896260AECC4001CF672 /* AppPortalLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */; }; - 47E8C897260AECC4001CF672 /* AppPortalLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */; }; - 47E8C898260AECC4001CF672 /* AppPortalLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */; }; - 47E8C899260AECC4001CF672 /* AppPortalLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */; }; - 47E8C89A260AECC4001CF672 /* AppPortalLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */; }; - 47E8C89B260AECC4001CF672 /* AppPortalLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */; }; - 47E8C89C260AECC4001CF672 /* AppPortalLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */; }; - 47E8C89D260AECC4001CF672 /* AppPortalLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */; }; - 47E8C89F260AECC4001CF672 /* AppPortalLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */; }; - 47E8C8A1260AECC4001CF672 /* LoginNetworkLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */; }; - 47E8C8A2260AECC4001CF672 /* LoginNetworkLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */; }; - 47E8C8A3260AECC4001CF672 /* LoginNetworkLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */; }; - 47E8C8A4260AECC4001CF672 /* LoginNetworkLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */; }; - 47E8C8A5260AECC4001CF672 /* LoginNetworkLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */; }; - 47E8C8A6260AECC4001CF672 /* LoginNetworkLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */; }; - 47E8C8A7260AECC4001CF672 /* LoginNetworkLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */; }; - 47E8C8A8260AECC4001CF672 /* LoginNetworkLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */; }; - 47E8C8A9260AECC4001CF672 /* LoginNetworkLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */; }; - 47E8C8AA260AECC4001CF672 /* LoginNetworkLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */; }; - 47E8C8AC260AECC4001CF672 /* LoginNetworkLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */; }; - 47E8C8AE260AECC4001CF672 /* UGCLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C884260AECC4001CF672 /* UGCLocalized.strings */; }; - 47E8C8AF260AECC4001CF672 /* UGCLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C884260AECC4001CF672 /* UGCLocalized.strings */; }; - 47E8C8B0260AECC4001CF672 /* UGCLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C884260AECC4001CF672 /* UGCLocalized.strings */; }; - 47E8C8B1260AECC4001CF672 /* UGCLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C884260AECC4001CF672 /* UGCLocalized.strings */; }; - 47E8C8B2260AECC4001CF672 /* UGCLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C884260AECC4001CF672 /* UGCLocalized.strings */; }; - 47E8C8B3260AECC4001CF672 /* UGCLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C884260AECC4001CF672 /* UGCLocalized.strings */; }; - 47E8C8B4260AECC4001CF672 /* UGCLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C884260AECC4001CF672 /* UGCLocalized.strings */; }; - 47E8C8B5260AECC4001CF672 /* UGCLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C884260AECC4001CF672 /* UGCLocalized.strings */; }; - 47E8C8B6260AECC4001CF672 /* UGCLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C884260AECC4001CF672 /* UGCLocalized.strings */; }; - 47E8C8B7260AECC4001CF672 /* UGCLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C884260AECC4001CF672 /* UGCLocalized.strings */; }; - 47E8C8B9260AECC4001CF672 /* UGCLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C884260AECC4001CF672 /* UGCLocalized.strings */; }; - 47E8C8BB260AECC4001CF672 /* V2LiveLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */; }; - 47E8C8BC260AECC4001CF672 /* V2LiveLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */; }; - 47E8C8BD260AECC4001CF672 /* V2LiveLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */; }; - 47E8C8BE260AECC4001CF672 /* V2LiveLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */; }; - 47E8C8BF260AECC4001CF672 /* V2LiveLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */; }; - 47E8C8C0260AECC4001CF672 /* V2LiveLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */; }; - 47E8C8C1260AECC4001CF672 /* V2LiveLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */; }; - 47E8C8C2260AECC4001CF672 /* V2LiveLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */; }; - 47E8C8C3260AECC4001CF672 /* V2LiveLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */; }; - 47E8C8C4260AECC4001CF672 /* V2LiveLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */; }; - 47E8C8C6260AECC4001CF672 /* V2LiveLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */; }; - 47E8C8C8260AECC4001CF672 /* TRTCDemoLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */; }; - 47E8C8C9260AECC4001CF672 /* TRTCDemoLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */; }; - 47E8C8CA260AECC4001CF672 /* TRTCDemoLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */; }; - 47E8C8CB260AECC4001CF672 /* TRTCDemoLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */; }; - 47E8C8CC260AECC4001CF672 /* TRTCDemoLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */; }; - 47E8C8CD260AECC4001CF672 /* TRTCDemoLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */; }; - 47E8C8CE260AECC4001CF672 /* TRTCDemoLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */; }; - 47E8C8CF260AECC4001CF672 /* TRTCDemoLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */; }; - 47E8C8D0260AECC4001CF672 /* TRTCDemoLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */; }; - 47E8C8D1260AECC4001CF672 /* TRTCDemoLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */; }; - 47E8C8D3260AECC4001CF672 /* TRTCDemoLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */; }; - 47E8C8D5260AECC4001CF672 /* LivePlayerLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */; }; - 47E8C8D6260AECC4001CF672 /* LivePlayerLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */; }; - 47E8C8D7260AECC4001CF672 /* LivePlayerLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */; }; - 47E8C8D8260AECC4001CF672 /* LivePlayerLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */; }; - 47E8C8D9260AECC4001CF672 /* LivePlayerLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */; }; - 47E8C8DA260AECC4001CF672 /* LivePlayerLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */; }; - 47E8C8DB260AECC4001CF672 /* LivePlayerLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */; }; - 47E8C8DC260AECC4001CF672 /* LivePlayerLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */; }; - 47E8C8DD260AECC4001CF672 /* LivePlayerLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */; }; - 47E8C8DE260AECC4001CF672 /* LivePlayerLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */; }; - 47E8C8E0260AECC4001CF672 /* LivePlayerLocalized.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */; }; - 47E8C8E2260AECC4001CF672 /* AppLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8C893260AECC4001CF672 /* AppLocalized.m */; }; - 47E8C8E3260AECC4001CF672 /* AppLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8C893260AECC4001CF672 /* AppLocalized.m */; }; - 47E8C8E4260AECC4001CF672 /* AppLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8C893260AECC4001CF672 /* AppLocalized.m */; }; - 47E8C8E5260AECC4001CF672 /* AppLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8C893260AECC4001CF672 /* AppLocalized.m */; }; - 47E8C8E6260AECC4001CF672 /* AppLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8C893260AECC4001CF672 /* AppLocalized.m */; }; - 47E8C8E7260AECC4001CF672 /* AppLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8C893260AECC4001CF672 /* AppLocalized.m */; }; - 47E8C8E8260AECC4001CF672 /* AppLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8C893260AECC4001CF672 /* AppLocalized.m */; }; - 47E8C8E9260AECC4001CF672 /* AppLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8C893260AECC4001CF672 /* AppLocalized.m */; }; - 47E8C8EA260AECC4001CF672 /* AppLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8C893260AECC4001CF672 /* AppLocalized.m */; }; - 47E8C8EB260AECC4001CF672 /* AppLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8C893260AECC4001CF672 /* AppLocalized.m */; }; - 47E8C8ED260AECC4001CF672 /* AppLocalized.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8C893260AECC4001CF672 /* AppLocalized.m */; }; - 47E8CA26260B56B1001CF672 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C9D2260B54E5001CF672 /* InfoPlist.strings */; }; - 47E8CA27260B56B1001CF672 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C9D2260B54E5001CF672 /* InfoPlist.strings */; }; - 47E8CA28260B56B2001CF672 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8C9D2260B54E5001CF672 /* InfoPlist.strings */; }; - 47E8CAA4260B5A70001CF672 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 45C37797226765A60054D0B8 /* Settings.bundle */; }; - 47E8CADC260B5C06001CF672 /* UIColor+MLPFlatColors.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAAF260B5C05001CF672 /* UIColor+MLPFlatColors.m */; }; - 47E8CADD260B5C06001CF672 /* UIColor+MLPFlatColors.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAAF260B5C05001CF672 /* UIColor+MLPFlatColors.m */; }; - 47E8CAE2260B5C06001CF672 /* UIColor+MLPFlatColors.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAAF260B5C05001CF672 /* UIColor+MLPFlatColors.m */; }; - 47E8CAE4260B5C06001CF672 /* NSObject+CommonBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB3260B5C05001CF672 /* NSObject+CommonBlock.m */; }; - 47E8CAE5260B5C06001CF672 /* NSObject+CommonBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB3260B5C05001CF672 /* NSObject+CommonBlock.m */; }; - 47E8CAEA260B5C06001CF672 /* NSObject+CommonBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB3260B5C05001CF672 /* NSObject+CommonBlock.m */; }; - 47E8CAEC260B5C06001CF672 /* UIView+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB4260B5C05001CF672 /* UIView+Additions.m */; }; - 47E8CAED260B5C06001CF672 /* UIView+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB4260B5C05001CF672 /* UIView+Additions.m */; }; - 47E8CAF2260B5C06001CF672 /* UIView+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB4260B5C05001CF672 /* UIView+Additions.m */; }; - 47E8CAF4260B5C06001CF672 /* UIButton+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB5260B5C05001CF672 /* UIButton+Additions.m */; }; - 47E8CAF5260B5C06001CF672 /* UIButton+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB5260B5C05001CF672 /* UIButton+Additions.m */; }; - 47E8CAFA260B5C06001CF672 /* UIButton+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB5260B5C05001CF672 /* UIButton+Additions.m */; }; - 47E8CAFC260B5C06001CF672 /* NSData+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB6260B5C05001CF672 /* NSData+Common.m */; }; - 47E8CAFD260B5C06001CF672 /* NSData+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB6260B5C05001CF672 /* NSData+Common.m */; }; - 47E8CB02260B5C06001CF672 /* NSData+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB6260B5C05001CF672 /* NSData+Common.m */; }; - 47E8CB04260B5C06001CF672 /* UIViewController+BackButtonHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB7260B5C05001CF672 /* UIViewController+BackButtonHandler.m */; }; - 47E8CB05260B5C06001CF672 /* UIViewController+BackButtonHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB7260B5C05001CF672 /* UIViewController+BackButtonHandler.m */; }; - 47E8CB0A260B5C06001CF672 /* UIViewController+BackButtonHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB7260B5C05001CF672 /* UIViewController+BackButtonHandler.m */; }; - 47E8CB0C260B5C06001CF672 /* HUDHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB9260B5C05001CF672 /* HUDHelper.m */; }; - 47E8CB0D260B5C06001CF672 /* HUDHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB9260B5C05001CF672 /* HUDHelper.m */; }; - 47E8CB12260B5C06001CF672 /* HUDHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAB9260B5C05001CF672 /* HUDHelper.m */; }; - 47E8CB14260B5C06001CF672 /* NSString+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABA260B5C05001CF672 /* NSString+Common.m */; }; - 47E8CB15260B5C06001CF672 /* NSString+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABA260B5C05001CF672 /* NSString+Common.m */; }; - 47E8CB1A260B5C06001CF672 /* NSString+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABA260B5C05001CF672 /* NSString+Common.m */; }; - 47E8CB1C260B5C06001CF672 /* UIButton+Glossy.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABC260B5C05001CF672 /* UIButton+Glossy.m */; }; - 47E8CB1D260B5C06001CF672 /* UIButton+Glossy.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABC260B5C05001CF672 /* UIButton+Glossy.m */; }; - 47E8CB22260B5C06001CF672 /* UIButton+Glossy.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABC260B5C05001CF672 /* UIButton+Glossy.m */; }; - 47E8CB24260B5C06001CF672 /* UIView+CustomAutoLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABD260B5C05001CF672 /* UIView+CustomAutoLayout.m */; }; - 47E8CB25260B5C06001CF672 /* UIView+CustomAutoLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABD260B5C05001CF672 /* UIView+CustomAutoLayout.m */; }; - 47E8CB2A260B5C06001CF672 /* UIView+CustomAutoLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABD260B5C05001CF672 /* UIView+CustomAutoLayout.m */; }; - 47E8CB2C260B5C06001CF672 /* NSString+UISize.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABE260B5C05001CF672 /* NSString+UISize.m */; }; - 47E8CB2D260B5C06001CF672 /* NSString+UISize.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABE260B5C05001CF672 /* NSString+UISize.m */; }; - 47E8CB32260B5C06001CF672 /* NSString+UISize.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CABE260B5C05001CF672 /* NSString+UISize.m */; }; - 47E8CB34260B5C06001CF672 /* UIImage+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC3260B5C05001CF672 /* UIImage+Additions.m */; }; - 47E8CB35260B5C06001CF672 /* UIImage+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC3260B5C05001CF672 /* UIImage+Additions.m */; }; - 47E8CB3A260B5C06001CF672 /* UIImage+Additions.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC3260B5C05001CF672 /* UIImage+Additions.m */; }; - 47E8CB3C260B5C06001CF672 /* NSDictionary+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC5260B5C05001CF672 /* NSDictionary+Common.m */; }; - 47E8CB3D260B5C06001CF672 /* NSDictionary+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC5260B5C05001CF672 /* NSDictionary+Common.m */; }; - 47E8CB42260B5C06001CF672 /* NSDictionary+Common.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAC5260B5C05001CF672 /* NSDictionary+Common.m */; }; - 47E8CB44260B5C06001CF672 /* YTFaceSDK.licence in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAC8260B5C05001CF672 /* YTFaceSDK.licence */; }; - 47E8CB45260B5C06001CF672 /* YTFaceSDK.licence in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAC8260B5C05001CF672 /* YTFaceSDK.licence */; }; - 47E8CB4A260B5C06001CF672 /* YTFaceSDK.licence in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAC8260B5C05001CF672 /* YTFaceSDK.licence */; }; - 47E8CB4C260B5C06001CF672 /* v1 in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACA260B5C06001CF672 /* v1 */; }; - 47E8CB4D260B5C06001CF672 /* v1 in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACA260B5C06001CF672 /* v1 */; }; - 47E8CB52260B5C06001CF672 /* v1 in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACA260B5C06001CF672 /* v1 */; }; - 47E8CB54260B5C06001CF672 /* u1 in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACB260B5C06001CF672 /* u1 */; }; - 47E8CB55260B5C06001CF672 /* u1 in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACB260B5C06001CF672 /* u1 */; }; - 47E8CB5C260B5C06001CF672 /* YTHandDetector.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACC260B5C06001CF672 /* YTHandDetector.bundle */; }; - 47E8CB5D260B5C06001CF672 /* YTHandDetector.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACC260B5C06001CF672 /* YTHandDetector.bundle */; }; - 47E8CB62260B5C06001CF672 /* YTHandDetector.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACC260B5C06001CF672 /* YTHandDetector.bundle */; }; - 47E8CB64260B5C06001CF672 /* ufa.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACD260B5C06001CF672 /* ufa.bundle */; }; - 47E8CB65260B5C06001CF672 /* ufa.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACD260B5C06001CF672 /* ufa.bundle */; }; - 47E8CB6A260B5C06001CF672 /* ufa.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACD260B5C06001CF672 /* ufa.bundle */; }; - 47E8CB6C260B5C06001CF672 /* poseest.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACE260B5C06001CF672 /* poseest.bundle */; }; - 47E8CB6D260B5C06001CF672 /* poseest.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACE260B5C06001CF672 /* poseest.bundle */; }; - 47E8CB72260B5C06001CF672 /* poseest.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACE260B5C06001CF672 /* poseest.bundle */; }; - 47E8CB74260B5C06001CF672 /* AECore.metallib in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACF260B5C06001CF672 /* AECore.metallib */; }; - 47E8CB75260B5C06001CF672 /* AECore.metallib in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACF260B5C06001CF672 /* AECore.metallib */; }; - 47E8CB7A260B5C06001CF672 /* AECore.metallib in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CACF260B5C06001CF672 /* AECore.metallib */; }; - 47E8CB7C260B5C06001CF672 /* detector.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD0260B5C06001CF672 /* detector.bundle */; }; - 47E8CB7D260B5C06001CF672 /* detector.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD0260B5C06001CF672 /* detector.bundle */; }; - 47E8CB82260B5C06001CF672 /* detector.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD0260B5C06001CF672 /* detector.bundle */; }; - 47E8CB84260B5C06001CF672 /* MSFMLandmarks46_relandmark_models.xbin in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD1260B5C06001CF672 /* MSFMLandmarks46_relandmark_models.xbin */; }; - 47E8CB85260B5C06001CF672 /* MSFMLandmarks46_relandmark_models.xbin in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD1260B5C06001CF672 /* MSFMLandmarks46_relandmark_models.xbin */; }; - 47E8CB8A260B5C06001CF672 /* MSFMLandmarks46_relandmark_models.xbin in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD1260B5C06001CF672 /* MSFMLandmarks46_relandmark_models.xbin */; }; - 47E8CB8C260B5C06001CF672 /* RPNSegmenter.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD2260B5C06001CF672 /* RPNSegmenter.bundle */; }; - 47E8CB8D260B5C06001CF672 /* RPNSegmenter.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD2260B5C06001CF672 /* RPNSegmenter.bundle */; }; - 47E8CB92260B5C06001CF672 /* RPNSegmenter.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD2260B5C06001CF672 /* RPNSegmenter.bundle */; }; - 47E8CB94260B5C06001CF672 /* o1 in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD3260B5C06001CF672 /* o1 */; }; - 47E8CB95260B5C06001CF672 /* o1 in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD3260B5C06001CF672 /* o1 */; }; - 47E8CB9A260B5C06001CF672 /* o1 in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD3260B5C06001CF672 /* o1 */; }; - 47E8CB9C260B5C06001CF672 /* e1 in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD4260B5C06001CF672 /* e1 */; }; - 47E8CB9D260B5C06001CF672 /* e1 in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD4260B5C06001CF672 /* e1 */; }; - 47E8CBA2260B5C06001CF672 /* e1 in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD4260B5C06001CF672 /* e1 */; }; - 47E8CBA4260B5C06001CF672 /* FilterEngine.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD5260B5C06001CF672 /* FilterEngine.bundle */; }; - 47E8CBA5260B5C06001CF672 /* FilterEngine.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD5260B5C06001CF672 /* FilterEngine.bundle */; }; - 47E8CBAA260B5C06001CF672 /* FilterEngine.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CAD5260B5C06001CF672 /* FilterEngine.bundle */; }; - 47E8CBAC260B5C06001CF672 /* TCLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAD8260B5C06001CF672 /* TCLog.m */; }; - 47E8CBAD260B5C06001CF672 /* TCLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAD8260B5C06001CF672 /* TCLog.m */; }; - 47E8CBB2260B5C06001CF672 /* TCLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAD8260B5C06001CF672 /* TCLog.m */; }; - 47E8CBB4260B5C06001CF672 /* TCUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAD9260B5C06001CF672 /* TCUtil.m */; }; - 47E8CBB5260B5C06001CF672 /* TCUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAD9260B5C06001CF672 /* TCUtil.m */; }; - 47E8CBBA260B5C06001CF672 /* TCUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E8CAD9260B5C06001CF672 /* TCUtil.m */; }; - 47E8CCCC260C4EB2001CF672 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 47E8CCCF260C4EB2001CF672 /* InfoPlist.strings */; }; - 51A289FB230FB95800B9B73F /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A289F8230FB93A00B9B73F /* OpenAL.framework */; }; - 51A289FC230FB96000B9B73F /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A289F8230FB93A00B9B73F /* OpenAL.framework */; }; - 51CE9F98231944BE00B620BD /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A289F8230FB93A00B9B73F /* OpenAL.framework */; }; - 559BC756CB1CEAF860798BE4 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 6A1C109B2281A675005D7BD9 /* PushLogView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A1C109A2281A674005D7BD9 /* PushLogView.m */; }; - 6A1C109C2281A675005D7BD9 /* PushLogView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A1C109A2281A674005D7BD9 /* PushLogView.m */; }; - 6A1C109D2281A675005D7BD9 /* PushLogView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A1C109A2281A674005D7BD9 /* PushLogView.m */; }; - 6A3105DA22682A06002F6115 /* ImageUploadViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A3105C922682A06002F6115 /* ImageUploadViewController.m */; }; - 6A3105DB22682A06002F6115 /* ImageUploadViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A3105C922682A06002F6115 /* ImageUploadViewController.m */; }; - 6A3105DC22682A06002F6115 /* ImageUploadViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A3105C922682A06002F6115 /* ImageUploadViewController.m */; }; - 6A3107192272E31A002F6115 /* PushBgmControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A3107182272E31A002F6115 /* PushBgmControl.m */; }; - 6A5031C1249D122800701E6B /* SimpleIPC.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CC58AA246290BB002A914E /* SimpleIPC.m */; }; - 6A5031C2249D122800701E6B /* SampleHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 91D47F3D20B6B13C0072AC0B /* SampleHandler.m */; }; - 6A5031C4249D122800701E6B /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A289F8230FB93A00B9B73F /* OpenAL.framework */; }; - 6A5031C5249D122800701E6B /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */; }; - 6A5031C6249D122800701E6B /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855481EE8FDF100EE47D7 /* libresolv.tbd */; }; - 6A5031C7249D122800701E6B /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45D2971F15C527003506D1 /* libc++.tbd */; }; - 6A5031C9249D122800701E6B /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 91D47F3920B6B13C0072AC0B /* ReplayKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 6A5031CA249D122800701E6B /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 6A5031D7249D132F00701E6B /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 6A5032A524A25E2100701E6B /* GenerateTestUserSig.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F8DC2446E6C5000C37A3 /* GenerateTestUserSig.m */; }; - 6AAEC3A52499F93300B57D86 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 7B107D8F4C4B5BF9184EC193 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 7B5A2DBC25B0355400B4B469 /* V2QRGenerateViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7B5A2D8D25B0355400B4B469 /* V2QRGenerateViewController.xib */; }; - 7B5A2DBD25B0355400B4B469 /* V2QRGenerateViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7B5A2D8D25B0355400B4B469 /* V2QRGenerateViewController.xib */; }; - 7B5A2DBE25B0355400B4B469 /* V2MainItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D8E25B0355400B4B469 /* V2MainItemCell.m */; }; - 7B5A2DBF25B0355400B4B469 /* V2MainItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D8E25B0355400B4B469 /* V2MainItemCell.m */; }; - 7B5A2DC025B0355400B4B469 /* V2QRScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D8F25B0355400B4B469 /* V2QRScanViewController.m */; }; - 7B5A2DC125B0355400B4B469 /* V2QRScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D8F25B0355400B4B469 /* V2QRScanViewController.m */; }; - 7B5A2DC225B0355400B4B469 /* V2MainProtocolSelectViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9125B0355400B4B469 /* V2MainProtocolSelectViewController.m */; }; - 7B5A2DC325B0355400B4B469 /* V2MainProtocolSelectViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9125B0355400B4B469 /* V2MainProtocolSelectViewController.m */; }; - 7B5A2DC425B0355400B4B469 /* V2PlayerSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9225B0355400B4B469 /* V2PlayerSettingViewController.m */; }; - 7B5A2DC525B0355400B4B469 /* V2PlayerSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9225B0355400B4B469 /* V2PlayerSettingViewController.m */; }; - 7B5A2DC625B0355400B4B469 /* V2PusherSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9325B0355400B4B469 /* V2PusherSettingViewController.m */; }; - 7B5A2DC725B0355400B4B469 /* V2PusherSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9325B0355400B4B469 /* V2PusherSettingViewController.m */; }; - 7B5A2DC825B0355400B4B469 /* V2PusherSettingModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9625B0355400B4B469 /* V2PusherSettingModel.m */; }; - 7B5A2DC925B0355400B4B469 /* V2PusherSettingModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9625B0355400B4B469 /* V2PusherSettingModel.m */; }; - 7B5A2DCA25B0355400B4B469 /* V2SettingBottomBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9A25B0355400B4B469 /* V2SettingBottomBar.m */; }; - 7B5A2DCB25B0355400B4B469 /* V2SettingBottomBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9A25B0355400B4B469 /* V2SettingBottomBar.m */; }; - 7B5A2DCC25B0355400B4B469 /* V2MainProtocolSelectSegmentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9D25B0355400B4B469 /* V2MainProtocolSelectSegmentView.m */; }; - 7B5A2DCD25B0355400B4B469 /* V2MainProtocolSelectSegmentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9D25B0355400B4B469 /* V2MainProtocolSelectSegmentView.m */; }; - 7B5A2DCE25B0355400B4B469 /* V2SettingsBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA025B0355400B4B469 /* V2SettingsBaseCell.m */; }; - 7B5A2DCF25B0355400B4B469 /* V2SettingsBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA025B0355400B4B469 /* V2SettingsBaseCell.m */; }; - 7B5A2DD025B0355400B4B469 /* V2SettingsBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA125B0355400B4B469 /* V2SettingsBaseViewController.m */; }; - 7B5A2DD125B0355400B4B469 /* V2SettingsBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA125B0355400B4B469 /* V2SettingsBaseViewController.m */; }; - 7B5A2DD225B0355400B4B469 /* V2SettingsContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA225B0355400B4B469 /* V2SettingsContainerViewController.m */; }; - 7B5A2DD325B0355400B4B469 /* V2SettingsContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA225B0355400B4B469 /* V2SettingsContainerViewController.m */; }; - 7B5A2DD425B0355400B4B469 /* UIButton+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA625B0355400B4B469 /* UIButton+V2.m */; }; - 7B5A2DD525B0355400B4B469 /* UIButton+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA625B0355400B4B469 /* UIButton+V2.m */; }; - 7B5A2DD625B0355400B4B469 /* UISegmentedControl+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA825B0355400B4B469 /* UISegmentedControl+V2.m */; }; - 7B5A2DD725B0355400B4B469 /* UISegmentedControl+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA825B0355400B4B469 /* UISegmentedControl+V2.m */; }; - 7B5A2DD825B0355400B4B469 /* UISlider+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA925B0355400B4B469 /* UISlider+V2.m */; }; - 7B5A2DD925B0355400B4B469 /* UISlider+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA925B0355400B4B469 /* UISlider+V2.m */; }; - 7B5A2DDA25B0355400B4B469 /* UILabel+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DAA25B0355400B4B469 /* UILabel+V2.m */; }; - 7B5A2DDB25B0355400B4B469 /* UILabel+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DAA25B0355400B4B469 /* UILabel+V2.m */; }; - 7B5A2DDC25B0355400B4B469 /* V2PlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB125B0355400B4B469 /* V2PlayerViewController.m */; }; - 7B5A2DDD25B0355400B4B469 /* V2PlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB125B0355400B4B469 /* V2PlayerViewController.m */; }; - 7B5A2DDE25B0355400B4B469 /* V2QRGenerateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB225B0355400B4B469 /* V2QRGenerateViewController.m */; }; - 7B5A2DDF25B0355400B4B469 /* V2QRGenerateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB225B0355400B4B469 /* V2QRGenerateViewController.m */; }; - 7B5A2DE025B0355400B4B469 /* V2PusherViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB725B0355400B4B469 /* V2PusherViewController.m */; }; - 7B5A2DE125B0355400B4B469 /* V2PusherViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB725B0355400B4B469 /* V2PusherViewController.m */; }; - 7B5A2DE225B0355400B4B469 /* V2MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB825B0355400B4B469 /* V2MainViewController.m */; }; - 7B5A2DE325B0355400B4B469 /* V2MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB825B0355400B4B469 /* V2MainViewController.m */; }; - 7B5A2DE425B0355400B4B469 /* v2live.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7B5A2DBA25B0355400B4B469 /* v2live.xcassets */; }; - 7B5A2DE525B0355400B4B469 /* v2live.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7B5A2DBA25B0355400B4B469 /* v2live.xcassets */; }; - 7B5A2DE625B0355400B4B469 /* V2LiveUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DBB25B0355400B4B469 /* V2LiveUtils.m */; }; - 7B5A2DE725B0355400B4B469 /* V2LiveUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DBB25B0355400B4B469 /* V2LiveUtils.m */; }; - 88180DAF267C767B00BCFDC5 /* TRTCWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88ABB5EF266DCB0D0050C38A /* TRTCWebViewController.swift */; }; - 881B295A267B42BE00174E9C /* TRTCCloudManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E27266D1F54003ECB5E /* TRTCCloudManager.m */; }; - 881C288E269D35EA0013B870 /* CustomAudioCapturor.m in Sources */ = {isa = PBXBuildFile; fileRef = 881C2887269D35EA0013B870 /* CustomAudioCapturor.m */; }; - 881C288F269D35EA0013B870 /* CustomAudioFileReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 881C2888269D35EA0013B870 /* CustomAudioFileReader.m */; }; - 881C2890269D35EA0013B870 /* CustomAudio44100_2.pcm in Resources */ = {isa = PBXBuildFile; fileRef = 881C288B269D35EA0013B870 /* CustomAudio44100_2.pcm */; }; - 881C2891269D35EA0013B870 /* CustomAudio48000_1.pcm in Resources */ = {isa = PBXBuildFile; fileRef = 881C288C269D35EA0013B870 /* CustomAudio48000_1.pcm */; }; - 886D76EF267B45AB00384198 /* TRTCLiveViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E1B266D1F54003ECB5E /* TRTCLiveViewController.m */; }; - 886D76F5267B45B100384198 /* TRTCLiveAnchorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E39266D1F54003ECB5E /* TRTCLiveAnchorViewController.m */; }; - 886D76FB267B45B400384198 /* TRTCLiveAudienceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DFD266D1F54003ECB5E /* TRTCLiveAudienceViewController.m */; }; - 886D7701267B45B700384198 /* TRTCCallingEnterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E3A266D1F54003ECB5E /* TRTCCallingEnterViewController.m */; }; - 886D7707267B45ED00384198 /* QRCode.m in Sources */ = {isa = PBXBuildFile; fileRef = A035040720D20A01007E61C6 /* QRCode.m */; }; - 886D770D267B465300384198 /* ThemeConfigurator.m in Sources */ = {isa = PBXBuildFile; fileRef = 45E74D9A23B22BCD00C22B31 /* ThemeConfigurator.m */; }; - 886D7713267B4DB900384198 /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532C1EE8FC8400EE47D7 /* MainViewController.m */; }; - 886D7719267B4DC000384198 /* MainTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532A1EE8FC8400EE47D7 /* MainTableViewCell.m */; }; - 886D771F267B4E3B00384198 /* TRTCLiveViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88B52DFB266D1F54003ECB5E /* TRTCLiveViewController.xib */; }; - 886D7725267B4E3B00384198 /* TRTCLiveViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88B52DFB266D1F54003ECB5E /* TRTCLiveViewController.xib */; }; - 886D772B267B505A00384198 /* v2live.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7B5A2DBA25B0355400B4B469 /* v2live.xcassets */; }; - 888560A3267C7B4A007990F0 /* MineRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88856099267C7B4A007990F0 /* MineRootView.swift */; }; - 888560A4267C7B4A007990F0 /* MineRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88856099267C7B4A007990F0 /* MineRootView.swift */; }; - 888560A5267C7B4A007990F0 /* MineRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88856099267C7B4A007990F0 /* MineRootView.swift */; }; - 888560A6267C7B4A007990F0 /* MineRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88856099267C7B4A007990F0 /* MineRootView.swift */; }; - 888560A7267C7B4A007990F0 /* MineRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88856099267C7B4A007990F0 /* MineRootView.swift */; }; - 888560AA267C7B4A007990F0 /* MineViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609A267C7B4A007990F0 /* MineViewModel.swift */; }; - 888560AB267C7B4A007990F0 /* MineViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609A267C7B4A007990F0 /* MineViewModel.swift */; }; - 888560AC267C7B4A007990F0 /* MineViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609A267C7B4A007990F0 /* MineViewModel.swift */; }; - 888560AD267C7B4A007990F0 /* MineViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609A267C7B4A007990F0 /* MineViewModel.swift */; }; - 888560AE267C7B4A007990F0 /* MineViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609A267C7B4A007990F0 /* MineViewModel.swift */; }; - 888560B1267C7B4A007990F0 /* MineAboutResignViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609B267C7B4A007990F0 /* MineAboutResignViewController.swift */; }; - 888560B2267C7B4A007990F0 /* MineAboutResignViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609B267C7B4A007990F0 /* MineAboutResignViewController.swift */; }; - 888560B3267C7B4A007990F0 /* MineAboutResignViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609B267C7B4A007990F0 /* MineAboutResignViewController.swift */; }; - 888560B4267C7B4A007990F0 /* MineAboutResignViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609B267C7B4A007990F0 /* MineAboutResignViewController.swift */; }; - 888560B5267C7B4A007990F0 /* MineAboutResignViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609B267C7B4A007990F0 /* MineAboutResignViewController.swift */; }; - 888560B8267C7B4A007990F0 /* MineAboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609C267C7B4A007990F0 /* MineAboutViewController.swift */; }; - 888560B9267C7B4A007990F0 /* MineAboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609C267C7B4A007990F0 /* MineAboutViewController.swift */; }; - 888560BA267C7B4A007990F0 /* MineAboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609C267C7B4A007990F0 /* MineAboutViewController.swift */; }; - 888560BB267C7B4A007990F0 /* MineAboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609C267C7B4A007990F0 /* MineAboutViewController.swift */; }; - 888560BC267C7B4A007990F0 /* MineAboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609C267C7B4A007990F0 /* MineAboutViewController.swift */; }; - 888560BF267C7B4A007990F0 /* MineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609D267C7B4A007990F0 /* MineViewController.swift */; }; - 888560C0267C7B4A007990F0 /* MineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609D267C7B4A007990F0 /* MineViewController.swift */; }; - 888560C1267C7B4A007990F0 /* MineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609D267C7B4A007990F0 /* MineViewController.swift */; }; - 888560C2267C7B4A007990F0 /* MineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609D267C7B4A007990F0 /* MineViewController.swift */; }; - 888560C3267C7B4A007990F0 /* MineViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609D267C7B4A007990F0 /* MineViewController.swift */; }; - 888560CD267C7B4A007990F0 /* MineAlertContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A0267C7B4A007990F0 /* MineAlertContentView.swift */; }; - 888560CE267C7B4A007990F0 /* MineAlertContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A0267C7B4A007990F0 /* MineAlertContentView.swift */; }; - 888560CF267C7B4A007990F0 /* MineAlertContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A0267C7B4A007990F0 /* MineAlertContentView.swift */; }; - 888560D0267C7B4A007990F0 /* MineAlertContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A0267C7B4A007990F0 /* MineAlertContentView.swift */; }; - 888560D1267C7B4A007990F0 /* MineAlertContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A0267C7B4A007990F0 /* MineAlertContentView.swift */; }; - 888560D4267C7B4A007990F0 /* TRTCAlertControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A1267C7B4A007990F0 /* TRTCAlertControl.swift */; }; - 888560D5267C7B4A007990F0 /* TRTCAlertControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A1267C7B4A007990F0 /* TRTCAlertControl.swift */; }; - 888560D6267C7B4A007990F0 /* TRTCAlertControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A1267C7B4A007990F0 /* TRTCAlertControl.swift */; }; - 888560D7267C7B4A007990F0 /* TRTCAlertControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A1267C7B4A007990F0 /* TRTCAlertControl.swift */; }; - 888560D8267C7B4A007990F0 /* TRTCAlertControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A1267C7B4A007990F0 /* TRTCAlertControl.swift */; }; - 888560DB267C7B4A007990F0 /* LayoutDefine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A2267C7B4A007990F0 /* LayoutDefine.swift */; }; - 888560DC267C7B4A007990F0 /* LayoutDefine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A2267C7B4A007990F0 /* LayoutDefine.swift */; }; - 888560DD267C7B4A007990F0 /* LayoutDefine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A2267C7B4A007990F0 /* LayoutDefine.swift */; }; - 888560DE267C7B4A007990F0 /* LayoutDefine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A2267C7B4A007990F0 /* LayoutDefine.swift */; }; - 888560DF267C7B4A007990F0 /* LayoutDefine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 888560A2267C7B4A007990F0 /* LayoutDefine.swift */; }; - 88856157267C7D7C007990F0 /* TRTCAlerts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609F267C7B4A007990F0 /* TRTCAlerts.swift */; }; - 8885615E267C7D7D007990F0 /* TRTCAlerts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609F267C7B4A007990F0 /* TRTCAlerts.swift */; }; - 8885615F267C7D7D007990F0 /* TRTCAlerts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609F267C7B4A007990F0 /* TRTCAlerts.swift */; }; - 88856160267C7D7D007990F0 /* TRTCAlerts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609F267C7B4A007990F0 /* TRTCAlerts.swift */; }; - 88856161267C7D7E007990F0 /* TRTCAlerts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8885609F267C7B4A007990F0 /* TRTCAlerts.swift */; }; - 88856176267C7DFA007990F0 /* PrivacyPopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88ABB6C7266F17900050C38A /* PrivacyPopView.swift */; }; - 8885617D267C7DFA007990F0 /* PrivacyPopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88ABB6C7266F17900050C38A /* PrivacyPopView.swift */; }; - 8885617E267C7DFB007990F0 /* PrivacyPopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88ABB6C7266F17900050C38A /* PrivacyPopView.swift */; }; - 8885617F267C7DFB007990F0 /* PrivacyPopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88ABB6C7266F17900050C38A /* PrivacyPopView.swift */; }; - 88ABB5F1266DCB0D0050C38A /* TRTCWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88ABB5EF266DCB0D0050C38A /* TRTCWebViewController.swift */; }; - 88ABB5F2266DCB0D0050C38A /* TRTCWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88ABB5EF266DCB0D0050C38A /* TRTCWebViewController.swift */; }; - 88ABB5F4266DCB0D0050C38A /* TRTCWebViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88ABB5EF266DCB0D0050C38A /* TRTCWebViewController.swift */; }; - 88ABB61D266DD0E80050C38A /* PrivacyPolicy.html in Resources */ = {isa = PBXBuildFile; fileRef = 88ABB61C266DD0E80050C38A /* PrivacyPolicy.html */; }; - 88ABB61E266DD0E80050C38A /* PrivacyPolicy.html in Resources */ = {isa = PBXBuildFile; fileRef = 88ABB61C266DD0E80050C38A /* PrivacyPolicy.html */; }; - 88ABB61F266DD0E80050C38A /* PrivacyPolicy.html in Resources */ = {isa = PBXBuildFile; fileRef = 88ABB61C266DD0E80050C38A /* PrivacyPolicy.html */; }; - 88ABB621266DD0E80050C38A /* PrivacyPolicy.html in Resources */ = {isa = PBXBuildFile; fileRef = 88ABB61C266DD0E80050C38A /* PrivacyPolicy.html */; }; - 88ABB630266DD0FB0050C38A /* UserAgreement.html in Resources */ = {isa = PBXBuildFile; fileRef = 88ABB62F266DD0FA0050C38A /* UserAgreement.html */; }; - 88ABB631266DD0FB0050C38A /* UserAgreement.html in Resources */ = {isa = PBXBuildFile; fileRef = 88ABB62F266DD0FA0050C38A /* UserAgreement.html */; }; - 88ABB632266DD0FB0050C38A /* UserAgreement.html in Resources */ = {isa = PBXBuildFile; fileRef = 88ABB62F266DD0FA0050C38A /* UserAgreement.html */; }; - 88ABB634266DD0FB0050C38A /* UserAgreement.html in Resources */ = {isa = PBXBuildFile; fileRef = 88ABB62F266DD0FA0050C38A /* UserAgreement.html */; }; - 88B52E3B266D1F54003ECB5E /* TRTCRemoteUserListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DBF266D1F54003ECB5E /* TRTCRemoteUserListViewController.m */; }; - 88B52E3C266D1F54003ECB5E /* TRTCMoreSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC1266D1F54003ECB5E /* TRTCMoreSettingsViewController.m */; }; - 88B52E3D266D1F54003ECB5E /* TRTCAudioSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC2266D1F54003ECB5E /* TRTCAudioSettingsViewController.m */; }; - 88B52E3E266D1F54003ECB5E /* TRTCVideoSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC3266D1F54003ECB5E /* TRTCVideoSettingsViewController.m */; }; - 88B52E3F266D1F54003ECB5E /* TRTCStreamSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC5266D1F54003ECB5E /* TRTCStreamSettingsViewController.m */; }; - 88B52E40266D1F54003ECB5E /* TRTCPKSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC6266D1F54003ECB5E /* TRTCPKSettingsViewController.m */; }; - 88B52E41266D1F54003ECB5E /* TRTCRemoteUserSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC7266D1F54003ECB5E /* TRTCRemoteUserSettingsViewController.m */; }; - 88B52E42266D1F54003ECB5E /* TRTCSettingsBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DCD266D1F54003ECB5E /* TRTCSettingsBaseViewController.m */; }; - 88B52E43266D1F54003ECB5E /* TRTCVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DCF266D1F54003ECB5E /* TRTCVideoView.m */; }; - 88B52E44266D1F54003ECB5E /* TRTCFeatureContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD0266D1F54003ECB5E /* TRTCFeatureContainerViewController.m */; }; - 88B52E45266D1F54003ECB5E /* TRTCSettingsContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD1266D1F54003ECB5E /* TRTCSettingsContainerViewController.m */; }; - 88B52E46266D1F54003ECB5E /* UIButton+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD3266D1F54003ECB5E /* UIButton+TRTC.m */; }; - 88B52E47266D1F54003ECB5E /* UILabel+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD4266D1F54003ECB5E /* UILabel+TRTC.m */; }; - 88B52E48266D1F54003ECB5E /* UITextField+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD6266D1F54003ECB5E /* UITextField+TRTC.m */; }; - 88B52E49266D1F54003ECB5E /* UISlider+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DDA266D1F54003ECB5E /* UISlider+TRTC.m */; }; - 88B52E4A266D1F54003ECB5E /* UISegmentedControl+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DDB266D1F54003ECB5E /* UISegmentedControl+TRTC.m */; }; - 88B52E4B266D1F54003ECB5E /* TRTCVideoViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DDE266D1F54003ECB5E /* TRTCVideoViewLayout.m */; }; - 88B52E4C266D1F54003ECB5E /* TRTCSettingsMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE0266D1F54003ECB5E /* TRTCSettingsMessageCell.m */; }; - 88B52E4D266D1F54003ECB5E /* TRTCSettingsInputCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE2266D1F54003ECB5E /* TRTCSettingsInputCell.m */; }; - 88B52E4E266D1F54003ECB5E /* TRTCSettingsSegmentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE4266D1F54003ECB5E /* TRTCSettingsSegmentCell.m */; }; - 88B52E4F266D1F54003ECB5E /* TRTCSettingsLargeInputCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE6266D1F54003ECB5E /* TRTCSettingsLargeInputCell.m */; }; - 88B52E50266D1F54003ECB5E /* TRTCRemoteUserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE9266D1F54003ECB5E /* TRTCRemoteUserCell.m */; }; - 88B52E51266D1F54003ECB5E /* TRTCSettingsBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DED266D1F54003ECB5E /* TRTCSettingsBaseCell.m */; }; - 88B52E52266D1F54003ECB5E /* TRTCSettingsButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DEF266D1F54003ECB5E /* TRTCSettingsButtonCell.m */; }; - 88B52E53266D1F54003ECB5E /* TRTCSettingsSwitchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DF0266D1F54003ECB5E /* TRTCSettingsSwitchCell.m */; }; - 88B52E54266D1F54003ECB5E /* TRTCSettingsMainRoomTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DF2266D1F54003ECB5E /* TRTCSettingsMainRoomTableViewCell.m */; }; - 88B52E55266D1F54003ECB5E /* TRTCSettingsSliderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DF4266D1F54003ECB5E /* TRTCSettingsSliderCell.m */; }; - 88B52E56266D1F54003ECB5E /* TRTCSettingsSelectorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DF5266D1F54003ECB5E /* TRTCSettingsSelectorCell.m */; }; - 88B52E57266D1F54003ECB5E /* TRTCLiveViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88B52DFB266D1F54003ECB5E /* TRTCLiveViewController.xib */; }; - 88B52E59266D1F54003ECB5E /* TRTCLiveAudienceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DFD266D1F54003ECB5E /* TRTCLiveAudienceViewController.m */; }; - 88B52E5A266D1F54003ECB5E /* QBImagePicker.strings in Resources */ = {isa = PBXBuildFile; fileRef = 88B52DFF266D1F54003ECB5E /* QBImagePicker.strings */; }; - 88B52E5B266D1F54003ECB5E /* QBVideoIconView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E06266D1F54003ECB5E /* QBVideoIconView.m */; }; - 88B52E5C266D1F54003ECB5E /* QBVideoIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E07266D1F54003ECB5E /* QBVideoIndicatorView.m */; }; - 88B52E5D266D1F54003ECB5E /* QBAlbumCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E0E266D1F54003ECB5E /* QBAlbumCell.m */; }; - 88B52E5E266D1F54003ECB5E /* QBImagePicker.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 88B52E0F266D1F54003ECB5E /* QBImagePicker.storyboard */; }; - 88B52E5F266D1F54003ECB5E /* QBAlbumsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E11266D1F54003ECB5E /* QBAlbumsViewController.m */; }; - 88B52E60266D1F54003ECB5E /* QBAssetsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E13266D1F54003ECB5E /* QBAssetsViewController.m */; }; - 88B52E61266D1F54003ECB5E /* QBImagePickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E14266D1F54003ECB5E /* QBImagePickerController.m */; }; - 88B52E62266D1F54003ECB5E /* QBCheckmarkView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E16266D1F54003ECB5E /* QBCheckmarkView.m */; }; - 88B52E63266D1F54003ECB5E /* QBSlomoIconView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E18266D1F54003ECB5E /* QBSlomoIconView.m */; }; - 88B52E64266D1F54003ECB5E /* QBAssetCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E19266D1F54003ECB5E /* QBAssetCell.m */; }; - 88B52E65266D1F54003ECB5E /* TRTCLiveEnterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E1A266D1F54003ECB5E /* TRTCLiveEnterViewController.m */; }; - 88B52E66266D1F54003ECB5E /* TRTCLiveViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E1B266D1F54003ECB5E /* TRTCLiveViewController.m */; }; - 88B52E67266D1F54003ECB5E /* TRTCRemoteUserConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E1D266D1F54003ECB5E /* TRTCRemoteUserConfig.m */; }; - 88B52E68266D1F54003ECB5E /* TRTCCdnPlayerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E1F266D1F54003ECB5E /* TRTCCdnPlayerManager.m */; }; - 88B52E69266D1F54003ECB5E /* TRTCCdnPlayerConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E22266D1F54003ECB5E /* TRTCCdnPlayerConfig.m */; }; - 88B52E6B266D1F54003ECB5E /* TRTCCloudManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E27266D1F54003ECB5E /* TRTCCloudManager.m */; }; - 88B52E6C266D1F54003ECB5E /* TRTCVideoConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E28266D1F54003ECB5E /* TRTCVideoConfig.m */; }; - 88B52E6D266D1F54003ECB5E /* MediaFileReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E2C266D1F54003ECB5E /* MediaFileReader.m */; }; - 88B52E6F266D1F54003ECB5E /* MediaFileSyncReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E30266D1F54003ECB5E /* MediaFileSyncReader.m */; }; - 88B52E70266D1F54003ECB5E /* TRTCBroadcastExtensionLauncher.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E31266D1F54003ECB5E /* TRTCBroadcastExtensionLauncher.m */; }; - 88B52E71266D1F54003ECB5E /* CustomFrameRender.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E33266D1F54003ECB5E /* CustomFrameRender.m */; }; - 88B52E72266D1F54003ECB5E /* AudioQueuePlay.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E38266D1F54003ECB5E /* AudioQueuePlay.m */; }; - 88B52E73266D1F54003ECB5E /* TRTCLiveAnchorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E39266D1F54003ECB5E /* TRTCLiveAnchorViewController.m */; }; - 88B52E74266D1F54003ECB5E /* TRTCCallingEnterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E3A266D1F54003ECB5E /* TRTCCallingEnterViewController.m */; }; - 88C5252B2672326E00BD96E4 /* TRTCSpeedTestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C5252A2672326E00BD96E4 /* TRTCSpeedTestViewController.m */; }; - 88C5252C2672326E00BD96E4 /* TRTCSpeedTestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C5252A2672326E00BD96E4 /* TRTCSpeedTestViewController.m */; }; - 88C5252D2672326E00BD96E4 /* TRTCSpeedTestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C5252A2672326E00BD96E4 /* TRTCSpeedTestViewController.m */; }; - 88C5254626735CB500BD96E4 /* LebSettingsBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56643264ABB5000B85C1C /* LebSettingsBaseCell.m */; }; - 88C5254E26735CBE00BD96E4 /* LebSettingsBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56644264ABB5000B85C1C /* LebSettingsBaseViewController.m */; }; - 88C525902673620200BD96E4 /* QBVideoIconView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E06266D1F54003ECB5E /* QBVideoIconView.m */; }; - 88C525972673620400BD96E4 /* QBVideoIconView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E06266D1F54003ECB5E /* QBVideoIconView.m */; }; - 88C525992673620C00BD96E4 /* QBVideoIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E07266D1F54003ECB5E /* QBVideoIndicatorView.m */; }; - 88C525A02673620E00BD96E4 /* QBVideoIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E07266D1F54003ECB5E /* QBVideoIndicatorView.m */; }; - 88C525A22673621800BD96E4 /* QBAlbumCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E0E266D1F54003ECB5E /* QBAlbumCell.m */; }; - 88C525A92673621900BD96E4 /* QBAlbumCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E0E266D1F54003ECB5E /* QBAlbumCell.m */; }; - 88C525B12673622300BD96E4 /* QBImagePicker.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 88B52E0F266D1F54003ECB5E /* QBImagePicker.storyboard */; }; - 88C525B22673622500BD96E4 /* QBImagePicker.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 88B52E0F266D1F54003ECB5E /* QBImagePicker.storyboard */; }; - 88C525B42673622A00BD96E4 /* QBAlbumsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E11266D1F54003ECB5E /* QBAlbumsViewController.m */; }; - 88C525B52673622C00BD96E4 /* QBAlbumsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E11266D1F54003ECB5E /* QBAlbumsViewController.m */; }; - 88C525B72673623200BD96E4 /* QBAssetsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E13266D1F54003ECB5E /* QBAssetsViewController.m */; }; - 88C525B82673623300BD96E4 /* QBAssetsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E13266D1F54003ECB5E /* QBAssetsViewController.m */; }; - 88C525BA2673623700BD96E4 /* QBImagePickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E14266D1F54003ECB5E /* QBImagePickerController.m */; }; - 88C525BB2673623900BD96E4 /* QBImagePickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E14266D1F54003ECB5E /* QBImagePickerController.m */; }; - 88C525BD2673623E00BD96E4 /* QBCheckmarkView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E16266D1F54003ECB5E /* QBCheckmarkView.m */; }; - 88C525BE2673623F00BD96E4 /* QBCheckmarkView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E16266D1F54003ECB5E /* QBCheckmarkView.m */; }; - 88C525C02673624300BD96E4 /* QBSlomoIconView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E18266D1F54003ECB5E /* QBSlomoIconView.m */; }; - 88C525C12673624400BD96E4 /* QBSlomoIconView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E18266D1F54003ECB5E /* QBSlomoIconView.m */; }; - 88C525C32673624A00BD96E4 /* QBAssetCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E19266D1F54003ECB5E /* QBAssetCell.m */; }; - 88C525C42673624B00BD96E4 /* QBAssetCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E19266D1F54003ECB5E /* QBAssetCell.m */; }; - 88C525C62673625200BD96E4 /* TRTCCdnPlayerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E1F266D1F54003ECB5E /* TRTCCdnPlayerManager.m */; }; - 88C525C72673625400BD96E4 /* TRTCCdnPlayerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E1F266D1F54003ECB5E /* TRTCCdnPlayerManager.m */; }; - 88C525CF2673630900BD96E4 /* TRTCCdnPlayerConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E22266D1F54003ECB5E /* TRTCCdnPlayerConfig.m */; }; - 88C525D62673630A00BD96E4 /* TRTCCdnPlayerConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E22266D1F54003ECB5E /* TRTCCdnPlayerConfig.m */; }; - 88C525DE2673631F00BD96E4 /* MediaFileReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E2C266D1F54003ECB5E /* MediaFileReader.m */; }; - 88C525EC2673632200BD96E4 /* MediaFileReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E2C266D1F54003ECB5E /* MediaFileReader.m */; }; - 88C525FC2673632A00BD96E4 /* CustomFrameRender.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E33266D1F54003ECB5E /* CustomFrameRender.m */; }; - 88C525FD2673632B00BD96E4 /* CustomFrameRender.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E33266D1F54003ECB5E /* CustomFrameRender.m */; }; - 88C526052673632F00BD96E4 /* MediaFileSyncReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E30266D1F54003ECB5E /* MediaFileSyncReader.m */; }; - 88C526062673633000BD96E4 /* MediaFileSyncReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E30266D1F54003ECB5E /* MediaFileSyncReader.m */; }; - 88C5260E2673633300BD96E4 /* TRTCBroadcastExtensionLauncher.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E31266D1F54003ECB5E /* TRTCBroadcastExtensionLauncher.m */; }; - 88C526152673633500BD96E4 /* TRTCBroadcastExtensionLauncher.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E31266D1F54003ECB5E /* TRTCBroadcastExtensionLauncher.m */; }; - 88C5261D2673639D00BD96E4 /* AudioQueuePlay.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E38266D1F54003ECB5E /* AudioQueuePlay.m */; }; - 88C526242673639F00BD96E4 /* AudioQueuePlay.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E38266D1F54003ECB5E /* AudioQueuePlay.m */; }; - 88C52626267363A200BD96E4 /* TRTCCloudManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E27266D1F54003ECB5E /* TRTCCloudManager.m */; }; - 88C52635267363A800BD96E4 /* TRTCVideoConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E28266D1F54003ECB5E /* TRTCVideoConfig.m */; }; - 88C52636267363A900BD96E4 /* TRTCVideoConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E28266D1F54003ECB5E /* TRTCVideoConfig.m */; }; - 88C5264E267363B300BD96E4 /* TRTCRemoteUserConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E1D266D1F54003ECB5E /* TRTCRemoteUserConfig.m */; }; - 88C5264F267363B300BD96E4 /* TRTCRemoteUserConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E1D266D1F54003ECB5E /* TRTCRemoteUserConfig.m */; }; - 88C52657267363BC00BD96E4 /* UIButton+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD3266D1F54003ECB5E /* UIButton+TRTC.m */; }; - 88C5265E267363BD00BD96E4 /* UIButton+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD3266D1F54003ECB5E /* UIButton+TRTC.m */; }; - 88C52660267363C000BD96E4 /* UILabel+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD4266D1F54003ECB5E /* UILabel+TRTC.m */; }; - 88C52667267363C100BD96E4 /* UILabel+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD4266D1F54003ECB5E /* UILabel+TRTC.m */; }; - 88C5266F2673642500BD96E4 /* UITextField+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD6266D1F54003ECB5E /* UITextField+TRTC.m */; }; - 88C526762673642600BD96E4 /* UITextField+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD6266D1F54003ECB5E /* UITextField+TRTC.m */; }; - 88C5267E2673642C00BD96E4 /* UISlider+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DDA266D1F54003ECB5E /* UISlider+TRTC.m */; }; - 88C5267F2673642D00BD96E4 /* UISlider+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DDA266D1F54003ECB5E /* UISlider+TRTC.m */; }; - 88C526872673643000BD96E4 /* UISegmentedControl+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DDB266D1F54003ECB5E /* UISegmentedControl+TRTC.m */; }; - 88C526882673643100BD96E4 /* UISegmentedControl+TRTC.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DDB266D1F54003ECB5E /* UISegmentedControl+TRTC.m */; }; - 88C526962673643900BD96E4 /* TRTCSettingsMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE0266D1F54003ECB5E /* TRTCSettingsMessageCell.m */; }; - 88C5269D2673643A00BD96E4 /* TRTCSettingsMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE0266D1F54003ECB5E /* TRTCSettingsMessageCell.m */; }; - 88C5269F2673643D00BD96E4 /* TRTCSettingsInputCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE2266D1F54003ECB5E /* TRTCSettingsInputCell.m */; }; - 88C526A62673643E00BD96E4 /* TRTCSettingsInputCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE2266D1F54003ECB5E /* TRTCSettingsInputCell.m */; }; - 88C526A82673644100BD96E4 /* TRTCSettingsSegmentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE4266D1F54003ECB5E /* TRTCSettingsSegmentCell.m */; }; - 88C526AF2673644200BD96E4 /* TRTCSettingsSegmentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE4266D1F54003ECB5E /* TRTCSettingsSegmentCell.m */; }; - 88C526B72673644600BD96E4 /* TRTCSettingsLargeInputCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE6266D1F54003ECB5E /* TRTCSettingsLargeInputCell.m */; }; - 88C526BE2673644700BD96E4 /* TRTCSettingsLargeInputCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE6266D1F54003ECB5E /* TRTCSettingsLargeInputCell.m */; }; - 88C526C62673644B00BD96E4 /* TRTCRemoteUserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE9266D1F54003ECB5E /* TRTCRemoteUserCell.m */; }; - 88C526C72673644C00BD96E4 /* TRTCRemoteUserCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DE9266D1F54003ECB5E /* TRTCRemoteUserCell.m */; }; - 88C526CF2673645300BD96E4 /* TRTCSettingsBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DED266D1F54003ECB5E /* TRTCSettingsBaseCell.m */; }; - 88C526D62673645400BD96E4 /* TRTCSettingsBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DED266D1F54003ECB5E /* TRTCSettingsBaseCell.m */; }; - 88C526DE2673645900BD96E4 /* TRTCSettingsButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DEF266D1F54003ECB5E /* TRTCSettingsButtonCell.m */; }; - 88C526DF2673645A00BD96E4 /* TRTCSettingsButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DEF266D1F54003ECB5E /* TRTCSettingsButtonCell.m */; }; - 88C526E72673645F00BD96E4 /* TRTCSettingsSwitchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DF0266D1F54003ECB5E /* TRTCSettingsSwitchCell.m */; }; - 88C526E82673646000BD96E4 /* TRTCSettingsSwitchCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DF0266D1F54003ECB5E /* TRTCSettingsSwitchCell.m */; }; - 88C526F02673646500BD96E4 /* TRTCSettingsMainRoomTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DF2266D1F54003ECB5E /* TRTCSettingsMainRoomTableViewCell.m */; }; - 88C526F72673646600BD96E4 /* TRTCSettingsMainRoomTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DF2266D1F54003ECB5E /* TRTCSettingsMainRoomTableViewCell.m */; }; - 88C526FF2673646C00BD96E4 /* TRTCSettingsSliderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DF4266D1F54003ECB5E /* TRTCSettingsSliderCell.m */; }; - 88C527002673646D00BD96E4 /* TRTCSettingsSliderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DF4266D1F54003ECB5E /* TRTCSettingsSliderCell.m */; }; - 88C5270E2673647100BD96E4 /* TRTCSettingsSelectorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DF5266D1F54003ECB5E /* TRTCSettingsSelectorCell.m */; }; - 88C5270F2673647200BD96E4 /* TRTCSettingsSelectorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DF5266D1F54003ECB5E /* TRTCSettingsSelectorCell.m */; }; - 88C527172673648200BD96E4 /* TRTCSettingsBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DCD266D1F54003ECB5E /* TRTCSettingsBaseViewController.m */; }; - 88C5271E2673648200BD96E4 /* TRTCSettingsBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DCD266D1F54003ECB5E /* TRTCSettingsBaseViewController.m */; }; - 88C527262673648600BD96E4 /* TRTCVideoSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC3266D1F54003ECB5E /* TRTCVideoSettingsViewController.m */; }; - 88C527272673648700BD96E4 /* TRTCVideoSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC3266D1F54003ECB5E /* TRTCVideoSettingsViewController.m */; }; - 88C5272F2673648B00BD96E4 /* TRTCAudioSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC2266D1F54003ECB5E /* TRTCAudioSettingsViewController.m */; }; - 88C527362673648C00BD96E4 /* TRTCAudioSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC2266D1F54003ECB5E /* TRTCAudioSettingsViewController.m */; }; - 88C5273E2673649000BD96E4 /* TRTCStreamSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC5266D1F54003ECB5E /* TRTCStreamSettingsViewController.m */; }; - 88C5273F2673649100BD96E4 /* TRTCStreamSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC5266D1F54003ECB5E /* TRTCStreamSettingsViewController.m */; }; - 88C527472673649400BD96E4 /* TRTCPKSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC6266D1F54003ECB5E /* TRTCPKSettingsViewController.m */; }; - 88C5274E2673649500BD96E4 /* TRTCPKSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC6266D1F54003ECB5E /* TRTCPKSettingsViewController.m */; }; - 88C527562673649800BD96E4 /* TRTCMoreSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC1266D1F54003ECB5E /* TRTCMoreSettingsViewController.m */; }; - 88C527572673649900BD96E4 /* TRTCMoreSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC1266D1F54003ECB5E /* TRTCMoreSettingsViewController.m */; }; - 88C5275F2673649D00BD96E4 /* TRTCRemoteUserSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC7266D1F54003ECB5E /* TRTCRemoteUserSettingsViewController.m */; }; - 88C527662673649D00BD96E4 /* TRTCRemoteUserSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DC7266D1F54003ECB5E /* TRTCRemoteUserSettingsViewController.m */; }; - 88C5276E267364A500BD96E4 /* TRTCRemoteUserListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DBF266D1F54003ECB5E /* TRTCRemoteUserListViewController.m */; }; - 88C52775267364A600BD96E4 /* TRTCRemoteUserListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DBF266D1F54003ECB5E /* TRTCRemoteUserListViewController.m */; }; - 88C5277D267364B100BD96E4 /* TRTCFeatureContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD0266D1F54003ECB5E /* TRTCFeatureContainerViewController.m */; }; - 88C52784267364B200BD96E4 /* TRTCFeatureContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD0266D1F54003ECB5E /* TRTCFeatureContainerViewController.m */; }; - 88C52786267364B500BD96E4 /* TRTCSettingsContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD1266D1F54003ECB5E /* TRTCSettingsContainerViewController.m */; }; - 88C5278D267364B500BD96E4 /* TRTCSettingsContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DD1266D1F54003ECB5E /* TRTCSettingsContainerViewController.m */; }; - 88C5278F267364B900BD96E4 /* TRTCVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DCF266D1F54003ECB5E /* TRTCVideoView.m */; }; - 88C52796267364B900BD96E4 /* TRTCVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DCF266D1F54003ECB5E /* TRTCVideoView.m */; }; - 88C52798267364BD00BD96E4 /* TRTCVideoViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DDE266D1F54003ECB5E /* TRTCVideoViewLayout.m */; }; - 88C5279F267364BD00BD96E4 /* TRTCVideoViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DDE266D1F54003ECB5E /* TRTCVideoViewLayout.m */; }; - 88C527A7267364C500BD96E4 /* TRTCLiveEnterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E1A266D1F54003ECB5E /* TRTCLiveEnterViewController.m */; }; - 88C527AE267364C600BD96E4 /* TRTCLiveEnterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E1A266D1F54003ECB5E /* TRTCLiveEnterViewController.m */; }; - 88C527B6267364CB00BD96E4 /* TRTCLiveViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E1B266D1F54003ECB5E /* TRTCLiveViewController.m */; }; - 88C527C5267364D100BD96E4 /* TRTCLiveAnchorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E39266D1F54003ECB5E /* TRTCLiveAnchorViewController.m */; }; - 88C527D4267364D500BD96E4 /* TRTCLiveAudienceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52DFD266D1F54003ECB5E /* TRTCLiveAudienceViewController.m */; }; - 88C527DD267364D900BD96E4 /* TRTCCallingEnterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B52E3A266D1F54003ECB5E /* TRTCCallingEnterViewController.m */; }; - 88C527E62673651200BD96E4 /* LebLauncherViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C565BC264A2D7000B85C1C /* LebLauncherViewController.m */; }; - 88C527ED2673651200BD96E4 /* LebLauncherViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C565BC264A2D7000B85C1C /* LebLauncherViewController.m */; }; - 88C527F42673652600BD96E4 /* LebLiveUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56711264AC54F00B85C1C /* LebLiveUtils.m */; }; - 88C527FB2673652600BD96E4 /* LebLiveUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56711264AC54F00B85C1C /* LebLiveUtils.m */; }; - 88C528022673654300BD96E4 /* LebSettingsBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56643264ABB5000B85C1C /* LebSettingsBaseCell.m */; }; - 88C5280F2673655700BD96E4 /* UIButton+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C56649264ABB5000B85C1C /* UIButton+Leb.m */; }; - 88C528162673655A00BD96E4 /* UISegmentedControl+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5664B264ABB5000B85C1C /* UISegmentedControl+Leb.m */; }; - 88C5281D2673655E00BD96E4 /* UISlider+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5664C264ABB5000B85C1C /* UISlider+Leb.m */; }; - 88C528242673656000BD96E4 /* UILabel+Leb.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C5664D264ABB5000B85C1C /* UILabel+Leb.m */; }; - 88C5282B2673656900BD96E4 /* LebPlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C565CE264A31D400B85C1C /* LebPlayerViewController.m */; }; - 88C528322673656900BD96E4 /* LebPlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40C565CE264A31D400B85C1C /* LebPlayerViewController.m */; }; - 8D6AAF4C1D56E796151BFC2B /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 910E179F2080A27500178D86 /* TXMoviePlayerNetApi.m in Sources */ = {isa = PBXBuildFile; fileRef = 910E179E2080A27500178D86 /* TXMoviePlayerNetApi.m */; }; - 910E17A02080A27500178D86 /* TXMoviePlayerNetApi.m in Sources */ = {isa = PBXBuildFile; fileRef = 910E179E2080A27500178D86 /* TXMoviePlayerNetApi.m */; }; - 910E17A22080A27500178D86 /* TXMoviePlayerNetApi.m in Sources */ = {isa = PBXBuildFile; fileRef = 910E179E2080A27500178D86 /* TXMoviePlayerNetApi.m */; }; - 910E17A42080A27500178D86 /* TXMoviePlayerNetApi.m in Sources */ = {isa = PBXBuildFile; fileRef = 910E179E2080A27500178D86 /* TXMoviePlayerNetApi.m */; }; - 910E17A82080A38400178D86 /* TXMoviePlayInfoResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 910E17A72080A38400178D86 /* TXMoviePlayInfoResponse.m */; }; - 910E17A92080A38400178D86 /* TXMoviePlayInfoResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 910E17A72080A38400178D86 /* TXMoviePlayInfoResponse.m */; }; - 910E17AB2080A38400178D86 /* TXMoviePlayInfoResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 910E17A72080A38400178D86 /* TXMoviePlayInfoResponse.m */; }; - 910E17AD2080A38400178D86 /* TXMoviePlayInfoResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 910E17A72080A38400178D86 /* TXMoviePlayInfoResponse.m */; }; - 912A620C2160D78A00C16E41 /* CFDanmaku.m in Sources */ = {isa = PBXBuildFile; fileRef = 912A62072160D78A00C16E41 /* CFDanmaku.m */; }; - 912A620E2160D78A00C16E41 /* CFDanmaku.m in Sources */ = {isa = PBXBuildFile; fileRef = 912A62072160D78A00C16E41 /* CFDanmaku.m */; }; - 912A62102160D78A00C16E41 /* CFDanmaku.m in Sources */ = {isa = PBXBuildFile; fileRef = 912A62072160D78A00C16E41 /* CFDanmaku.m */; }; - 912A62152160D78A00C16E41 /* CFDanmaku.m in Sources */ = {isa = PBXBuildFile; fileRef = 912A62072160D78A00C16E41 /* CFDanmaku.m */; }; - 912A621E2160D78A00C16E41 /* CFDanmakuInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 912A62092160D78A00C16E41 /* CFDanmakuInfo.m */; }; - 912A62202160D78A00C16E41 /* CFDanmakuInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 912A62092160D78A00C16E41 /* CFDanmakuInfo.m */; }; - 912A62222160D78A00C16E41 /* CFDanmakuInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 912A62092160D78A00C16E41 /* CFDanmakuInfo.m */; }; - 912A62272160D78A00C16E41 /* CFDanmakuInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 912A62092160D78A00C16E41 /* CFDanmakuInfo.m */; }; - 912A62302160D78A00C16E41 /* CFDanmakuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 912A620B2160D78A00C16E41 /* CFDanmakuView.m */; }; - 912A62322160D78A00C16E41 /* CFDanmakuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 912A620B2160D78A00C16E41 /* CFDanmakuView.m */; }; - 912A62342160D78A00C16E41 /* CFDanmakuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 912A620B2160D78A00C16E41 /* CFDanmakuView.m */; }; - 912A62392160D78A00C16E41 /* CFDanmakuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 912A620B2160D78A00C16E41 /* CFDanmakuView.m */; }; - 912E57A5206A3A6500340AF5 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */; }; - 912E57A6206A3A7E00340AF5 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */; }; - 91DB2EFF212554B500013D74 /* SuperPlayerGuideView.m in Sources */ = {isa = PBXBuildFile; fileRef = 91DB2EFE212554B500013D74 /* SuperPlayerGuideView.m */; }; - 91DB2F01212554B500013D74 /* SuperPlayerGuideView.m in Sources */ = {isa = PBXBuildFile; fileRef = 91DB2EFE212554B500013D74 /* SuperPlayerGuideView.m */; }; - 91DB2F03212554B500013D74 /* SuperPlayerGuideView.m in Sources */ = {isa = PBXBuildFile; fileRef = 91DB2EFE212554B500013D74 /* SuperPlayerGuideView.m */; }; - 91DB2F06212554B500013D74 /* SuperPlayerGuideView.m in Sources */ = {isa = PBXBuildFile; fileRef = 91DB2EFE212554B500013D74 /* SuperPlayerGuideView.m */; }; - 91F87A7F1FF4A0FD001644B1 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */; }; - 91F87A801FF4A101001644B1 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */; }; - 91F87A811FF4A109001644B1 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */; }; - 944B0A98D288A86246E2C14B /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 97C2D8B6A2EFB8329C72B18B /* CommonUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A3E19D3350038B4BE7F1209 /* CommonUtils.swift */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - A035040820D20A01007E61C6 /* QRCode.m in Sources */ = {isa = PBXBuildFile; fileRef = A035040720D20A01007E61C6 /* QRCode.m */; }; - A035040920D20A01007E61C6 /* QRCode.m in Sources */ = {isa = PBXBuildFile; fileRef = A035040720D20A01007E61C6 /* QRCode.m */; }; - A035040A20D20A01007E61C6 /* QRCode.m in Sources */ = {isa = PBXBuildFile; fileRef = A035040720D20A01007E61C6 /* QRCode.m */; }; - A035043020D24F99007E61C6 /* AddressBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = A035042F20D24F99007E61C6 /* AddressBarController.m */; }; - A035043120D24F99007E61C6 /* AddressBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = A035042F20D24F99007E61C6 /* AddressBarController.m */; }; - A035043220D24F99007E61C6 /* AddressBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = A035042F20D24F99007E61C6 /* AddressBarController.m */; }; - A035043E20D2511A007E61C6 /* AddressBar.m in Sources */ = {isa = PBXBuildFile; fileRef = A035043D20D2511A007E61C6 /* AddressBar.m */; }; - A035043F20D2511A007E61C6 /* AddressBar.m in Sources */ = {isa = PBXBuildFile; fileRef = A035043D20D2511A007E61C6 /* AddressBar.m */; }; - A035044020D2511A007E61C6 /* AddressBar.m in Sources */ = {isa = PBXBuildFile; fileRef = A035043D20D2511A007E61C6 /* AddressBar.m */; }; - A0428A3720D3CFDC00CA79D5 /* SmallButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A0428A3620D3CFDB00CA79D5 /* SmallButton.m */; }; - A0428A3820D3CFDC00CA79D5 /* SmallButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A0428A3620D3CFDB00CA79D5 /* SmallButton.m */; }; - A0428A3E20D3CFDC00CA79D5 /* SmallButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A0428A3620D3CFDB00CA79D5 /* SmallButton.m */; }; - A06D38DC2130042E00E3210E /* TXUGCPublishOptCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = A06D38DB2130042E00E3210E /* TXUGCPublishOptCenter.m */; }; - A06D38DE2130042E00E3210E /* TXUGCPublishOptCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = A06D38DB2130042E00E3210E /* TXUGCPublishOptCenter.m */; }; - A06D38E12130042E00E3210E /* TXUGCPublishOptCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = A06D38DB2130042E00E3210E /* TXUGCPublishOptCenter.m */; }; - A06E84FF214F95C000DF949B /* VideoPreview.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A06E84FE214F95C000DF949B /* VideoPreview.xcassets */; }; - A06E8501214F95C000DF949B /* VideoPreview.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A06E84FE214F95C000DF949B /* VideoPreview.xcassets */; }; - A06E8504214F95C000DF949B /* VideoPreview.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A06E84FE214F95C000DF949B /* VideoPreview.xcassets */; }; - A06E8508214F95E000DF949B /* VideoJoiner.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A06E8507214F95E000DF949B /* VideoJoiner.xcassets */; }; - A06E850A214F95E000DF949B /* VideoJoiner.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A06E8507214F95E000DF949B /* VideoJoiner.xcassets */; }; - A06E850D214F95E000DF949B /* VideoJoiner.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A06E8507214F95E000DF949B /* VideoJoiner.xcassets */; }; - A06E854C214F9E1E00DF949B /* UGCCommon.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A06E854B214F9E1E00DF949B /* UGCCommon.xcassets */; }; - A06E854E214F9E1E00DF949B /* UGCCommon.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A06E854B214F9E1E00DF949B /* UGCCommon.xcassets */; }; - A06E8551214F9E1E00DF949B /* UGCCommon.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A06E854B214F9E1E00DF949B /* UGCCommon.xcassets */; }; - A06E855B214F9EC300DF949B /* TXColor.m in Sources */ = {isa = PBXBuildFile; fileRef = A06E8559214F9EC200DF949B /* TXColor.m */; }; - A06E855D214F9EC300DF949B /* TXColor.m in Sources */ = {isa = PBXBuildFile; fileRef = A06E8559214F9EC200DF949B /* TXColor.m */; }; - A06E8560214F9EC300DF949B /* TXColor.m in Sources */ = {isa = PBXBuildFile; fileRef = A06E8559214F9EC200DF949B /* TXColor.m */; }; - A0B8FBE7207E2352008D7982 /* TVCCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBDB207E2350008D7982 /* TVCCommon.m */; }; - A0B8FBE8207E2352008D7982 /* TVCCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBDB207E2350008D7982 /* TVCCommon.m */; }; - A0B8FBEA207E2352008D7982 /* TVCCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBDB207E2350008D7982 /* TVCCommon.m */; }; - A0B8FBEB207E2352008D7982 /* TVCClientInner.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBDC207E2350008D7982 /* TVCClientInner.m */; }; - A0B8FBEC207E2352008D7982 /* TVCClientInner.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBDC207E2350008D7982 /* TVCClientInner.m */; }; - A0B8FBEE207E2352008D7982 /* TVCClientInner.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBDC207E2350008D7982 /* TVCClientInner.m */; }; - A0B8FBEF207E2352008D7982 /* TXUGCPublish.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBDD207E2350008D7982 /* TXUGCPublish.m */; }; - A0B8FBF0207E2352008D7982 /* TXUGCPublish.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBDD207E2350008D7982 /* TXUGCPublish.m */; }; - A0B8FBF2207E2352008D7982 /* TXUGCPublish.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBDD207E2350008D7982 /* TXUGCPublish.m */; }; - A0B8FBF3207E2352008D7982 /* TXUGCPublishUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBE0207E2351008D7982 /* TXUGCPublishUtil.m */; }; - A0B8FBF4207E2352008D7982 /* TXUGCPublishUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBE0207E2351008D7982 /* TXUGCPublishUtil.m */; }; - A0B8FBF6207E2352008D7982 /* TXUGCPublishUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBE0207E2351008D7982 /* TXUGCPublishUtil.m */; }; - A0B8FBF7207E2352008D7982 /* TVCClient.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBE4207E2351008D7982 /* TVCClient.m */; }; - A0B8FBF8207E2352008D7982 /* TVCClient.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBE4207E2351008D7982 /* TVCClient.m */; }; - A0B8FBFA207E2352008D7982 /* TVCClient.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBE4207E2351008D7982 /* TVCClient.m */; }; - A0B8FBFB207E2352008D7982 /* TVCReport.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBE6207E2351008D7982 /* TVCReport.m */; }; - A0B8FBFC207E2352008D7982 /* TVCReport.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBE6207E2351008D7982 /* TVCReport.m */; }; - A0B8FBFE207E2352008D7982 /* TVCReport.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FBE6207E2351008D7982 /* TVCReport.m */; }; - A0B8FC02207E235B008D7982 /* QCloudCOSXML.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0B8FBFF207E235A008D7982 /* QCloudCOSXML.framework */; }; - A0B8FC04207E235B008D7982 /* QCloudCOSXML.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0B8FBFF207E235A008D7982 /* QCloudCOSXML.framework */; }; - A0B8FC06207E235B008D7982 /* QCloudCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0B8FC00207E235B008D7982 /* QCloudCore.framework */; }; - A0B8FC08207E235B008D7982 /* QCloudCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0B8FC00207E235B008D7982 /* QCloudCore.framework */; }; - A0B8FC0B207E24F2008D7982 /* TVCUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FC09207E24F2008D7982 /* TVCUtils.m */; }; - A0B8FC0C207E24F2008D7982 /* TVCUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FC09207E24F2008D7982 /* TVCUtils.m */; }; - A0B8FC0E207E24F2008D7982 /* TVCUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = A0B8FC09207E24F2008D7982 /* TVCUtils.m */; }; - A0BEE9D8211AE89300D63544 /* SampleHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 91D47F3D20B6B13C0072AC0B /* SampleHandler.m */; }; - A0BEE9DE211AE89300D63544 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */; }; - A0BEE9DF211AE89300D63544 /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855481EE8FDF100EE47D7 /* libresolv.tbd */; }; - A0BEE9E0211AE89300D63544 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45D2971F15C527003506D1 /* libc++.tbd */; }; - A0BEE9E2211AE89300D63544 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 91D47F3920B6B13C0072AC0B /* ReplayKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - A0FFAD94213791B70087FF45 /* TVCHttpMessageURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = A0FFAD93213791B70087FF45 /* TVCHttpMessageURLProtocol.m */; }; - A0FFAD96213791B70087FF45 /* TVCHttpMessageURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = A0FFAD93213791B70087FF45 /* TVCHttpMessageURLProtocol.m */; }; - A0FFAD99213791B70087FF45 /* TVCHttpMessageURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = A0FFAD93213791B70087FF45 /* TVCHttpMessageURLProtocol.m */; }; - A3DA9716EDCCBE0B2F3A73E9 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - BA601AA425FF043F003EC29C /* QRCode.m in Sources */ = {isa = PBXBuildFile; fileRef = A035040720D20A01007E61C6 /* QRCode.m */; }; - BA601AA525FF043F003EC29C /* AddressBar.m in Sources */ = {isa = PBXBuildFile; fileRef = A035043D20D2511A007E61C6 /* AddressBar.m */; }; - BA601AA625FF043F003EC29C /* AddressBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = A035042F20D24F99007E61C6 /* AddressBarController.m */; }; - BA601B7D25FF1C91003EC29C /* TCBeautyPanel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40AA536524458EC800303EF7 /* TCBeautyPanel.framework */; }; - BAD1475025FB570400FB40DD /* UISlider+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA925B0355400B4B469 /* UISlider+V2.m */; }; - BAD1476D25FB570400FB40DD /* V2SettingsBaseCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA025B0355400B4B469 /* V2SettingsBaseCell.m */; }; - BAD1477425FB570400FB40DD /* V2MainItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D8E25B0355400B4B469 /* V2MainItemCell.m */; }; - BAD1477C25FB570400FB40DD /* GenerateTestUserSig.m in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F8DC2446E6C5000C37A3 /* GenerateTestUserSig.m */; }; - BAD1478825FB570400FB40DD /* V2PlayerSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9225B0355400B4B469 /* V2PlayerSettingViewController.m */; }; - BAD1479125FB570400FB40DD /* UILabel+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DAA25B0355400B4B469 /* UILabel+V2.m */; }; - BAD1479325FB570400FB40DD /* V2MainProtocolSelectViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9125B0355400B4B469 /* V2MainProtocolSelectViewController.m */; }; - BAD1479525FB570400FB40DD /* ThemeConfigurator.m in Sources */ = {isa = PBXBuildFile; fileRef = 45E74D9A23B22BCD00C22B31 /* ThemeConfigurator.m */; }; - BAD1479925FB570400FB40DD /* V2MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB825B0355400B4B469 /* V2MainViewController.m */; }; - BAD147AA25FB570400FB40DD /* V2LiveUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DBB25B0355400B4B469 /* V2LiveUtils.m */; }; - BAD147B025FB570400FB40DD /* V2SettingsContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA225B0355400B4B469 /* V2SettingsContainerViewController.m */; }; - BAD147B825FB570400FB40DD /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853261EE8FC8400EE47D7 /* AppDelegate.m */; }; - BAD147D025FB570400FB40DD /* AppLogMgr.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853281EE8FC8400EE47D7 /* AppLogMgr.m */; }; - BAD147D125FB570400FB40DD /* V2PusherSettingModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9625B0355400B4B469 /* V2PusherSettingModel.m */; }; - BAD147D825FB570400FB40DD /* MainTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532A1EE8FC8400EE47D7 /* MainTableViewCell.m */; }; - BAD147DD25FB570400FB40DD /* V2SettingsBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA125B0355400B4B469 /* V2SettingsBaseViewController.m */; }; - BAD147DF25FB570400FB40DD /* V2SettingBottomBar.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9A25B0355400B4B469 /* V2SettingBottomBar.m */; }; - BAD147E025FB570400FB40DD /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532C1EE8FC8400EE47D7 /* MainViewController.m */; }; - BAD147E325FB570400FB40DD /* UIButton+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA625B0355400B4B469 /* UIButton+V2.m */; }; - BAD147F125FB570400FB40DD /* V2PusherViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB725B0355400B4B469 /* V2PusherViewController.m */; }; - BAD147F425FB570400FB40DD /* V2PlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB125B0355400B4B469 /* V2PlayerViewController.m */; }; - BAD147FC25FB570400FB40DD /* V2PusherSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9325B0355400B4B469 /* V2PusherSettingViewController.m */; }; - BAD147FE25FB570400FB40DD /* UISegmentedControl+V2.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DA825B0355400B4B469 /* UISegmentedControl+V2.m */; }; - BAD1480025FB570400FB40DD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 402A010024506F740037A219 /* main.m */; }; - BAD1480525FB570400FB40DD /* SimpleIPC.m in Sources */ = {isa = PBXBuildFile; fileRef = 45CC58AA246290BB002A914E /* SimpleIPC.m */; }; - BAD1480925FB570400FB40DD /* V2QRGenerateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2DB225B0355400B4B469 /* V2QRGenerateViewController.m */; }; - BAD1480D25FB570400FB40DD /* V2QRScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D8F25B0355400B4B469 /* V2QRScanViewController.m */; }; - BAD1480F25FB570400FB40DD /* V2MainProtocolSelectSegmentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A2D9D25B0355400B4B469 /* V2MainProtocolSelectSegmentView.m */; }; - BAD1481125FB570400FB40DD /* AudioEffectSettingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40B5C6832484BBE500D3A718 /* AudioEffectSettingKit.framework */; }; - BAD1481625FB570400FB40DD /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */; }; - BAD1481725FB570400FB40DD /* QCloudCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0B8FC00207E235B008D7982 /* QCloudCore.framework */; }; - BAD1481825FB570400FB40DD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40407ACA1F3035CA006C7301 /* Foundation.framework */; }; - BAD1481925FB570400FB40DD /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553C1EE8FDC500EE47D7 /* AVFoundation.framework */; }; - BAD1481A25FB570400FB40DD /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A4AD391F1F8AE300B4A806 /* MediaPlayer.framework */; }; - BAD1481B25FB570400FB40DD /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554E1EE8FE0100EE47D7 /* libiconv.tbd */; }; - BAD1481C25FB570400FB40DD /* libmtasdk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4065C98724570E31002C0A38 /* libmtasdk.a */; }; - BAD1481D25FB570400FB40DD /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554C1EE8FDFC00EE47D7 /* libz.tbd */; }; - BAD1481E25FB570400FB40DD /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45D2971F15C527003506D1 /* libc++.tbd */; }; - BAD1481F25FB570400FB40DD /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855481EE8FDF100EE47D7 /* libresolv.tbd */; }; - BAD1482025FB570400FB40DD /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855461EE8FDE800EE47D7 /* SystemConfiguration.framework */; }; - BAD1482125FB570400FB40DD /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855441EE8FDE100EE47D7 /* CoreTelephony.framework */; }; - BAD1482225FB570400FB40DD /* VideoToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855421EE8FDDA00EE47D7 /* VideoToolbox.framework */; }; - BAD1482325FB570400FB40DD /* QCloudCOSXML.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A0B8FBFF207E235A008D7982 /* QCloudCOSXML.framework */; }; - BAD1482425FB570400FB40DD /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855401EE8FDD300EE47D7 /* CoreMedia.framework */; }; - BAD1482525FB570400FB40DD /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553E1EE8FDCC00EE47D7 /* CoreGraphics.framework */; }; - BAD1482625FB570400FB40DD /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */; }; - BAD1482725FB570400FB40DD /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855381EE8FDB600EE47D7 /* Security.framework */; }; - BAD1482825FB570400FB40DD /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855361EE8FDAD00EE47D7 /* AssetsLibrary.framework */; }; - BAD1482B25FB570400FB40DD /* TCBeautyPanelResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40AA536724458EC800303EF7 /* TCBeautyPanelResources.bundle */; }; - BAD1482C25FB570400FB40DD /* AudioEffectSettingKitResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 40B5C6872484BBE500D3A718 /* AudioEffectSettingKitResources.bundle */; }; - BAD1483225FB570400FB40DD /* V2QRGenerateViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7B5A2D8D25B0355400B4B469 /* V2QRGenerateViewController.xib */; }; - BAD1483625FB570400FB40DD /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853311EE8FC9B00EE47D7 /* LaunchScreen.storyboard */; }; - BAD1483725FB570400FB40DD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40F853221EE8FC7300EE47D7 /* Assets.xcassets */; }; - BAD1483B25FB570400FB40DD /* FilterResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CE7C6E4A1FC2C5320095663F /* FilterResource.bundle */; }; - BAD1483E25FB570400FB40DD /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 45C37797226765A60054D0B8 /* Settings.bundle */; }; - BAD1484025FB570400FB40DD /* v2live.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7B5A2DBA25B0355400B4B469 /* v2live.xcassets */; }; - BAD1484125FB570400FB40DD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853331EE8FC9B00EE47D7 /* Main.storyboard */; }; - BAD1492E25FB57E700FB40DD /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - BAD14CA925FB655B00FB40DD /* CommonUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F9DC2446EF11000C37A3 /* CommonUtils.swift */; }; - BAD14CAA25FB655B00FB40DD /* AppUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B3F9DB2446EF11000C37A3 /* AppUtils.swift */; }; - BAD14CAB25FB655B00FB40DD /* ProfileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3E2459466900AF53CB /* ProfileManager.swift */; }; - BAD14CAD25FB655F00FB40DD /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3A2459466900AF53CB /* LoginViewController.swift */; }; - BAD14CAE25FB655F00FB40DD /* LoginViewController+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B392459466900AF53CB /* LoginViewController+UI.swift */; }; - BAD14CAF25FB655F00FB40DD /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3B2459466900AF53CB /* ProfileViewController.swift */; }; - BAD14CB025FB655F00FB40DD /* ProfileViewController+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40495B3C2459466900AF53CB /* ProfileViewController+UI.swift */; }; - BD32F8A6AF7CC2FF9A53096E /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - C073D2D5F105BFF6D3D6C871 /* AppUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BA126CB62EDC2143D9BF73F /* AppUtils.swift */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - C603F89826034E93009E3AB2 /* UserProtocol.html in Resources */ = {isa = PBXBuildFile; fileRef = C603F89F26034E93009E3AB2 /* UserProtocol.html */; }; - C603F89926034E93009E3AB2 /* UserProtocol.html in Resources */ = {isa = PBXBuildFile; fileRef = C603F89F26034E93009E3AB2 /* UserProtocol.html */; }; - C603F89A26034E93009E3AB2 /* UserProtocol.html in Resources */ = {isa = PBXBuildFile; fileRef = C603F89F26034E93009E3AB2 /* UserProtocol.html */; }; - C603F89B26034E93009E3AB2 /* UserProtocol.html in Resources */ = {isa = PBXBuildFile; fileRef = C603F89F26034E93009E3AB2 /* UserProtocol.html */; }; - C603F89C26034E93009E3AB2 /* UserProtocol.html in Resources */ = {isa = PBXBuildFile; fileRef = C603F89F26034E93009E3AB2 /* UserProtocol.html */; }; - C603F9292603729D009E3AB2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C603F9322603729D009E3AB2 /* InfoPlist.strings */; }; - C603F92A2603729D009E3AB2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C603F9322603729D009E3AB2 /* InfoPlist.strings */; }; - C603F92B2603729D009E3AB2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C603F9322603729D009E3AB2 /* InfoPlist.strings */; }; - C603F92C2603729D009E3AB2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C603F9322603729D009E3AB2 /* InfoPlist.strings */; }; - C603F92D2603729D009E3AB2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C603F9322603729D009E3AB2 /* InfoPlist.strings */; }; - C603F92E2603729D009E3AB2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C603F9322603729D009E3AB2 /* InfoPlist.strings */; }; - C603F9AF26047CB9009E3AB2 /* LaunchScreen_en.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C603F9B826047CB9009E3AB2 /* LaunchScreen_en.storyboard */; }; - C603F9B026047CB9009E3AB2 /* LaunchScreen_en.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C603F9B826047CB9009E3AB2 /* LaunchScreen_en.storyboard */; }; - C603F9B126047CB9009E3AB2 /* LaunchScreen_en.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C603F9B826047CB9009E3AB2 /* LaunchScreen_en.storyboard */; }; - C603F9B226047CB9009E3AB2 /* LaunchScreen_en.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C603F9B826047CB9009E3AB2 /* LaunchScreen_en.storyboard */; }; - C603F9B326047CB9009E3AB2 /* LaunchScreen_en.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C603F9B826047CB9009E3AB2 /* LaunchScreen_en.storyboard */; }; - C603F9B426047CB9009E3AB2 /* LaunchScreen_en.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C603F9B826047CB9009E3AB2 /* LaunchScreen_en.storyboard */; }; - C603F9B526047CB9009E3AB2 /* LaunchScreen_en.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C603F9B826047CB9009E3AB2 /* LaunchScreen_en.storyboard */; }; - C6D20720262FC6C6001A80D7 /* VerifyPicture.html in Resources */ = {isa = PBXBuildFile; fileRef = C6D20717262FC6C2001A80D7 /* VerifyPicture.html */; }; - C6D20721262FC6C6001A80D7 /* VerifyPicture.html in Resources */ = {isa = PBXBuildFile; fileRef = C6D20717262FC6C2001A80D7 /* VerifyPicture.html */; }; - C6D20722262FC6C6001A80D7 /* VerifyPicture.html in Resources */ = {isa = PBXBuildFile; fileRef = C6D20717262FC6C2001A80D7 /* VerifyPicture.html */; }; - C6D20726262FC6C6001A80D7 /* VerifyPicture.html in Resources */ = {isa = PBXBuildFile; fileRef = C6D20717262FC6C2001A80D7 /* VerifyPicture.html */; }; - C6D20728262FC6C6001A80D7 /* LoginCountryList.json in Resources */ = {isa = PBXBuildFile; fileRef = C6D2071F262FC6C6001A80D7 /* LoginCountryList.json */; }; - C6D20729262FC6C6001A80D7 /* LoginCountryList.json in Resources */ = {isa = PBXBuildFile; fileRef = C6D2071F262FC6C6001A80D7 /* LoginCountryList.json */; }; - C6D2072A262FC6C6001A80D7 /* LoginCountryList.json in Resources */ = {isa = PBXBuildFile; fileRef = C6D2071F262FC6C6001A80D7 /* LoginCountryList.json */; }; - C6D2072E262FC6C6001A80D7 /* LoginCountryList.json in Resources */ = {isa = PBXBuildFile; fileRef = C6D2071F262FC6C6001A80D7 /* LoginCountryList.json */; }; - C6D20737262FCCD0001A80D7 /* TRTCLoginAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6D20736262FCCD0001A80D7 /* TRTCLoginAlertView.swift */; }; - C6D20738262FCCD0001A80D7 /* TRTCLoginAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6D20736262FCCD0001A80D7 /* TRTCLoginAlertView.swift */; }; - C6D20739262FCCD0001A80D7 /* TRTCLoginAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6D20736262FCCD0001A80D7 /* TRTCLoginAlertView.swift */; }; - C6D2073D262FCCD0001A80D7 /* TRTCLoginAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6D20736262FCCD0001A80D7 /* TRTCLoginAlertView.swift */; }; - C95B04375F531F8E587F2791 /* ProfileManager_Mock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87FA015DFE57266448EFD1AB /* ProfileManager_Mock.swift */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - CE01F53E206DDE060056D693 /* VideoCompressPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE01F53D206DDE060056D693 /* VideoCompressPreviewController.m */; }; - CE01F53F206DDE060056D693 /* VideoCompressPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE01F53D206DDE060056D693 /* VideoCompressPreviewController.m */; }; - CE01F541206DDE060056D693 /* VideoCompressPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE01F53D206DDE060056D693 /* VideoCompressPreviewController.m */; }; - CE1BA7272062051500071F5F /* ListVideoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF7242040353E00CBE2BD /* ListVideoCell.m */; }; - CE1BA72F2062051500071F5F /* VideoPreview.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF68520401BD800CBE2BD /* VideoPreview.m */; }; - CE1BA7422062051500071F5F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853261EE8FC8400EE47D7 /* AppDelegate.m */; }; - CE1BA74B2062051500071F5F /* AppLogMgr.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F853281EE8FC8400EE47D7 /* AppLogMgr.m */; }; - CE1BA74F2062051500071F5F /* MainTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532A1EE8FC8400EE47D7 /* MainTableViewCell.m */; }; - CE1BA7542062051500071F5F /* VideoJoinerController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF6E62040307E00CBE2BD /* VideoJoinerController.m */; }; - CE1BA75F2062051500071F5F /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8532C1EE8FC8400EE47D7 /* MainViewController.m */; }; - CE1BA76E2062051500071F5F /* VideoPreviewViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF6452040179600CBE2BD /* VideoPreviewViewController.m */; }; - CE1BA7832062051500071F5F /* VideoEditPrevController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF6E02040307E00CBE2BD /* VideoEditPrevController.m */; }; - CE1BA7882062051500071F5F /* MoviePlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF7262040353E00CBE2BD /* MoviePlayerViewController.m */; }; - CE1BA79A2062051500071F5F /* VideoJoinerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF6E32040307E00CBE2BD /* VideoJoinerCell.m */; }; - CE1BA7A52062051500071F5F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40407ACA1F3035CA006C7301 /* Foundation.framework */; }; - CE1BA7A62062051500071F5F /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553C1EE8FDC500EE47D7 /* AVFoundation.framework */; }; - CE1BA7A72062051500071F5F /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A4AD391F1F8AE300B4A806 /* MediaPlayer.framework */; }; - CE1BA7A82062051500071F5F /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554E1EE8FE0100EE47D7 /* libiconv.tbd */; }; - CE1BA7A92062051500071F5F /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8554C1EE8FDFC00EE47D7 /* libz.tbd */; }; - CE1BA7AA2062051500071F5F /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45D2971F15C527003506D1 /* libc++.tbd */; }; - CE1BA7AC2062051500071F5F /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855481EE8FDF100EE47D7 /* libresolv.tbd */; }; - CE1BA7AD2062051500071F5F /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855461EE8FDE800EE47D7 /* SystemConfiguration.framework */; }; - CE1BA7AE2062051500071F5F /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855441EE8FDE100EE47D7 /* CoreTelephony.framework */; }; - CE1BA7AF2062051500071F5F /* VideoToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855421EE8FDDA00EE47D7 /* VideoToolbox.framework */; }; - CE1BA7B02062051500071F5F /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855401EE8FDD300EE47D7 /* CoreMedia.framework */; }; - CE1BA7B12062051500071F5F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553E1EE8FDCC00EE47D7 /* CoreGraphics.framework */; }; - CE1BA7B22062051500071F5F /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */; }; - CE1BA7B32062051500071F5F /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855381EE8FDB600EE47D7 /* Security.framework */; }; - CE1BA7B42062051500071F5F /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855361EE8FDAD00EE47D7 /* AssetsLibrary.framework */; }; - CE1BA7CB2062051500071F5F /* VideoJoinerController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D6BEF6E72040307E00CBE2BD /* VideoJoinerController.xib */; }; - CE1BA80E2062051500071F5F /* danmakufile in Resources */ = {isa = PBXBuildFile; fileRef = D6BEF79D204035CB00CBE2BD /* danmakufile */; }; - CE1BA8232062051500071F5F /* VideoJoinerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D6BEF6E42040307E00CBE2BD /* VideoJoinerCell.xib */; }; - CE1BA8462062051500071F5F /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853311EE8FC9B00EE47D7 /* LaunchScreen.storyboard */; }; - CE1BA8482062051500071F5F /* VideoEditPrevController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D6BEF6E12040307E00CBE2BD /* VideoEditPrevController.xib */; }; - CE1BA8542062051500071F5F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40F853221EE8FC7300EE47D7 /* Assets.xcassets */; }; - CE1BA86A2062051500071F5F /* FilterResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CE7C6E4A1FC2C5320095663F /* FilterResource.bundle */; }; - CE1BA89B2062051500071F5F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40F853331EE8FC9B00EE47D7 /* Main.storyboard */; }; - CE59D393206CD11400583727 /* VideoCompressViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE59D391206CD11400583727 /* VideoCompressViewController.m */; }; - CE59D395206CD11F00583727 /* VideoCompressViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE59D391206CD11400583727 /* VideoCompressViewController.m */; }; - CE59D397206CD12200583727 /* VideoCompressViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE59D391206CD11400583727 /* VideoCompressViewController.m */; }; - CE7C6E4E1FC2C5320095663F /* FilterResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CE7C6E4A1FC2C5320095663F /* FilterResource.bundle */; }; - CE7C6E4F1FC2C5320095663F /* FilterResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CE7C6E4A1FC2C5320095663F /* FilterResource.bundle */; }; - CF31F0EC1FBB2A7E0066BF7D /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CF31F0EB1FBB2A7E0066BF7D /* Metal.framework */; }; - D08AA5F684BE9093113EAFC6 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8779F5A4D0E5E8106E6176C0 /* ProfileViewController.swift */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - D50292D82272BAFE00C052B7 /* RoomUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292D42272BAFE00C052B7 /* RoomUtil.m */; }; - D50292D92272BAFE00C052B7 /* IMMsgManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292D62272BAFE00C052B7 /* IMMsgManager.m */; }; - D50292EA2272BB0700C052B7 /* LiveRoomPusherViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292DF2272BB0600C052B7 /* LiveRoomPusherViewController.m */; }; - D50292EC2272BB0700C052B7 /* LiveRoomPlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E22272BB0600C052B7 /* LiveRoomPlayerViewController.m */; }; - D50292ED2272BB0700C052B7 /* LiveRoomTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E32272BB0600C052B7 /* LiveRoomTableViewCell.m */; }; - D50292EE2272BB0700C052B7 /* LiveRoomListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E52272BB0600C052B7 /* LiveRoomListViewController.m */; }; - D50292EF2272BB0700C052B7 /* LiveRoomMsgListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E62272BB0600C052B7 /* LiveRoomMsgListTableViewCell.m */; }; - D50292F02272BB0700C052B7 /* LiveRoomNewViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E72272BB0600C052B7 /* LiveRoomNewViewController.m */; }; - D50292F12272BB0700C052B7 /* LiveRoomMsgListTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E92272BB0700C052B7 /* LiveRoomMsgListTableView.m */; }; - D50292F72272BB1200C052B7 /* MLVBLiveRoomDef.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292F42272BB1100C052B7 /* MLVBLiveRoomDef.m */; }; - D50292F82272BB1200C052B7 /* MLVBLiveRoom.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292F62272BB1200C052B7 /* MLVBLiveRoom.m */; }; - D50292FB2272BB1C00C052B7 /* PlayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292FA2272BB1C00C052B7 /* PlayViewController.m */; }; - D50293062272BB2600C052B7 /* CameraPushViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292FC2272BB2500C052B7 /* CameraPushViewController.m */; }; - D50293082272BB2600C052B7 /* TXCAudioCustomRecorder.m in Sources */ = {isa = PBXBuildFile; fileRef = D50293002272BB2500C052B7 /* TXCAudioCustomRecorder.m */; }; - D50293092272BB2600C052B7 /* PushMoreSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50293012272BB2500C052B7 /* PushMoreSettingViewController.m */; }; - D502930A2272BB2600C052B7 /* PushSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50293052272BB2600C052B7 /* PushSettingViewController.m */; }; - D541372C22795FAA006D9C9D /* IMMsgManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292D62272BAFE00C052B7 /* IMMsgManager.m */; }; - D541372D22795FAA006D9C9D /* RoomUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292D42272BAFE00C052B7 /* RoomUtil.m */; }; - D541372E22795FAA006D9C9D /* LiveRoomListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E52272BB0600C052B7 /* LiveRoomListViewController.m */; }; - D541372F22795FAA006D9C9D /* LiveRoomMsgListTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E92272BB0700C052B7 /* LiveRoomMsgListTableView.m */; }; - D541373022795FAA006D9C9D /* LiveRoomMsgListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E62272BB0600C052B7 /* LiveRoomMsgListTableViewCell.m */; }; - D541373122795FAA006D9C9D /* LiveRoomNewViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E72272BB0600C052B7 /* LiveRoomNewViewController.m */; }; - D541373322795FAA006D9C9D /* LiveRoomPlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E22272BB0600C052B7 /* LiveRoomPlayerViewController.m */; }; - D541373422795FAA006D9C9D /* LiveRoomPusherViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292DF2272BB0600C052B7 /* LiveRoomPusherViewController.m */; }; - D541373522795FAA006D9C9D /* LiveRoomTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E32272BB0600C052B7 /* LiveRoomTableViewCell.m */; }; - D541373622795FAA006D9C9D /* MLVBLiveRoom.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292F62272BB1200C052B7 /* MLVBLiveRoom.m */; }; - D541373722795FAA006D9C9D /* MLVBLiveRoomDef.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292F42272BB1100C052B7 /* MLVBLiveRoomDef.m */; }; - D541373822795FAA006D9C9D /* PlayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292FA2272BB1C00C052B7 /* PlayViewController.m */; }; - D541373922795FAA006D9C9D /* CameraPushViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292FC2272BB2500C052B7 /* CameraPushViewController.m */; }; - D541373A22795FAA006D9C9D /* PushMoreSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50293012272BB2500C052B7 /* PushMoreSettingViewController.m */; }; - D541373B22795FAA006D9C9D /* PushSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50293052272BB2600C052B7 /* PushSettingViewController.m */; }; - D541373C22795FAA006D9C9D /* TXCAudioCustomRecorder.m in Sources */ = {isa = PBXBuildFile; fileRef = D50293002272BB2500C052B7 /* TXCAudioCustomRecorder.m */; }; - D541373D22795FAA006D9C9D /* PushBgmControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A3107182272E31A002F6115 /* PushBgmControl.m */; }; - D541373E22796084006D9C9D /* IMMsgManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292D62272BAFE00C052B7 /* IMMsgManager.m */; }; - D541373F22796084006D9C9D /* RoomUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292D42272BAFE00C052B7 /* RoomUtil.m */; }; - D541374022796084006D9C9D /* LiveRoomListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E52272BB0600C052B7 /* LiveRoomListViewController.m */; }; - D541374122796084006D9C9D /* LiveRoomMsgListTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E92272BB0700C052B7 /* LiveRoomMsgListTableView.m */; }; - D541374222796084006D9C9D /* LiveRoomMsgListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E62272BB0600C052B7 /* LiveRoomMsgListTableViewCell.m */; }; - D541374322796084006D9C9D /* LiveRoomNewViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E72272BB0600C052B7 /* LiveRoomNewViewController.m */; }; - D541374522796084006D9C9D /* LiveRoomPlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E22272BB0600C052B7 /* LiveRoomPlayerViewController.m */; }; - D541374622796084006D9C9D /* LiveRoomPusherViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292DF2272BB0600C052B7 /* LiveRoomPusherViewController.m */; }; - D541374722796084006D9C9D /* LiveRoomTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292E32272BB0600C052B7 /* LiveRoomTableViewCell.m */; }; - D541374822796084006D9C9D /* MLVBLiveRoom.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292F62272BB1200C052B7 /* MLVBLiveRoom.m */; }; - D541374922796084006D9C9D /* MLVBLiveRoomDef.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292F42272BB1100C052B7 /* MLVBLiveRoomDef.m */; }; - D541374A22796084006D9C9D /* PlayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292FA2272BB1C00C052B7 /* PlayViewController.m */; }; - D541374B22796084006D9C9D /* CameraPushViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50292FC2272BB2500C052B7 /* CameraPushViewController.m */; }; - D541374C22796084006D9C9D /* PushMoreSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50293012272BB2500C052B7 /* PushMoreSettingViewController.m */; }; - D541374D22796084006D9C9D /* PushSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D50293052272BB2600C052B7 /* PushSettingViewController.m */; }; - D541374E22796084006D9C9D /* TXCAudioCustomRecorder.m in Sources */ = {isa = PBXBuildFile; fileRef = D50293002272BB2500C052B7 /* TXCAudioCustomRecorder.m */; }; - D541374F22796084006D9C9D /* PushBgmControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A3107182272E31A002F6115 /* PushBgmControl.m */; }; - D61B484B1FB59EF0002F0C6C /* TCHttpUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = D61B484A1FB59EF0002F0C6C /* TCHttpUtil.m */; }; - D61B484C1FB59EF0002F0C6C /* TCHttpUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = D61B484A1FB59EF0002F0C6C /* TCHttpUtil.m */; }; - D62EDBED1FF4D77900092D1A /* FilterResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = CE7C6E4A1FC2C5320095663F /* FilterResource.bundle */; }; - D650607B20EE145F00C8BC44 /* libc.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D650607A20EE145F00C8BC44 /* libc.tbd */; }; - D6A04019207C6C69002DE89C /* TCHttpUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = D61B484A1FB59EF0002F0C6C /* TCHttpUtil.m */; }; - D6BEF6562040179600CBE2BD /* VideoPreviewViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF6452040179600CBE2BD /* VideoPreviewViewController.m */; }; - D6BEF6572040179600CBE2BD /* VideoPreviewViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF6452040179600CBE2BD /* VideoPreviewViewController.m */; }; - D6BEF6BE20401BD900CBE2BD /* VideoPreview.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF68520401BD800CBE2BD /* VideoPreview.m */; }; - D6BEF6BF20401BD900CBE2BD /* VideoPreview.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF68520401BD800CBE2BD /* VideoPreview.m */; }; - D6BEF6E82040307E00CBE2BD /* VideoEditPrevController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF6E02040307E00CBE2BD /* VideoEditPrevController.m */; }; - D6BEF6E92040307E00CBE2BD /* VideoEditPrevController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF6E02040307E00CBE2BD /* VideoEditPrevController.m */; }; - D6BEF6EB2040307E00CBE2BD /* VideoEditPrevController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D6BEF6E12040307E00CBE2BD /* VideoEditPrevController.xib */; }; - D6BEF6EC2040307E00CBE2BD /* VideoEditPrevController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D6BEF6E12040307E00CBE2BD /* VideoEditPrevController.xib */; }; - D6BEF6EE2040307E00CBE2BD /* VideoJoinerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF6E32040307E00CBE2BD /* VideoJoinerCell.m */; }; - D6BEF6EF2040307E00CBE2BD /* VideoJoinerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF6E32040307E00CBE2BD /* VideoJoinerCell.m */; }; - D6BEF6F12040307E00CBE2BD /* VideoJoinerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D6BEF6E42040307E00CBE2BD /* VideoJoinerCell.xib */; }; - D6BEF6F22040307E00CBE2BD /* VideoJoinerCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D6BEF6E42040307E00CBE2BD /* VideoJoinerCell.xib */; }; - D6BEF6F42040307E00CBE2BD /* VideoJoinerController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF6E62040307E00CBE2BD /* VideoJoinerController.m */; }; - D6BEF6F52040307E00CBE2BD /* VideoJoinerController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF6E62040307E00CBE2BD /* VideoJoinerController.m */; }; - D6BEF6F72040307E00CBE2BD /* VideoJoinerController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D6BEF6E72040307E00CBE2BD /* VideoJoinerController.xib */; }; - D6BEF6F82040307E00CBE2BD /* VideoJoinerController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D6BEF6E72040307E00CBE2BD /* VideoJoinerController.xib */; }; - D6BEF7572040353E00CBE2BD /* ListVideoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF7242040353E00CBE2BD /* ListVideoCell.m */; }; - D6BEF7582040353E00CBE2BD /* ListVideoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF7242040353E00CBE2BD /* ListVideoCell.m */; }; - D6BEF75A2040353E00CBE2BD /* MoviePlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF7262040353E00CBE2BD /* MoviePlayerViewController.m */; }; - D6BEF75B2040353E00CBE2BD /* MoviePlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF7262040353E00CBE2BD /* MoviePlayerViewController.m */; }; - D6BEF7B3204035CC00CBE2BD /* danmakufile in Resources */ = {isa = PBXBuildFile; fileRef = D6BEF79D204035CB00CBE2BD /* danmakufile */; }; - D6BEF7B4204035CC00CBE2BD /* danmakufile in Resources */ = {isa = PBXBuildFile; fileRef = D6BEF79D204035CB00CBE2BD /* danmakufile */; }; - D6BEF7ED2040362B00CBE2BD /* danmakufile in Resources */ = {isa = PBXBuildFile; fileRef = D6BEF79D204035CB00CBE2BD /* danmakufile */; }; - D6BEF8222040368000CBE2BD /* ListVideoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF7242040353E00CBE2BD /* ListVideoCell.m */; }; - D6BEF8232040368000CBE2BD /* MoviePlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6BEF7262040353E00CBE2BD /* MoviePlayerViewController.m */; }; - D6D9E36720D283E700B6D607 /* SampleHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 91D47F3D20B6B13C0072AC0B /* SampleHandler.m */; }; - D6D9E36D20D283E700B6D607 /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40F855481EE8FDF100EE47D7 /* libresolv.tbd */; }; - D6D9E36E20D283E700B6D607 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45D2971F15C527003506D1 /* libc++.tbd */; }; - D6D9E37020D283E700B6D607 /* ReplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 91D47F3920B6B13C0072AC0B /* ReplayKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - D6D9E37920D2850D00B6D607 /* TXReplaykitUpload_Smart.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = D6D9E37620D283E700B6D607 /* TXReplaykitUpload_Smart.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - D6E5D1C320B7B62000812B2F /* ScreenPushViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6E5D1C220B7B62000812B2F /* ScreenPushViewController.m */; }; - D6E5D1C420B7B62000812B2F /* ScreenPushViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6E5D1C220B7B62000812B2F /* ScreenPushViewController.m */; }; - D6E5D1C520B7B62000812B2F /* ScreenPushViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D6E5D1C220B7B62000812B2F /* ScreenPushViewController.m */; }; - EF69648B8809D6DEA1B7139D /* libPods-TXReplaykitUpload_Smart.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B8883463F7DB6469C26CDBF /* libPods-TXReplaykitUpload_Smart.a */; }; - F1BD909275A65650965E5BE7 /* LoginViewController_Mock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39212BD217D1620ECFBC5817 /* LoginViewController_Mock.swift */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - F2841445221D516304D4E2C5 /* ProfileViewController+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7755116AB93BF3D1E1635CA0 /* ProfileViewController+UI.swift */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - FDD4BF2B24A1F8AE0015388B /* VideoEditor.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FDD4BF2824A1F8AD0015388B /* VideoEditor.xcassets */; }; - FDD4BF2C24A1F8AE0015388B /* VideoEditor.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FDD4BF2824A1F8AD0015388B /* VideoEditor.xcassets */; }; - FDD4BF2D24A1F8AE0015388B /* VideoEditor.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FDD4BF2824A1F8AD0015388B /* VideoEditor.xcassets */; }; - FE12240D41F21DCBFF25A35D /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - FFBF42EEE2BE1823CC8C9072 /* libPods-TXLiteAVDemo_Smart.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A065A9D117DFE893830751FB /* libPods-TXLiteAVDemo_Smart.a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 1A865FDD266FA8F8008A861A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40F852FB1EE8FB3800EE47D7 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1A865FB8266FA853008A861A; - remoteInfo = TXReplaykitUpload_Live; - }; - 1AF08357266A1A8C004FBE74 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40AA533524458EC800303EF7 /* TCBeautyPanel.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 4579C3F923AC660C005ECC1C; - remoteInfo = TCBeautyPanelResources; - }; - 1AF08359266A1A8C004FBE74 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 401A9B3D247FCC7600C0763B /* AudioEffectSettingKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 40AF71C8247D08F700EBB371; - remoteInfo = AudioEffectSettingKitResources; - }; - 405874D22445BC66009B3503 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40F852FB1EE8FB3800EE47D7 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 40AA52AE244554BA00303EF7; - remoteInfo = TXReplaykitUpload_Professional; - }; - 4074E626249F0F1B006C591F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40F852FB1EE8FB3800EE47D7 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A0BEE9D4211AE89300D63544; - remoteInfo = TXReplaykitUpload_Enterprise; - }; - 4074E62A249F0F30006C591F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40F852FB1EE8FB3800EE47D7 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 6A5031BE249D122800701E6B; - remoteInfo = TXReplaykitUpload_TRTC; - }; - 4074E649249F1FC7006C591F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 401A9B3D247FCC7600C0763B /* AudioEffectSettingKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 40AF71C8247D08F700EBB371; - remoteInfo = AudioEffectSettingKitResources; - }; - 4088EB4D245991A9005BF1DD /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40A49D5E24598CD200BFCB18 /* UGCKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 453DE2D5237945B10083E759; - remoteInfo = UGCKit; - }; - 4088EB5E24599E0C005BF1DD /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40AA533524458EC800303EF7 /* TCBeautyPanel.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 4579C3F923AC660C005ECC1C; - remoteInfo = TCBeautyPanelResources; - }; - 40A49D6424598CD700BFCB18 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40A49D5E24598CD200BFCB18 /* UGCKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 453DE2D6237945B10083E759; - remoteInfo = UGCKit; - }; - 40A49D6624598CD700BFCB18 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40A49D5E24598CD200BFCB18 /* UGCKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 454616C223797C39009CDF83; - remoteInfo = UGCKitResources; - }; - 40A49D6824598D2100BFCB18 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40A49D5E24598CD200BFCB18 /* UGCKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 454616C123797C39009CDF83; - remoteInfo = UGCKitResources; - }; - 40A49D6D24598D3F00BFCB18 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40A49D5E24598CD200BFCB18 /* UGCKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 454616C123797C39009CDF83; - remoteInfo = UGCKitResources; - }; - 40A49D7024598D6B00BFCB18 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40A49D5E24598CD200BFCB18 /* UGCKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 453DE2D5237945B10083E759; - remoteInfo = UGCKit; - }; - 40A49D7224598D6B00BFCB18 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40A49D5E24598CD200BFCB18 /* UGCKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 454616C123797C39009CDF83; - remoteInfo = UGCKitResources; - }; - 40A49D7724598DD100BFCB18 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40A49D5E24598CD200BFCB18 /* UGCKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 454616C123797C39009CDF83; - remoteInfo = UGCKitResources; - }; - 40A8A0662452D9B200BB06FC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40AA533524458EC800303EF7 /* TCBeautyPanel.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 4579C3F923AC660C005ECC1C; - remoteInfo = TCBeautyPanelResources; - }; - 40AA536424458EC800303EF7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40AA533524458EC800303EF7 /* TCBeautyPanel.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 4579C38623AC64DC005ECC1C; - remoteInfo = TCBeautyPanel; - }; - 40AA536624458EC800303EF7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40AA533524458EC800303EF7 /* TCBeautyPanel.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 4579C3FA23AC660C005ECC1C; - remoteInfo = TCBeautyPanelResources; - }; - 40B3F65D2446E518000C37A3 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40AA533524458EC800303EF7 /* TCBeautyPanel.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 4579C38523AC64DC005ECC1C; - remoteInfo = TCBeautyPanel; - }; - 40B3F65F2446E518000C37A3 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40AA533524458EC800303EF7 /* TCBeautyPanel.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 4579C3F923AC660C005ECC1C; - remoteInfo = TCBeautyPanelResources; - }; - 40B5C6822484BBE500D3A718 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 401A9B3D247FCC7600C0763B /* AudioEffectSettingKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 40AF719A247D036200EBB371; - remoteInfo = AudioEffectSettingKit; - }; - 40B5C6862484BBE500D3A718 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 401A9B3D247FCC7600C0763B /* AudioEffectSettingKit.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 40AF71C9247D08F700EBB371; - remoteInfo = AudioEffectSettingKitResources; - }; - 40B5C68A2484BBF600D3A718 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 401A9B3D247FCC7600C0763B /* AudioEffectSettingKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 40AF71C8247D08F700EBB371; - remoteInfo = AudioEffectSettingKitResources; - }; - 40B5C68D2484BC0D00D3A718 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 401A9B3D247FCC7600C0763B /* AudioEffectSettingKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 40AF71C8247D08F700EBB371; - remoteInfo = AudioEffectSettingKitResources; - }; - 40B5C6902484BC2100D3A718 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 401A9B3D247FCC7600C0763B /* AudioEffectSettingKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 40AF71C8247D08F700EBB371; - remoteInfo = AudioEffectSettingKitResources; - }; - 40BEFEB42469429100F4E10D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40AA533524458EC800303EF7 /* TCBeautyPanel.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 4579C3F923AC660C005ECC1C; - remoteInfo = TCBeautyPanelResources; - }; - 40D23BC2244EEF9F007C7801 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40AA533524458EC800303EF7 /* TCBeautyPanel.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 4579C3F923AC660C005ECC1C; - remoteInfo = TCBeautyPanelResources; - }; - BA601B7B25FF1C88003EC29C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40AA533524458EC800303EF7 /* TCBeautyPanel.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 4579C3F923AC660C005ECC1C; - remoteInfo = TCBeautyPanelResources; - }; - BAD1472425FB570400FB40DD /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 401A9B3D247FCC7600C0763B /* AudioEffectSettingKit.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 40AF71C8247D08F700EBB371; - remoteInfo = AudioEffectSettingKitResources; - }; - D67F9E7920F4660C0086D8DD /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 40F852FB1EE8FB3800EE47D7 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D6D9E36520D283E700B6D607; - remoteInfo = ReplaykitUpload_Smart; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - D6D9E37C20D2850D00B6D607 /* Embed App Extensions */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 13; - files = ( - D6D9E37920D2850D00B6D607 /* TXReplaykitUpload_Smart.appex in Embed App Extensions */, - ); - name = "Embed App Extensions"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 0BA126CB62EDC2143D9BF73F /* AppUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AppUtils.swift; sourceTree = ""; }; - 2840D91B24B8562200723FBC /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; - 39212BD217D1620ECFBC5817 /* LoginViewController_Mock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LoginViewController_Mock.swift; sourceTree = ""; }; - 3B8883463F7DB6469C26CDBF /* libPods-TXReplaykitUpload_Smart.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-TXReplaykitUpload_Smart.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3FE55542D416212AADE83B12 /* Pods-TXLiteAVDemo_Smart.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TXLiteAVDemo_Smart.debug.xcconfig"; path = "Target Support Files/Pods-TXLiteAVDemo_Smart/Pods-TXLiteAVDemo_Smart.debug.xcconfig"; sourceTree = ""; }; - 400922A11F4FCC52009B882D /* TXLiteAVDemo_Smart.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TXLiteAVDemo_Smart.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 401A9B3D247FCC7600C0763B /* AudioEffectSettingKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = AudioEffectSettingKit.xcodeproj; sourceTree = ""; }; - 402A00DD2450552E0037A219 /* TXLiteAVDemo-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TXLiteAVDemo-Bridging-Header.h"; sourceTree = ""; }; - 402A00ED24506B7C0037A219 /* UGCRecordWrapper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UGCRecordWrapper.m; sourceTree = ""; }; - 402A00F024506B9E0037A219 /* UGCVideoJoinWrapper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UGCVideoJoinWrapper.m; sourceTree = ""; }; - 402A00F324506BEB0037A219 /* UGCVideoEditWrapper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UGCVideoEditWrapper.m; sourceTree = ""; }; - 402A00FC24506D0D0037A219 /* UGCVideoUploadWrapper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UGCVideoUploadWrapper.m; sourceTree = ""; }; - 402A010024506F740037A219 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = App/main.m; sourceTree = ""; }; - 402A010724506F9C0037A219 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = App/Info.plist; sourceTree = ""; }; - 40407ACA1F3035CA006C7301 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 40495B392459466900AF53CB /* LoginViewController+UI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "LoginViewController+UI.swift"; sourceTree = ""; }; - 40495B3A2459466900AF53CB /* LoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = ""; }; - 40495B3B2459466900AF53CB /* ProfileViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProfileViewController.swift; sourceTree = ""; }; - 40495B3C2459466900AF53CB /* ProfileViewController+UI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ProfileViewController+UI.swift"; sourceTree = ""; }; - 40495B3E2459466900AF53CB /* ProfileManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProfileManager.swift; sourceTree = ""; }; - 4053391C24654CEF00A6B478 /* TCHttpUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TCHttpUtil.m; sourceTree = ""; }; - 4053391D24654CEF00A6B478 /* TCHttpUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCHttpUtil.h; sourceTree = ""; }; - 4053391F24654CEF00A6B478 /* SmallButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SmallButton.m; sourceTree = ""; }; - 4053392024654CEF00A6B478 /* SmallButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmallButton.h; sourceTree = ""; }; - 4053392524654D2700A6B478 /* TCHttpUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TCHttpUtil.m; sourceTree = ""; }; - 4053392624654D2700A6B478 /* TCHttpUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCHttpUtil.h; sourceTree = ""; }; - 405339282465511700A6B478 /* bgm_demo.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = bgm_demo.mp3; sourceTree = ""; }; - 40533958246645D900A6B478 /* ScanQRController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScanQRController.h; sourceTree = ""; }; - 40533959246645D900A6B478 /* ScanQRController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScanQRController.mm; sourceTree = ""; }; - 4053395C2466460600A6B478 /* ScanQRController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScanQRController.h; sourceTree = ""; }; - 4053395D2466460600A6B478 /* ScanQRController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScanQRController.mm; sourceTree = ""; }; - 4065C98724570E31002C0A38 /* libmtasdk.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libmtasdk.a; sourceTree = ""; }; - 4071CF6B2444423D000B7707 /* TXLiteAVSDK_Smart.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = TXLiteAVSDK_Smart.framework; sourceTree = ""; }; - 4071CF702444477A000B7707 /* libsqlite3.0.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.0.tbd; path = usr/lib/libsqlite3.0.tbd; sourceTree = SDKROOT; }; - 40802A272484BBBE008151C1 /* AudioEffectSettingKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AudioEffectSettingKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4090F78F246AE23B00EA72A0 /* ColorMacro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorMacro.h; sourceTree = ""; }; - 40A49D5E24598CD200BFCB18 /* UGCKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = UGCKit.xcodeproj; path = UGCKit/UGCKit.xcodeproj; sourceTree = ""; }; - 40AA533524458EC800303EF7 /* TCBeautyPanel.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = TCBeautyPanel.xcodeproj; sourceTree = ""; }; - 40AA539724459DF900303EF7 /* UGCKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UGCKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 40B18A582670AEA500553049 /* TXColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TXColor.h; sourceTree = ""; }; - 40B18A592670AEA500553049 /* PhotoUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PhotoUtil.m; sourceTree = ""; }; - 40B18A5A2670AEA500553049 /* PhotoUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PhotoUtil.h; sourceTree = ""; }; - 40B18A5B2670AEA500553049 /* TXColor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TXColor.m; sourceTree = ""; }; - 40B3F8DC2446E6C5000C37A3 /* GenerateTestUserSig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GenerateTestUserSig.m; sourceTree = ""; }; - 40B3F8DD2446E6C5000C37A3 /* GenerateTestUserSig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenerateTestUserSig.h; sourceTree = ""; }; - 40B3F9DB2446EF11000C37A3 /* AppUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppUtils.swift; sourceTree = ""; }; - 40B3F9DC2446EF11000C37A3 /* CommonUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CommonUtils.swift; sourceTree = ""; }; - 40C565BC264A2D7000B85C1C /* LebLauncherViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LebLauncherViewController.m; sourceTree = ""; }; - 40C565CE264A31D400B85C1C /* LebPlayerViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LebPlayerViewController.m; sourceTree = ""; }; - 40C56635264ABB5000B85C1C /* LebPlayerSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LebPlayerSettingViewController.m; sourceTree = ""; }; - 40C5663A264ABB5000B85C1C /* LebPlayerSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LebPlayerSettingViewController.h; sourceTree = ""; }; - 40C5663D264ABB5000B85C1C /* LebSettingBottomBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LebSettingBottomBar.m; sourceTree = ""; }; - 40C5663F264ABB5000B85C1C /* LebSettingBottomBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LebSettingBottomBar.h; sourceTree = ""; }; - 40C56643264ABB5000B85C1C /* LebSettingsBaseCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LebSettingsBaseCell.m; sourceTree = ""; }; - 40C56644264ABB5000B85C1C /* LebSettingsBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LebSettingsBaseViewController.m; sourceTree = ""; }; - 40C56646264ABB5000B85C1C /* LebSettingsBaseCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LebSettingsBaseCell.h; sourceTree = ""; }; - 40C56648264ABB5000B85C1C /* UISlider+Leb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UISlider+Leb.h"; sourceTree = ""; }; - 40C56649264ABB5000B85C1C /* UIButton+Leb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIButton+Leb.m"; sourceTree = ""; }; - 40C5664A264ABB5000B85C1C /* UILabel+Leb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UILabel+Leb.h"; sourceTree = ""; }; - 40C5664B264ABB5000B85C1C /* UISegmentedControl+Leb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UISegmentedControl+Leb.m"; sourceTree = ""; }; - 40C5664C264ABB5000B85C1C /* UISlider+Leb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UISlider+Leb.m"; sourceTree = ""; }; - 40C5664D264ABB5000B85C1C /* UILabel+Leb.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UILabel+Leb.m"; sourceTree = ""; }; - 40C5664E264ABB5000B85C1C /* UIButton+Leb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIButton+Leb.h"; sourceTree = ""; }; - 40C5664F264ABB5000B85C1C /* UISegmentedControl+Leb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UISegmentedControl+Leb.h"; sourceTree = ""; }; - 40C56650264ABB5000B85C1C /* LebSettingsBaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LebSettingsBaseViewController.h; sourceTree = ""; }; - 40C56710264AC54F00B85C1C /* LebLiveUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LebLiveUtils.h; path = TXLiteAVDemo/LebPlayerDemo/LebSetting/LebLiveUtils.h; sourceTree = SOURCE_ROOT; }; - 40C56711264AC54F00B85C1C /* LebLiveUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LebLiveUtils.m; path = TXLiteAVDemo/LebPlayerDemo/LebSetting/LebLiveUtils.m; sourceTree = SOURCE_ROOT; }; - 40C56712264AC55000B85C1C /* LebQRScanViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LebQRScanViewController.h; path = TXLiteAVDemo/LebPlayerDemo/LebQRScanViewController.h; sourceTree = SOURCE_ROOT; }; - 40C56713264AC55000B85C1C /* LebQRScanViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LebQRScanViewController.m; path = TXLiteAVDemo/LebPlayerDemo/LebQRScanViewController.m; sourceTree = SOURCE_ROOT; }; - 40C5675A264AD16400B85C1C /* LebPlayer.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = LebPlayer.xcassets; sourceTree = ""; }; - 40F853221EE8FC7300EE47D7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 40F853251EE8FC8400EE47D7 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 40F853261EE8FC8400EE47D7 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 40F853271EE8FC8400EE47D7 /* AppLogMgr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppLogMgr.h; sourceTree = ""; }; - 40F853281EE8FC8400EE47D7 /* AppLogMgr.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppLogMgr.m; sourceTree = ""; }; - 40F853291EE8FC8400EE47D7 /* MainTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainTableViewCell.h; sourceTree = ""; }; - 40F8532A1EE8FC8400EE47D7 /* MainTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainTableViewCell.m; sourceTree = ""; }; - 40F8532B1EE8FC8400EE47D7 /* MainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainViewController.h; sourceTree = ""; }; - 40F8532C1EE8FC8400EE47D7 /* MainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainViewController.m; sourceTree = ""; }; - 40F853321EE8FC9B00EE47D7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 40F853341EE8FC9B00EE47D7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 40F853551EE8FCDF00EE47D7 /* ScanQRController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScanQRController.h; sourceTree = ""; }; - 40F853561EE8FCDF00EE47D7 /* ScanQRController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScanQRController.mm; sourceTree = ""; }; - 40F855361EE8FDAD00EE47D7 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; - 40F855381EE8FDB600EE47D7 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; - 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; - 40F8553C1EE8FDC500EE47D7 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; - 40F8553E1EE8FDCC00EE47D7 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 40F855401EE8FDD300EE47D7 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; - 40F855421EE8FDDA00EE47D7 /* VideoToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = VideoToolbox.framework; path = System/Library/Frameworks/VideoToolbox.framework; sourceTree = SDKROOT; }; - 40F855441EE8FDE100EE47D7 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; - 40F855461EE8FDE800EE47D7 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; - 40F855481EE8FDF100EE47D7 /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; }; - 40F8554C1EE8FDFC00EE47D7 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; - 40F8554E1EE8FE0100EE47D7 /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; }; - 4509E5D122816E8D001FF14A /* LiveRoomAccPlayerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LiveRoomAccPlayerView.h; sourceTree = ""; }; - 4509E5D222816E8D001FF14A /* LiveRoomAccPlayerView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LiveRoomAccPlayerView.m; sourceTree = ""; }; - 450CFC1123AB5CC800A17FD0 /* VideoRecordConfigViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoRecordConfigViewController.m; sourceTree = ""; }; - 450CFC1523AB5CC800A17FD0 /* VideoRecordConfigViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoRecordConfigViewController.h; sourceTree = ""; }; - 450CFC1623AB5CC800A17FD0 /* VideoRecordConfigViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = VideoRecordConfigViewController.xib; sourceTree = ""; }; - 450CFC2023AB5CC800A17FD0 /* VideoRecord.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = VideoRecord.xcassets; sourceTree = ""; }; - 4540802A23292D4400C3CAD5 /* PhotoUtil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PhotoUtil.h; sourceTree = ""; }; - 4540802B23292D4400C3CAD5 /* PhotoUtil.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PhotoUtil.m; sourceTree = ""; }; - 45BB0B2523A9C3730084FE90 /* UGCKitWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UGCKitWrapper.h; sourceTree = ""; }; - 45BB0B2623A9C3730084FE90 /* UGCKitWrapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UGCKitWrapper.m; sourceTree = ""; }; - 45C37797226765A60054D0B8 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = ""; }; - 45CC58AA246290BB002A914E /* SimpleIPC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SimpleIPC.m; sourceTree = ""; }; - 45CC58AB246290BB002A914E /* SimpleIPC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleIPC.h; sourceTree = ""; }; - 45D8448B23B64395001CD3A9 /* UGCUploadList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UGCUploadList.h; sourceTree = ""; }; - 45D8448C23B64395001CD3A9 /* UGCUploadList.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UGCUploadList.m; sourceTree = ""; }; - 45E74D9923B22BCD00C22B31 /* ThemeConfigurator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ThemeConfigurator.h; sourceTree = ""; }; - 45E74D9A23B22BCD00C22B31 /* ThemeConfigurator.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ThemeConfigurator.m; sourceTree = ""; }; - 47147D5A752EF1BBBA9EA243 /* LoginViewController+UI_Mock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "LoginViewController+UI_Mock.swift"; sourceTree = ""; }; - 4717324D26705C4A005F772E /* FFmpeg.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = FFmpeg.xcframework; path = ../SDK/FFmpeg.xcframework; sourceTree = ""; }; - 4717324E26705C4A005F772E /* SoundTouch.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = SoundTouch.xcframework; path = ../SDK/SoundTouch.xcframework; sourceTree = ""; }; - 47642A8C261490960020F1BA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - 47642A99261491B90020F1BA /* launchimage_en@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "launchimage_en@3x.png"; sourceTree = ""; }; - 47642A9A261491B90020F1BA /* launchimage_en@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "launchimage_en@2x.png"; sourceTree = ""; }; - 47740FF226147EE90098482E /* ReplayKitLocalized.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ReplayKitLocalized.m; sourceTree = ""; }; - 47740FF426147EE90098482E /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; - 47740FF626147EE90098482E /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/ReplayKitLocalized.strings"; sourceTree = ""; }; - 47740FF726147EE90098482E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - 47740FF826147EE90098482E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/ReplayKitLocalized.strings; sourceTree = ""; }; - 47740FF926147EE90098482E /* ReplayKitLocalized.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReplayKitLocalized.h; sourceTree = ""; }; - 47B7ABE12695C76300AC8D18 /* ShaderProcessor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ShaderProcessor.m; sourceTree = ""; }; - 47B7ABE22695C76300AC8D18 /* PixelBufferProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PixelBufferProcessor.h; sourceTree = ""; }; - 47B7ABE32695C76300AC8D18 /* WaterMarkProcessor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WaterMarkProcessor.m; sourceTree = ""; }; - 47B7ABE42695C76300AC8D18 /* ShaderProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShaderProcessor.h; sourceTree = ""; }; - 47B7ABE52695C76300AC8D18 /* PixelBufferProcessor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PixelBufferProcessor.m; sourceTree = ""; }; - 47B7ABE62695C76300AC8D18 /* WaterMarkProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WaterMarkProcessor.h; sourceTree = ""; }; - 47B7ABE82695C76300AC8D18 /* GLTextureOutput.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLTextureOutput.m; sourceTree = ""; }; - 47B7ABE92695C76300AC8D18 /* GLFramebufferCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLFramebufferCache.m; sourceTree = ""; }; - 47B7ABEA2695C76300AC8D18 /* GLTextureInput.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLTextureInput.m; sourceTree = ""; }; - 47B7ABEB2695C76300AC8D18 /* GLOutput.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLOutput.m; sourceTree = ""; }; - 47B7ABEC2695C76300AC8D18 /* GLFramebuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLFramebuffer.h; sourceTree = ""; }; - 47B7ABED2695C76300AC8D18 /* GLProgram.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLProgram.m; sourceTree = ""; }; - 47B7ABEE2695C76300AC8D18 /* GLContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLContext.h; sourceTree = ""; }; - 47B7ABEF2695C76300AC8D18 /* GLUIElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLUIElement.h; sourceTree = ""; }; - 47B7ABF02695C76300AC8D18 /* GLTextureInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLTextureInput.h; sourceTree = ""; }; - 47B7ABF12695C76300AC8D18 /* GLFramebufferCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLFramebufferCache.h; sourceTree = ""; }; - 47B7ABF22695C76300AC8D18 /* GLTextureOutput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLTextureOutput.h; sourceTree = ""; }; - 47B7ABF32695C76300AC8D18 /* GLOutput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLOutput.h; sourceTree = ""; }; - 47B7ABF42695C76300AC8D18 /* GLFramebuffer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLFramebuffer.m; sourceTree = ""; }; - 47B7ABF52695C76300AC8D18 /* GLUIElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLUIElement.m; sourceTree = ""; }; - 47B7ABF62695C76300AC8D18 /* GLContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLContext.m; sourceTree = ""; }; - 47B7ABF72695C76300AC8D18 /* GLProgram.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLProgram.h; sourceTree = ""; }; - 47B7ABF92695C76300AC8D18 /* Normal.fsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = Normal.fsh; sourceTree = ""; }; - 47B7ABFA2695C76300AC8D18 /* YUVConversion.fsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = YUVConversion.fsh; sourceTree = ""; }; - 47B7ABFB2695C76300AC8D18 /* Normal.vsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = Normal.vsh; sourceTree = ""; }; - 47B7ABFC2695C76300AC8D18 /* YUVConversion.vsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = YUVConversion.vsh; sourceTree = ""; }; - 47B7AC4A2695C76400AC8D18 /* GLFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLFilter.h; sourceTree = ""; }; - 47B7AC4B2695C76400AC8D18 /* GLAlphaBlendFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLAlphaBlendFilter.m; sourceTree = ""; }; - 47B7AC4C2695C76400AC8D18 /* GLFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLFilter.m; sourceTree = ""; }; - 47B7AC4D2695C76400AC8D18 /* GLAlphaBlendFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLAlphaBlendFilter.h; sourceTree = ""; }; - 47B7AE962696A08000AC8D18 /* libyuv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libyuv.h; sourceTree = ""; }; - 47B7AE982696A08000AC8D18 /* libyuv.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libyuv.a; sourceTree = ""; }; - 47B7AEB62696A13500AC8D18 /* convert_from_argb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convert_from_argb.h; sourceTree = ""; }; - 47B7AEB72696A13500AC8D18 /* basic_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = basic_types.h; sourceTree = ""; }; - 47E8C87C260AECC4001CF672 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/AppPortalLocalized.strings"; sourceTree = ""; }; - 47E8C880260AECC4001CF672 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/LoginNetworkLocalized.strings"; sourceTree = ""; }; - 47E8C882260AECC4001CF672 /* AppLocalized.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppLocalized.h; sourceTree = ""; }; - 47E8C885260AECC4001CF672 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/UGCLocalized.strings"; sourceTree = ""; }; - 47E8C889260AECC4001CF672 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/V2LiveLocalized.strings"; sourceTree = ""; }; - 47E8C88D260AECC4001CF672 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/TRTCDemoLocalized.strings"; sourceTree = ""; }; - 47E8C891260AECC4001CF672 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/LivePlayerLocalized.strings"; sourceTree = ""; }; - 47E8C893260AECC4001CF672 /* AppLocalized.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppLocalized.m; sourceTree = ""; }; - 47E8C92C260AED85001CF672 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/AppPortalLocalized.strings; sourceTree = ""; }; - 47E8C92D260AEDAC001CF672 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/LivePlayerLocalized.strings; sourceTree = ""; }; - 47E8C92E260AEDB9001CF672 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/LoginNetworkLocalized.strings; sourceTree = ""; }; - 47E8C92F260AEDCB001CF672 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/TRTCDemoLocalized.strings; sourceTree = ""; }; - 47E8C930260AEDDF001CF672 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/UGCLocalized.strings; sourceTree = ""; }; - 47E8C931260AEDE9001CF672 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/V2LiveLocalized.strings; sourceTree = ""; }; - 47E8C938260AEE37001CF672 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = en; path = en.lproj/UserProtocol.html; sourceTree = ""; }; - 47E8C9D1260B54E5001CF672 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - 47E8C9D9260B54EA001CF672 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; - 47E8CAAD260B5C05001CF672 /* UIView+CustomAutoLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+CustomAutoLayout.h"; sourceTree = ""; }; - 47E8CAAE260B5C05001CF672 /* UIButton+Glossy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIButton+Glossy.h"; sourceTree = ""; }; - 47E8CAAF260B5C05001CF672 /* UIColor+MLPFlatColors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+MLPFlatColors.m"; sourceTree = ""; }; - 47E8CAB0260B5C05001CF672 /* NSString+Common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Common.h"; sourceTree = ""; }; - 47E8CAB1260B5C05001CF672 /* NSString+UISize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+UISize.h"; sourceTree = ""; }; - 47E8CAB2260B5C05001CF672 /* UIImage+Additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Additions.h"; sourceTree = ""; }; - 47E8CAB3260B5C05001CF672 /* NSObject+CommonBlock.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+CommonBlock.m"; sourceTree = ""; }; - 47E8CAB4260B5C05001CF672 /* UIView+Additions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Additions.m"; sourceTree = ""; }; - 47E8CAB5260B5C05001CF672 /* UIButton+Additions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIButton+Additions.m"; sourceTree = ""; }; - 47E8CAB6260B5C05001CF672 /* NSData+Common.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+Common.m"; sourceTree = ""; }; - 47E8CAB7260B5C05001CF672 /* UIViewController+BackButtonHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIViewController+BackButtonHandler.m"; sourceTree = ""; }; - 47E8CAB8260B5C05001CF672 /* NSDictionary+Common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+Common.h"; sourceTree = ""; }; - 47E8CAB9260B5C05001CF672 /* HUDHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HUDHelper.m; sourceTree = ""; }; - 47E8CABA260B5C05001CF672 /* NSString+Common.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Common.m"; sourceTree = ""; }; - 47E8CABB260B5C05001CF672 /* UIColor+MLPFlatColors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIColor+MLPFlatColors.h"; sourceTree = ""; }; - 47E8CABC260B5C05001CF672 /* UIButton+Glossy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIButton+Glossy.m"; sourceTree = ""; }; - 47E8CABD260B5C05001CF672 /* UIView+CustomAutoLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+CustomAutoLayout.m"; sourceTree = ""; }; - 47E8CABE260B5C05001CF672 /* NSString+UISize.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+UISize.m"; sourceTree = ""; }; - 47E8CABF260B5C05001CF672 /* UIButton+Additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIButton+Additions.h"; sourceTree = ""; }; - 47E8CAC0260B5C05001CF672 /* NSData+Common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+Common.h"; sourceTree = ""; }; - 47E8CAC1260B5C05001CF672 /* UIView+Additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Additions.h"; sourceTree = ""; }; - 47E8CAC2260B5C05001CF672 /* NSObject+CommonBlock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+CommonBlock.h"; sourceTree = ""; }; - 47E8CAC3260B5C05001CF672 /* UIImage+Additions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Additions.m"; sourceTree = ""; }; - 47E8CAC4260B5C05001CF672 /* HUDHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HUDHelper.h; sourceTree = ""; }; - 47E8CAC5260B5C05001CF672 /* NSDictionary+Common.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+Common.m"; sourceTree = ""; }; - 47E8CAC6260B5C05001CF672 /* UIViewController+BackButtonHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIViewController+BackButtonHandler.h"; sourceTree = ""; }; - 47E8CAC8260B5C05001CF672 /* YTFaceSDK.licence */ = {isa = PBXFileReference; lastKnownFileType = file; path = YTFaceSDK.licence; sourceTree = ""; }; - 47E8CACA260B5C06001CF672 /* v1 */ = {isa = PBXFileReference; lastKnownFileType = file; path = v1; sourceTree = ""; }; - 47E8CACB260B5C06001CF672 /* u1 */ = {isa = PBXFileReference; lastKnownFileType = file; path = u1; sourceTree = ""; }; - 47E8CACC260B5C06001CF672 /* YTHandDetector.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = YTHandDetector.bundle; sourceTree = ""; }; - 47E8CACD260B5C06001CF672 /* ufa.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = ufa.bundle; sourceTree = ""; }; - 47E8CACE260B5C06001CF672 /* poseest.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = poseest.bundle; sourceTree = ""; }; - 47E8CACF260B5C06001CF672 /* AECore.metallib */ = {isa = PBXFileReference; lastKnownFileType = "archive.metal-library"; path = AECore.metallib; sourceTree = ""; }; - 47E8CAD0260B5C06001CF672 /* detector.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = detector.bundle; sourceTree = ""; }; - 47E8CAD1260B5C06001CF672 /* MSFMLandmarks46_relandmark_models.xbin */ = {isa = PBXFileReference; lastKnownFileType = file; path = MSFMLandmarks46_relandmark_models.xbin; sourceTree = ""; }; - 47E8CAD2260B5C06001CF672 /* RPNSegmenter.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = RPNSegmenter.bundle; sourceTree = ""; }; - 47E8CAD3260B5C06001CF672 /* o1 */ = {isa = PBXFileReference; lastKnownFileType = file; path = o1; sourceTree = ""; }; - 47E8CAD4260B5C06001CF672 /* e1 */ = {isa = PBXFileReference; lastKnownFileType = file; path = e1; sourceTree = ""; }; - 47E8CAD5260B5C06001CF672 /* FilterEngine.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = FilterEngine.bundle; sourceTree = ""; }; - 47E8CAD7260B5C06001CF672 /* TCUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCUtil.h; sourceTree = ""; }; - 47E8CAD8260B5C06001CF672 /* TCLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TCLog.m; sourceTree = ""; }; - 47E8CAD9260B5C06001CF672 /* TCUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TCUtil.m; sourceTree = ""; }; - 47E8CADA260B5C06001CF672 /* TCLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCLog.h; sourceTree = ""; }; - 47E8CADB260B5C06001CF672 /* ColorMacro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorMacro.h; sourceTree = ""; }; - 47E8CCCE260C4EB2001CF672 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - 47E8CCD6260C4EE3001CF672 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; - 48CA90A216ACB2F1AC355B8C /* Pods-TXReplaykitUpload_Smart.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TXReplaykitUpload_Smart.release.xcconfig"; path = "Target Support Files/Pods-TXReplaykitUpload_Smart/Pods-TXReplaykitUpload_Smart.release.xcconfig"; sourceTree = ""; }; - 4A3E19D3350038B4BE7F1209 /* CommonUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CommonUtils.swift; sourceTree = ""; }; - 51A289F8230FB93A00B9B73F /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; - 51A4AD391F1F8AE300B4A806 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; }; - 6A1C108A2281A674005D7BD9 /* PushLogView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PushLogView.h; sourceTree = ""; }; - 6A1C109A2281A674005D7BD9 /* PushLogView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PushLogView.m; sourceTree = ""; }; - 6A3105C922682A06002F6115 /* ImageUploadViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageUploadViewController.m; sourceTree = ""; }; - 6A3105D922682A06002F6115 /* ImageUploadViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageUploadViewController.h; sourceTree = ""; }; - 6A3107172272E31A002F6115 /* PushBgmControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PushBgmControl.h; sourceTree = ""; }; - 6A3107182272E31A002F6115 /* PushBgmControl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PushBgmControl.m; sourceTree = ""; }; - 6A503178249D03B200701E6B /* TRTCInfo.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = TRTCInfo.plist; sourceTree = ""; }; - 6F3B8CE66F615B5126697B01 /* Pods-TXLiteAVDemo_Smart.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TXLiteAVDemo_Smart.release.xcconfig"; path = "Target Support Files/Pods-TXLiteAVDemo_Smart/Pods-TXLiteAVDemo_Smart.release.xcconfig"; sourceTree = ""; }; - 7755116AB93BF3D1E1635CA0 /* ProfileViewController+UI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "ProfileViewController+UI.swift"; sourceTree = ""; }; - 7B4C917A24B4B0C80095C041 /* TXLaunchMoviePlayProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TXLaunchMoviePlayProtocol.h; sourceTree = ""; }; - 7B5A2D8D25B0355400B4B469 /* V2QRGenerateViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = V2QRGenerateViewController.xib; sourceTree = ""; }; - 7B5A2D8E25B0355400B4B469 /* V2MainItemCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2MainItemCell.m; sourceTree = ""; }; - 7B5A2D8F25B0355400B4B469 /* V2QRScanViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2QRScanViewController.m; sourceTree = ""; }; - 7B5A2D9125B0355400B4B469 /* V2MainProtocolSelectViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2MainProtocolSelectViewController.m; sourceTree = ""; }; - 7B5A2D9225B0355400B4B469 /* V2PlayerSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2PlayerSettingViewController.m; sourceTree = ""; }; - 7B5A2D9325B0355400B4B469 /* V2PusherSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2PusherSettingViewController.m; sourceTree = ""; }; - 7B5A2D9525B0355400B4B469 /* V2PusherSettingModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V2PusherSettingModel.h; sourceTree = ""; }; - 7B5A2D9625B0355400B4B469 /* V2PusherSettingModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2PusherSettingModel.m; sourceTree = ""; }; - 7B5A2D9725B0355400B4B469 /* V2PlayerSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V2PlayerSettingViewController.h; sourceTree = ""; }; - 7B5A2D9825B0355400B4B469 /* V2MainProtocolSelectViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V2MainProtocolSelectViewController.h; sourceTree = ""; }; - 7B5A2D9A25B0355400B4B469 /* V2SettingBottomBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2SettingBottomBar.m; sourceTree = ""; }; - 7B5A2D9B25B0355400B4B469 /* V2MainProtocolSelectSegmentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V2MainProtocolSelectSegmentView.h; sourceTree = ""; }; - 7B5A2D9C25B0355400B4B469 /* V2SettingBottomBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V2SettingBottomBar.h; sourceTree = ""; }; - 7B5A2D9D25B0355400B4B469 /* V2MainProtocolSelectSegmentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2MainProtocolSelectSegmentView.m; sourceTree = ""; }; - 7B5A2D9F25B0355400B4B469 /* V2SettingsContainerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V2SettingsContainerViewController.h; sourceTree = ""; }; - 7B5A2DA025B0355400B4B469 /* V2SettingsBaseCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2SettingsBaseCell.m; sourceTree = ""; }; - 7B5A2DA125B0355400B4B469 /* V2SettingsBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2SettingsBaseViewController.m; sourceTree = ""; }; - 7B5A2DA225B0355400B4B469 /* V2SettingsContainerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2SettingsContainerViewController.m; sourceTree = ""; }; - 7B5A2DA325B0355400B4B469 /* V2SettingsBaseCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V2SettingsBaseCell.h; sourceTree = ""; }; - 7B5A2DA525B0355400B4B469 /* UISlider+V2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UISlider+V2.h"; sourceTree = ""; }; - 7B5A2DA625B0355400B4B469 /* UIButton+V2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIButton+V2.m"; sourceTree = ""; }; - 7B5A2DA725B0355400B4B469 /* UILabel+V2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UILabel+V2.h"; sourceTree = ""; }; - 7B5A2DA825B0355400B4B469 /* UISegmentedControl+V2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UISegmentedControl+V2.m"; sourceTree = ""; }; - 7B5A2DA925B0355400B4B469 /* UISlider+V2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UISlider+V2.m"; sourceTree = ""; }; - 7B5A2DAA25B0355400B4B469 /* UILabel+V2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UILabel+V2.m"; sourceTree = ""; }; - 7B5A2DAB25B0355400B4B469 /* UIButton+V2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIButton+V2.h"; sourceTree = ""; }; - 7B5A2DAC25B0355400B4B469 /* UISegmentedControl+V2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UISegmentedControl+V2.h"; sourceTree = ""; }; - 7B5A2DAD25B0355400B4B469 /* V2SettingsBaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V2SettingsBaseViewController.h; sourceTree = ""; }; - 7B5A2DAE25B0355400B4B469 /* V2PusherSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V2PusherSettingViewController.h; sourceTree = ""; }; - 7B5A2DB125B0355400B4B469 /* V2PlayerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2PlayerViewController.m; sourceTree = ""; }; - 7B5A2DB225B0355400B4B469 /* V2QRGenerateViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2QRGenerateViewController.m; sourceTree = ""; }; - 7B5A2DB725B0355400B4B469 /* V2PusherViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2PusherViewController.m; sourceTree = ""; }; - 7B5A2DB825B0355400B4B469 /* V2MainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2MainViewController.m; sourceTree = ""; }; - 7B5A2DBA25B0355400B4B469 /* v2live.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = v2live.xcassets; sourceTree = ""; }; - 7B5A2DBB25B0355400B4B469 /* V2LiveUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V2LiveUtils.m; sourceTree = ""; }; - 8779F5A4D0E5E8106E6176C0 /* ProfileViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProfileViewController.swift; sourceTree = ""; }; - 87FA015DFE57266448EFD1AB /* ProfileManager_Mock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ProfileManager_Mock.swift; sourceTree = ""; }; - 881C2887269D35EA0013B870 /* CustomAudioCapturor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomAudioCapturor.m; sourceTree = ""; }; - 881C2888269D35EA0013B870 /* CustomAudioFileReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomAudioFileReader.m; sourceTree = ""; }; - 881C2889269D35EA0013B870 /* CustomAudioCapturor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomAudioCapturor.h; sourceTree = ""; }; - 881C288A269D35EA0013B870 /* CustomAudioFileReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomAudioFileReader.h; sourceTree = ""; }; - 881C288B269D35EA0013B870 /* CustomAudio44100_2.pcm */ = {isa = PBXFileReference; lastKnownFileType = file; path = CustomAudio44100_2.pcm; sourceTree = ""; }; - 881C288C269D35EA0013B870 /* CustomAudio48000_1.pcm */ = {isa = PBXFileReference; lastKnownFileType = file; path = CustomAudio48000_1.pcm; sourceTree = ""; }; - 88856099267C7B4A007990F0 /* MineRootView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MineRootView.swift; sourceTree = ""; }; - 8885609A267C7B4A007990F0 /* MineViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MineViewModel.swift; sourceTree = ""; }; - 8885609B267C7B4A007990F0 /* MineAboutResignViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MineAboutResignViewController.swift; sourceTree = ""; }; - 8885609C267C7B4A007990F0 /* MineAboutViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MineAboutViewController.swift; sourceTree = ""; }; - 8885609D267C7B4A007990F0 /* MineViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MineViewController.swift; sourceTree = ""; }; - 8885609F267C7B4A007990F0 /* TRTCAlerts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TRTCAlerts.swift; sourceTree = ""; }; - 888560A0267C7B4A007990F0 /* MineAlertContentView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MineAlertContentView.swift; sourceTree = ""; }; - 888560A1267C7B4A007990F0 /* TRTCAlertControl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TRTCAlertControl.swift; sourceTree = ""; }; - 888560A2267C7B4A007990F0 /* LayoutDefine.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LayoutDefine.swift; sourceTree = ""; }; - 88ABB5EF266DCB0D0050C38A /* TRTCWebViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TRTCWebViewController.swift; sourceTree = ""; }; - 88ABB61C266DD0E80050C38A /* PrivacyPolicy.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = PrivacyPolicy.html; sourceTree = ""; }; - 88ABB62F266DD0FA0050C38A /* UserAgreement.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = UserAgreement.html; sourceTree = ""; }; - 88ABB6C7266F17900050C38A /* PrivacyPopView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyPopView.swift; sourceTree = ""; }; - 88B52DBB266D1F54003ECB5E /* TRTCVideoView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCVideoView.h; sourceTree = ""; }; - 88B52DBC266D1F54003ECB5E /* TRTCSettingsContainerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCSettingsContainerViewController.h; sourceTree = ""; }; - 88B52DBD266D1F54003ECB5E /* TRTCFeatureContainerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCFeatureContainerViewController.h; sourceTree = ""; }; - 88B52DBE266D1F54003ECB5E /* TRTCVideoViewLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCVideoViewLayout.h; sourceTree = ""; }; - 88B52DBF266D1F54003ECB5E /* TRTCRemoteUserListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCRemoteUserListViewController.m; sourceTree = ""; }; - 88B52DC1266D1F54003ECB5E /* TRTCMoreSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCMoreSettingsViewController.m; sourceTree = ""; }; - 88B52DC2266D1F54003ECB5E /* TRTCAudioSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCAudioSettingsViewController.m; sourceTree = ""; }; - 88B52DC3266D1F54003ECB5E /* TRTCVideoSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCVideoSettingsViewController.m; sourceTree = ""; }; - 88B52DC4266D1F54003ECB5E /* TRTCSettingsBaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCSettingsBaseViewController.h; sourceTree = ""; }; - 88B52DC5266D1F54003ECB5E /* TRTCStreamSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCStreamSettingsViewController.m; sourceTree = ""; }; - 88B52DC6266D1F54003ECB5E /* TRTCPKSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCPKSettingsViewController.m; sourceTree = ""; }; - 88B52DC7266D1F54003ECB5E /* TRTCRemoteUserSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCRemoteUserSettingsViewController.m; sourceTree = ""; }; - 88B52DC8266D1F54003ECB5E /* TRTCMoreSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCMoreSettingsViewController.h; sourceTree = ""; }; - 88B52DC9266D1F54003ECB5E /* TRTCAudioSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCAudioSettingsViewController.h; sourceTree = ""; }; - 88B52DCA266D1F54003ECB5E /* TRTCRemoteUserSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCRemoteUserSettingsViewController.h; sourceTree = ""; }; - 88B52DCB266D1F54003ECB5E /* TRTCPKSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCPKSettingsViewController.h; sourceTree = ""; }; - 88B52DCC266D1F54003ECB5E /* TRTCStreamSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCStreamSettingsViewController.h; sourceTree = ""; }; - 88B52DCD266D1F54003ECB5E /* TRTCSettingsBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCSettingsBaseViewController.m; sourceTree = ""; }; - 88B52DCE266D1F54003ECB5E /* TRTCVideoSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCVideoSettingsViewController.h; sourceTree = ""; }; - 88B52DCF266D1F54003ECB5E /* TRTCVideoView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCVideoView.m; sourceTree = ""; }; - 88B52DD0266D1F54003ECB5E /* TRTCFeatureContainerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCFeatureContainerViewController.m; sourceTree = ""; }; - 88B52DD1266D1F54003ECB5E /* TRTCSettingsContainerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCSettingsContainerViewController.m; sourceTree = ""; }; - 88B52DD3266D1F54003ECB5E /* UIButton+TRTC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIButton+TRTC.m"; sourceTree = ""; }; - 88B52DD4266D1F54003ECB5E /* UILabel+TRTC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UILabel+TRTC.m"; sourceTree = ""; }; - 88B52DD5266D1F54003ECB5E /* UISlider+TRTC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UISlider+TRTC.h"; sourceTree = ""; }; - 88B52DD6266D1F54003ECB5E /* UITextField+TRTC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITextField+TRTC.m"; sourceTree = ""; }; - 88B52DD7266D1F54003ECB5E /* UISegmentedControl+TRTC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UISegmentedControl+TRTC.h"; sourceTree = ""; }; - 88B52DD8266D1F54003ECB5E /* UILabel+TRTC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UILabel+TRTC.h"; sourceTree = ""; }; - 88B52DD9266D1F54003ECB5E /* UIButton+TRTC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIButton+TRTC.h"; sourceTree = ""; }; - 88B52DDA266D1F54003ECB5E /* UISlider+TRTC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UISlider+TRTC.m"; sourceTree = ""; }; - 88B52DDB266D1F54003ECB5E /* UISegmentedControl+TRTC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UISegmentedControl+TRTC.m"; sourceTree = ""; }; - 88B52DDC266D1F54003ECB5E /* UITextField+TRTC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITextField+TRTC.h"; sourceTree = ""; }; - 88B52DDD266D1F54003ECB5E /* TRTCRemoteUserListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCRemoteUserListViewController.h; sourceTree = ""; }; - 88B52DDE266D1F54003ECB5E /* TRTCVideoViewLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCVideoViewLayout.m; sourceTree = ""; }; - 88B52DE0266D1F54003ECB5E /* TRTCSettingsMessageCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCSettingsMessageCell.m; sourceTree = ""; }; - 88B52DE1266D1F54003ECB5E /* TRTCSettingsButtonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCSettingsButtonCell.h; sourceTree = ""; }; - 88B52DE2266D1F54003ECB5E /* TRTCSettingsInputCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCSettingsInputCell.m; sourceTree = ""; }; - 88B52DE3266D1F54003ECB5E /* TRTCSettingsBaseCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCSettingsBaseCell.h; sourceTree = ""; }; - 88B52DE4266D1F54003ECB5E /* TRTCSettingsSegmentCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCSettingsSegmentCell.m; sourceTree = ""; }; - 88B52DE5266D1F54003ECB5E /* TRTCSettingsSwitchCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCSettingsSwitchCell.h; sourceTree = ""; }; - 88B52DE6266D1F54003ECB5E /* TRTCSettingsLargeInputCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCSettingsLargeInputCell.m; sourceTree = ""; }; - 88B52DE7266D1F54003ECB5E /* TRTCSettingsSelectorCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCSettingsSelectorCell.h; sourceTree = ""; }; - 88B52DE8266D1F54003ECB5E /* TRTCSettingsSliderCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCSettingsSliderCell.h; sourceTree = ""; }; - 88B52DE9266D1F54003ECB5E /* TRTCRemoteUserCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCRemoteUserCell.m; sourceTree = ""; }; - 88B52DEA266D1F54003ECB5E /* TRTCSettingsMainRoomTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCSettingsMainRoomTableViewCell.h; sourceTree = ""; }; - 88B52DEB266D1F54003ECB5E /* TRTCSettingsMessageCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCSettingsMessageCell.h; sourceTree = ""; }; - 88B52DEC266D1F54003ECB5E /* TRTCSettingsSegmentCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCSettingsSegmentCell.h; sourceTree = ""; }; - 88B52DED266D1F54003ECB5E /* TRTCSettingsBaseCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCSettingsBaseCell.m; sourceTree = ""; }; - 88B52DEE266D1F54003ECB5E /* TRTCSettingsInputCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCSettingsInputCell.h; sourceTree = ""; }; - 88B52DEF266D1F54003ECB5E /* TRTCSettingsButtonCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCSettingsButtonCell.m; sourceTree = ""; }; - 88B52DF0266D1F54003ECB5E /* TRTCSettingsSwitchCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCSettingsSwitchCell.m; sourceTree = ""; }; - 88B52DF1266D1F54003ECB5E /* TRTCSettingsLargeInputCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCSettingsLargeInputCell.h; sourceTree = ""; }; - 88B52DF2266D1F54003ECB5E /* TRTCSettingsMainRoomTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCSettingsMainRoomTableViewCell.m; sourceTree = ""; }; - 88B52DF3266D1F54003ECB5E /* TRTCRemoteUserCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCRemoteUserCell.h; sourceTree = ""; }; - 88B52DF4266D1F54003ECB5E /* TRTCSettingsSliderCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCSettingsSliderCell.m; sourceTree = ""; }; - 88B52DF5266D1F54003ECB5E /* TRTCSettingsSelectorCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCSettingsSelectorCell.m; sourceTree = ""; }; - 88B52DFB266D1F54003ECB5E /* TRTCLiveViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TRTCLiveViewController.xib; sourceTree = ""; }; - 88B52DFD266D1F54003ECB5E /* TRTCLiveAudienceViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCLiveAudienceViewController.m; sourceTree = ""; }; - 88B52E00266D1F54003ECB5E /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/QBImagePicker.strings; sourceTree = ""; }; - 88B52E01266D1F54003ECB5E /* QBImagePickerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QBImagePickerController.h; sourceTree = ""; }; - 88B52E02266D1F54003ECB5E /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/QBImagePicker.strings"; sourceTree = ""; }; - 88B52E03266D1F54003ECB5E /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/QBImagePicker.strings; sourceTree = ""; }; - 88B52E04266D1F54003ECB5E /* QBAssetsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QBAssetsViewController.h; sourceTree = ""; }; - 88B52E05266D1F54003ECB5E /* QBAlbumsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QBAlbumsViewController.h; sourceTree = ""; }; - 88B52E06266D1F54003ECB5E /* QBVideoIconView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QBVideoIconView.m; sourceTree = ""; }; - 88B52E07266D1F54003ECB5E /* QBVideoIndicatorView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QBVideoIndicatorView.m; sourceTree = ""; }; - 88B52E08266D1F54003ECB5E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/QBImagePicker.strings; sourceTree = ""; }; - 88B52E09266D1F54003ECB5E /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/QBImagePicker.strings; sourceTree = ""; }; - 88B52E0A266D1F54003ECB5E /* QBCheckmarkView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QBCheckmarkView.h; sourceTree = ""; }; - 88B52E0B266D1F54003ECB5E /* QBImagePicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QBImagePicker.h; sourceTree = ""; }; - 88B52E0C266D1F54003ECB5E /* QBAssetCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QBAssetCell.h; sourceTree = ""; }; - 88B52E0D266D1F54003ECB5E /* QBSlomoIconView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QBSlomoIconView.h; sourceTree = ""; }; - 88B52E0E266D1F54003ECB5E /* QBAlbumCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QBAlbumCell.m; sourceTree = ""; }; - 88B52E0F266D1F54003ECB5E /* QBImagePicker.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = QBImagePicker.storyboard; sourceTree = ""; }; - 88B52E10266D1F54003ECB5E /* QBVideoIndicatorView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QBVideoIndicatorView.h; sourceTree = ""; }; - 88B52E11266D1F54003ECB5E /* QBAlbumsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QBAlbumsViewController.m; sourceTree = ""; }; - 88B52E12266D1F54003ECB5E /* QBVideoIconView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QBVideoIconView.h; sourceTree = ""; }; - 88B52E13266D1F54003ECB5E /* QBAssetsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QBAssetsViewController.m; sourceTree = ""; }; - 88B52E14266D1F54003ECB5E /* QBImagePickerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QBImagePickerController.m; sourceTree = ""; }; - 88B52E15266D1F54003ECB5E /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/QBImagePicker.strings; sourceTree = ""; }; - 88B52E16266D1F54003ECB5E /* QBCheckmarkView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QBCheckmarkView.m; sourceTree = ""; }; - 88B52E17266D1F54003ECB5E /* QBAlbumCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QBAlbumCell.h; sourceTree = ""; }; - 88B52E18266D1F54003ECB5E /* QBSlomoIconView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QBSlomoIconView.m; sourceTree = ""; }; - 88B52E19266D1F54003ECB5E /* QBAssetCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QBAssetCell.m; sourceTree = ""; }; - 88B52E1A266D1F54003ECB5E /* TRTCLiveEnterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCLiveEnterViewController.m; sourceTree = ""; }; - 88B52E1B266D1F54003ECB5E /* TRTCLiveViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCLiveViewController.m; sourceTree = ""; }; - 88B52E1D266D1F54003ECB5E /* TRTCRemoteUserConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCRemoteUserConfig.m; sourceTree = ""; }; - 88B52E1F266D1F54003ECB5E /* TRTCCdnPlayerManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCCdnPlayerManager.m; sourceTree = ""; }; - 88B52E20266D1F54003ECB5E /* TRTCCdnPlayerConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCCdnPlayerConfig.h; sourceTree = ""; }; - 88B52E21266D1F54003ECB5E /* TRTCCdnPlayerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCCdnPlayerManager.h; sourceTree = ""; }; - 88B52E22266D1F54003ECB5E /* TRTCCdnPlayerConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCCdnPlayerConfig.m; sourceTree = ""; }; - 88B52E23266D1F54003ECB5E /* TRTCAudioConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCAudioConfig.m; sourceTree = ""; }; - 88B52E24266D1F54003ECB5E /* TRTCVideoConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCVideoConfig.h; sourceTree = ""; }; - 88B52E25266D1F54003ECB5E /* TRTCCloudManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCCloudManager.h; sourceTree = ""; }; - 88B52E26266D1F54003ECB5E /* TRTCRemoteUserConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCRemoteUserConfig.h; sourceTree = ""; }; - 88B52E27266D1F54003ECB5E /* TRTCCloudManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCCloudManager.m; sourceTree = ""; }; - 88B52E28266D1F54003ECB5E /* TRTCVideoConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCVideoConfig.m; sourceTree = ""; }; - 88B52E29266D1F54003ECB5E /* TRTCAudioConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCAudioConfig.h; sourceTree = ""; }; - 88B52E2C266D1F54003ECB5E /* MediaFileReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MediaFileReader.m; sourceTree = ""; }; - 88B52E2D266D1F54003ECB5E /* MediaFileReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaFileReader.h; sourceTree = ""; }; - 88B52E2F266D1F54003ECB5E /* CustomFrameRender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomFrameRender.h; sourceTree = ""; }; - 88B52E30266D1F54003ECB5E /* MediaFileSyncReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MediaFileSyncReader.m; sourceTree = ""; }; - 88B52E31266D1F54003ECB5E /* TRTCBroadcastExtensionLauncher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCBroadcastExtensionLauncher.m; sourceTree = ""; }; - 88B52E33266D1F54003ECB5E /* CustomFrameRender.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomFrameRender.m; sourceTree = ""; }; - 88B52E34266D1F54003ECB5E /* MediaFileSyncReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaFileSyncReader.h; sourceTree = ""; }; - 88B52E35266D1F54003ECB5E /* TRTCBroadcastExtensionLauncher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRTCBroadcastExtensionLauncher.h; sourceTree = ""; }; - 88B52E37266D1F54003ECB5E /* AudioQueuePlay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioQueuePlay.h; sourceTree = ""; }; - 88B52E38266D1F54003ECB5E /* AudioQueuePlay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioQueuePlay.m; sourceTree = ""; }; - 88B52E39266D1F54003ECB5E /* TRTCLiveAnchorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCLiveAnchorViewController.m; sourceTree = ""; }; - 88B52E3A266D1F54003ECB5E /* TRTCCallingEnterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRTCCallingEnterViewController.m; sourceTree = ""; }; - 88C5252A2672326E00BD96E4 /* TRTCSpeedTestViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TRTCSpeedTestViewController.m; sourceTree = ""; }; - 910E179D2080A27500178D86 /* TXMoviePlayerNetApi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TXMoviePlayerNetApi.h; sourceTree = ""; }; - 910E179E2080A27500178D86 /* TXMoviePlayerNetApi.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TXMoviePlayerNetApi.m; sourceTree = ""; }; - 910E17A52080A2EB00178D86 /* TXMoviePlayerNetDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TXMoviePlayerNetDelegate.h; sourceTree = ""; }; - 910E17A62080A38400178D86 /* TXMoviePlayInfoResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TXMoviePlayInfoResponse.h; sourceTree = ""; }; - 910E17A72080A38400178D86 /* TXMoviePlayInfoResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TXMoviePlayInfoResponse.m; sourceTree = ""; }; - 912A62062160D78A00C16E41 /* CFDanmaku.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFDanmaku.h; sourceTree = ""; }; - 912A62072160D78A00C16E41 /* CFDanmaku.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFDanmaku.m; sourceTree = ""; }; - 912A62082160D78A00C16E41 /* CFDanmakuInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFDanmakuInfo.h; sourceTree = ""; }; - 912A62092160D78A00C16E41 /* CFDanmakuInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFDanmakuInfo.m; sourceTree = ""; }; - 912A620A2160D78A00C16E41 /* CFDanmakuView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFDanmakuView.h; sourceTree = ""; }; - 912A620B2160D78A00C16E41 /* CFDanmakuView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CFDanmakuView.m; sourceTree = ""; }; - 91D47F3920B6B13C0072AC0B /* ReplayKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ReplayKit.framework; path = System/Library/Frameworks/ReplayKit.framework; sourceTree = SDKROOT; }; - 91D47F3C20B6B13C0072AC0B /* SampleHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SampleHandler.h; sourceTree = ""; }; - 91D47F3D20B6B13C0072AC0B /* SampleHandler.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SampleHandler.m; sourceTree = ""; }; - 91D47F3F20B6B13C0072AC0B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 91DB2EFD212554B500013D74 /* SuperPlayerGuideView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SuperPlayerGuideView.h; sourceTree = ""; }; - 91DB2EFE212554B500013D74 /* SuperPlayerGuideView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SuperPlayerGuideView.m; sourceTree = ""; }; - 91EEB3492060AF6C00BD01DB /* DownloadViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DownloadViewController.h; sourceTree = ""; }; - 91EEB34A2060AF6C00BD01DB /* DownloadViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DownloadViewController.m; sourceTree = ""; }; - 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; - 989986B80E1E50232B675AE9 /* Pods-TXReplaykitUpload_Smart.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TXReplaykitUpload_Smart.debug.xcconfig"; path = "Target Support Files/Pods-TXReplaykitUpload_Smart/Pods-TXReplaykitUpload_Smart.debug.xcconfig"; sourceTree = ""; }; - A035040620D20A01007E61C6 /* QRCode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = QRCode.h; sourceTree = ""; }; - A035040720D20A01007E61C6 /* QRCode.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = QRCode.m; sourceTree = ""; }; - A035042E20D24F99007E61C6 /* AddressBarController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AddressBarController.h; sourceTree = ""; }; - A035042F20D24F99007E61C6 /* AddressBarController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AddressBarController.m; sourceTree = ""; }; - A035043C20D2511A007E61C6 /* AddressBar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AddressBar.h; sourceTree = ""; }; - A035043D20D2511A007E61C6 /* AddressBar.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AddressBar.m; sourceTree = ""; }; - A0428A3520D3CFDB00CA79D5 /* SmallButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmallButton.h; sourceTree = ""; }; - A0428A3620D3CFDB00CA79D5 /* SmallButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SmallButton.m; sourceTree = ""; }; - A065A9D117DFE893830751FB /* libPods-TXLiteAVDemo_Smart.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-TXLiteAVDemo_Smart.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - A06D38DA2130042E00E3210E /* TXUGCPublishOptCenter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TXUGCPublishOptCenter.h; sourceTree = ""; }; - A06D38DB2130042E00E3210E /* TXUGCPublishOptCenter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TXUGCPublishOptCenter.m; sourceTree = ""; }; - A06E84FE214F95C000DF949B /* VideoPreview.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = VideoPreview.xcassets; sourceTree = ""; }; - A06E8507214F95E000DF949B /* VideoJoiner.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = VideoJoiner.xcassets; sourceTree = ""; }; - A06E854B214F9E1E00DF949B /* UGCCommon.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = UGCCommon.xcassets; sourceTree = ""; }; - A06E8559214F9EC200DF949B /* TXColor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TXColor.m; sourceTree = ""; }; - A06E855A214F9EC200DF949B /* TXColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TXColor.h; sourceTree = ""; }; - A0B8FBD8207E2342008D7982 /* TXUGCPublish.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TXUGCPublish.h; sourceTree = ""; }; - A0B8FBD9207E2342008D7982 /* TXUGCPublishListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TXUGCPublishListener.h; sourceTree = ""; }; - A0B8FBDA207E2342008D7982 /* TXUGCPublishTypeDef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TXUGCPublishTypeDef.h; sourceTree = ""; }; - A0B8FBDB207E2350008D7982 /* TVCCommon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TVCCommon.m; sourceTree = ""; }; - A0B8FBDC207E2350008D7982 /* TVCClientInner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TVCClientInner.m; sourceTree = ""; }; - A0B8FBDD207E2350008D7982 /* TXUGCPublish.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TXUGCPublish.m; sourceTree = ""; }; - A0B8FBDE207E2351008D7982 /* TVCHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TVCHeader.h; sourceTree = ""; }; - A0B8FBDF207E2351008D7982 /* TXUGCPublishUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TXUGCPublishUtil.h; sourceTree = ""; }; - A0B8FBE0207E2351008D7982 /* TXUGCPublishUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TXUGCPublishUtil.m; sourceTree = ""; }; - A0B8FBE1207E2351008D7982 /* TVCCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TVCCommon.h; sourceTree = ""; }; - A0B8FBE2207E2351008D7982 /* TVCClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TVCClient.h; sourceTree = ""; }; - A0B8FBE3207E2351008D7982 /* TVCClientInner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TVCClientInner.h; sourceTree = ""; }; - A0B8FBE4207E2351008D7982 /* TVCClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TVCClient.m; sourceTree = ""; }; - A0B8FBE5207E2351008D7982 /* TVCReport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TVCReport.h; sourceTree = ""; }; - A0B8FBE6207E2351008D7982 /* TVCReport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TVCReport.m; sourceTree = ""; }; - A0B8FBFF207E235A008D7982 /* QCloudCOSXML.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = QCloudCOSXML.framework; sourceTree = ""; }; - A0B8FC00207E235B008D7982 /* QCloudCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = QCloudCore.framework; sourceTree = ""; }; - A0B8FC09207E24F2008D7982 /* TVCUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TVCUtils.m; sourceTree = ""; }; - A0B8FC0A207E24F2008D7982 /* TVCUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TVCUtils.h; sourceTree = ""; }; - A0FFAD92213791B70087FF45 /* TVCHttpMessageURLProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVCHttpMessageURLProtocol.h; sourceTree = ""; }; - A0FFAD93213791B70087FF45 /* TVCHttpMessageURLProtocol.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TVCHttpMessageURLProtocol.m; sourceTree = ""; }; - C603F8A726034EA0009E3AB2 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = "zh-Hans"; path = "zh-Hans.lproj/UserProtocol.html"; sourceTree = ""; }; - C603F939260372A7009E3AB2 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; - C603F9B726047CB9009E3AB2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen_en.storyboard; sourceTree = ""; }; - C6D20717262FC6C2001A80D7 /* VerifyPicture.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = VerifyPicture.html; sourceTree = ""; }; - C6D2071F262FC6C6001A80D7 /* LoginCountryList.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = LoginCountryList.json; sourceTree = ""; }; - C6D20736262FCCD0001A80D7 /* TRTCLoginAlertView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TRTCLoginAlertView.swift; sourceTree = ""; }; - CE01F53C206DDE060056D693 /* VideoCompressPreviewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VideoCompressPreviewController.h; sourceTree = ""; }; - CE01F53D206DDE060056D693 /* VideoCompressPreviewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VideoCompressPreviewController.m; sourceTree = ""; }; - CE45D2971F15C527003506D1 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; - CE59D390206CD11400583727 /* VideoCompressViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VideoCompressViewController.h; sourceTree = ""; }; - CE59D391206CD11400583727 /* VideoCompressViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VideoCompressViewController.m; sourceTree = ""; }; - CE7C6E4A1FC2C5320095663F /* FilterResource.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = FilterResource.bundle; sourceTree = ""; }; - CF31F0EB1FBB2A7E0066BF7D /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; - D50292D42272BAFE00C052B7 /* RoomUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RoomUtil.m; sourceTree = ""; }; - D50292D52272BAFE00C052B7 /* RoomUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RoomUtil.h; sourceTree = ""; }; - D50292D62272BAFE00C052B7 /* IMMsgManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IMMsgManager.m; sourceTree = ""; }; - D50292D72272BAFE00C052B7 /* IMMsgManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IMMsgManager.h; sourceTree = ""; }; - D50292DB2272BB0500C052B7 /* LiveRoomPusherViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveRoomPusherViewController.h; sourceTree = ""; }; - D50292DC2272BB0600C052B7 /* LiveRoomNewViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveRoomNewViewController.h; sourceTree = ""; }; - D50292DD2272BB0600C052B7 /* LiveRoomPlayerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveRoomPlayerViewController.h; sourceTree = ""; }; - D50292DE2272BB0600C052B7 /* LiveRoomTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveRoomTableViewCell.h; sourceTree = ""; }; - D50292DF2272BB0600C052B7 /* LiveRoomPusherViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveRoomPusherViewController.m; sourceTree = ""; }; - D50292E02272BB0600C052B7 /* LiveRoomMsgListTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveRoomMsgListTableView.h; sourceTree = ""; }; - D50292E22272BB0600C052B7 /* LiveRoomPlayerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveRoomPlayerViewController.m; sourceTree = ""; }; - D50292E32272BB0600C052B7 /* LiveRoomTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveRoomTableViewCell.m; sourceTree = ""; }; - D50292E42272BB0600C052B7 /* LiveRoomMsgListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveRoomMsgListTableViewCell.h; sourceTree = ""; }; - D50292E52272BB0600C052B7 /* LiveRoomListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveRoomListViewController.m; sourceTree = ""; }; - D50292E62272BB0600C052B7 /* LiveRoomMsgListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveRoomMsgListTableViewCell.m; sourceTree = ""; }; - D50292E72272BB0600C052B7 /* LiveRoomNewViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveRoomNewViewController.m; sourceTree = ""; }; - D50292E82272BB0600C052B7 /* LiveRoomListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveRoomListViewController.h; sourceTree = ""; }; - D50292E92272BB0700C052B7 /* LiveRoomMsgListTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveRoomMsgListTableView.m; sourceTree = ""; }; - D50292F22272BB1100C052B7 /* MLVBLiveRoom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLVBLiveRoom.h; sourceTree = ""; }; - D50292F32272BB1100C052B7 /* MLVBLiveRoomDef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLVBLiveRoomDef.h; sourceTree = ""; }; - D50292F42272BB1100C052B7 /* MLVBLiveRoomDef.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLVBLiveRoomDef.m; sourceTree = ""; }; - D50292F52272BB1200C052B7 /* MLVBLiveRoomDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLVBLiveRoomDelegate.h; sourceTree = ""; }; - D50292F62272BB1200C052B7 /* MLVBLiveRoom.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLVBLiveRoom.m; sourceTree = ""; }; - D50292F92272BB1C00C052B7 /* PlayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlayViewController.h; sourceTree = ""; }; - D50292FA2272BB1C00C052B7 /* PlayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PlayViewController.m; sourceTree = ""; }; - D50292FC2272BB2500C052B7 /* CameraPushViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CameraPushViewController.m; sourceTree = ""; }; - D50292FE2272BB2500C052B7 /* CameraPushViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CameraPushViewController.h; sourceTree = ""; }; - D50293002272BB2500C052B7 /* TXCAudioCustomRecorder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TXCAudioCustomRecorder.m; sourceTree = ""; }; - D50293012272BB2500C052B7 /* PushMoreSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PushMoreSettingViewController.m; sourceTree = ""; }; - D50293022272BB2500C052B7 /* PushMoreSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PushMoreSettingViewController.h; sourceTree = ""; }; - D50293032272BB2500C052B7 /* TXCAudioCustomRecorder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TXCAudioCustomRecorder.h; sourceTree = ""; }; - D50293042272BB2600C052B7 /* PushSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PushSettingViewController.h; sourceTree = ""; }; - D50293052272BB2600C052B7 /* PushSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PushSettingViewController.m; sourceTree = ""; }; - D61B48491FB59EF0002F0C6C /* TCHttpUtil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCHttpUtil.h; sourceTree = ""; }; - D61B484A1FB59EF0002F0C6C /* TCHttpUtil.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TCHttpUtil.m; sourceTree = ""; }; - D650607A20EE145F00C8BC44 /* libc.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libc.tbd; path = usr/lib/libc.tbd; sourceTree = SDKROOT; }; - D6BEF6442040179600CBE2BD /* VideoPreviewViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoPreviewViewController.h; sourceTree = ""; }; - D6BEF6452040179600CBE2BD /* VideoPreviewViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoPreviewViewController.m; sourceTree = ""; }; - D6BEF68420401BD800CBE2BD /* VideoPreview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoPreview.h; sourceTree = ""; }; - D6BEF68520401BD800CBE2BD /* VideoPreview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoPreview.m; sourceTree = ""; }; - D6BEF6DF2040307E00CBE2BD /* VideoEditPrevController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoEditPrevController.h; sourceTree = ""; }; - D6BEF6E02040307E00CBE2BD /* VideoEditPrevController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoEditPrevController.m; sourceTree = ""; }; - D6BEF6E12040307E00CBE2BD /* VideoEditPrevController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = VideoEditPrevController.xib; sourceTree = ""; }; - D6BEF6E22040307E00CBE2BD /* VideoJoinerCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoJoinerCell.h; sourceTree = ""; }; - D6BEF6E32040307E00CBE2BD /* VideoJoinerCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoJoinerCell.m; sourceTree = ""; }; - D6BEF6E42040307E00CBE2BD /* VideoJoinerCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = VideoJoinerCell.xib; sourceTree = ""; }; - D6BEF6E52040307E00CBE2BD /* VideoJoinerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoJoinerController.h; sourceTree = ""; }; - D6BEF6E62040307E00CBE2BD /* VideoJoinerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoJoinerController.m; sourceTree = ""; }; - D6BEF6E72040307E00CBE2BD /* VideoJoinerController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = VideoJoinerController.xib; sourceTree = ""; }; - D6BEF7232040353E00CBE2BD /* ListVideoCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListVideoCell.h; sourceTree = ""; }; - D6BEF7242040353E00CBE2BD /* ListVideoCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ListVideoCell.m; sourceTree = ""; }; - D6BEF7252040353E00CBE2BD /* MoviePlayerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MoviePlayerViewController.h; sourceTree = ""; }; - D6BEF7262040353E00CBE2BD /* MoviePlayerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MoviePlayerViewController.m; sourceTree = ""; }; - D6BEF79D204035CB00CBE2BD /* danmakufile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = danmakufile; sourceTree = ""; }; - D6D9E37620D283E700B6D607 /* TXReplaykitUpload_Smart.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = TXReplaykitUpload_Smart.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - D6E5D1C020B7B61F00812B2F /* ReplayKit2Define.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReplayKit2Define.h; sourceTree = ""; }; - D6E5D1C120B7B62000812B2F /* ScreenPushViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScreenPushViewController.h; sourceTree = ""; }; - D6E5D1C220B7B62000812B2F /* ScreenPushViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScreenPushViewController.m; sourceTree = ""; }; - FDD4BF2824A1F8AD0015388B /* VideoEditor.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = VideoEditor.xcassets; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 400921CE1F4FCC52009B882D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4074E64D249F1FCF006C591F /* AudioEffectSettingKit.framework in Frameworks */, - 40AA5386244591DB00303EF7 /* TCBeautyPanel.framework in Frameworks */, - 912E57A5206A3A6500340AF5 /* libsqlite3.tbd in Frameworks */, - 400921CF1F4FCC52009B882D /* Foundation.framework in Frameworks */, - 400921D01F4FCC52009B882D /* AVFoundation.framework in Frameworks */, - 400921D11F4FCC52009B882D /* MediaPlayer.framework in Frameworks */, - 400921D31F4FCC52009B882D /* libiconv.tbd in Frameworks */, - 400921D41F4FCC52009B882D /* libz.tbd in Frameworks */, - 4071CF6D2444423D000B7707 /* TXLiteAVSDK_Smart.framework in Frameworks */, - 400921D51F4FCC52009B882D /* libc++.tbd in Frameworks */, - 400921D71F4FCC52009B882D /* libresolv.tbd in Frameworks */, - 400921D81F4FCC52009B882D /* SystemConfiguration.framework in Frameworks */, - 400921D91F4FCC52009B882D /* CoreTelephony.framework in Frameworks */, - 400921DA1F4FCC52009B882D /* VideoToolbox.framework in Frameworks */, - 400921DC1F4FCC52009B882D /* CoreMedia.framework in Frameworks */, - 400921DD1F4FCC52009B882D /* CoreGraphics.framework in Frameworks */, - 400921DE1F4FCC52009B882D /* Accelerate.framework in Frameworks */, - 400921DF1F4FCC52009B882D /* Security.framework in Frameworks */, - 400921E01F4FCC52009B882D /* AssetsLibrary.framework in Frameworks */, - FFBF42EEE2BE1823CC8C9072 /* libPods-TXLiteAVDemo_Smart.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D6D9E36B20D283E700B6D607 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4038CEDF2669CE3200813912 /* Accelerate.framework in Frameworks */, - 4071CF6E2444423D000B7707 /* TXLiteAVSDK_Smart.framework in Frameworks */, - D6D9E36D20D283E700B6D607 /* libresolv.tbd in Frameworks */, - D6D9E36E20D283E700B6D607 /* libc++.tbd in Frameworks */, - D6D9E37020D283E700B6D607 /* ReplayKit.framework in Frameworks */, - 4074E61F249F05BF006C591F /* BuildFile in Frameworks */, - EF69648B8809D6DEA1B7139D /* libPods-TXReplaykitUpload_Smart.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 401A9A56247FCC6300C0763B /* AudioSettingKit */ = { - isa = PBXGroup; - children = ( - 401A9B3D247FCC7600C0763B /* AudioEffectSettingKit.xcodeproj */, - ); - path = AudioSettingKit; - sourceTree = ""; - }; - 402A010A245070290037A219 /* BridgeHeader */ = { - isa = PBXGroup; - children = ( - 402A00DD2450552E0037A219 /* TXLiteAVDemo-Bridging-Header.h */, - ); - name = BridgeHeader; - sourceTree = ""; - }; - 40495B1024592E2300AF53CB /* ScreenPushDemo */ = { - isa = PBXGroup; - children = ( - D6E5D1C120B7B62000812B2F /* ScreenPushViewController.h */, - D6E5D1C220B7B62000812B2F /* ScreenPushViewController.m */, - ); - path = ScreenPushDemo; - sourceTree = ""; - }; - 40495B1124592E3400AF53CB /* CameraPushDemo */ = { - isa = PBXGroup; - children = ( - D50292FE2272BB2500C052B7 /* CameraPushViewController.h */, - D50292FC2272BB2500C052B7 /* CameraPushViewController.m */, - D50293022272BB2500C052B7 /* PushMoreSettingViewController.h */, - D50293012272BB2500C052B7 /* PushMoreSettingViewController.m */, - D50293042272BB2600C052B7 /* PushSettingViewController.h */, - D50293052272BB2600C052B7 /* PushSettingViewController.m */, - D50293032272BB2500C052B7 /* TXCAudioCustomRecorder.h */, - D50293002272BB2500C052B7 /* TXCAudioCustomRecorder.m */, - 6A1C108A2281A674005D7BD9 /* PushLogView.h */, - 6A1C109A2281A674005D7BD9 /* PushLogView.m */, - 6A3107172272E31A002F6115 /* PushBgmControl.h */, - 6A3107182272E31A002F6115 /* PushBgmControl.m */, - ); - path = CameraPushDemo; - sourceTree = ""; - }; - 405339112465448800A6B478 /* LivePushCommon */ = { - isa = PBXGroup; - children = ( - 40533957246645D900A6B478 /* QRScan */, - 4053391E24654CEF00A6B478 /* SmallButton */, - 4053391B24654CEF00A6B478 /* TCHttpUtil */, - A035042020D24F73007E61C6 /* AddressBar */, - 45E74D9923B22BCD00C22B31 /* ThemeConfigurator.h */, - 45E74D9A23B22BCD00C22B31 /* ThemeConfigurator.m */, - ); - path = LivePushCommon; - sourceTree = ""; - }; - 40533914246547FD00A6B478 /* Wrapper */ = { - isa = PBXGroup; - children = ( - 45BB0B2523A9C3730084FE90 /* UGCKitWrapper.h */, - 45BB0B2623A9C3730084FE90 /* UGCKitWrapper.m */, - ); - path = Wrapper; - sourceTree = ""; - }; - 4053391B24654CEF00A6B478 /* TCHttpUtil */ = { - isa = PBXGroup; - children = ( - 4053391C24654CEF00A6B478 /* TCHttpUtil.m */, - 4053391D24654CEF00A6B478 /* TCHttpUtil.h */, - ); - path = TCHttpUtil; - sourceTree = ""; - }; - 4053391E24654CEF00A6B478 /* SmallButton */ = { - isa = PBXGroup; - children = ( - 4053391F24654CEF00A6B478 /* SmallButton.m */, - 4053392024654CEF00A6B478 /* SmallButton.h */, - ); - path = SmallButton; - sourceTree = ""; - }; - 4053392424654D2700A6B478 /* TCHttpUtil */ = { - isa = PBXGroup; - children = ( - 4053392524654D2700A6B478 /* TCHttpUtil.m */, - 4053392624654D2700A6B478 /* TCHttpUtil.h */, - ); - path = TCHttpUtil; - sourceTree = ""; - }; - 4053392A2465512600A6B478 /* LivePushResource */ = { - isa = PBXGroup; - children = ( - 405339282465511700A6B478 /* bgm_demo.mp3 */, - ); - path = LivePushResource; - sourceTree = ""; - }; - 40533957246645D900A6B478 /* QRScan */ = { - isa = PBXGroup; - children = ( - 40533958246645D900A6B478 /* ScanQRController.h */, - 40533959246645D900A6B478 /* ScanQRController.mm */, - ); - path = QRScan; - sourceTree = ""; - }; - 4053395B2466460600A6B478 /* QRScan */ = { - isa = PBXGroup; - children = ( - 4053395C2466460600A6B478 /* ScanQRController.h */, - 4053395D2466460600A6B478 /* ScanQRController.mm */, - ); - path = QRScan; - sourceTree = ""; - }; - 4090F788246AE22000EA72A0 /* Main */ = { - isa = PBXGroup; - children = ( - 88856098267C7B4A007990F0 /* Mine */, - 40F853291EE8FC8400EE47D7 /* MainTableViewCell.h */, - 40F8532A1EE8FC8400EE47D7 /* MainTableViewCell.m */, - 40F8532B1EE8FC8400EE47D7 /* MainViewController.h */, - 40F8532C1EE8FC8400EE47D7 /* MainViewController.m */, - ); - path = Main; - sourceTree = ""; - }; - 40A49D5F24598CD200BFCB18 /* Products */ = { - isa = PBXGroup; - children = ( - 40A49D6524598CD700BFCB18 /* UGCKit.framework */, - 40A49D6724598CD700BFCB18 /* UGCKitResources.bundle */, - ); - name = Products; - sourceTree = ""; - }; - 40AA533424458EC800303EF7 /* BeautySettingKit */ = { - isa = PBXGroup; - children = ( - 40AA533524458EC800303EF7 /* TCBeautyPanel.xcodeproj */, - ); - path = BeautySettingKit; - sourceTree = ""; - }; - 40AA533624458EC800303EF7 /* Products */ = { - isa = PBXGroup; - children = ( - 40AA536524458EC800303EF7 /* TCBeautyPanel.framework */, - 40AA536724458EC800303EF7 /* TCBeautyPanelResources.bundle */, - ); - name = Products; - sourceTree = ""; - }; - 40B3F8DB2446E6C5000C37A3 /* Debug */ = { - isa = PBXGroup; - children = ( - 40B3F8DC2446E6C5000C37A3 /* GenerateTestUserSig.m */, - 40B3F8DD2446E6C5000C37A3 /* GenerateTestUserSig.h */, - ); - path = Debug; - sourceTree = ""; - }; - 40B5C67D2484BBE500D3A718 /* Products */ = { - isa = PBXGroup; - children = ( - 40B5C6832484BBE500D3A718 /* AudioEffectSettingKit.framework */, - 40B5C6872484BBE500D3A718 /* AudioEffectSettingKitResources.bundle */, - ); - name = Products; - sourceTree = ""; - }; - 40C5663C264ABB5000B85C1C /* V2SettingViews */ = { - isa = PBXGroup; - children = ( - 40C5663F264ABB5000B85C1C /* LebSettingBottomBar.h */, - 40C5663D264ABB5000B85C1C /* LebSettingBottomBar.m */, - ); - path = V2SettingViews; - sourceTree = ""; - }; - 40C56641264ABB5000B85C1C /* BaseUI */ = { - isa = PBXGroup; - children = ( - 40C56712264AC55000B85C1C /* LebQRScanViewController.h */, - 40C56713264AC55000B85C1C /* LebQRScanViewController.m */, - 40C56650264ABB5000B85C1C /* LebSettingsBaseViewController.h */, - 40C56643264ABB5000B85C1C /* LebSettingsBaseCell.m */, - 40C56644264ABB5000B85C1C /* LebSettingsBaseViewController.m */, - 40C56646264ABB5000B85C1C /* LebSettingsBaseCell.h */, - 40C56647264ABB5000B85C1C /* CommonWidgets */, - ); - path = BaseUI; - sourceTree = ""; - }; - 40C56647264ABB5000B85C1C /* CommonWidgets */ = { - isa = PBXGroup; - children = ( - 40C56648264ABB5000B85C1C /* UISlider+Leb.h */, - 40C56649264ABB5000B85C1C /* UIButton+Leb.m */, - 40C5664A264ABB5000B85C1C /* UILabel+Leb.h */, - 40C5664B264ABB5000B85C1C /* UISegmentedControl+Leb.m */, - 40C5664C264ABB5000B85C1C /* UISlider+Leb.m */, - 40C5664D264ABB5000B85C1C /* UILabel+Leb.m */, - 40C5664E264ABB5000B85C1C /* UIButton+Leb.h */, - 40C5664F264ABB5000B85C1C /* UISegmentedControl+Leb.h */, - ); - path = CommonWidgets; - sourceTree = ""; - }; - 40F852FA1EE8FB3800EE47D7 = { - isa = PBXGroup; - children = ( - 45736E91243F5B2200F7F601 /* SDK */, - 40F853051EE8FB3800EE47D7 /* TXLiteAVDemo */, - 91D47F3B20B6B13C0072AC0B /* ReplaykitUpload */, - 40F854FF1EE8FD2F00EE47D7 /* Frameworks */, - 40F853041EE8FB3800EE47D7 /* Products */, - DE336FBCF7A8A2B1C7E9E0C1 /* Pods */, - 88856091267C7A55007990F0 /* Recovered References */, - ); - sourceTree = ""; - }; - 40F853041EE8FB3800EE47D7 /* Products */ = { - isa = PBXGroup; - children = ( - 400922A11F4FCC52009B882D /* TXLiteAVDemo_Smart.app */, - D6D9E37620D283E700B6D607 /* TXReplaykitUpload_Smart.appex */, - ); - name = Products; - sourceTree = ""; - }; - 40F853051EE8FB3800EE47D7 /* TXLiteAVDemo */ = { - isa = PBXGroup; - children = ( - 401A9A56247FCC6300C0763B /* AudioSettingKit */, - 40F853241EE8FC8400EE47D7 /* App */, - 40B3F8DB2446E6C5000C37A3 /* Debug */, - 40F8531D1EE8FC1E00EE47D7 /* Supporting Files */, - 40AA533424458EC800303EF7 /* BeautySettingKit */, - D50292D02272BA4A00C052B7 /* LiveLinkMicDemoOld */, - D50292CF2272BA3F00C052B7 /* LivePlayerDemo */, - D50292CD2272BA2A00C052B7 /* LivePusherDemo */, - 8FADF34059A655108AA04A59 /* Login */, - ); - path = TXLiteAVDemo; - sourceTree = ""; - }; - 40F8531D1EE8FC1E00EE47D7 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 47642A9A261491B90020F1BA /* launchimage_en@2x.png */, - 47642A99261491B90020F1BA /* launchimage_en@3x.png */, - 402A010024506F740037A219 /* main.m */, - 40F853311EE8FC9B00EE47D7 /* LaunchScreen.storyboard */, - C603F9B826047CB9009E3AB2 /* LaunchScreen_en.storyboard */, - 40F853331EE8FC9B00EE47D7 /* Main.storyboard */, - 402A010724506F9C0037A219 /* Info.plist */, - C603F9322603729D009E3AB2 /* InfoPlist.strings */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 40F853241EE8FC8400EE47D7 /* App */ = { - isa = PBXGroup; - children = ( - 47E8CCBC260C4090001CF672 /* TRTCInfoPlist */, - 47E8CAAB260B5C05001CF672 /* AppCommon */, - 4090F788246AE22000EA72A0 /* Main */, - 40F853721EE8FD0700EE47D7 /* Resource */, - 402A010A245070290037A219 /* BridgeHeader */, - 40F853251EE8FC8400EE47D7 /* AppDelegate.h */, - 40F853261EE8FC8400EE47D7 /* AppDelegate.m */, - 40F853271EE8FC8400EE47D7 /* AppLogMgr.h */, - 40F853281EE8FC8400EE47D7 /* AppLogMgr.m */, - D6E5D1C020B7B61F00812B2F /* ReplayKit2Define.h */, - ); - path = App; - sourceTree = ""; - }; - 40F853541EE8FCDF00EE47D7 /* QRScan */ = { - isa = PBXGroup; - children = ( - 40F853551EE8FCDF00EE47D7 /* ScanQRController.h */, - 40F853561EE8FCDF00EE47D7 /* ScanQRController.mm */, - ); - path = QRScan; - sourceTree = ""; - }; - 40F853721EE8FD0700EE47D7 /* Resource */ = { - isa = PBXGroup; - children = ( - 47E8C879260AECC4001CF672 /* Localized */, - C603F89F26034E93009E3AB2 /* UserProtocol.html */, - 40F853221EE8FC7300EE47D7 /* Assets.xcassets */, - CE7C6E4A1FC2C5320095663F /* FilterResource.bundle */, - 45C37797226765A60054D0B8 /* Settings.bundle */, - ); - path = Resource; - sourceTree = ""; - }; - 40F854FF1EE8FD2F00EE47D7 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 4717324D26705C4A005F772E /* FFmpeg.xcframework */, - 4717324E26705C4A005F772E /* SoundTouch.xcframework */, - 2840D91B24B8562200723FBC /* AudioToolbox.framework */, - 40802A272484BBBE008151C1 /* AudioEffectSettingKit.framework */, - 40AA539724459DF900303EF7 /* UGCKit.framework */, - 4071CF702444477A000B7707 /* libsqlite3.0.tbd */, - 51A289F8230FB93A00B9B73F /* OpenAL.framework */, - D650607A20EE145F00C8BC44 /* libc.tbd */, - 91F87A7E1FF4A0FC001644B1 /* libsqlite3.tbd */, - CF31F0EB1FBB2A7E0066BF7D /* Metal.framework */, - 40407ACA1F3035CA006C7301 /* Foundation.framework */, - 51A4AD391F1F8AE300B4A806 /* MediaPlayer.framework */, - CE45D2971F15C527003506D1 /* libc++.tbd */, - 40F8554E1EE8FE0100EE47D7 /* libiconv.tbd */, - 40F8554C1EE8FDFC00EE47D7 /* libz.tbd */, - 40F855481EE8FDF100EE47D7 /* libresolv.tbd */, - 40F855461EE8FDE800EE47D7 /* SystemConfiguration.framework */, - 40F855441EE8FDE100EE47D7 /* CoreTelephony.framework */, - 40F855421EE8FDDA00EE47D7 /* VideoToolbox.framework */, - 40F855401EE8FDD300EE47D7 /* CoreMedia.framework */, - 40F8553E1EE8FDCC00EE47D7 /* CoreGraphics.framework */, - 40F8553C1EE8FDC500EE47D7 /* AVFoundation.framework */, - 40F8553A1EE8FDBF00EE47D7 /* Accelerate.framework */, - 40F855381EE8FDB600EE47D7 /* Security.framework */, - 40F855361EE8FDAD00EE47D7 /* AssetsLibrary.framework */, - 91D47F3920B6B13C0072AC0B /* ReplayKit.framework */, - A065A9D117DFE893830751FB /* libPods-TXLiteAVDemo_Smart.a */, - 3B8883463F7DB6469C26CDBF /* libPods-TXReplaykitUpload_Smart.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - 45736E91243F5B2200F7F601 /* SDK */ = { - isa = PBXGroup; - children = ( - 4071CF6B2444423D000B7707 /* TXLiteAVSDK_Smart.framework */, - ); - name = SDK; - path = ../SDK; - sourceTree = ""; - }; - 47740FF126147EE90098482E /* Localized */ = { - isa = PBXGroup; - children = ( - 47740FF326147EE90098482E /* InfoPlist.strings */, - 47740FF926147EE90098482E /* ReplayKitLocalized.h */, - 47740FF226147EE90098482E /* ReplayKitLocalized.m */, - 47740FF526147EE90098482E /* ReplayKitLocalized.strings */, - ); - path = Localized; - sourceTree = ""; - }; - 47B7ABE02695C76300AC8D18 /* Processor */ = { - isa = PBXGroup; - children = ( - 47B7ABE22695C76300AC8D18 /* PixelBufferProcessor.h */, - 47B7ABE52695C76300AC8D18 /* PixelBufferProcessor.m */, - 47B7ABE42695C76300AC8D18 /* ShaderProcessor.h */, - 47B7ABE12695C76300AC8D18 /* ShaderProcessor.m */, - 47B7ABE62695C76300AC8D18 /* WaterMarkProcessor.h */, - 47B7ABE32695C76300AC8D18 /* WaterMarkProcessor.m */, - ); - path = Processor; - sourceTree = ""; - }; - 47B7ABE72695C76300AC8D18 /* Basic */ = { - isa = PBXGroup; - children = ( - 47B7ABEE2695C76300AC8D18 /* GLContext.h */, - 47B7ABF62695C76300AC8D18 /* GLContext.m */, - 47B7ABEC2695C76300AC8D18 /* GLFramebuffer.h */, - 47B7ABF42695C76300AC8D18 /* GLFramebuffer.m */, - 47B7ABF12695C76300AC8D18 /* GLFramebufferCache.h */, - 47B7ABE92695C76300AC8D18 /* GLFramebufferCache.m */, - 47B7ABF32695C76300AC8D18 /* GLOutput.h */, - 47B7ABEB2695C76300AC8D18 /* GLOutput.m */, - 47B7ABF72695C76300AC8D18 /* GLProgram.h */, - 47B7ABED2695C76300AC8D18 /* GLProgram.m */, - 47B7ABF02695C76300AC8D18 /* GLTextureInput.h */, - 47B7ABEA2695C76300AC8D18 /* GLTextureInput.m */, - 47B7ABF22695C76300AC8D18 /* GLTextureOutput.h */, - 47B7ABE82695C76300AC8D18 /* GLTextureOutput.m */, - 47B7ABEF2695C76300AC8D18 /* GLUIElement.h */, - 47B7ABF52695C76300AC8D18 /* GLUIElement.m */, - ); - path = Basic; - sourceTree = ""; - }; - 47B7ABF82695C76300AC8D18 /* Shader */ = { - isa = PBXGroup; - children = ( - 47B7ABF92695C76300AC8D18 /* Normal.fsh */, - 47B7ABFB2695C76300AC8D18 /* Normal.vsh */, - 47B7ABFA2695C76300AC8D18 /* YUVConversion.fsh */, - 47B7ABFC2695C76300AC8D18 /* YUVConversion.vsh */, - ); - path = Shader; - sourceTree = ""; - }; - 47B7AC492695C76400AC8D18 /* Filter */ = { - isa = PBXGroup; - children = ( - 47B7AC4D2695C76400AC8D18 /* GLAlphaBlendFilter.h */, - 47B7AC4B2695C76400AC8D18 /* GLAlphaBlendFilter.m */, - 47B7AC4A2695C76400AC8D18 /* GLFilter.h */, - 47B7AC4C2695C76400AC8D18 /* GLFilter.m */, - ); - path = Filter; - sourceTree = ""; - }; - 47B7AE7826969F9500AC8D18 /* libyuv */ = { - isa = PBXGroup; - children = ( - 47B7AEB52696A13500AC8D18 /* include */, - 47B7AE962696A08000AC8D18 /* libyuv.h */, - 47B7AE972696A08000AC8D18 /* source */, - ); - path = libyuv; - sourceTree = ""; - }; - 47B7AE972696A08000AC8D18 /* source */ = { - isa = PBXGroup; - children = ( - 47B7AE982696A08000AC8D18 /* libyuv.a */, - ); - path = source; - sourceTree = ""; - }; - 47B7AEB52696A13500AC8D18 /* include */ = { - isa = PBXGroup; - children = ( - 47B7AEB62696A13500AC8D18 /* convert_from_argb.h */, - 47B7AEB72696A13500AC8D18 /* basic_types.h */, - ); - path = include; - sourceTree = ""; - }; - 47E8C879260AECC4001CF672 /* Localized */ = { - isa = PBXGroup; - children = ( - 47E8C882260AECC4001CF672 /* AppLocalized.h */, - 47E8C893260AECC4001CF672 /* AppLocalized.m */, - 47E8C87A260AECC4001CF672 /* AppPortalLocalized */, - 47E8C88F260AECC4001CF672 /* LiveLocalized */, - 47E8C87E260AECC4001CF672 /* LoginNetworkLocalized */, - 47E8C88B260AECC4001CF672 /* TRTCLocalized */, - 47E8C883260AECC4001CF672 /* UGCLocalized */, - 47E8C887260AECC4001CF672 /* V2Localized */, - ); - path = Localized; - sourceTree = ""; - }; - 47E8C87A260AECC4001CF672 /* AppPortalLocalized */ = { - isa = PBXGroup; - children = ( - 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */, - ); - path = AppPortalLocalized; - sourceTree = ""; - }; - 47E8C87E260AECC4001CF672 /* LoginNetworkLocalized */ = { - isa = PBXGroup; - children = ( - 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */, - ); - path = LoginNetworkLocalized; - sourceTree = ""; - }; - 47E8C883260AECC4001CF672 /* UGCLocalized */ = { - isa = PBXGroup; - children = ( - 47E8C884260AECC4001CF672 /* UGCLocalized.strings */, - ); - path = UGCLocalized; - sourceTree = ""; - }; - 47E8C887260AECC4001CF672 /* V2Localized */ = { - isa = PBXGroup; - children = ( - 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */, - ); - path = V2Localized; - sourceTree = ""; - }; - 47E8C88B260AECC4001CF672 /* TRTCLocalized */ = { - isa = PBXGroup; - children = ( - 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */, - ); - path = TRTCLocalized; - sourceTree = ""; - }; - 47E8C88F260AECC4001CF672 /* LiveLocalized */ = { - isa = PBXGroup; - children = ( - 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */, - ); - path = LiveLocalized; - sourceTree = ""; - }; - 47E8CAAB260B5C05001CF672 /* AppCommon */ = { - isa = PBXGroup; - children = ( - 47E8CAAC260B5C05001CF672 /* Catetory */, - 47E8CAD6260B5C06001CF672 /* CommonUtils */, - 47E8CADB260B5C06001CF672 /* ColorMacro.h */, - ); - path = AppCommon; - sourceTree = ""; - }; - 47E8CAAC260B5C05001CF672 /* Catetory */ = { - isa = PBXGroup; - children = ( - 47E8CAC4260B5C05001CF672 /* HUDHelper.h */, - 47E8CAC0260B5C05001CF672 /* NSData+Common.h */, - 47E8CAB8260B5C05001CF672 /* NSDictionary+Common.h */, - 47E8CAC2260B5C05001CF672 /* NSObject+CommonBlock.h */, - 47E8CAB0260B5C05001CF672 /* NSString+Common.h */, - 47E8CAB1260B5C05001CF672 /* NSString+UISize.h */, - 47E8CABF260B5C05001CF672 /* UIButton+Additions.h */, - 47E8CAAE260B5C05001CF672 /* UIButton+Glossy.h */, - 47E8CABB260B5C05001CF672 /* UIColor+MLPFlatColors.h */, - 47E8CAB2260B5C05001CF672 /* UIImage+Additions.h */, - 47E8CAC1260B5C05001CF672 /* UIView+Additions.h */, - 47E8CAAD260B5C05001CF672 /* UIView+CustomAutoLayout.h */, - 47E8CAC6260B5C05001CF672 /* UIViewController+BackButtonHandler.h */, - 47E8CAB9260B5C05001CF672 /* HUDHelper.m */, - 47E8CAB6260B5C05001CF672 /* NSData+Common.m */, - 47E8CAC5260B5C05001CF672 /* NSDictionary+Common.m */, - 47E8CAB3260B5C05001CF672 /* NSObject+CommonBlock.m */, - 47E8CABA260B5C05001CF672 /* NSString+Common.m */, - 47E8CABE260B5C05001CF672 /* NSString+UISize.m */, - 47E8CAB5260B5C05001CF672 /* UIButton+Additions.m */, - 47E8CABC260B5C05001CF672 /* UIButton+Glossy.m */, - 47E8CAAF260B5C05001CF672 /* UIColor+MLPFlatColors.m */, - 47E8CAC3260B5C05001CF672 /* UIImage+Additions.m */, - 47E8CAB4260B5C05001CF672 /* UIView+Additions.m */, - 47E8CABD260B5C05001CF672 /* UIView+CustomAutoLayout.m */, - 47E8CAB7260B5C05001CF672 /* UIViewController+BackButtonHandler.m */, - ); - path = Catetory; - sourceTree = ""; - }; - 47E8CAD6260B5C06001CF672 /* CommonUtils */ = { - isa = PBXGroup; - children = ( - 47E8CAD7260B5C06001CF672 /* TCUtil.h */, - 47E8CAD8260B5C06001CF672 /* TCLog.m */, - 47E8CAD9260B5C06001CF672 /* TCUtil.m */, - 47E8CADA260B5C06001CF672 /* TCLog.h */, - ); - path = CommonUtils; - sourceTree = ""; - }; - 47E8CCBC260C4090001CF672 /* TRTCInfoPlist */ = { - isa = PBXGroup; - children = ( - 47E8CCCF260C4EB2001CF672 /* InfoPlist.strings */, - ); - path = TRTCInfoPlist; - sourceTree = ""; - }; - 7B5A2D9425B0355400B4B469 /* V2SettingModel */ = { - isa = PBXGroup; - children = ( - 7B5A2D9525B0355400B4B469 /* V2PusherSettingModel.h */, - 7B5A2D9625B0355400B4B469 /* V2PusherSettingModel.m */, - ); - path = V2SettingModel; - sourceTree = ""; - }; - 7B5A2D9925B0355400B4B469 /* V2SettingViews */ = { - isa = PBXGroup; - children = ( - 7B5A2D9C25B0355400B4B469 /* V2SettingBottomBar.h */, - 7B5A2D9A25B0355400B4B469 /* V2SettingBottomBar.m */, - 7B5A2D9B25B0355400B4B469 /* V2MainProtocolSelectSegmentView.h */, - 7B5A2D9D25B0355400B4B469 /* V2MainProtocolSelectSegmentView.m */, - ); - path = V2SettingViews; - sourceTree = ""; - }; - 7B5A2D9E25B0355400B4B469 /* BaseUI */ = { - isa = PBXGroup; - children = ( - 7B5A2DA425B0355400B4B469 /* CommonWidgets */, - 7B5A2DA325B0355400B4B469 /* V2SettingsBaseCell.h */, - 7B5A2DA025B0355400B4B469 /* V2SettingsBaseCell.m */, - 7B5A2DAD25B0355400B4B469 /* V2SettingsBaseViewController.h */, - 7B5A2DA125B0355400B4B469 /* V2SettingsBaseViewController.m */, - 7B5A2D9F25B0355400B4B469 /* V2SettingsContainerViewController.h */, - 7B5A2DA225B0355400B4B469 /* V2SettingsContainerViewController.m */, - ); - path = BaseUI; - sourceTree = ""; - }; - 7B5A2DA425B0355400B4B469 /* CommonWidgets */ = { - isa = PBXGroup; - children = ( - 7B5A2DAB25B0355400B4B469 /* UIButton+V2.h */, - 7B5A2DA625B0355400B4B469 /* UIButton+V2.m */, - 7B5A2DA725B0355400B4B469 /* UILabel+V2.h */, - 7B5A2DAA25B0355400B4B469 /* UILabel+V2.m */, - 7B5A2DAC25B0355400B4B469 /* UISegmentedControl+V2.h */, - 7B5A2DA825B0355400B4B469 /* UISegmentedControl+V2.m */, - 7B5A2DA525B0355400B4B469 /* UISlider+V2.h */, - 7B5A2DA925B0355400B4B469 /* UISlider+V2.m */, - ); - path = CommonWidgets; - sourceTree = ""; - }; - 881C2886269D35EA0013B870 /* CustomCapture */ = { - isa = PBXGroup; - children = ( - 881C2889269D35EA0013B870 /* CustomAudioCapturor.h */, - 881C2887269D35EA0013B870 /* CustomAudioCapturor.m */, - 881C288A269D35EA0013B870 /* CustomAudioFileReader.h */, - 881C2888269D35EA0013B870 /* CustomAudioFileReader.m */, - 881C288B269D35EA0013B870 /* CustomAudio44100_2.pcm */, - 881C288C269D35EA0013B870 /* CustomAudio48000_1.pcm */, - ); - path = CustomCapture; - sourceTree = ""; - }; - 88856091267C7A55007990F0 /* Recovered References */ = { - isa = PBXGroup; - children = ( - ); - name = "Recovered References"; - sourceTree = ""; - }; - 88856098267C7B4A007990F0 /* Mine */ = { - isa = PBXGroup; - children = ( - 8885609E267C7B4A007990F0 /* subview */, - 88856099267C7B4A007990F0 /* MineRootView.swift */, - 8885609A267C7B4A007990F0 /* MineViewModel.swift */, - 8885609B267C7B4A007990F0 /* MineAboutResignViewController.swift */, - 8885609C267C7B4A007990F0 /* MineAboutViewController.swift */, - 8885609D267C7B4A007990F0 /* MineViewController.swift */, - 888560A2267C7B4A007990F0 /* LayoutDefine.swift */, - ); - path = Mine; - sourceTree = ""; - }; - 8885609E267C7B4A007990F0 /* subview */ = { - isa = PBXGroup; - children = ( - 8885609F267C7B4A007990F0 /* TRTCAlerts.swift */, - 888560A0267C7B4A007990F0 /* MineAlertContentView.swift */, - 888560A1267C7B4A007990F0 /* TRTCAlertControl.swift */, - ); - path = subview; - sourceTree = ""; - }; - 88B52DC0266D1F54003ECB5E /* SettingsViewController */ = { - isa = PBXGroup; - children = ( - 88B52DC4266D1F54003ECB5E /* TRTCSettingsBaseViewController.h */, - 88B52DCD266D1F54003ECB5E /* TRTCSettingsBaseViewController.m */, - 88B52DCE266D1F54003ECB5E /* TRTCVideoSettingsViewController.h */, - 88B52DC3266D1F54003ECB5E /* TRTCVideoSettingsViewController.m */, - 88B52DC9266D1F54003ECB5E /* TRTCAudioSettingsViewController.h */, - 88B52DC2266D1F54003ECB5E /* TRTCAudioSettingsViewController.m */, - 88B52DCC266D1F54003ECB5E /* TRTCStreamSettingsViewController.h */, - 88B52DC5266D1F54003ECB5E /* TRTCStreamSettingsViewController.m */, - 88B52DCB266D1F54003ECB5E /* TRTCPKSettingsViewController.h */, - 88B52DC6266D1F54003ECB5E /* TRTCPKSettingsViewController.m */, - 88B52DC8266D1F54003ECB5E /* TRTCMoreSettingsViewController.h */, - 88B52DC1266D1F54003ECB5E /* TRTCMoreSettingsViewController.m */, - 88B52DCA266D1F54003ECB5E /* TRTCRemoteUserSettingsViewController.h */, - 88B52DC7266D1F54003ECB5E /* TRTCRemoteUserSettingsViewController.m */, - ); - path = SettingsViewController; - sourceTree = ""; - }; - 88B52DD2266D1F54003ECB5E /* CommonWidgets */ = { - isa = PBXGroup; - children = ( - 4090F78F246AE23B00EA72A0 /* ColorMacro.h */, - 88B52DD9266D1F54003ECB5E /* UIButton+TRTC.h */, - 88B52DD3266D1F54003ECB5E /* UIButton+TRTC.m */, - 88B52DD8266D1F54003ECB5E /* UILabel+TRTC.h */, - 88B52DD4266D1F54003ECB5E /* UILabel+TRTC.m */, - 88B52DD5266D1F54003ECB5E /* UISlider+TRTC.h */, - 88B52DDA266D1F54003ECB5E /* UISlider+TRTC.m */, - 88B52DDC266D1F54003ECB5E /* UITextField+TRTC.h */, - 88B52DD6266D1F54003ECB5E /* UITextField+TRTC.m */, - 88B52DD7266D1F54003ECB5E /* UISegmentedControl+TRTC.h */, - 88B52DDB266D1F54003ECB5E /* UISegmentedControl+TRTC.m */, - ); - path = CommonWidgets; - sourceTree = ""; - }; - 88B52DDF266D1F54003ECB5E /* SettingCells */ = { - isa = PBXGroup; - children = ( - 88B52DEB266D1F54003ECB5E /* TRTCSettingsMessageCell.h */, - 88B52DE0266D1F54003ECB5E /* TRTCSettingsMessageCell.m */, - 88B52DE1266D1F54003ECB5E /* TRTCSettingsButtonCell.h */, - 88B52DEF266D1F54003ECB5E /* TRTCSettingsButtonCell.m */, - 88B52DEE266D1F54003ECB5E /* TRTCSettingsInputCell.h */, - 88B52DE2266D1F54003ECB5E /* TRTCSettingsInputCell.m */, - 88B52DE3266D1F54003ECB5E /* TRTCSettingsBaseCell.h */, - 88B52DED266D1F54003ECB5E /* TRTCSettingsBaseCell.m */, - 88B52DEC266D1F54003ECB5E /* TRTCSettingsSegmentCell.h */, - 88B52DE4266D1F54003ECB5E /* TRTCSettingsSegmentCell.m */, - 88B52DF1266D1F54003ECB5E /* TRTCSettingsLargeInputCell.h */, - 88B52DE6266D1F54003ECB5E /* TRTCSettingsLargeInputCell.m */, - 88B52DE5266D1F54003ECB5E /* TRTCSettingsSwitchCell.h */, - 88B52DF0266D1F54003ECB5E /* TRTCSettingsSwitchCell.m */, - 88B52DEA266D1F54003ECB5E /* TRTCSettingsMainRoomTableViewCell.h */, - 88B52DF2266D1F54003ECB5E /* TRTCSettingsMainRoomTableViewCell.m */, - 88B52DF3266D1F54003ECB5E /* TRTCRemoteUserCell.h */, - 88B52DE9266D1F54003ECB5E /* TRTCRemoteUserCell.m */, - 88B52DE8266D1F54003ECB5E /* TRTCSettingsSliderCell.h */, - 88B52DF4266D1F54003ECB5E /* TRTCSettingsSliderCell.m */, - 88B52DE7266D1F54003ECB5E /* TRTCSettingsSelectorCell.h */, - 88B52DF5266D1F54003ECB5E /* TRTCSettingsSelectorCell.m */, - ); - path = SettingCells; - sourceTree = ""; - }; - 88B52E1E266D1F54003ECB5E /* CdnPlayer */ = { - isa = PBXGroup; - children = ( - 88B52E21266D1F54003ECB5E /* TRTCCdnPlayerManager.h */, - 88B52E1F266D1F54003ECB5E /* TRTCCdnPlayerManager.m */, - 88B52E20266D1F54003ECB5E /* TRTCCdnPlayerConfig.h */, - 88B52E22266D1F54003ECB5E /* TRTCCdnPlayerConfig.m */, - ); - path = CdnPlayer; - sourceTree = ""; - }; - 88B52E2A266D1F54003ECB5E /* helper */ = { - isa = PBXGroup; - children = ( - 881C2886269D35EA0013B870 /* CustomCapture */, - 88B52E2B266D1F54003ECB5E /* reader */, - 88B52E2F266D1F54003ECB5E /* CustomFrameRender.h */, - 88B52E33266D1F54003ECB5E /* CustomFrameRender.m */, - 88B52E34266D1F54003ECB5E /* MediaFileSyncReader.h */, - 88B52E30266D1F54003ECB5E /* MediaFileSyncReader.m */, - 88B52E35266D1F54003ECB5E /* TRTCBroadcastExtensionLauncher.h */, - 88B52E31266D1F54003ECB5E /* TRTCBroadcastExtensionLauncher.m */, - 88B52E36266D1F54003ECB5E /* player */, - ); - path = helper; - sourceTree = ""; - }; - 88B52E2B266D1F54003ECB5E /* reader */ = { - isa = PBXGroup; - children = ( - 88B52E2C266D1F54003ECB5E /* MediaFileReader.m */, - 88B52E2D266D1F54003ECB5E /* MediaFileReader.h */, - ); - path = reader; - sourceTree = ""; - }; - 88B52E36266D1F54003ECB5E /* player */ = { - isa = PBXGroup; - children = ( - 88B52E37266D1F54003ECB5E /* AudioQueuePlay.h */, - 88B52E38266D1F54003ECB5E /* AudioQueuePlay.m */, - ); - path = player; - sourceTree = ""; - }; - 8FADF34059A655108AA04A59 /* Login */ = { - isa = PBXGroup; - children = ( - 39212BD217D1620ECFBC5817 /* LoginViewController_Mock.swift */, - 87FA015DFE57266448EFD1AB /* ProfileManager_Mock.swift */, - 47147D5A752EF1BBBA9EA243 /* LoginViewController+UI_Mock.swift */, - 0BA126CB62EDC2143D9BF73F /* AppUtils.swift */, - 4A3E19D3350038B4BE7F1209 /* CommonUtils.swift */, - 8779F5A4D0E5E8106E6176C0 /* ProfileViewController.swift */, - 7755116AB93BF3D1E1635CA0 /* ProfileViewController+UI.swift */, - ); - name = Login; - path = TXLiteAVDemo/Login; - sourceTree = SOURCE_ROOT; - }; - 912A62052160D78A00C16E41 /* CFDanmaku */ = { - isa = PBXGroup; - children = ( - 912A62062160D78A00C16E41 /* CFDanmaku.h */, - 912A62072160D78A00C16E41 /* CFDanmaku.m */, - 912A62082160D78A00C16E41 /* CFDanmakuInfo.h */, - 912A62092160D78A00C16E41 /* CFDanmakuInfo.m */, - 912A620A2160D78A00C16E41 /* CFDanmakuView.h */, - 912A620B2160D78A00C16E41 /* CFDanmakuView.m */, - D6BEF79D204035CB00CBE2BD /* danmakufile */, - ); - path = CFDanmaku; - sourceTree = ""; - }; - 91D47F3B20B6B13C0072AC0B /* ReplaykitUpload */ = { - isa = PBXGroup; - children = ( - 47740FF126147EE90098482E /* Localized */, - 6A503178249D03B200701E6B /* TRTCInfo.plist */, - 45CC58AB246290BB002A914E /* SimpleIPC.h */, - 45CC58AA246290BB002A914E /* SimpleIPC.m */, - 91D47F3C20B6B13C0072AC0B /* SampleHandler.h */, - 91D47F3D20B6B13C0072AC0B /* SampleHandler.m */, - 91D47F3F20B6B13C0072AC0B /* Info.plist */, - 47E8C9D2260B54E5001CF672 /* InfoPlist.strings */, - ); - path = ReplaykitUpload; - sourceTree = ""; - }; - A035042020D24F73007E61C6 /* AddressBar */ = { - isa = PBXGroup; - children = ( - A035042E20D24F99007E61C6 /* AddressBarController.h */, - A035042F20D24F99007E61C6 /* AddressBarController.m */, - A035043C20D2511A007E61C6 /* AddressBar.h */, - A035043D20D2511A007E61C6 /* AddressBar.m */, - A035040620D20A01007E61C6 /* QRCode.h */, - A035040720D20A01007E61C6 /* QRCode.m */, - ); - path = AddressBar; - sourceTree = ""; - }; - A0428A3220D3CF8900CA79D5 /* SmallButton */ = { - isa = PBXGroup; - children = ( - A0428A3520D3CFDB00CA79D5 /* SmallButton.h */, - A0428A3620D3CFDB00CA79D5 /* SmallButton.m */, - ); - path = SmallButton; - sourceTree = ""; - }; - A06E84FC214F954300DF949B /* PhotoUtils */ = { - isa = PBXGroup; - children = ( - A06E855A214F9EC200DF949B /* TXColor.h */, - A06E8559214F9EC200DF949B /* TXColor.m */, - 4540802A23292D4400C3CAD5 /* PhotoUtil.h */, - 4540802B23292D4400C3CAD5 /* PhotoUtil.m */, - ); - path = PhotoUtils; - sourceTree = ""; - }; - A0B8FBD6207E2209008D7982 /* COSSDK */ = { - isa = PBXGroup; - children = ( - 4065C98724570E31002C0A38 /* libmtasdk.a */, - A0B8FC00207E235B008D7982 /* QCloudCore.framework */, - A0B8FBFF207E235A008D7982 /* QCloudCOSXML.framework */, - ); - path = COSSDK; - sourceTree = ""; - }; - A0B8FBD7207E2210008D7982 /* include */ = { - isa = PBXGroup; - children = ( - A0B8FBD8207E2342008D7982 /* TXUGCPublish.h */, - A0B8FBD9207E2342008D7982 /* TXUGCPublishListener.h */, - A0B8FBDA207E2342008D7982 /* TXUGCPublishTypeDef.h */, - ); - path = include; - sourceTree = ""; - }; - D50292CD2272BA2A00C052B7 /* LivePusherDemo */ = { - isa = PBXGroup; - children = ( - 4053392A2465512600A6B478 /* LivePushResource */, - 405339112465448800A6B478 /* LivePushCommon */, - 40495B1124592E3400AF53CB /* CameraPushDemo */, - 40495B1024592E2300AF53CB /* ScreenPushDemo */, - ); - path = LivePusherDemo; - sourceTree = ""; - }; - D50292CF2272BA3F00C052B7 /* LivePlayerDemo */ = { - isa = PBXGroup; - children = ( - D50292F92272BB1C00C052B7 /* PlayViewController.h */, - D50292FA2272BB1C00C052B7 /* PlayViewController.m */, - ); - path = LivePlayerDemo; - sourceTree = ""; - }; - D50292D02272BA4A00C052B7 /* LiveLinkMicDemoOld */ = { - isa = PBXGroup; - children = ( - D50292D32272BA6100C052B7 /* RoomUtil */, - D50292D22272BA5900C052B7 /* LiveRoomUI */, - D50292D12272BA5100C052B7 /* LiveRoom */, - ); - path = LiveLinkMicDemoOld; - sourceTree = ""; - }; - D50292D12272BA5100C052B7 /* LiveRoom */ = { - isa = PBXGroup; - children = ( - D50292F22272BB1100C052B7 /* MLVBLiveRoom.h */, - D50292F62272BB1200C052B7 /* MLVBLiveRoom.m */, - D50292F32272BB1100C052B7 /* MLVBLiveRoomDef.h */, - D50292F42272BB1100C052B7 /* MLVBLiveRoomDef.m */, - D50292F52272BB1200C052B7 /* MLVBLiveRoomDelegate.h */, - ); - path = LiveRoom; - sourceTree = ""; - }; - D50292D22272BA5900C052B7 /* LiveRoomUI */ = { - isa = PBXGroup; - children = ( - D50292E82272BB0600C052B7 /* LiveRoomListViewController.h */, - D50292E52272BB0600C052B7 /* LiveRoomListViewController.m */, - D50292E02272BB0600C052B7 /* LiveRoomMsgListTableView.h */, - D50292E92272BB0700C052B7 /* LiveRoomMsgListTableView.m */, - D50292E42272BB0600C052B7 /* LiveRoomMsgListTableViewCell.h */, - D50292E62272BB0600C052B7 /* LiveRoomMsgListTableViewCell.m */, - D50292DC2272BB0600C052B7 /* LiveRoomNewViewController.h */, - D50292E72272BB0600C052B7 /* LiveRoomNewViewController.m */, - D50292DD2272BB0600C052B7 /* LiveRoomPlayerViewController.h */, - D50292E22272BB0600C052B7 /* LiveRoomPlayerViewController.m */, - D50292DB2272BB0500C052B7 /* LiveRoomPusherViewController.h */, - D50292DF2272BB0600C052B7 /* LiveRoomPusherViewController.m */, - D50292DE2272BB0600C052B7 /* LiveRoomTableViewCell.h */, - D50292E32272BB0600C052B7 /* LiveRoomTableViewCell.m */, - 4509E5D122816E8D001FF14A /* LiveRoomAccPlayerView.h */, - 4509E5D222816E8D001FF14A /* LiveRoomAccPlayerView.m */, - ); - path = LiveRoomUI; - sourceTree = ""; - }; - D50292D32272BA6100C052B7 /* RoomUtil */ = { - isa = PBXGroup; - children = ( - D50292D72272BAFE00C052B7 /* IMMsgManager.h */, - D50292D62272BAFE00C052B7 /* IMMsgManager.m */, - D50292D52272BAFE00C052B7 /* RoomUtil.h */, - D50292D42272BAFE00C052B7 /* RoomUtil.m */, - ); - path = RoomUtil; - sourceTree = ""; - }; - D61B48481FB59E9B002F0C6C /* TCHttpUtil */ = { - isa = PBXGroup; - children = ( - D61B48491FB59EF0002F0C6C /* TCHttpUtil.h */, - D61B484A1FB59EF0002F0C6C /* TCHttpUtil.m */, - ); - path = TCHttpUtil; - sourceTree = ""; - }; - D6BEF7222040353E00CBE2BD /* ListUI */ = { - isa = PBXGroup; - children = ( - D6BEF7232040353E00CBE2BD /* ListVideoCell.h */, - D6BEF7242040353E00CBE2BD /* ListVideoCell.m */, - ); - path = ListUI; - sourceTree = ""; - }; - DE336FBCF7A8A2B1C7E9E0C1 /* Pods */ = { - isa = PBXGroup; - children = ( - 3FE55542D416212AADE83B12 /* Pods-TXLiteAVDemo_Smart.debug.xcconfig */, - 6F3B8CE66F615B5126697B01 /* Pods-TXLiteAVDemo_Smart.release.xcconfig */, - 989986B80E1E50232B675AE9 /* Pods-TXReplaykitUpload_Smart.debug.xcconfig */, - 48CA90A216ACB2F1AC355B8C /* Pods-TXReplaykitUpload_Smart.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 400921911F4FCC52009B882D /* TXLiteAVDemo_Smart */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4009229E1F4FCC52009B882D /* Build configuration list for PBXNativeTarget "TXLiteAVDemo_Smart" */; - buildPhases = ( - 88F5A8C353DF5B1382E762EC /* [CP] Check Pods Manifest.lock */, - 400921941F4FCC52009B882D /* Sources */, - 400921CE1F4FCC52009B882D /* Frameworks */, - 400921E21F4FCC52009B882D /* Resources */, - 20D258B7ABDBAF7DCC76CF1E /* [CP] Copy Pods Resources */, - 401C7D81179086582FD978AF /* [CP] Embed Pods Frameworks */, - D6D9E37C20D2850D00B6D607 /* Embed App Extensions */, - ); - buildRules = ( - ); - dependencies = ( - 4074E64A249F1FC7006C591F /* PBXTargetDependency */, - 40A49D7124598D6B00BFCB18 /* PBXTargetDependency */, - 40A49D7324598D6B00BFCB18 /* PBXTargetDependency */, - 40A8A0672452D9B200BB06FC /* PBXTargetDependency */, - D67F9E7A20F4660C0086D8DD /* PBXTargetDependency */, - ); - name = TXLiteAVDemo_Smart; - productName = TXLiteAVDemo; - productReference = 400922A11F4FCC52009B882D /* TXLiteAVDemo_Smart.app */; - productType = "com.apple.product-type.application"; - }; - D6D9E36520D283E700B6D607 /* TXReplaykitUpload_Smart */ = { - isa = PBXNativeTarget; - buildConfigurationList = D6D9E37220D283E700B6D607 /* Build configuration list for PBXNativeTarget "TXReplaykitUpload_Smart" */; - buildPhases = ( - 04A6FB18D5A6AF0A41D0178B /* [CP] Check Pods Manifest.lock */, - D6D9E36620D283E700B6D607 /* Sources */, - D6D9E36B20D283E700B6D607 /* Frameworks */, - D6D9E37120D283E700B6D607 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = TXReplaykitUpload_Smart; - productName = ReplaykitUpload; - productReference = D6D9E37620D283E700B6D607 /* TXReplaykitUpload_Smart.appex */; - productType = "com.apple.product-type.app-extension"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 40F852FB1EE8FB3800EE47D7 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1140; - LastUpgradeCheck = 0830; - ORGANIZATIONNAME = Tencent; - TargetAttributes = { - 1A865FB8266FA853008A861A = { - DevelopmentTeam = 5GHU44CJHG; - ProvisioningStyle = Manual; - }; - 1AF08355266A1A8C004FBE74 = { - DevelopmentTeam = 5GHU44CJHG; - ProvisioningStyle = Manual; - }; - 40091E5B1F4FCBB9009B882D = { - DevelopmentTeam = F8A3GH6Q4W; - ProvisioningStyle = Manual; - }; - 40091F6D1F4FCBBE009B882D = { - DevelopmentTeam = 5GHU44CJHG; - ProvisioningStyle = Manual; - }; - 400921911F4FCC52009B882D = { - DevelopmentTeam = 5GHU44CJHG; - ProvisioningStyle = Manual; - }; - 400922A31F4FCC6E009B882D = { - DevelopmentTeam = 5GHU44CJHG; - ProvisioningStyle = Manual; - }; - 40AA52AE244554BA00303EF7 = { - DevelopmentTeam = 5GHU44CJHG; - ProvisioningStyle = Manual; - }; - 40B3F65B2446E518000C37A3 = { - DevelopmentTeam = F8A3GH6Q4W; - ProvisioningStyle = Manual; - }; - 6A5031BE249D122800701E6B = { - DevelopmentTeam = F8A3GH6Q4W; - ProvisioningStyle = Manual; - }; - A0BEE9D4211AE89300D63544 = { - DevelopmentTeam = F8A3GH6Q4W; - ProvisioningStyle = Manual; - }; - BAD1472225FB570400FB40DD = { - DevelopmentTeam = 5GHU44CJHG; - ProvisioningStyle = Manual; - }; - CE1BA7222062051500071F5F = { - DevelopmentTeam = 5GHU44CJHG; - ProvisioningStyle = Manual; - }; - D6D9E36520D283E700B6D607 = { - DevelopmentTeam = 5GHU44CJHG; - ProvisioningStyle = Manual; - }; - }; - }; - buildConfigurationList = 40F852FE1EE8FB3800EE47D7 /* Build configuration list for PBXProject "TXLiteAVDemo" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - Base, - de, - es, - ja, - pl, - "zh-Hans", - ); - mainGroup = 40F852FA1EE8FB3800EE47D7; - productRefGroup = 40F853041EE8FB3800EE47D7 /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 40B5C67D2484BBE500D3A718 /* Products */; - ProjectRef = 401A9B3D247FCC7600C0763B /* AudioEffectSettingKit.xcodeproj */; - }, - { - ProductGroup = 40AA533624458EC800303EF7 /* Products */; - ProjectRef = 40AA533524458EC800303EF7 /* TCBeautyPanel.xcodeproj */; - }, - { - ProductGroup = 40A49D5F24598CD200BFCB18 /* Products */; - ProjectRef = 40A49D5E24598CD200BFCB18 /* UGCKit.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 400921911F4FCC52009B882D /* TXLiteAVDemo_Smart */, - D6D9E36520D283E700B6D607 /* TXReplaykitUpload_Smart */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - 40A49D6524598CD700BFCB18 /* UGCKit.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = UGCKit.framework; - remoteRef = 40A49D6424598CD700BFCB18 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 40A49D6724598CD700BFCB18 /* UGCKitResources.bundle */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = UGCKitResources.bundle; - remoteRef = 40A49D6624598CD700BFCB18 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 40AA536524458EC800303EF7 /* TCBeautyPanel.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = TCBeautyPanel.framework; - remoteRef = 40AA536424458EC800303EF7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 40AA536724458EC800303EF7 /* TCBeautyPanelResources.bundle */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = TCBeautyPanelResources.bundle; - remoteRef = 40AA536624458EC800303EF7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 40B5C6832484BBE500D3A718 /* AudioEffectSettingKit.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = AudioEffectSettingKit.framework; - remoteRef = 40B5C6822484BBE500D3A718 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 40B5C6872484BBE500D3A718 /* AudioEffectSettingKitResources.bundle */ = { - isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = AudioEffectSettingKitResources.bundle; - remoteRef = 40B5C6862484BBE500D3A718 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 400921E21F4FCC52009B882D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C603F9B226047CB9009E3AB2 /* LaunchScreen_en.storyboard in Resources */, - 47642A9E261491B90020F1BA /* launchimage_en@3x.png in Resources */, - 405874DB2445BCBA009B3503 /* TCBeautyPanelResources.bundle in Resources */, - C603F89B26034E93009E3AB2 /* UserProtocol.html in Resources */, - 47E8C8B1260AECC4001CF672 /* UGCLocalized.strings in Resources */, - 40A49D7424598DA000BFCB18 /* UGCKitResources.bundle in Resources */, - 4074E64E249F1FD5006C591F /* AudioEffectSettingKitResources.bundle in Resources */, - 47E8C8A4260AECC4001CF672 /* LoginNetworkLocalized.strings in Resources */, - D62EDBED1FF4D77900092D1A /* FilterResource.bundle in Resources */, - 47642AA6261491B90020F1BA /* launchimage_en@2x.png in Resources */, - 47E8C8CB260AECC4001CF672 /* TRTCDemoLocalized.strings in Resources */, - 405339292465511700A6B478 /* bgm_demo.mp3 in Resources */, - 400922481F4FCC52009B882D /* LaunchScreen.storyboard in Resources */, - 400922511F4FCC52009B882D /* Assets.xcassets in Resources */, - 47E8C8D8260AECC4001CF672 /* LivePlayerLocalized.strings in Resources */, - C603F92C2603729D009E3AB2 /* InfoPlist.strings in Resources */, - 47E8C897260AECC4001CF672 /* AppPortalLocalized.strings in Resources */, - 45C3779A226765A60054D0B8 /* Settings.bundle in Resources */, - 47E8C8BE260AECC4001CF672 /* V2LiveLocalized.strings in Resources */, - 4009227D1F4FCC52009B882D /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D6D9E37120D283E700B6D607 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 47E8C8DB260AECC4001CF672 /* LivePlayerLocalized.strings in Resources */, - 47E8CA26260B56B1001CF672 /* InfoPlist.strings in Resources */, - 47E8C8C1260AECC4001CF672 /* V2LiveLocalized.strings in Resources */, - 47E8C89A260AECC4001CF672 /* AppPortalLocalized.strings in Resources */, - 47E8C8A7260AECC4001CF672 /* LoginNetworkLocalized.strings in Resources */, - 4774101A26147EE90098482E /* ReplayKitLocalized.strings in Resources */, - 47E8C8B4260AECC4001CF672 /* UGCLocalized.strings in Resources */, - 47E8C8CE260AECC4001CF672 /* TRTCDemoLocalized.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 04A6FB18D5A6AF0A41D0178B /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-TXReplaykitUpload_Smart-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 20D258B7ABDBAF7DCC76CF1E /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-TXLiteAVDemo_Smart/Pods-TXLiteAVDemo_Smart-resources.sh", - "${PODS_ROOT}/MJRefresh/MJRefresh/MJRefresh.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/Material/com.cosmicmind.material.icons.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/Material/com.cosmicmind.material.fonts.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MJRefresh.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/com.cosmicmind.material.icons.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/com.cosmicmind.material.fonts.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-TXLiteAVDemo_Smart/Pods-TXLiteAVDemo_Smart-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 401C7D81179086582FD978AF /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-TXLiteAVDemo_Smart/Pods-TXLiteAVDemo_Smart-frameworks.sh", - "${PODS_ROOT}/TXIMSDK_iOS/ImSDK.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ImSDK.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-TXLiteAVDemo_Smart/Pods-TXLiteAVDemo_Smart-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 88F5A8C353DF5B1382E762EC /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-TXLiteAVDemo_Smart-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 400921941F4FCC52009B882D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D541373E22796084006D9C9D /* IMMsgManager.m in Sources */, - D541373F22796084006D9C9D /* RoomUtil.m in Sources */, - 88856161267C7D7E007990F0 /* TRTCAlerts.swift in Sources */, - D541374022796084006D9C9D /* LiveRoomListViewController.m in Sources */, - D541374122796084006D9C9D /* LiveRoomMsgListTableView.m in Sources */, - 40A1DF622638418F0011E532 /* UIColor+MLPFlatColors.m in Sources */, - D541374222796084006D9C9D /* LiveRoomMsgListTableViewCell.m in Sources */, - 40A1DEEE2638413E0011E532 /* NSObject+CommonBlock.m in Sources */, - 888560D1267C7B4A007990F0 /* MineAlertContentView.swift in Sources */, - 888560AE267C7B4A007990F0 /* MineViewModel.swift in Sources */, - D541374322796084006D9C9D /* LiveRoomNewViewController.m in Sources */, - D541374522796084006D9C9D /* LiveRoomPlayerViewController.m in Sources */, - 888560DF267C7B4A007990F0 /* LayoutDefine.swift in Sources */, - D541374622796084006D9C9D /* LiveRoomPusherViewController.m in Sources */, - D541374722796084006D9C9D /* LiveRoomTableViewCell.m in Sources */, - 888560D8267C7B4A007990F0 /* TRTCAlertControl.swift in Sources */, - 40A1DF4C2638418A0011E532 /* UIButton+Glossy.m in Sources */, - D541374822796084006D9C9D /* MLVBLiveRoom.m in Sources */, - D541374922796084006D9C9D /* MLVBLiveRoomDef.m in Sources */, - D541374A22796084006D9C9D /* PlayViewController.m in Sources */, - D541374B22796084006D9C9D /* CameraPushViewController.m in Sources */, - D541374C22796084006D9C9D /* PushMoreSettingViewController.m in Sources */, - D541374D22796084006D9C9D /* PushSettingViewController.m in Sources */, - 888560BC267C7B4A007990F0 /* MineAboutViewController.swift in Sources */, - D541374E22796084006D9C9D /* TXCAudioCustomRecorder.m in Sources */, - D541374F22796084006D9C9D /* PushBgmControl.m in Sources */, - 405339122465449E00A6B478 /* ThemeConfigurator.m in Sources */, - 47E8C8E5260AECC4001CF672 /* AppLocalized.m in Sources */, - 40A1DF20263841520011E532 /* NSString+UISize.m in Sources */, - 6A1C109D2281A675005D7BD9 /* PushLogView.m in Sources */, - 40A1DF042638414C0011E532 /* NSString+Common.m in Sources */, - 40A1DED7263841350011E532 /* NSDictionary+Common.m in Sources */, - 4053392124654CEF00A6B478 /* TCHttpUtil.m in Sources */, - A035043220D24F99007E61C6 /* AddressBarController.m in Sources */, - 400921A51F4FCC52009B882D /* AppDelegate.m in Sources */, - 888560C3267C7B4A007990F0 /* MineViewController.swift in Sources */, - 40A1DE9F263840EB0011E532 /* UIView+Additions.m in Sources */, - 4053392224654CEF00A6B478 /* SmallButton.m in Sources */, - 888560A7267C7B4A007990F0 /* MineRootView.swift in Sources */, - A035044020D2511A007E61C6 /* AddressBar.m in Sources */, - 400921AC1F4FCC52009B882D /* AppLogMgr.m in Sources */, - 888560B5267C7B4A007990F0 /* MineAboutResignViewController.swift in Sources */, - 40A1DF36263841590011E532 /* UIButton+Additions.m in Sources */, - 45CC58AE246290BB002A914E /* SimpleIPC.m in Sources */, - 40A1DF78263841940011E532 /* UIImage+Additions.m in Sources */, - 400921AF1F4FCC52009B882D /* MainTableViewCell.m in Sources */, - 4053395A246645D900A6B478 /* ScanQRController.mm in Sources */, - A035040A20D20A01007E61C6 /* QRCode.m in Sources */, - 400921B51F4FCC52009B882D /* MainViewController.m in Sources */, - 4509E5D522816E8D001FF14A /* LiveRoomAccPlayerView.m in Sources */, - 6A5032A524A25E2100701E6B /* GenerateTestUserSig.m in Sources */, - 40A1DEBB2638412D0011E532 /* NSData+Common.m in Sources */, - D6E5D1C520B7B62000812B2F /* ScreenPushViewController.m in Sources */, - 402A010324506F740037A219 /* main.m in Sources */, - F1BD909275A65650965E5BE7 /* LoginViewController_Mock.swift in Sources */, - C95B04375F531F8E587F2791 /* ProfileManager_Mock.swift in Sources */, - 2009873FBDAEFB2B81E66489 /* LoginViewController+UI_Mock.swift in Sources */, - C073D2D5F105BFF6D3D6C871 /* AppUtils.swift in Sources */, - 97C2D8B6A2EFB8329C72B18B /* CommonUtils.swift in Sources */, - D08AA5F684BE9093113EAFC6 /* ProfileViewController.swift in Sources */, - F2841445221D516304D4E2C5 /* ProfileViewController+UI.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D6D9E36620D283E700B6D607 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 45CC58AF246290FA002A914E /* SimpleIPC.m in Sources */, - 47E8C8E8260AECC4001CF672 /* AppLocalized.m in Sources */, - D6D9E36720D283E700B6D607 /* SampleHandler.m in Sources */, - 4774100026147EE90098482E /* ReplayKitLocalized.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 4074E64A249F1FC7006C591F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = AudioEffectSettingKitResources; - targetProxy = 4074E649249F1FC7006C591F /* PBXContainerItemProxy */; - }; - 40A49D7124598D6B00BFCB18 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = UGCKit; - targetProxy = 40A49D7024598D6B00BFCB18 /* PBXContainerItemProxy */; - }; - 40A49D7324598D6B00BFCB18 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = UGCKitResources; - targetProxy = 40A49D7224598D6B00BFCB18 /* PBXContainerItemProxy */; - }; - 40A8A0672452D9B200BB06FC /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = TCBeautyPanelResources; - targetProxy = 40A8A0662452D9B200BB06FC /* PBXContainerItemProxy */; - }; - D67F9E7A20F4660C0086D8DD /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D6D9E36520D283E700B6D607 /* TXReplaykitUpload_Smart */; - targetProxy = D67F9E7920F4660C0086D8DD /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 40F853311EE8FC9B00EE47D7 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 40F853321EE8FC9B00EE47D7 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; - 40F853331EE8FC9B00EE47D7 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 40F853341EE8FC9B00EE47D7 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 47740FF326147EE90098482E /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 47740FF426147EE90098482E /* zh-Hans */, - 47740FF726147EE90098482E /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 47740FF526147EE90098482E /* ReplayKitLocalized.strings */ = { - isa = PBXVariantGroup; - children = ( - 47740FF626147EE90098482E /* zh-Hans */, - 47740FF826147EE90098482E /* en */, - ); - name = ReplayKitLocalized.strings; - sourceTree = ""; - }; - 47E8C87B260AECC4001CF672 /* AppPortalLocalized.strings */ = { - isa = PBXVariantGroup; - children = ( - 47E8C87C260AECC4001CF672 /* zh-Hans */, - 47E8C92C260AED85001CF672 /* en */, - ); - name = AppPortalLocalized.strings; - sourceTree = ""; - }; - 47E8C87F260AECC4001CF672 /* LoginNetworkLocalized.strings */ = { - isa = PBXVariantGroup; - children = ( - 47E8C880260AECC4001CF672 /* zh-Hans */, - 47E8C92E260AEDB9001CF672 /* en */, - ); - name = LoginNetworkLocalized.strings; - sourceTree = ""; - }; - 47E8C884260AECC4001CF672 /* UGCLocalized.strings */ = { - isa = PBXVariantGroup; - children = ( - 47E8C885260AECC4001CF672 /* zh-Hans */, - 47E8C930260AEDDF001CF672 /* en */, - ); - name = UGCLocalized.strings; - sourceTree = ""; - }; - 47E8C888260AECC4001CF672 /* V2LiveLocalized.strings */ = { - isa = PBXVariantGroup; - children = ( - 47E8C889260AECC4001CF672 /* zh-Hans */, - 47E8C931260AEDE9001CF672 /* en */, - ); - name = V2LiveLocalized.strings; - sourceTree = ""; - }; - 47E8C88C260AECC4001CF672 /* TRTCDemoLocalized.strings */ = { - isa = PBXVariantGroup; - children = ( - 47E8C88D260AECC4001CF672 /* zh-Hans */, - 47E8C92F260AEDCB001CF672 /* en */, - ); - name = TRTCDemoLocalized.strings; - sourceTree = ""; - }; - 47E8C890260AECC4001CF672 /* LivePlayerLocalized.strings */ = { - isa = PBXVariantGroup; - children = ( - 47E8C891260AECC4001CF672 /* zh-Hans */, - 47E8C92D260AEDAC001CF672 /* en */, - ); - name = LivePlayerLocalized.strings; - sourceTree = ""; - }; - 47E8C9D2260B54E5001CF672 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 47E8C9D1260B54E5001CF672 /* en */, - 47E8C9D9260B54EA001CF672 /* zh-Hans */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 47E8CCCF260C4EB2001CF672 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 47E8CCCE260C4EB2001CF672 /* en */, - 47E8CCD6260C4EE3001CF672 /* zh-Hans */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 88B52DFF266D1F54003ECB5E /* QBImagePicker.strings */ = { - isa = PBXVariantGroup; - children = ( - 88B52E00266D1F54003ECB5E /* de */, - 88B52E02266D1F54003ECB5E /* zh-Hans */, - 88B52E03266D1F54003ECB5E /* ja */, - 88B52E08266D1F54003ECB5E /* en */, - 88B52E09266D1F54003ECB5E /* es */, - 88B52E15266D1F54003ECB5E /* pl */, - ); - name = QBImagePicker.strings; - sourceTree = ""; - }; - C603F89F26034E93009E3AB2 /* UserProtocol.html */ = { - isa = PBXVariantGroup; - children = ( - C603F8A726034EA0009E3AB2 /* zh-Hans */, - 47E8C938260AEE37001CF672 /* en */, - ); - name = UserProtocol.html; - sourceTree = ""; - }; - C603F9322603729D009E3AB2 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - C603F939260372A7009E3AB2 /* zh-Hans */, - 47642A8C261490960020F1BA /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - C603F9B826047CB9009E3AB2 /* LaunchScreen_en.storyboard */ = { - isa = PBXVariantGroup; - children = ( - C603F9B726047CB9009E3AB2 /* Base */, - ); - name = LaunchScreen_en.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 1A865FD3266FA853008A861A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = 5GHU44CJHG; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/TXLiteAVDemo/Common/ForEnterprise/pitu/Frameworks", - ); - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - "TRTC_EXT=1", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Enterprise.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Enterprise.framework/Headers", - ); - INFOPLIST_FILE = ReplaykitUpload/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2.Upload; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Wildcard Dev"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 1A865FD4266FA853008A861A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = FN2V63AD2J; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/TXLiteAVDemo/Common/ForEnterprise/pitu/Frameworks", - ); - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - "TRTC_EXT=1", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Enterprise.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Enterprise.framework/Headers", - ); - INFOPLIST_FILE = ReplaykitUpload/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2.Upload; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = com.tencent.fx.rtmpdemo2.Upload_Production_SignProvision; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - 1AF083D7266A1A8C004FBE74 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = 5GHU44CJHG; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - ENABLE_PUSH, - "LIVE=1", - DISABLE_VOD, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../../sdk/liteav/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXLiteAVSDK_Live.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Live.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Live.framework/Headers", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - MARKETING_VERSION = 7.2.1; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Material/Material.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Motion/Motion.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.modulemap\" -D LIVE"; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Wildcard Dev"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 1AF083D8266A1A8C004FBE74 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CLANG_DEBUG_INFORMATION_LEVEL = "line-tables-only"; - CODE_SIGN_ENTITLEMENTS = TXLiteAVDemo_ProfessionalRelease.entitlements; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - DEVELOPMENT_TEAM = FN2V63AD2J; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - ENABLE_PUSH, - "LIVE=1", - DISABLE_VOD, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../../sdk/liteav/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXLiteAVSDK_Live.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Live.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Live.framework/Headers", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_GENERATE_MAP_FILE = YES; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - MARKETING_VERSION = 7.2.1; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Material/Material.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Motion/Motion.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.modulemap\" -D LIVE"; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = com.tencent.fx.rtmpdemo2_Production_SignProvision; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - 40091F691F4FCBB9009B882D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CLANG_MODULES_AUTOLINK = YES; - CODE_SIGN_ENTITLEMENTS = TXLiteAVDemo_EnterpriseDebug.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = F8A3GH6Q4W; - ENABLE_BITCODE = NO; - EXCLUDED_ARCHS = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/Common/ForEnterprise/pitu/Frameworks", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - ENABLE_PUSH, - ENABLE_PLAY, - ENABLE_UGC, - ENABLE_AV, - PITU, - ENABLE_TRTC, - ENTERPRISE, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Enterprise.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Enterprise.framework/Headers", - "$(PROJECT_DIR)/TXLiteAVDemo//Third/Masonry", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_GENERATE_MAP_FILE = NO; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu", - "$(PROJECT_DIR)/TXLiteAVDemo/Common/BeautySettingPanel/ZipArchive", - "$(PROJECT_DIR)/TXLiteAVDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/TRTCDemo/WaterMark/libyuv", - "$(PROJECT_DIR)/TXLiteAVDemo/TRTCDemo/WaterMark/libyuv/source", - ); - MARKETING_VERSION = 7.6.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Material/Material.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Motion/Motion.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.modulemap\""; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = abyWildcardDev; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - VALIDATE_PRODUCT = NO; - }; - name = Debug; - }; - 40091F6A1F4FCBB9009B882D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CLANG_DEBUG_INFORMATION_LEVEL = "line-tables-only"; - CLANG_MODULES_AUTOLINK = YES; - CODE_SIGN_ENTITLEMENTS = TXLiteAVDemo_EnterpriseRelease.entitlements; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - DEVELOPMENT_TEAM = FN2V63AD2J; - ENABLE_BITCODE = NO; - EXCLUDED_ARCHS = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/Common/ForEnterprise/pitu/Frameworks", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=3", - "SDK_SUB_VERSION=9", - "SDK_FIX_VERSION=0", - "SDK_BUILD_NUMBER=1", - ENABLE_PUSH, - ENABLE_PLAY, - ENABLE_UGC, - ENABLE_AV, - PITU, - APPSTORE, - ENABLE_TRTC, - ENTERPRISE, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../../sdk/liteav/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXLiteAVSDK_Enterprise.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Enterprise.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Enterprise.framework/Headers", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_GENERATE_MAP_FILE = YES; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu", - "$(PROJECT_DIR)/TXLiteAVDemo/Common/BeautySettingPanel/ZipArchive", - "$(PROJECT_DIR)/TXLiteAVDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/TRTCDemo/WaterMark/libyuv", - "$(PROJECT_DIR)/TXLiteAVDemo/TRTCDemo/WaterMark/libyuv/source", - ); - MARKETING_VERSION = 7.6.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Material/Material.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Motion/Motion.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.modulemap\""; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = com.tencent.fx.rtmpdemo2_Production_SignProvision; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - 4009207B1F4FCBBE009B882D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = F8A3GH6Q4W; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - ENABLE_PUSH, - ENABLE_PLAY, - ENABLE_UGC, - ENABLE_AV, - ENABLE_TRTC, - PROFESSIONAL, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../../sdk/liteav/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXLiteAVSDK_Professional.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Professional.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Professional.framework/Headers", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/TRTCDemo/WaterMark/libyuv", - "$(PROJECT_DIR)/TXLiteAVDemo/TRTCDemo/WaterMark/libyuv/source", - ); - MARKETING_VERSION = 7.2.1; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Material/Material.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Motion/Motion.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.modulemap\""; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = abyWildcardDev; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 4009207C1F4FCBBE009B882D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CLANG_DEBUG_INFORMATION_LEVEL = "line-tables-only"; - CODE_SIGN_ENTITLEMENTS = TXLiteAVDemo_ProfessionalRelease.entitlements; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - DEVELOPMENT_TEAM = FN2V63AD2J; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - ENABLE_PUSH, - ENABLE_PLAY, - ENABLE_UGC, - ENABLE_AV, - ENABLE_TRTC, - PROFESSIONAL, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../../sdk/liteav/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXLiteAVSDK_Professional.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Professional.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Professional.framework/Headers", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_GENERATE_MAP_FILE = YES; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/TRTCDemo/WaterMark/libyuv", - "$(PROJECT_DIR)/TXLiteAVDemo/TRTCDemo/WaterMark/libyuv/source", - ); - MARKETING_VERSION = 7.2.1; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Material/Material.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Motion/Motion.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.modulemap\""; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = com.tencent.fx.rtmpdemo2_Production_SignProvision; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - 4009229F1F4FCC52009B882D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3FE55542D416212AADE83B12 /* Pods-TXLiteAVDemo_Smart.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = 5GHU44CJHG; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - ENABLE_PUSH, - SMART, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../../sdk/liteav/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXLiteAVSDK_Smart.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Smart.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Smart.framework/Headers", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 7.2.1; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Wildcard Dev"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 400922A01F4FCC52009B882D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6F3B8CE66F615B5126697B01 /* Pods-TXLiteAVDemo_Smart.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CLANG_DEBUG_INFORMATION_LEVEL = "line-tables-only"; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - DEVELOPMENT_TEAM = FN2V63AD2J; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - ENABLE_PUSH, - SMART, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../../sdk/liteav/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXLiteAVSDK_Smart.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Smart.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Smart.framework/Headers", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_GENERATE_MAP_FILE = YES; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 7.2.1; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = com.tencent.fx.rtmpdemo2_Production_SignProvision; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - 400923B11F4FCC6E009B882D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = 5GHU44CJHG; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - ENABLE_PLAY, - PLAYER, - NOT_LOGIN, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../../sdk/liteav/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXLiteAVSDK_Player.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Player.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Player.framework/Headers", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LOCALIZED_STRING_SWIFTUI_SUPPORT = YES; - MARKETING_VERSION = 7.2.1; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Material/Material.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Motion/Motion.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.modulemap\""; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.liteav.demo; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Wildcard Dev"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = NOT_LOGIN; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 400923B21F4FCC6E009B882D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CLANG_DEBUG_INFORMATION_LEVEL = "line-tables-only"; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - DEVELOPMENT_TEAM = FN2V63AD2J; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - ENABLE_PLAY, - PLAYER, - NOT_LOGIN, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../../sdk/liteav/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXLiteAVSDK_Player.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Player.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Player.framework/Headers", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_GENERATE_MAP_FILE = YES; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LOCALIZED_STRING_SWIFTUI_SUPPORT = YES; - MARKETING_VERSION = 7.2.1; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Material/Material.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Motion/Motion.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.modulemap\""; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = com.tencent.fx.rtmpdemo2_Production_SignProvision; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = NOT_LOGIN; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - 40AA52BD244554BA00303EF7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = F8A3GH6Q4W; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/TXLiteAVDemo/Common/ForEnterprise/pitu/Frameworks", - ); - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - "TRTC_EXT=1", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Professional.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Professional.framework/Headers", - ); - INFOPLIST_FILE = ReplaykitUpload/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2.Upload; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = abyWildcardDev; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 40AA52BE244554BA00303EF7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = FN2V63AD2J; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/TXLiteAVDemo/Common/ForEnterprise/pitu/Frameworks", - ); - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - "TRTC_EXT=1", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Professional.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Professional.framework/Headers", - ); - INFOPLIST_FILE = ReplaykitUpload/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2.Upload; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = com.tencent.fx.rtmpdemo2.Upload_Production_SignProvision; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - 40B3F6CF2446E518000C37A3 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CODE_SIGN_ENTITLEMENTS = TXLiteAVDemo_TRTCDebug.entitlements; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 270; - DEVELOPMENT_TEAM = F8A3GH6Q4W; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - DISABLE_VOD, - ENABLE_PLAY, - ENABLE_TRTC, - "FOR_RELEASE=$FOR_RELEASE", - TRTC, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_TRTC.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_TRTC.framework/Headers", - ); - INFOPLIST_FILE = "TXLiteAVDemo/App/TRTC-Appstore-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/TRTCDemo/WaterMark/libyuv", - "$(PROJECT_DIR)/TXLiteAVDemo/TRTCDemo/WaterMark/libyuv/source", - ); - MARKETING_VERSION = 7.4.278; - OTHER_LDFLAGS = "$(inherited)"; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = abyWildcardDev; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 40B3F6D02446E518000C37A3 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CLANG_DEBUG_INFORMATION_LEVEL = "line-tables-only"; - CODE_SIGN_ENTITLEMENTS = TXLiteAVDemo_TRTCRelease.entitlements; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 270; - DEVELOPMENT_TEAM = FN2V63AD2J; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - DISABLE_VOD, - ENABLE_PLAY, - ENABLE_TRTC, - "FOR_RELEASE=$FOR_RELEASE", - TRTC, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_TRTC.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_TRTC.framework/Headers", - ); - INFOPLIST_FILE = "TXLiteAVDemo/App/TRTC-Appstore-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_GENERATE_MAP_FILE = YES; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/TRTCDemo/WaterMark/libyuv", - "$(PROJECT_DIR)/TXLiteAVDemo/TRTCDemo/WaterMark/libyuv/source", - ); - MARKETING_VERSION = 7.4.278; - OTHER_LDFLAGS = "$(inherited)"; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.mrtc; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = com.tencent.mrtc_Production_SignProvision; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - 40F853181EE8FB3800EE47D7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../SDK"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.3; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 40F853191EE8FB3800EE47D7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Tencent Technology (Shenzhen) Co., Ltd"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../SDK"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.3; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 6A5031CE249D122800701E6B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 270; - DEVELOPMENT_TEAM = F8A3GH6Q4W; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/TXLiteAVDemo/Common/ForEnterprise/pitu/Frameworks", - ); - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - "TRTC_EXT=1", - TRTC, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_TRTC.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_TRTC.framework/Headers", - ); - INFOPLIST_FILE = ReplaykitUpload/TRTCInfo.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = 7.4.269; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2.Upload; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = abyWildcardDev; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 6A5031CF249D122800701E6B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 270; - DEVELOPMENT_TEAM = FN2V63AD2J; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/TXLiteAVDemo/Common/ForEnterprise/pitu/Frameworks", - ); - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - "TRTC_EXT=1", - TRTC, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_TRTC.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_TRTC.framework/Headers", - ); - INFOPLIST_FILE = ReplaykitUpload/TRTCInfo.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = 7.4.269; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.mrtc.Upload; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = com.tencent.mrtc.Upload_Production_SignProvision; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - A0BEE9E5211AE89300D63544 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = F8A3GH6Q4W; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/TXLiteAVDemo/Common/ForEnterprise/pitu/Frameworks", - ); - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - "TRTC_EXT=1", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Enterprise.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Enterprise.framework/Headers", - ); - INFOPLIST_FILE = ReplaykitUpload/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2.Upload; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = abyWildcardDev; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - A0BEE9E6211AE89300D63544 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = FN2V63AD2J; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/Resource/Beauty/pitu/Frameworks", - "$(PROJECT_DIR)/TXLiteAVDemo/Common/ForEnterprise/pitu/Frameworks", - ); - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - "TRTC_EXT=1", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Enterprise.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Enterprise.framework/Headers", - ); - INFOPLIST_FILE = ReplaykitUpload/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2.Upload; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = com.tencent.fx.rtmpdemo2.Upload_Production_SignProvision; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - BAD1484D25FB570400FB40DD /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = F8A3GH6Q4W; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - "ENABLE_INTERNATIONAL=1", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../../sdk/liteav/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXLiteAVSDK_International.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_International.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_International.framework/Headers", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - MARKETING_VERSION = 7.2.1; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Material/Material.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Motion/Motion.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.modulemap\""; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = abyWildcardDev; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG ENABLE_INTERNATIONAL"; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - BAD1484E25FB570400FB40DD /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CLANG_DEBUG_INFORMATION_LEVEL = "line-tables-only"; - CODE_SIGN_ENTITLEMENTS = TXLiteAVDemo_ProfessionalRelease.entitlements; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - DEVELOPMENT_TEAM = FN2V63AD2J; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - "ENABLE_INTERNATIONAL=1", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../../sdk/liteav/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXLiteAVSDK_International.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_International.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_International.framework/Headers", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_GENERATE_MAP_FILE = YES; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - MARKETING_VERSION = 7.2.1; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Material/Material.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Motion/Motion.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.modulemap\""; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = com.tencent.fx.rtmpdemo2_Production_SignProvision; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = ENABLE_INTERNATIONAL; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - CE1BA8C42062051500071F5F /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = 5GHU44CJHG; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - ENABLE_UGC, - ENABLE_PLAY, - UGC, - NOT_LOGIN, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../../sdk/liteav/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXLiteAVSDK_UGC.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_UGC.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_UGC.framework/Headers", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_GENERATE_MAP_FILE = YES; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - MACH_O_TYPE = mh_execute; - MARKETING_VERSION = 7.2.1; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Material/Material.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Motion/Motion.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.modulemap\""; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Wildcard Dev"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = NOT_LOGIN; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - CE1BA8C52062051500071F5F /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CLANG_DEBUG_INFORMATION_LEVEL = "line-tables-only"; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - DEVELOPMENT_TEAM = FN2V63AD2J; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo", - "$(PROJECT_DIR)/../SDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_EXCEPTIONS = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "SDK_MAIN_VERSION=$(MAIN_VERSION)", - "SDK_SUB_VERSION=$(SUB_VERSION)", - "SDK_FIX_VERSION=$(FIX_VERSION)", - "SDK_BUILD_NUMBER=$(BUILD_NUMBER)", - ENABLE_UGC, - ENABLE_PLAY, - UGC, - NOT_LOGIN, - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../../sdk/liteav/build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/TXLiteAVSDK_UGC.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_UGC.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_UGC.framework/Headers", - ); - INFOPLIST_FILE = TXLiteAVDemo/App/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_GENERATE_MAP_FILE = YES; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/TXLiteAVDemo/VideoUpload/COSSDK", - "$(PROJECT_DIR)/TXLiteAVDemo/UGCVideoUploadDemo/VideoUpload/COSSDK", - ); - MACH_O_TYPE = mh_execute; - MARKETING_VERSION = 7.2.1; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Material/Material.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Motion/Motion.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/NVActivityIndicatorView/NVActivityIndicatorView.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap\" -Xcc -fmodule-map-file=\"${PODS_CONFIGURATION_BUILD_DIR}/Toast-Swift/Toast_Swift.modulemap\""; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = com.tencent.fx.rtmpdemo2_Production_SignProvision; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = NOT_LOGIN; - SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h"; - SWIFT_OBJC_INTERFACE_HEADER_NAME = "TXLiteAVDemo-Swift.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - D6D9E37320D283E700B6D607 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 989986B80E1E50232B675AE9 /* Pods-TXReplaykitUpload_Smart.debug.xcconfig */; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Developer"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = 5GHU44CJHG; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../SDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Smart.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Smart.framework/Headers", - ); - INFOPLIST_FILE = ReplaykitUpload/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2.ReplaykitUpload; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Wildcard Dev"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - D6D9E37420D283E700B6D607 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 48CA90A216ACB2F1AC355B8C /* Pods-TXReplaykitUpload_Smart.release.xcconfig */; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_IDENTITY = "iPhone Distribution"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = FN2V63AD2J; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/../SDK", - ); - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Smart.framework/Headers", - "$(PROJECT_DIR)/../SDK/TXLiteAVSDK_Smart.framework/Headers", - ); - INFOPLIST_FILE = ReplaykitUpload/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.fx.rtmpdemo2.Upload; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = com.tencent.fx.rtmpdemo2.Upload_Production_SignProvision; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 4009229E1F4FCC52009B882D /* Build configuration list for PBXNativeTarget "TXLiteAVDemo_Smart" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4009229F1F4FCC52009B882D /* Debug */, - 400922A01F4FCC52009B882D /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 40F852FE1EE8FB3800EE47D7 /* Build configuration list for PBXProject "TXLiteAVDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 40F853181EE8FB3800EE47D7 /* Debug */, - 40F853191EE8FB3800EE47D7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D6D9E37220D283E700B6D607 /* Build configuration list for PBXNativeTarget "TXReplaykitUpload_Smart" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D6D9E37320D283E700B6D607 /* Debug */, - D6D9E37420D283E700B6D607 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 40F852FB1EE8FB3800EE47D7 /* Project object */; -} diff --git a/iOS/Demo/TXLiteAVDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/iOS/Demo/TXLiteAVDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a6..00000000 --- a/iOS/Demo/TXLiteAVDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/iOS/Demo/TXLiteAVDemo.xcodeproj/xcshareddata/xcschemes/TXLiteAVDemo_Smart.xcscheme b/iOS/Demo/TXLiteAVDemo.xcodeproj/xcshareddata/xcschemes/TXLiteAVDemo_Smart.xcscheme deleted file mode 100644 index a8caa2f6..00000000 --- a/iOS/Demo/TXLiteAVDemo.xcodeproj/xcshareddata/xcschemes/TXLiteAVDemo_Smart.xcscheme +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS/Demo/TXLiteAVDemo.xcodeproj/xcshareddata/xcschemes/TXReplaykitUpload_Smart.xcscheme b/iOS/Demo/TXLiteAVDemo.xcodeproj/xcshareddata/xcschemes/TXReplaykitUpload_Smart.xcscheme deleted file mode 100644 index 633e9f3a..00000000 --- a/iOS/Demo/TXLiteAVDemo.xcodeproj/xcshareddata/xcschemes/TXReplaykitUpload_Smart.xcscheme +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS/Demo/TXLiteAVDemo.xcworkspace/contents.xcworkspacedata b/iOS/Demo/TXLiteAVDemo.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 9c81e75d..00000000 --- a/iOS/Demo/TXLiteAVDemo.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/iOS/Demo/TXLiteAVDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/iOS/Demo/TXLiteAVDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/iOS/Demo/TXLiteAVDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/HUDHelper.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/HUDHelper.h deleted file mode 100755 index 0f122a6d..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/HUDHelper.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// HUDHelper.h -// -// -// Created by Alexi on 12-11-28. -// Copyright (c) 2012年 . All rights reserved. -// - -#import "MBProgressHUD.h" - -typedef void (^CommonVoidBlock)(void); - -@interface HUDHelper : NSObject -{ -@private - MBProgressHUD *_syncHUD; -} - -+ (HUDHelper *)sharedInstance; - -+ (void)alert:(NSString *)msg; -+ (void)alert:(NSString *)msg cancel:(NSString *)cancel; -+ (void)alertTitle:(NSString *)title message:(NSString *)msg cancel:(NSString *)cancel; - -// 网络请求 -- (MBProgressHUD *)loading; -- (MBProgressHUD *)loading:(NSString *)msg; -- (MBProgressHUD *)loading:(NSString *)msg inView:(UIView *)view; - - -- (void)loading:(NSString *)msg delay:(CGFloat)seconds execute:(void (^)(void))exec completion:(void (^)(void))completion; - -- (void)stopLoading:(MBProgressHUD *)hud; -- (void)stopLoading:(MBProgressHUD *)hud message:(NSString *)msg; -- (void)stopLoading:(MBProgressHUD *)hud message:(NSString *)msg delay:(CGFloat)seconds completion:(void (^)(void))completion; - -- (void)tipMessage:(NSString *)msg; -- (void)tipMessage:(NSString *)msg delay:(CGFloat)seconds; -- (void)tipMessage:(NSString *)msg delay:(CGFloat)seconds completion:(void (^)(void))completion; - -// 网络请求 -- (void)syncLoading; -- (void)syncLoading:(NSString *)msg; -- (void)syncLoading:(NSString *)msg inView:(UIView *)view; - -- (void)syncStopLoading; -- (void)syncStopLoadingMessage:(NSString *)msg; -- (void)syncStopLoadingMessage:(NSString *)msg delay:(CGFloat)seconds completion:(void (^)(void))completion; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/HUDHelper.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/HUDHelper.m deleted file mode 100755 index 3b873279..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/HUDHelper.m +++ /dev/null @@ -1,254 +0,0 @@ -// -// HUDHelper.m -// -// -// Created by Alexi on 12-11-28. -// Copyright (c) 2012年 . All rights reserved. -// - -#import "HUDHelper.h" -#import "NSString+Common.h" -#import "TXLiteAVDemo-Swift.h" - -@implementation HUDHelper - -static HUDHelper *_instance = nil; - - -+ (HUDHelper *)sharedInstance -{ - @synchronized(_instance) - { - if (_instance == nil) - { - _instance = [[HUDHelper alloc] init]; - } - return _instance; - } -} - -+ (void)alert:(NSString *)msg -{ - [HUDHelper alert:msg cancel:@"确定"]; -} - -+ (void)alert:(NSString *)msg cancel:(NSString *)cancel -{ - [HUDHelper alertTitle:@"提示" message:msg cancel:cancel]; -} - -+ (void)alertTitle:(NSString *)title message:(NSString *)msg cancel:(NSString *)cancel -{ - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:msg delegate:nil cancelButtonTitle:cancel otherButtonTitles:nil, nil]; - [alert show]; -} - -- (MBProgressHUD *)loading -{ - return [self loading:nil]; -} - -- (MBProgressHUD *)loading:(NSString *)msg -{ - return [self loading:msg inView:nil]; -} - -- (MBProgressHUD *)loading:(NSString *)msg inView:(UIView *)view -{ - UIView *inView = view ? view : (AppDelegate *)[UIApplication sharedApplication].delegate.window; - MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:inView]; - - dispatch_async(dispatch_get_main_queue(), ^{ - if (![NSString isEmpty:msg]) - { - hud.mode = MBProgressHUDModeIndeterminate; - hud.label.text = msg; - } - [inView addSubview:hud]; - [hud showAnimated:YES]; - // 超时自动消失 - // [hud hide:YES afterDelay:kRequestTimeOutTime]; - }); - return hud; -} - -- (void)loading:(NSString *)msg delay:(CGFloat)seconds execute:(void (^)())exec completion:(void (^)())completion -{ - dispatch_async(dispatch_get_main_queue(), ^{ - UIView *inView = (AppDelegate *)[UIApplication sharedApplication].delegate.window; - MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:inView]; - if (![NSString isEmpty:msg]) - { - hud.mode = MBProgressHUDModeText; - hud.label.text = msg; - } - - [inView addSubview:hud]; - [hud showAnimated:YES]; - if (exec) - { - exec(); - } - - // 超时自动消失 - [hud hideAnimated:YES afterDelay:seconds]; - - - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(seconds * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - if (completion) - { - completion(); - } - }); - }); -} - - -- (void)stopLoading:(MBProgressHUD *)hud -{ - [self stopLoading:hud message:nil]; -} - -- (void)stopLoading:(MBProgressHUD *)hud message:(NSString *)msg -{ - [self stopLoading:hud message:msg delay:0 completion:nil]; -} -- (void)stopLoading:(MBProgressHUD *)hud message:(NSString *)msg delay:(CGFloat)seconds completion:(void (^)())completion -{ - if (hud && hud.superview) - { - dispatch_async(dispatch_get_main_queue(), ^{ - if (![NSString isEmpty:msg]) - { - hud.label.text = msg; - hud.mode = MBProgressHUDModeText; - } - - [hud hideAnimated:YES afterDelay:seconds]; - _syncHUD = nil; - - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(seconds * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - if (completion) - { - completion(); - } - }); - }); - } - else - { - if (completion) - { - completion(); - } - } - -} - - -- (void)tipMessage:(NSString *)msg -{ - [self tipMessage:msg delay:2]; -} - -- (void)tipMessage:(NSString *)msg delay:(CGFloat)seconds -{ - [self tipMessage:msg delay:seconds completion:nil]; - -} - -- (void)tipMessage:(NSString *)msg delay:(CGFloat)seconds completion:(void (^)())completion -{ - if ([NSString isEmpty:msg]) - { - return; - } - - dispatch_async(dispatch_get_main_queue(), ^{ - UIWindow *window = (AppDelegate *)[UIApplication sharedApplication].delegate.window; -// MBProgressHUD *hud = [[MBProgressHUD alloc] initWithWindow:window]; - MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:window.rootViewController.view]; - [window addSubview:hud]; - hud.mode = MBProgressHUDModeText; - hud.label.text = msg; - [hud showAnimated:YES]; - [hud hideAnimated:YES afterDelay:seconds]; - - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(seconds * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - if (completion) - { - completion(); - } - }); - }); -} - - -#define kSyncHUDStartTag 100000 - -// 网络请求 -- (void)syncLoading -{ - [self syncLoading:nil]; -} -- (void)syncLoading:(NSString *)msg -{ - [self syncLoading:msg inView:nil]; -} -- (void)syncLoading:(NSString *)msg inView:(UIView *)view -{ - if (_syncHUD) - { - _syncHUD.tag++; - - if (![NSString isEmpty:msg]) - { - _syncHUD.label.text = msg; - _syncHUD.mode = MBProgressHUDModeText; - } - else - { - _syncHUD.label.text = nil; - _syncHUD.mode = MBProgressHUDModeIndeterminate; - } - - return; - } - _syncHUD = [self loading:msg inView:view]; - _syncHUD.tag = kSyncHUDStartTag; -} - -- (void)syncStopLoading -{ - [self syncStopLoadingMessage:nil delay:0 completion:nil]; -} -- (void)syncStopLoadingMessage:(NSString *)msg -{ - [self syncStopLoadingMessage:msg delay:1 completion:nil]; -} -- (void)syncStopLoadingMessage:(NSString *)msg delay:(CGFloat)seconds completion:(void (^)())completion -{ - _syncHUD.tag--; - if (_syncHUD.tag > kSyncHUDStartTag) - { - if (![NSString isEmpty:msg]) - { - _syncHUD.label.text = msg; - _syncHUD.mode = MBProgressHUDModeText; - } - else - { - _syncHUD.label.text = nil; - _syncHUD.mode = MBProgressHUDModeIndeterminate; - } - - } - else - { - [self stopLoading:_syncHUD message:msg delay:seconds completion:completion]; - } -} - - - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSData+Common.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSData+Common.h deleted file mode 100755 index 17f715e1..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSData+Common.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// NSData+Common.h -// CommonLibrary -// -// Created by Alexi on 13-11-6. -// Copyright (c) 2013年 ywchen. All rights reserved. -// -#import - - -void *NewBase64Decode(const char *inputBuffer, size_t length, size_t *outputLength); - -char *NewBase64Encode(const void *inputBuffer, size_t length, bool separateLines, size_t *outputLength); - -@interface NSData (Common) - -@property (nonatomic, readonly) NSString* md5Hash; - -@property (nonatomic, readonly) NSString* sha1Hash; - -+ (NSData *)dataFromBase64String:(NSString *)aString; -- (NSString *)base64EncodedString; -- (NSString *)md5Hash; -- (NSString *)sha1Hash; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSData+Common.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSData+Common.m deleted file mode 100755 index 31e0e8e0..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSData+Common.m +++ /dev/null @@ -1,293 +0,0 @@ -// -// NSData+Common.m -// CommonLibrary -// -// Created by Alexi on 13-11-6. -// Copyright (c) 2013年 ywchen. All rights reserved. -// -#if kSupportNSDataCommon -#import "NSData+Common.h" -#import - -#define xx 65 - -// -// Mapping from ASCII character to 6 bit pattern. -// -static unsigned char base64EncodeLookup[256] = -{ - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, 62, xx, xx, xx, 63, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, xx, xx, xx, xx, xx, xx, - xx, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, xx, xx, xx, xx, xx, - xx, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, xx, xx, xx, xx, xx, - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, -}; - -// -// Fundamental sizes of the binary and base64 encode/decode units in bytes -// -#define BINARY_UNIT_SIZE 3 -#define BASE64_UNIT_SIZE 4 - - -void *NewBase64Decode(const char *inputBuffer, size_t length, size_t *outputLength) -{ - if (length == (size_t)-1) - { - length = strlen(inputBuffer); - } - - size_t outputBufferSize = - ((length+BASE64_UNIT_SIZE-1) / BASE64_UNIT_SIZE) * BINARY_UNIT_SIZE; - unsigned char *outputBuffer = (unsigned char *)malloc(outputBufferSize); - - size_t i = 0; - size_t j = 0; - while (i < length) - { - // - // Accumulate 4 valid characters (ignore everything else) - // - unsigned char accumulated[BASE64_UNIT_SIZE]; - size_t accumulateIndex = 0; - while (i < length) - { - unsigned char decode = base64EncodeLookup[inputBuffer[i++]]; - if (decode != xx) - { - accumulated[accumulateIndex] = decode; - accumulateIndex++; - - if (accumulateIndex == BASE64_UNIT_SIZE) - { - break; - } - } - } - - // - // Store the 6 bits from each of the 4 characters as 3 bytes - // - // (Uses improved bounds checking suggested by Alexandre Colucci) - // - if(accumulateIndex >= 2) - outputBuffer[j] = (unsigned char)(accumulated[0] << 2) | (accumulated[1] >> 4); - if(accumulateIndex >= 3) - outputBuffer[j + 1] = (unsigned char)(accumulated[1] << 4) | (accumulated[2] >> 2); - if(accumulateIndex >= 4) - outputBuffer[j + 2] = (unsigned char)(accumulated[2] << 6) | accumulated[3]; - j += accumulateIndex - 1; - } - - if (outputLength) - { - *outputLength = j; - } - return outputBuffer; -} - -// -// NewBase64Encode -// -// Encodes the arbitrary data in the inputBuffer as base64 into a newly malloced -// output buffer. -// -// inputBuffer - the source data for the encode -// length - the length of the input in bytes -// separateLines - if zero, no CR/LF characters will be added. Otherwise -// a CR/LF pair will be added every 64 encoded chars. -// outputLength - if not-NULL, on output will contain the encoded length -// (not including terminating 0 char) -// -// returns the encoded buffer. Must be free'd by caller. Length is given by -// outputLength. -// -char *NewBase64Encode(const void *buffer, size_t length, bool separateLines, size_t *outputLength) -{ - const unsigned char *inputBuffer = (const unsigned char *)buffer; - -#define MAX_NUM_PADDING_CHARS 2 -#define OUTPUT_LINE_LENGTH 64 -#define INPUT_LINE_LENGTH ((OUTPUT_LINE_LENGTH / BASE64_UNIT_SIZE) * BINARY_UNIT_SIZE) -#define CR_LF_SIZE 2 - - // - // Byte accurate calculation of final buffer size - // - size_t outputBufferSize = - ((length / BINARY_UNIT_SIZE) - + ((length % BINARY_UNIT_SIZE) ? 1 : 0)) - * BASE64_UNIT_SIZE; - if (separateLines) - { - outputBufferSize += - (outputBufferSize / OUTPUT_LINE_LENGTH) * CR_LF_SIZE; - } - - // - // Include space for a terminating zero - // - outputBufferSize += 1; - - // - // Allocate the output buffer - // - char *outputBuffer = (char *)malloc(outputBufferSize); - if (!outputBuffer) - { - return NULL; - } - - size_t i = 0; - size_t j = 0; - const size_t lineLength = separateLines ? INPUT_LINE_LENGTH : length; - size_t lineEnd = lineLength; - - while (true) - { - if (lineEnd > length) - { - lineEnd = length; - } - - for (; i + BINARY_UNIT_SIZE - 1 < lineEnd; i += BINARY_UNIT_SIZE) - { - // - // Inner loop: turn 48 bytes into 64 base64 characters - // - outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2]; - outputBuffer[j++] = (char)base64EncodeLookup[((inputBuffer[i] & 0x03) << 4) - | ((inputBuffer[i + 1] & 0xF0) >> 4)]; - outputBuffer[j++] = (char)base64EncodeLookup[((inputBuffer[i + 1] & 0x0F) << 2) - | ((inputBuffer[i + 2] & 0xC0) >> 6)]; - outputBuffer[j++] = (char)base64EncodeLookup[inputBuffer[i + 2] & 0x3F]; - } - - if (lineEnd == length) - { - break; - } - - // - // Add the newline - // - outputBuffer[j++] = '\r'; - outputBuffer[j++] = '\n'; - lineEnd += lineLength; - } - - if (i + 1 < length) - { - // - // Handle the single '=' case - // - outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2]; - outputBuffer[j++] = (char)base64EncodeLookup[((inputBuffer[i] & 0x03) << 4) - | ((inputBuffer[i + 1] & 0xF0) >> 4)]; - outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i + 1] & 0x0F) << 2]; - outputBuffer[j++] = '='; - } - else if (i < length) - { - // - // Handle the double '=' case - // - outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i] & 0xFC) >> 2]; - outputBuffer[j++] = (char)base64EncodeLookup[(inputBuffer[i] & 0x03) << 4]; - outputBuffer[j++] = '='; - outputBuffer[j++] = '='; - } - outputBuffer[j] = 0; - - // - // Set the output length and return the buffer - // - if (outputLength) - { - *outputLength = j; - } - return outputBuffer; -} - - - -@implementation NSData (Common) - -+ (NSData *)dataFromBase64String:(NSString *)aString -{ - NSData *data = [aString dataUsingEncoding:NSASCIIStringEncoding]; - size_t outputLength; - void *outputBuffer = NewBase64Decode([data bytes], [data length], &outputLength); - NSData *result = [NSData dataWithBytes:outputBuffer length:outputLength]; - free(outputBuffer); - return result; -} - -- (NSString *)base64EncodedString -{ - size_t outputLength = 0; - char *outputBuffer = - NewBase64Encode([self bytes], [self length], false, &outputLength); - - - NSString *result = [[NSString alloc] initWithBytes:outputBuffer length:outputLength encoding:NSASCIIStringEncoding]; - - free(outputBuffer); - return CommonReturnAutoReleased(result); -} - - - - -/////////////////////////////////////////////////////////////////////////////////////////////////// -/** - * Calculate an md5 hash using CC_MD5. - * - * @returns The md5 hash of this data. - */ - -- (NSString *)md5Hash { - unsigned char result[CC_MD5_DIGEST_LENGTH]; - CC_MD5([self bytes], (CC_LONG)[self length], result); - - return [NSString stringWithFormat: - @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", - result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7], - result[8], result[9], result[10], result[11], result[12], result[13], result[14], - result[15] - ]; -} - - -/////////////////////////////////////////////////////////////////////////////////////////////////// -/** - * Calculate the SHA1 hash using CC_SHA1. - * - * @returns The SHA1 hash of this data. - */ -- (NSString *)sha1Hash { - unsigned char result[CC_SHA1_DIGEST_LENGTH]; - CC_SHA1([self bytes], (CC_LONG)[self length], result); - - return [NSString stringWithFormat: - @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", - result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7], - result[8], result[9], result[10], result[11], result[12], result[13], result[14], - result[15], result[16], result[17], result[18], result[19] - ]; -} - -@end - -#endif diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSDictionary+Common.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSDictionary+Common.h deleted file mode 100644 index 896ffc7b..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSDictionary+Common.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// NSDictionary+Common.h -// TXLiteAVDemo_Smart_No_VOD -// -// Created by lijie on 2019/10/7. -// Copyright © 2019 Tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface NSDictionary (Common) - -- (NSInteger)integerForKey:(id)key; -- (NSString *)stringForKey:(id)key; -- (BOOL)boolForKey:(id)key; -- (float)floatForKey:(id)key; - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSDictionary+Common.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSDictionary+Common.m deleted file mode 100644 index 561f2d62..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSDictionary+Common.m +++ /dev/null @@ -1,29 +0,0 @@ -// -// NSDictionary+Common.m -// TXLiteAVDemo_Smart_No_VOD -// -// Created by lijie on 2019/10/7. -// Copyright © 2019 Tencent. All rights reserved. -// - -#import "NSDictionary+Common.h" - -@implementation NSDictionary (Common) - -- (NSInteger)integerForKey:(id)key { - return [[self objectForKey:key] integerValue]; -} - -- (NSString *)stringForKey:(id)key { - return [self objectForKey:key]; -} - -- (BOOL)boolForKey:(id)key { - return [[self objectForKey:key] boolValue]; -} - -- (float)floatForKey:(id)key { - return [[self objectForKey:key] floatValue]; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSObject+CommonBlock.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSObject+CommonBlock.h deleted file mode 100755 index 670fe2ab..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSObject+CommonBlock.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// NSObject+CommonBlock.h -// CommonLibrary -// -// Created by Alexi on 3/11/14. -// Copyright (c) 2014 CommonLibrary. All rights reserved. -// - -#import - -typedef void (^CommonVoidBlock)(); - -typedef void (^CommonBlock)(id selfPtr); - -typedef void (^CommonCompletionBlock)(id selfPtr, BOOL isFinished); - -typedef void (^CommonFinishBlock)(BOOL isFinished); - -@interface NSObject (CommonBlock) - -- (void)excuteBlock:(CommonBlock)block; - -- (void)performBlock:(CommonBlock)block; - -//- (void)cancelBlock:(CommonBlock)block; - -- (void)performBlock:(CommonBlock)block afterDelay:(NSTimeInterval)delay; - - - -- (void)excuteCompletion:(CommonCompletionBlock)block withFinished:(NSNumber *)finished; - -- (void)performCompletion:(CommonCompletionBlock)block withFinished:(BOOL)finished; - -// 并发执行tasks里的作务,等tasks执行行完毕,回调到completion -- (void)asynExecuteCompletion:(CommonBlock)completion tasks:(CommonBlock)task, ... NS_REQUIRES_NIL_TERMINATION; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSObject+CommonBlock.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSObject+CommonBlock.m deleted file mode 100755 index d37b39f2..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSObject+CommonBlock.m +++ /dev/null @@ -1,124 +0,0 @@ -// -// NSObject+CommonBlock.m -// CommonLibrary -// -// Created by Alexi on 3/11/14. -// Copyright (c) 2014 CommonLibrary. All rights reserved. -// - -#import "NSObject+CommonBlock.h" - -@implementation NSObject (CommonBlock) - -- (void)excuteBlock:(CommonBlock)block -{ - __weak id selfPtr = self; - if (block) { - block(selfPtr); - } -} - -- (void)performBlock:(CommonBlock)block -{ - if (block) - { - [self performSelector:@selector(excuteBlock:) withObject:block]; - } -} - -- (void)performBlock:(CommonBlock)block afterDelay:(NSTimeInterval)delay -{ - if (block) - { - [self performSelector:@selector(excuteBlock:) withObject:block afterDelay:delay]; - } -} - -- (void)cancelBlock:(CommonBlock)block -{ - [[NSRunLoop currentRunLoop] cancelPerformSelector:@selector(excuteBlock:) target:self argument:block]; -} - - -- (void)excuteCompletion:(CommonCompletionBlock)block withFinished:(NSNumber *)finished -{ - __weak id selfPtr = self; - if (block) { - block(selfPtr, finished.boolValue); - } -} - -- (void)performCompletion:(CommonCompletionBlock)block withFinished:(BOOL)finished -{ - if (block) - { - [self performSelector:@selector(excuteCompletion:withFinished:) withObject:block withObject:[NSNumber numberWithBool:finished]]; - } -} - -- (void)cancelCompletion:(CommonCompletionBlock)block -{ - [[NSRunLoop currentRunLoop] cancelPerformSelector:@selector(excuteCompletion:withFinished:) target:self argument:block]; -} - -//- (void)performCompletion:(CommonCompletionBlock)block withFinished:(BOOL)finished afterDelay:(NSTimeInterval)delay -//{ -// if (block) -// { -// self performSelector:<#(SEL)#> withObject:<#(id)#> afterDelay:<#(NSTimeInterval)#> -//// [self performSelector:@selector(excuteCompletion:withFinished:) withObject:block withObject:[NSNumber numberWithBool:finished] afterDelay:delay]; -// } -//} - -- (void)asynExecuteCompletion:(CommonBlock)completion tasks:(CommonBlock)task, ... NS_REQUIRES_NIL_TERMINATION -{ - va_list arguments; - - if (task) - { - if (task) - { - dispatch_async(dispatch_get_global_queue(0, 0), ^{ - if (task) - { - task(self); - } - }); - - va_start(arguments, task); - //DebugLog(@"%@ <<<<<<<<<=============", task); - BOOL next = YES; - do - { - CommonBlock eachObject = va_arg(arguments, CommonBlock); - //DebugLog(@"%@ <<<<<<<<<=============", eachObject); - if (eachObject) - { - dispatch_async(dispatch_get_global_queue(0, 0), ^{ - if (eachObject) - { - eachObject(self); - } - }); - } - else - { - next = NO; - } - - }while (next); - va_end(arguments); - } - - - - - dispatch_barrier_async(dispatch_get_global_queue(0, 0), ^{ - if (completion) - { - completion(self); - } - }); - } -} -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSString+Common.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSString+Common.h deleted file mode 100755 index a36b9084..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSString+Common.h +++ /dev/null @@ -1,98 +0,0 @@ -// -// NSString+Common.h -// -// Created by Alexi on 12-11-5. -// Copyright (c) 2012年 . All rights reserved. -// - -#import -#if TARGET_OS_IOS -#import "NSString+UISize.m" -#endif - -char pinyinFirstLetter(unsigned short hanzi); - -@interface NSString (Common) - -// 将str加密成本地保存的文件名 -+ (NSString *)md5String:(NSString *)str; -- (NSString *)md5; - --(NSString*)firstPinYin; - -//是否为空 -+ (BOOL)isEmpty:(NSString *)string; - -/** - compare two version - @param sourVersion *.*.*.* - @param desVersion *.*.*.* - @returns No,sourVersion is less than desVersion; YES, the statue is opposed - */ -+(BOOL)compareVerison:(NSString *)sourVersion withDes:(NSString *)desVersion; - -//当前字符串是否只包含空白字符和换行符 -- (BOOL)isWhitespaceAndNewlines; - -//去除字符串前后的空白,不包含换行符 -- (NSString *)trim; - -//去除字符串中所有空白 -- (NSString *)removeWhiteSpace; -- (NSString *)removeNewLine; - -//将字符串以URL格式编码 -- (NSString *)stringByUrlEncoding; - -/*! - @brief 大写第一个字符 - @return 格式化后的字符串 - */ -- (NSString *)capitalize; - -//以给定字符串开始,忽略大小写 -- (BOOL)startsWith:(NSString *)str; -//以指定条件判断字符串是否以给定字符串开始 -- (BOOL)startsWith:(NSString *)str Options:(NSStringCompareOptions)compareOptions; - - -//以给定字符串结束,忽略大小写 -- (BOOL)endsWith:(NSString *)str; -//以指定条件判断字符串是否以给定字符串结尾 -- (BOOL)endsWith:(NSString *)str Options:(NSStringCompareOptions)compareOptions; - -//包含给定的字符串, 忽略大小写 -- (BOOL)containsString:(NSString *)str; -//以指定条件判断是否包含给定的字符串 -- (BOOL)containsString:(NSString *)str Options:(NSStringCompareOptions)compareOptions; - -//判断字符串是否相同,忽略大小写 -- (BOOL)equalsString:(NSString *)str; - - -- (NSString *)emjoiText; - - -#pragma mark Hashing -#if kSupportGTM64 -- (NSString *)base64Encoding; -#endif - -- (NSString *)valueOfLabel:(NSString *)label; - -- (NSString *)substringAtRange:(NSRange)rang; - - -// 是否带有表情府 - -- (NSUInteger)utf8Length; - -- (BOOL)isContainsEmoji; - -//递归计算符合规定的文本长度 -- (NSString *)cutBeyondTextInLength:(NSInteger)maxLenth; - -//判断当前系统语言是否为英文 -+ (BOOL)isCurrentLanguageEnglish; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSString+Common.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSString+Common.m deleted file mode 100755 index 99390d41..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSString+Common.m +++ /dev/null @@ -1,700 +0,0 @@ -// -// NSString+Common.m -// -// -// Created by Alexi on 12-11-5. -// Copyright (c) 2012年 . All rights reserved. -// - -#import "NSString+Common.h" -#import -//#import "pinyin.h" - -#import "NSData+Common.h" - -//#import "GTMBase64.h" - - -#define HANZI_START 19968 -#define HANZI_COUNT 20902 - - -static char firstLetterArray[HANZI_COUNT] = -"ydkqsxnwzssxjbymgcczqpssqbycdscdqldylybssjgyqzjjfgcclzznwdwzjljpfyynnjjtmynzwzhflzppqhgccyynmjqyxxgd" -"nnsnsjnjnsnnmlnrxyfsngnnnnqzggllyjlnyzssecykyyhqwjssggyxyqyjtwktjhychmnxjtlhjyqbyxdldwrrjnwysrldzjpc" -"bzjjbrcfslnczstzfxxchtrqggddlyccssymmrjcyqzpwwjjyfcrwfdfzqpyddwyxkyjawjffxjbcftzyhhycyswccyxsclcxxwz" -"cxnbgnnxbxlzsqsbsjpysazdhmdzbqbscwdzzyytzhbtsyyfzgntnxjywqnknphhlxgybfmjnbjhhgqtjcysxstkzglyckglysmz" -"xyalmeldccxgzyrjxjzlnjzcqkcnnjwhjczccqljststbnhbtyxceqxkkwjyflzqlyhjxspsfxlmpbysxxxytccnylllsjxfhjxp" -"jbtffyabyxbcczbzyclwlczggbtssmdtjcxpthyqtgjjxcjfzkjzjqnlzwlslhdzbwjncjzyzsqnycqynzcjjwybrtwpyftwexcs" -"kdzctbyhyzqyyjxzcfbzzmjyxxsdczottbzljwfckscsxfyrlrygmbdthjxsqjccsbxyytswfbjdztnbcnzlcyzzpsacyzzsqqcs" -"hzqydxlbpjllmqxqydzxsqjtzpxlcglqdcwzfhctdjjsfxjejjtlbgxsxjmyjjqpfzasyjnsydjxkjcdjsznbartcclnjqmwnqnc" -"lllkbdbzzsyhqcltwlccrshllzntylnewyzyxczxxgdkdmtcedejtsyyssdqdfmxdbjlkrwnqlybglxnlgtgxbqjdznyjsjyjcjm" -"rnymgrcjczgjmzmgxmmryxkjnymsgmzzymknfxmbdtgfbhcjhkylpfmdxlxjjsmsqgzsjlqdldgjycalcmzcsdjllnxdjffffjcn" -"fnnffpfkhkgdpqxktacjdhhzdddrrcfqyjkqccwjdxhwjlyllzgcfcqjsmlzpbjjblsbcjggdckkdezsqcckjgcgkdjtjllzycxk" -"lqccgjcltfpcqczgwbjdqyzjjbyjhsjddwgfsjgzkcjctllfspkjgqjhzzljplgjgjjthjjyjzccmlzlyqbgjwmljkxzdznjqsyz" -"mljlljkywxmkjlhskjhbmclyymkxjqlbmllkmdxxkwyxwslmlpsjqqjqxyqfjtjdxmxxllcrqbsyjbgwynnggbcnxpjtgpapfgdj" -"qbhbncfjyzjkjkhxqfgqckfhygkhdkllsdjqxpqyaybnqsxqnszswhbsxwhxwbzzxdmndjbsbkbbzklylxgwxjjwaqzmywsjqlsj" -"xxjqwjeqxnchetlzalyyyszzpnkyzcptlshtzcfycyxyljsdcjqagyslcllyyysslqqqnldxzsccscadycjysfsgbfrsszqsbxjp" -"sjysdrckgjlgtkzjzbdktcsyqpyhstcldjnhmymcgxyzhjdctmhltxzhylamoxyjcltyfbqqjpfbdfehthsqhzywwcncxcdwhowg" -"yjlegmdqcwgfjhcsntmydolbygnqwesqpwnmlrydzszzlyqpzgcwxhnxpyxshmdqjgztdppbfbhzhhjyfdzwkgkzbldnzsxhqeeg" -"zxylzmmzyjzgszxkhkhtxexxgylyapsthxdwhzydpxagkydxbhnhnkdnjnmyhylpmgecslnzhkxxlbzzlbmlsfbhhgsgyyggbhsc" -"yajtxglxtzmcwzydqdqmngdnllszhngjzwfyhqswscelqajynytlsxthaznkzzsdhlaxxtwwcjhqqtddwzbcchyqzflxpslzqgpz" -"sznglydqtbdlxntctajdkywnsyzljhhdzckryyzywmhychhhxhjkzwsxhdnxlyscqydpslyzwmypnkxyjlkchtyhaxqsyshxasmc" -"hkdscrsgjpwqsgzjlwwschsjhsqnhnsngndantbaalczmsstdqjcjktscjnxplggxhhgoxzcxpdmmhldgtybynjmxhmrzplxjzck" -"zxshflqxxcdhxwzpckczcdytcjyxqhlxdhypjqxnlsyydzozjnhhqezysjyayxkypdgxddnsppyzndhthrhxydpcjjhtcnnctlhb" -"ynyhmhzllnnxmylllmdcppxhmxdkycyrdltxjchhznxclcclylnzsxnjzzlnnnnwhyqsnjhxynttdkyjpychhyegkcwtwlgjrlgg" -"tgtygyhpyhylqyqgcwyqkpyyettttlhyylltyttsylnyzwgywgpydqqzzdqnnkcqnmjjzzbxtqfjkdffbtkhzkbxdjjkdjjtlbwf" -"zpptkqtztgpdwntpjyfalqmkgxbcclzfhzcllllanpnxtjklcclgyhdzfgyddgcyyfgydxkssendhykdndknnaxxhbpbyyhxccga" -"pfqyjjdmlxcsjzllpcnbsxgjyndybwjspcwjlzkzddtacsbkzdyzypjzqsjnkktknjdjgyepgtlnyqnacdntcyhblgdzhbbydmjr" -"egkzyheyybjmcdtafzjzhgcjnlghldwxjjkytcyksssmtwcttqzlpbszdtwcxgzagyktywxlnlcpbclloqmmzsslcmbjcsdzkydc" -"zjgqjdsmcytzqqlnzqzxssbpkdfqmddzzsddtdmfhtdycnaqjqkypbdjyyxtljhdrqxlmhkydhrnlklytwhllrllrcxylbnsrnzz" -"symqzzhhkyhxksmzsyzgcxfbnbsqlfzxxnnxkxwymsddyqnggqmmyhcdzttfgyyhgsbttybykjdnkyjbelhdypjqnfxfdnkzhqks" -"byjtzbxhfdsbdaswpawajldyjsfhblcnndnqjtjnchxfjsrfwhzfmdrfjyxwzpdjkzyjympcyznynxfbytfyfwygdbnzzzdnytxz" -"emmqbsqehxfznbmflzzsrsyqjgsxwzjsprytjsjgskjjgljjynzjjxhgjkymlpyyycxycgqzswhwlyrjlpxslcxmnsmwklcdnkny" -"npsjszhdzeptxmwywxyysywlxjqcqxzdclaeelmcpjpclwbxsqhfwrtfnjtnqjhjqdxhwlbyccfjlylkyynldxnhycstyywncjtx" -"ywtrmdrqnwqcmfjdxzmhmayxnwmyzqtxtlmrspwwjhanbxtgzypxyyrrclmpamgkqjszycymyjsnxtplnbappypylxmyzkynldgy" -"jzcchnlmzhhanqnbgwqtzmxxmllhgdzxnhxhrxycjmffxywcfsbssqlhnndycannmtcjcypnxnytycnnymnmsxndlylysljnlxys" -"sqmllyzlzjjjkyzzcsfbzxxmstbjgnxnchlsnmcjscyznfzlxbrnnnylmnrtgzqysatswryhyjzmgdhzgzdwybsscskxsyhytsxg" -"cqgxzzbhyxjscrhmkkbsczjyjymkqhzjfnbhmqhysnjnzybknqmcjgqhwlsnzswxkhljhyybqcbfcdsxdldspfzfskjjzwzxsddx" -"jseeegjscssygclxxnwwyllymwwwgydkzjggggggsycknjwnjpcxbjjtqtjwdsspjxcxnzxnmelptfsxtllxcljxjjljsxctnswx" -"lennlyqrwhsycsqnybyaywjejqfwqcqqcjqgxaldbzzyjgkgxbltqyfxjltpydkyqhpmatlcndnkxmtxynhklefxdllegqtymsaw" -"hzmljtkynxlyjzljeeyybqqffnlyxhdsctgjhxywlkllxqkcctnhjlqmkkzgcyygllljdcgydhzwypysjbzjdzgyzzhywyfqdtyz" -"szyezklymgjjhtsmqwyzljyywzcsrkqyqltdxwcdrjalwsqzwbdcqyncjnnszjlncdcdtlzzzacqqzzddxyblxcbqjylzllljddz" -"jgyqyjzyxnyyyexjxksdaznyrdlzyyynjlslldyxjcykywnqcclddnyyynycgczhjxcclgzqjgnwnncqqjysbzzxyjxjnxjfzbsb" -"dsfnsfpzxhdwztdmpptflzzbzdmyypqjrsdzsqzsqxbdgcpzswdwcsqzgmdhzxmwwfybpngphdmjthzsmmbgzmbzjcfzhfcbbnmq" -"dfmbcmcjxlgpnjbbxgyhyyjgptzgzmqbqdcgybjxlwnkydpdymgcftpfxyztzxdzxtgkptybbclbjaskytssqyymscxfjhhlslls" -"jpqjjqaklyldlycctsxmcwfgngbqxllllnyxtyltyxytdpjhnhgnkbyqnfjyyzbyyessessgdyhfhwtcqbsdzjtfdmxhcnjzymqw" -"srxjdzjqbdqbbsdjgnfbknbxdkqhmkwjjjgdllthzhhyyyyhhsxztyyyccbdbpypzyccztjpzywcbdlfwzcwjdxxhyhlhwczxjtc" -"nlcdpxnqczczlyxjjcjbhfxwpywxzpcdzzbdccjwjhmlxbqxxbylrddgjrrctttgqdczwmxfytmmzcwjwxyywzzkybzcccttqnhx" -"nwxxkhkfhtswoccjybcmpzzykbnnzpbthhjdlszddytyfjpxyngfxbyqxzbhxcpxxtnzdnnycnxsxlhkmzxlthdhkghxxsshqyhh" -"cjyxglhzxcxnhekdtgqxqypkdhentykcnymyyjmkqyyyjxzlthhqtbyqhxbmyhsqckwwyllhcyylnneqxqwmcfbdccmljggxdqkt" -"lxkknqcdgcjwyjjlyhhqyttnwchhxcxwherzjydjccdbqcdgdnyxzdhcqrxcbhztqcbxwgqwyybxhmbymykdyecmqkyaqyngyzsl" -"fnkkqgyssqyshngjctxkzycssbkyxhyylstycxqthysmnscpmmgcccccmnztasmgqzjhklosjylswtmqzyqkdzljqqyplzycztcq" -"qpbbcjzclpkhqcyyxxdtdddsjcxffllchqxmjlwcjcxtspycxndtjshjwhdqqqckxyamylsjhmlalygxcyydmamdqmlmcznnyybz" -"xkyflmcncmlhxrcjjhsylnmtjggzgywjxsrxcwjgjqhqzdqjdcjjskjkgdzcgjjyjylxzxxcdqhhheslmhlfsbdjsyyshfyssczq" -"lpbdrfnztzdkykhsccgkwtqzckmsynbcrxqbjyfaxpzzedzcjykbcjwhyjbqzzywnyszptdkzpfpbaztklqnhbbzptpptyzzybhn" -"ydcpzmmcycqmcjfzzdcmnlfpbplngqjtbttajzpzbbdnjkljqylnbzqhksjznggqstzkcxchpzsnbcgzkddzqanzgjkdrtlzldwj" -"njzlywtxndjzjhxnatncbgtzcsskmljpjytsnwxcfjwjjtkhtzplbhsnjssyjbhbjyzlstlsbjhdnwqpslmmfbjdwajyzccjtbnn" -"nzwxxcdslqgdsdpdzgjtqqpsqlyyjzlgyhsdlctcbjtktyczjtqkbsjlgnnzdncsgpynjzjjyyknhrpwszxmtncszzyshbyhyzax" -"ywkcjtllckjjtjhgcssxyqyczbynnlwqcglzgjgqyqcczssbcrbcskydznxjsqgxssjmecnstjtpbdlthzwxqwqczexnqczgwesg" -"ssbybstscslccgbfsdqnzlccglllzghzcthcnmjgyzazcmsksstzmmzckbjygqljyjppldxrkzyxccsnhshhdznlzhzjjcddcbcj" -"xlbfqbczztpqdnnxljcthqzjgylklszzpcjdscqjhjqkdxgpbajynnsmjtzdxlcjyryynhjbngzjkmjxltbsllrzpylssznxjhll" -"hyllqqzqlsymrcncxsljmlzltzldwdjjllnzggqxppskyggggbfzbdkmwggcxmcgdxjmcjsdycabxjdlnbcddygskydqdxdjjyxh" -"saqazdzfslqxxjnqzylblxxwxqqzbjzlfbblylwdsljhxjyzjwtdjcyfqzqzzdzsxzzqlzcdzfxhwspynpqzmlpplffxjjnzzyls" -"jnyqzfpfzgsywjjjhrdjzzxtxxglghtdxcskyswmmtcwybazbjkshfhgcxmhfqhyxxyzftsjyzbxyxpzlchmzmbxhzzssyfdmncw" -"dabazlxktcshhxkxjjzjsthygxsxyyhhhjwxkzxssbzzwhhhcwtzzzpjxsyxqqjgzyzawllcwxznxgyxyhfmkhydwsqmnjnaycys" -"pmjkgwcqhylajgmzxhmmcnzhbhxclxdjpltxyjkdyylttxfqzhyxxsjbjnayrsmxyplckdnyhlxrlnllstycyyqygzhhsccsmcct" -"zcxhyqfpyyrpbflfqnntszlljmhwtcjqyzwtlnmlmdwmbzzsnzrbpdddlqjjbxtcsnzqqygwcsxfwzlxccrszdzmcyggdyqsgtnn" -"nlsmymmsyhfbjdgyxccpshxczcsbsjyygjmpbwaffyfnxhydxzylremzgzzyndsznlljcsqfnxxkptxzgxjjgbmyyssnbtylbnlh" -"bfzdcyfbmgqrrmzszxysjtznnydzzcdgnjafjbdknzblczszpsgcycjszlmnrznbzzldlnllysxsqzqlcxzlsgkbrxbrbzcycxzj" -"zeeyfgklzlnyhgzcgzlfjhgtgwkraajyzkzqtsshjjxdzyznynnzyrzdqqhgjzxsszbtkjbbfrtjxllfqwjgclqtymblpzdxtzag" -"bdhzzrbgjhwnjtjxlkscfsmwlldcysjtxkzscfwjlbnntzlljzllqblcqmqqcgcdfpbphzczjlpyyghdtgwdxfczqyyyqysrclqz" -"fklzzzgffcqnwglhjycjjczlqzzyjbjzzbpdcsnnjgxdqnknlznnnnpsntsdyfwwdjzjysxyyczcyhzwbbyhxrylybhkjksfxtjj" -"mmchhlltnyymsxxyzpdjjycsycwmdjjkqyrhllngpngtlyycljnnnxjyzfnmlrgjjtyzbsyzmsjyjhgfzqmsyxrszcytlrtqzsst" -"kxgqkgsptgxdnjsgcqcqhmxggztqydjjznlbznxqlhyqgggthqscbyhjhhkyygkggcmjdzllcclxqsftgjslllmlcskctbljszsz" -"mmnytpzsxqhjcnnqnyexzqzcpshkzzyzxxdfgmwqrllqxrfztlystctmjcsjjthjnxtnrztzfqrhcgllgcnnnnjdnlnnytsjtlny" -"xsszxcgjzyqpylfhdjsbbdczgjjjqzjqdybssllcmyttmqnbhjqmnygjyeqyqmzgcjkpdcnmyzgqllslnclmholzgdylfzslncnz" -"lylzcjeshnyllnxnjxlyjyyyxnbcljsswcqqnnyllzldjnllzllbnylnqchxyyqoxccqkyjxxxyklksxeyqhcqkkkkcsnyxxyqxy" -"gwtjohthxpxxhsnlcykychzzcbwqbbwjqcscszsslcylgddsjzmmymcytsdsxxscjpqqsqylyfzychdjynywcbtjsydchcyddjlb" -"djjsodzyqyskkyxdhhgqjyohdyxwgmmmazdybbbppbcmnnpnjzsmtxerxjmhqdntpjdcbsnmssythjtslmltrcplzszmlqdsdmjm" -"qpnqdxcfrnnfsdqqyxhyaykqyddlqyyysszbydslntfgtzqbzmchdhczcwfdxtmqqsphqwwxsrgjcwnntzcqmgwqjrjhtqjbbgwz" -"fxjhnqfxxqywyyhyscdydhhqmrmtmwctbszppzzglmzfollcfwhmmsjzttdhlmyffytzzgzyskjjxqyjzqbhmbzclyghgfmshpcf" -"zsnclpbqsnjyzslxxfpmtyjygbxlldlxpzjyzjyhhzcywhjylsjexfszzywxkzjlnadymlymqjpwxxhxsktqjezrpxxzghmhwqpw" -"qlyjjqjjzszcnhjlchhnxjlqwzjhbmzyxbdhhypylhlhlgfwlcfyytlhjjcwmscpxstkpnhjxsntyxxtestjctlsslstdlllwwyh" -"dnrjzsfgxssyczykwhtdhwjglhtzdqdjzxxqgghltzphcsqfclnjtclzpfstpdynylgmjllycqhynspchylhqyqtmzymbywrfqyk" -"jsyslzdnjmpxyyssrhzjnyqtqdfzbwwdwwrxcwggyhxmkmyyyhmxmzhnksepmlqqmtcwctmxmxjpjjhfxyyzsjzhtybmstsyjznq" -"jnytlhynbyqclcycnzwsmylknjxlggnnpjgtysylymzskttwlgsmzsylmpwlcwxwqcssyzsyxyrhssntsrwpccpwcmhdhhxzdzyf" -"jhgzttsbjhgyglzysmyclllxbtyxhbbzjkssdmalhhycfygmqypjyjqxjllljgclzgqlycjcctotyxmtmshllwlqfxymzmklpszz" -"cxhkjyclctyjcyhxsgyxnnxlzwpyjpxhjwpjpwxqqxlxsdhmrslzzydwdtcxknstzshbsccstplwsscjchjlcgchssphylhfhhxj" -"sxallnylmzdhzxylsxlmzykcldyahlcmddyspjtqjzlngjfsjshctsdszlblmssmnyymjqbjhrzwtyydchjljapzwbgqxbkfnbjd" -"llllyylsjydwhxpsbcmljpscgbhxlqhyrljxyswxhhzlldfhlnnymjljyflyjycdrjlfsyzfsllcqyqfgqyhnszlylmdtdjcnhbz" -"llnwlqxygyyhbmgdhxxnhlzzjzxczzzcyqzfngwpylcpkpykpmclgkdgxzgxwqbdxzzkzfbddlzxjtpjpttbythzzdwslcpnhslt" -"jxxqlhyxxxywzyswttzkhlxzxzpyhgzhknfsyhntjrnxfjcpjztwhplshfcrhnslxxjxxyhzqdxqwnnhyhmjdbflkhcxcwhjfyjc" -"fpqcxqxzyyyjygrpynscsnnnnchkzdyhflxxhjjbyzwttxnncyjjymswyxqrmhxzwfqsylznggbhyxnnbwttcsybhxxwxyhhxyxn" -"knyxmlywrnnqlxbbcljsylfsytjzyhyzawlhorjmnsczjxxxyxchcyqryxqzddsjfslyltsffyxlmtyjmnnyyyxltzcsxqclhzxl" -"wyxzhnnlrxkxjcdyhlbrlmbrdlaxksnlljlyxxlynrylcjtgncmtlzllcyzlpzpzyawnjjfybdyyzsepckzzqdqpbpsjpdyttbdb" -"bbyndycncpjmtmlrmfmmrwyfbsjgygsmdqqqztxmkqwgxllpjgzbqrdjjjfpkjkcxbljmswldtsjxldlppbxcwkcqqbfqbccajzg" -"mykbhyhhzykndqzybpjnspxthlfpnsygyjdbgxnhhjhzjhstrstldxskzysybmxjlxyslbzyslzxjhfybqnbylljqkygzmcyzzym" -"ccslnlhzhwfwyxzmwyxtynxjhbyymcysbmhysmydyshnyzchmjjmzcaahcbjbbhblytylsxsnxgjdhkxxtxxnbhnmlngsltxmrhn" -"lxqqxmzllyswqgdlbjhdcgjyqyymhwfmjybbbyjyjwjmdpwhxqldyapdfxxbcgjspckrssyzjmslbzzjfljjjlgxzgyxyxlszqkx" -"bexyxhgcxbpndyhwectwwcjmbtxchxyqqllxflyxlljlssnwdbzcmyjclwswdczpchqekcqbwlcgydblqppqzqfnqdjhymmcxtxd" -"rmzwrhxcjzylqxdyynhyyhrslnrsywwjjymtltllgtqcjzyabtckzcjyccqlysqxalmzynywlwdnzxqdllqshgpjfjljnjabcqzd" -"jgthhsstnyjfbswzlxjxrhgldlzrlzqzgsllllzlymxxgdzhgbdphzpbrlwnjqbpfdwonnnhlypcnjccndmbcpbzzncyqxldomzb" -"lzwpdwyygdstthcsqsccrsssyslfybnntyjszdfndpdhtqzmbqlxlcmyffgtjjqwftmnpjwdnlbzcmmcngbdzlqlpnfhyymjylsd" -"chdcjwjcctljcldtljjcbddpndsszycndbjlggjzxsxnlycybjjxxcbylzcfzppgkcxqdzfztjjfjdjxzbnzyjqctyjwhdyczhym" -"djxttmpxsplzcdwslshxypzgtfmlcjtacbbmgdewycyzxdszjyhflystygwhkjyylsjcxgywjcbllcsnddbtzbsclyzczzssqdll" -"mjyyhfllqllxfdyhabxggnywyypllsdldllbjcyxjznlhljdxyyqytdlllbngpfdfbbqbzzmdpjhgclgmjjpgaehhbwcqxajhhhz" -"chxyphjaxhlphjpgpzjqcqzgjjzzgzdmqyybzzphyhybwhazyjhykfgdpfqsdlzmljxjpgalxzdaglmdgxmmzqwtxdxxpfdmmssy" -"mpfmdmmkxksyzyshdzkjsysmmzzzmdydyzzczxbmlstmdyemxckjmztyymzmzzmsshhdccjewxxkljsthwlsqlyjzllsjssdppmh" -"nlgjczyhmxxhgncjmdhxtkgrmxfwmckmwkdcksxqmmmszzydkmsclcmpcjmhrpxqpzdsslcxkyxtwlkjyahzjgzjwcjnxyhmmbml" -"gjxmhlmlgmxctkzmjlyscjsyszhsyjzjcdajzhbsdqjzgwtkqxfkdmsdjlfmnhkzqkjfeypzyszcdpynffmzqykttdzzefmzlbnp" -"plplpbpszalltnlkckqzkgenjlwalkxydpxnhsxqnwqnkxqclhyxxmlnccwlymqyckynnlcjnszkpyzkcqzqljbdmdjhlasqlbyd" -"wqlwdgbqcryddztjybkbwszdxdtnpjdtcnqnfxqqmgnseclstbhpwslctxxlpwydzklnqgzcqapllkqcylbqmqczqcnjslqzdjxl" -"ddhpzqdljjxzqdjyzhhzlkcjqdwjppypqakjyrmpzbnmcxkllzllfqpylllmbsglzysslrsysqtmxyxzqzbscnysyztffmzzsmzq" -"hzssccmlyxwtpzgxzjgzgsjzgkddhtqggzllbjdzlsbzhyxyzhzfywxytymsdnzzyjgtcmtnxqyxjscxhslnndlrytzlryylxqht" -"xsrtzcgyxbnqqzfhykmzjbzymkbpnlyzpblmcnqyzzzsjztjctzhhyzzjrdyzhnfxklfzslkgjtctssyllgzrzbbjzzklpkbczys" -"nnyxbjfbnjzzxcdwlzyjxzzdjjgggrsnjkmsmzjlsjywqsnyhqjsxpjztnlsnshrnynjtwchglbnrjlzxwjqxqkysjycztlqzybb" -"ybyzjqdwgyzcytjcjxckcwdkkzxsnkdnywwyyjqyytlytdjlxwkcjnklccpzcqqdzzqlcsfqchqqgssmjzzllbjjzysjhtsjdysj" -"qjpdszcdchjkjzzlpycgmzndjxbsjzzsyzyhgxcpbjydssxdzncglqmbtsfcbfdzdlznfgfjgfsmpnjqlnblgqcyyxbqgdjjqsrf" -"kztjdhczklbsdzcfytplljgjhtxzcsszzxstjygkgckgynqxjplzbbbgcgyjzgczqszlbjlsjfzgkqqjcgycjbzqtldxrjnbsxxp" -"zshszycfwdsjjhxmfczpfzhqhqmqnknlyhtycgfrzgnqxcgpdlbzcsczqlljblhbdcypscppdymzzxgyhckcpzjgslzlnscnsldl" -"xbmsdlddfjmkdqdhslzxlsznpqpgjdlybdskgqlbzlnlkyyhzttmcjnqtzzfszqktlljtyyllnllqyzqlbdzlslyyzxmdfszsnxl" -"xznczqnbbwskrfbcylctnblgjpmczzlstlxshtzcyzlzbnfmqnlxflcjlyljqcbclzjgnsstbrmhxzhjzclxfnbgxgtqncztmsfz" -"kjmssncljkbhszjntnlzdntlmmjxgzjyjczxyhyhwrwwqnztnfjscpyshzjfyrdjsfscjzbjfzqzchzlxfxsbzqlzsgyftzdcszx" -"zjbjpszkjrhxjzcgbjkhcggtxkjqglxbxfgtrtylxqxhdtsjxhjzjjcmzlcqsbtxwqgxtxxhxftsdkfjhzyjfjxnzldlllcqsqqz" -"qwqxswqtwgwbzcgcllqzbclmqjtzgzyzxljfrmyzflxnsnxxjkxrmjdzdmmyxbsqbhgzmwfwygmjlzbyytgzyccdjyzxsngnyjyz" -"nbgpzjcqsyxsxrtfyzgrhztxszzthcbfclsyxzlzqmzlmplmxzjssfsbysmzqhxxnxrxhqzzzsslyflczjrcrxhhzxqndshxsjjh" -"qcjjbcynsysxjbqjpxzqplmlxzkyxlxcnlcycxxzzlxdlllmjyhzxhyjwkjrwyhcpsgnrzlfzwfzznsxgxflzsxzzzbfcsyjdbrj" -"krdhhjxjljjtgxjxxstjtjxlyxqfcsgswmsbctlqzzwlzzkxjmltmjyhsddbxgzhdlbmyjfrzfcgclyjbpmlysmsxlszjqqhjzfx" -"gfqfqbphngyyqxgztnqwyltlgwgwwhnlfmfgzjmgmgbgtjflyzzgzyzaflsspmlbflcwbjztljjmzlpjjlymqtmyyyfbgygqzgly" -"zdxqyxrqqqhsxyyqxygjtyxfsfsllgnqcygycwfhcccfxpylypllzqxxxxxqqhhsshjzcftsczjxspzwhhhhhapylqnlpqafyhxd" -"ylnkmzqgggddesrenzltzgchyppcsqjjhclljtolnjpzljlhymhezdydsqycddhgznndzclzywllznteydgnlhslpjjbdgwxpcnn" -"tycklkclwkllcasstknzdnnjttlyyzssysszzryljqkcgdhhyrxrzydgrgcwcgzqffbppjfzynakrgywyjpqxxfkjtszzxswzddf" -"bbqtbgtzkznpzfpzxzpjszbmqhkyyxyldkljnypkyghgdzjxxeaxpnznctzcmxcxmmjxnkszqnmnlwbwwqjjyhclstmcsxnjcxxt" -"pcnfdtnnpglllzcjlspblpgjcdtnjjlyarscffjfqwdpgzdwmrzzcgodaxnssnyzrestyjwjyjdbcfxnmwttbqlwstszgybljpxg" -"lbnclgpcbjftmxzljylzxcltpnclcgxtfzjshcrxsfysgdkntlbyjcyjllstgqcbxnhzxbxklylhzlqzlnzcqwgzlgzjncjgcmnz" -"zgjdzxtzjxycyycxxjyyxjjxsssjstsstdppghtcsxwzdcsynptfbchfbblzjclzzdbxgcjlhpxnfzflsyltnwbmnjhszbmdnbcy" -"sccldnycndqlyjjhmqllcsgljjsyfpyyccyltjantjjpwycmmgqyysxdxqmzhszxbftwwzqswqrfkjlzjqqyfbrxjhhfwjgzyqac" -"myfrhcyybynwlpexcczsyyrlttdmqlrkmpbgmyyjprkznbbsqyxbhyzdjdnghpmfsgbwfzmfqmmbzmzdcgjlnnnxyqgmlrygqccy" -"xzlwdkcjcggmcjjfyzzjhycfrrcmtznzxhkqgdjxccjeascrjthpljlrzdjrbcqhjdnrhylyqjsymhzydwcdfryhbbydtssccwbx" -"glpzmlzjdqsscfjmmxjcxjytycghycjwynsxlfemwjnmkllswtxhyyyncmmcyjdqdjzglljwjnkhpzggflccsczmcbltbhbqjxqd" -"jpdjztghglfjawbzyzjltstdhjhctcbchflqmpwdshyytqwcnntjtlnnmnndyyyxsqkxwyyflxxnzwcxypmaelyhgjwzzjbrxxaq" -"jfllpfhhhytzzxsgqjmhspgdzqwbwpjhzjdyjcqwxkthxsqlzyymysdzgnqckknjlwpnsyscsyzlnmhqsyljxbcxtlhzqzpcycyk" -"pppnsxfyzjjrcemhszmnxlxglrwgcstlrsxbygbzgnxcnlnjlclynymdxwtzpalcxpqjcjwtcyyjlblxbzlqmyljbghdslssdmxm" -"bdczsxyhamlczcpjmcnhjyjnsykchskqmczqdllkablwjqsfmocdxjrrlyqchjmybyqlrhetfjzfrfksryxfjdwtsxxywsqjysly" -"xwjhsdlxyyxhbhawhwjcxlmyljcsqlkydttxbzslfdxgxsjkhsxxybssxdpwncmrptqzczenygcxqfjxkjbdmljzmqqxnoxslyxx" -"lylljdzptymhbfsttqqwlhsgynlzzalzxclhtwrrqhlstmypyxjjxmnsjnnbryxyjllyqyltwylqyfmlkljdnlltfzwkzhljmlhl" -"jnljnnlqxylmbhhlnlzxqchxcfxxlhyhjjgbyzzkbxscqdjqdsndzsygzhhmgsxcsymxfepcqwwrbpyyjqryqcyjhqqzyhmwffhg" -"zfrjfcdbxntqyzpcyhhjlfrzgpbxzdbbgrqstlgdgylcqmgchhmfywlzyxkjlypjhsywmqqggzmnzjnsqxlqsyjtcbehsxfszfxz" -"wfllbcyyjdytdthwzsfjmqqyjlmqsxlldttkghybfpwdyysqqrnqwlgwdebzwcyygcnlkjxtmxmyjsxhybrwfymwfrxyymxysctz" -"ztfykmldhqdlgyjnlcryjtlpsxxxywlsbrrjwxhqybhtydnhhxmmywytycnnmnssccdalwztcpqpyjllqzyjswjwzzmmglmxclmx" -"nzmxmzsqtzppjqblpgxjzhfljjhycjsrxwcxsncdlxsyjdcqzxslqyclzxlzzxmxqrjmhrhzjbhmfljlmlclqnldxzlllfyprgjy" -"nxcqqdcmqjzzxhnpnxzmemmsxykynlxsxtljxyhwdcwdzhqyybgybcyscfgfsjnzdrzzxqxrzrqjjymcanhrjtldbpyzbstjhxxz" -"ypbdwfgzzrpymnnkxcqbyxnbnfyckrjjcmjegrzgyclnnzdnkknsjkcljspgyyclqqjybzssqlllkjftbgtylcccdblsppfylgyd" -"tzjqjzgkntsfcxbdkdxxhybbfytyhbclnnytgdhryrnjsbtcsnyjqhklllzslydxxwbcjqsbxnpjzjzjdzfbxxbrmladhcsnclbj" -"dstblprznswsbxbcllxxlzdnzsjpynyxxyftnnfbhjjjgbygjpmmmmsszljmtlyzjxswxtyledqpjmpgqzjgdjlqjwjqllsdgjgy" -"gmscljjxdtygjqjjjcjzcjgdzdshqgzjggcjhqxsnjlzzbxhsgzxcxyljxyxyydfqqjhjfxdhctxjyrxysqtjxyefyyssyxjxncy" -"zxfxcsxszxyyschshxzzzgzzzgfjdldylnpzgsjaztyqzpbxcbdztzczyxxyhhscjshcggqhjhgxhsctmzmehyxgebtclzkkwytj" -"zrslekestdbcyhqqsayxcjxwwgsphjszsdncsjkqcxswxfctynydpccczjqtcwjqjzzzqzljzhlsbhpydxpsxshhezdxfptjqyzc" -"xhyaxncfzyyhxgnqmywntzsjbnhhgymxmxqcnssbcqsjyxxtyyhybcqlmmszmjzzllcogxzaajzyhjmchhcxzsxsdznleyjjzjbh" -"zwjzsqtzpsxzzdsqjjjlnyazphhyysrnqzthzhnyjyjhdzxzlswclybzyecwcycrylchzhzydzydyjdfrjjhtrsqtxyxjrjhojyn" -"xelxsfsfjzghpzsxzszdzcqzbyyklsgsjhczshdgqgxyzgxchxzjwyqwgyhksseqzzndzfkwyssdclzstsymcdhjxxyweyxczayd" -"mpxmdsxybsqmjmzjmtjqlpjyqzcgqhyjhhhqxhlhdldjqcfdwbsxfzzyyschtytyjbhecxhjkgqfxbhyzjfxhwhbdzfyzbchpnpg" -"dydmsxhkhhmamlnbyjtmpxejmcthqbzyfcgtyhwphftgzzezsbzegpbmdskftycmhbllhgpzjxzjgzjyxzsbbqsczzlzscstpgxm" -"jsfdcczjzdjxsybzlfcjsazfgszlwbczzzbyztzynswyjgxzbdsynxlgzbzfygczxbzhzftpbgzgejbstgkdmfhyzzjhzllzzgjq" -"zlsfdjsscbzgpdlfzfzszyzyzsygcxsnxxchczxtzzljfzgqsqqxcjqccccdjcdszzyqjccgxztdlgscxzsyjjqtcclqdqztqchq" -"qyzynzzzpbkhdjfcjfztypqyqttynlmbdktjcpqzjdzfpjsbnjlgyjdxjdcqkzgqkxclbzjtcjdqbxdjjjstcxnxbxqmslyjcxnt" -"jqwwcjjnjjlllhjcwqtbzqqczczpzzdzyddcyzdzccjgtjfzdprntctjdcxtqzdtjnplzbcllctdsxkjzqdmzlbznbtjdcxfczdb" -"czjjltqqpldckztbbzjcqdcjwynllzlzccdwllxwzlxrxntqjczxkjlsgdnqtddglnlajjtnnynkqlldzntdnycygjwyxdxfrsqs" -"tcdenqmrrqzhhqhdldazfkapbggpzrebzzykyqspeqjjglkqzzzjlysyhyzwfqznlzzlzhwcgkypqgnpgblplrrjyxcccgyhsfzf" -"wbzywtgzxyljczwhncjzplfflgskhyjdeyxhlpllllcygxdrzelrhgklzzyhzlyqszzjzqljzflnbhgwlczcfjwspyxzlzlxgccp" -"zbllcxbbbbnbbcbbcrnnzccnrbbnnldcgqyyqxygmqzwnzytyjhyfwtehznjywlccntzyjjcdedpwdztstnjhtymbjnyjzlxtsst" -"phndjxxbyxqtzqddtjtdyztgwscszqflshlnzbcjbhdlyzjyckwtydylbnydsdsycctyszyyebgexhqddwnygyclxtdcystqnygz" -"ascsszzdzlcclzrqxyywljsbymxshzdembbllyyllytdqyshymrqnkfkbfxnnsbychxbwjyhtqbpbsbwdzylkgzskyghqzjxhxjx" -"gnljkzlyycdxlfwfghljgjybxblybxqpqgntzplncybxdjyqydymrbeyjyyhkxxstmxrczzjwxyhybmcflyzhqyzfwxdbxbcwzms" -"lpdmyckfmzklzcyqycclhxfzlydqzpzygyjyzmdxtzfnnyttqtzhgsfcdmlccytzxjcytjmkslpzhysnwllytpzctzccktxdhxxt" -"qcyfksmqccyyazhtjplylzlyjbjxtfnyljyynrxcylmmnxjsmybcsysslzylljjgyldzdlqhfzzblfndsqkczfyhhgqmjdsxyctt" -"xnqnjpyybfcjtyyfbnxejdgyqbjrcnfyyqpghyjsyzngrhtknlnndzntsmgklbygbpyszbydjzsstjztsxzbhbscsbzczptqfzlq" -"flypybbjgszmnxdjmtsyskkbjtxhjcegbsmjyjzcstmljyxrczqscxxqpyzhmkyxxxjcljyrmyygadyskqlnadhrskqxzxztcggz" -"dlmlwxybwsyctbhjhcfcwzsxwwtgzlxqshnyczjxemplsrcgltnzntlzjcyjgdtclglbllqpjmzpapxyzlaktkdwczzbncctdqqz" -"qyjgmcdxltgcszlmlhbglkznnwzndxnhlnmkydlgxdtwcfrjerctzhydxykxhwfzcqshknmqqhzhhymjdjskhxzjzbzzxympajnm" -"ctbxlsxlzynwrtsqgscbptbsgzwyhtlkssswhzzlyytnxjgmjrnsnnnnlskztxgxlsammlbwldqhylakqcqctmycfjbslxclzjcl" -"xxknbnnzlhjphqplsxsckslnhpsfqcytxjjzljldtzjjzdlydjntptnndskjfsljhylzqqzlbthydgdjfdbyadxdzhzjnthqbykn" -"xjjqczmlljzkspldsclbblnnlelxjlbjycxjxgcnlcqplzlznjtsljgyzdzpltqcssfdmnycxgbtjdcznbgbqyqjwgkfhtnbyqzq" -"gbkpbbyzmtjdytblsqmbsxtbnpdxklemyycjynzdtldykzzxtdxhqshygmzsjycctayrzlpwltlkxslzcggexclfxlkjrtlqjaqz" -"ncmbqdkkcxglczjzxjhptdjjmzqykqsecqzdshhadmlzfmmzbgntjnnlhbyjbrbtmlbyjdzxlcjlpldlpcqdhlhzlycblcxccjad" -"qlmzmmsshmybhbnkkbhrsxxjmxmdznnpklbbrhgghfchgmnklltsyyycqlcskymyehywxnxqywbawykqldnntndkhqcgdqktgpkx" -"hcpdhtwnmssyhbwcrwxhjmkmzngwtmlkfghkjyldyycxwhyyclqhkqhtdqkhffldxqwytyydesbpkyrzpjfyyzjceqdzzdlattpb" -"fjllcxdlmjsdxegwgsjqxcfbssszpdyzcxznyxppzydlyjccpltxlnxyzyrscyyytylwwndsahjsygyhgywwaxtjzdaxysrltdps" -"syxfnejdxyzhlxlllzhzsjnyqyqyxyjghzgjcyjchzlycdshhsgczyjscllnxzjjyyxnfsmwfpyllyllabmddhwzxjmcxztzpmlq" -"chsfwzynctlndywlslxhymmylmbwwkyxyaddxylldjpybpwnxjmmmllhafdllaflbnhhbqqjqzjcqjjdjtffkmmmpythygdrjrdd" -"wrqjxnbysrmzdbyytbjhpymyjtjxaahggdqtmystqxkbtzbkjlxrbyqqhxmjjbdjntgtbxpgbktlgqxjjjcdhxqdwjlwrfmjgwqh" -"cnrxswgbtgygbwhswdwrfhwytjjxxxjyzyslphyypyyxhydqpxshxyxgskqhywbdddpplcjlhqeewjgsyykdpplfjthkjltcyjhh" -"jttpltzzcdlyhqkcjqysteeyhkyzyxxyysddjkllpymqyhqgxqhzrhbxpllnqydqhxsxxwgdqbshyllpjjjthyjkyphthyyktyez" -"yenmdshlzrpqfbnfxzbsftlgxsjbswyysksflxlpplbbblnsfbfyzbsjssylpbbffffsscjdstjsxtryjcyffsyzyzbjtlctsbsd" -"hrtjjbytcxyyeylycbnebjdsysyhgsjzbxbytfzwgenhhhthjhhxfwgcstbgxklstyymtmbyxjskzscdyjrcythxzfhmymcxlzns" -"djtxtxrycfyjsbsdyerxhljxbbdeynjghxgckgscymblxjmsznskgxfbnbbthfjyafxwxfbxmyfhdttcxzzpxrsywzdlybbktyqw" -"qjbzypzjznjpzjlztfysbttslmptzrtdxqsjehbnylndxljsqmlhtxtjecxalzzspktlzkqqyfsyjywpcpqfhjhytqxzkrsgtksq" -"czlptxcdyyzsslzslxlzmacpcqbzyxhbsxlzdltztjtylzjyytbzypltxjsjxhlbmytxcqrblzssfjzztnjytxmyjhlhpblcyxqj" -"qqkzzscpzkswalqsplczzjsxgwwwygyatjbbctdkhqhkgtgpbkqyslbxbbckbmllndzstbklggqkqlzbkktfxrmdkbftpzfrtppm" -"ferqnxgjpzsstlbztpszqzsjdhljqlzbpmsmmsxlqqnhknblrddnhxdkddjcyyljfqgzlgsygmjqjkhbpmxyxlytqwlwjcpbmjxc" -"yzydrjbhtdjyeqshtmgsfyplwhlzffnynnhxqhpltbqpfbjwjdbygpnxtbfzjgnnntjshxeawtzylltyqbwjpgxghnnkndjtmszs" -"qynzggnwqtfhclssgmnnnnynzqqxncjdqgzdlfnykljcjllzlmzznnnnsshthxjlzjbbhqjwwycrdhlyqqjbeyfsjhthnrnwjhwp" -"slmssgzttygrqqwrnlalhmjtqjsmxqbjjzjqzyzkxbjqxbjxshzssfglxmxnxfghkzszggslcnnarjxhnlllmzxelglxydjytlfb" -"kbpnlyzfbbhptgjkwetzhkjjxzxxglljlstgshjjyqlqzfkcgnndjsszfdbctwwseqfhqjbsaqtgypjlbxbmmywxgslzhglsgnyf" -"ljbyfdjfngsfmbyzhqffwjsyfyjjphzbyyzffwotjnlmftwlbzgyzqxcdjygzyyryzynyzwegazyhjjlzrthlrmgrjxzclnnnljj" -"yhtbwjybxxbxjjtjteekhwslnnlbsfazpqqbdlqjjtyyqlyzkdksqjnejzldqcgjqnnjsncmrfqthtejmfctyhypymhydmjncfgy" -"yxwshctxrljgjzhzcyyyjltkttntmjlzclzzayyoczlrlbszywjytsjyhbyshfjlykjxxtmzyyltxxypslqyjzyzyypnhmymdyyl" -"blhlsyygqllnjjymsoycbzgdlyxylcqyxtszegxhzglhwbljheyxtwqmakbpqcgyshhegqcmwyywljyjhyyzlljjylhzyhmgsljl" -"jxcjjyclycjbcpzjzjmmwlcjlnqljjjlxyjmlszljqlycmmgcfmmfpqqmfxlqmcffqmmmmhnznfhhjgtthxkhslnchhyqzxtmmqd" -"cydyxyqmyqylddcyaytazdcymdydlzfffmmycqcwzzmabtbyctdmndzggdftypcgqyttssffwbdttqssystwnjhjytsxxylbyyhh" -"whxgzxwznnqzjzjjqjccchykxbzszcnjtllcqxynjnckycynccqnxyewyczdcjycchyjlbtzyycqwlpgpyllgktltlgkgqbgychj" -"xy"; - -char pinyinFirstLetter(unsigned short hanzi) -{ - int index = hanzi - HANZI_START; - if (index >= 0 && index < HANZI_COUNT) - { - return firstLetterArray[index]; - } - else - { - return '['; - } -} - - - -@implementation NSString (Common) - -+ (NSString *)md5String:(NSString *)str; -{ - const char *cStr = [str UTF8String]; - unsigned char result[CC_MD5_DIGEST_LENGTH]; - CC_MD5(cStr, (uint32_t)strlen(cStr), result); - return [NSString stringWithFormat: - @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", - result[0], result[1], result[2], result[3], result[4], result[5], result[6], result[7], - result[8], result[9], result[10], result[11], result[12], result[13], result[14], result[15] - ]; - -} - -- (NSString *)md5 -{ - return [NSString md5String:self]; -} - --(NSString*)firstPinYin -{ - if ([self length] == 0) { - return [NSString stringWithFormat:@"%c",'[']; - } - - if ([self canBeConvertedToEncoding:NSASCIIStringEncoding]) {//it is english words - return [self substringToIndex:1]; - } - - unichar ch = [self characterAtIndex:0]; - char firstPinYin = ch; - if (ch < 'A' || ch > 'z' || (ch > 'Z' && ch < 'a') ) { - firstPinYin = pinyinFirstLetter(ch); - } - - return [NSString stringWithFormat:@"%c",firstPinYin]; -} - - -#pragma mark - Utils -+ (BOOL)isEmpty:(NSString *)string -{ - return string == nil || string.length == 0; -} - -- (BOOL)isWhitespaceAndNewlines -{ - NSCharacterSet* whitespace = [NSCharacterSet whitespaceAndNewlineCharacterSet]; - for (NSInteger i = 0; i < self.length; ++i) - { - unichar c = [self characterAtIndex:i]; - if (![whitespace characterIsMember:c]) - { - return NO; - } - } - return YES; -} - -- (NSString *)trim -{ - return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; -} - -- (NSString *)removeWhiteSpace -{ - return [[self componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] componentsJoinedByString:@""]; -} - -- (NSString *)removeNewLine -{ - return [[self componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@""]; -} - -- (NSString *)stringByUrlEncoding -{ - NSString *url = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8)); - - return url; -} - -- (NSString *)capitalize -{ - if (self == nil || [self length] == 0) return self; - return [[self substringToIndex:1].uppercaseString stringByAppendingString:[self substringFromIndex:1]]; -} - -- (BOOL)startsWith:(NSString *)str -{ - return [self startsWith:str Options:NSCaseInsensitiveSearch]; -} - -- (BOOL)startsWith:(NSString *)str Options:(NSStringCompareOptions)compareOptions -{ - return (str != nil) && ([str length] > 0) && ([self length] >= [str length]) - && ([self rangeOfString:str options:compareOptions].location == 0); -} - -- (BOOL)endsWith:(NSString *)str -{ - return [self endsWith:str Options:NSCaseInsensitiveSearch]; -} - -- (BOOL)endsWith:(NSString *)str Options:(NSStringCompareOptions)compareOptions -{ - return (str != nil) && ([str length] > 0) && ([self length] >= [str length]) - && ([self rangeOfString:str options:(compareOptions | NSBackwardsSearch)].location == ([self length] - [str length])); -} - -- (BOOL)containsString:(NSString *)str -{ - return [self containsString:str Options:NSCaseInsensitiveSearch]; -} - -- (BOOL)containsString:(NSString *)str Options:(NSStringCompareOptions)compareOptions -{ - return (str != nil) && ([str length] > 0) && ([self length] >= [str length]) && ([self rangeOfString:str options:compareOptions].location != NSNotFound); -} - -- (BOOL)equalsString:(NSString *)str -{ - return (str != nil) && ([self length] == [str length]) && ([self rangeOfString:str options:NSCaseInsensitiveSearch].location == 0); -} - -#pragma mark XML Extensions -+ (NSString *)encodeXMLCharactersIn:(NSString *)source -{ - if (![source isKindOfClass:[NSString class]] || !source) - { - return @""; - } - - NSString *result = [NSString stringWithString:source]; - - if ([result rangeOfString:@"&"].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@"&"] componentsJoinedByString:@"&"]; - } - - if ([result rangeOfString:@"<"].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@"<"] componentsJoinedByString:@"<"]; - } - - if ([result rangeOfString:@">"].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@">"] componentsJoinedByString:@">"]; - } - - if ([result rangeOfString:@"\""].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@"\""] componentsJoinedByString:@"""]; - } - - if ([result rangeOfString:@"'"].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@"'"] componentsJoinedByString:@"'"]; - } - - return result; -} - -+ (NSString *)decodeXMLCharactersIn:(NSString *)source -{ - if (![source isKindOfClass:[NSString class]] || !source) - { - return @""; - } - - NSString *result = [NSString stringWithString:source]; - - if ([result rangeOfString:@"&"].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@"&"] componentsJoinedByString:@"&"]; - } - - if ([result rangeOfString:@"<"].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@"<"] componentsJoinedByString:@"<"]; - } - - if ([result rangeOfString:@">"].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@">"] componentsJoinedByString:@">"]; - } - - if ([result rangeOfString:@"""].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@"""] componentsJoinedByString:@"\""]; - } - - if ([result rangeOfString:@"'"].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@"'"] componentsJoinedByString:@"'"]; - } - - if ([result rangeOfString:@" "].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@" "] componentsJoinedByString:@" "]; - } - - if ([result rangeOfString:@"“"].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@"“"] componentsJoinedByString:@"\""]; - } - - if ([result rangeOfString:@"”"].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@"”"] componentsJoinedByString:@"\""]; - } - - if ([result rangeOfString:@"'"].location != NSNotFound) - { - result = [[result componentsSeparatedByString:@"'"] componentsJoinedByString:@"'"]; - } - return result; -} - -/** - compare two version - @param sourVersion *.*.*.* - @param desVersion *.*.*.* - @returns No,sourVersion is less than desVersion; YES, the statue is opposed - */ -+(BOOL)compareVerison:(NSString *)sourVersion withDes:(NSString *)desVersion -{ - NSArray * sourArr = [sourVersion componentsSeparatedByString:@"."]; - NSArray * desArr = [desVersion componentsSeparatedByString:@"."]; - int sourInt, desInt; - NSMutableString * sourStr = [[NSMutableString alloc] init]; - NSMutableString * desStr = [[NSMutableString alloc] init]; - - if ([sourArr count] < [desArr count]) - { - return YES; - } - else - { - - } - - for (int i = 0; i < [sourArr count]; i ++) - { - [sourStr appendFormat:@"%@", [sourArr objectAtIndex:i]]; - [desStr appendFormat:@"%@", [desArr objectAtIndex:i]]; - } - sourInt = [sourStr intValue]; - desInt = [desStr intValue]; - if (sourInt < desInt) - { - return YES; - } - else - { - return NO; - } - return NO; - -} -#if kSupportGTM64 -#pragma mark - hashing -- (NSString *)base64Encoding -{ - NSData *stringData = [self dataUsingEncoding:NSUTF8StringEncoding]; - NSString *encodedString = [GTMBase64 stringByEncodingData:stringData]; - - return encodedString; -} -#endif - -#if kSupportNSDataCommon -/////////////////////////////////////////////////////////////////////////////////////////////////// -/** - * Calculate the md5 hash using CC_MD5. - * - * @returns md5 hash of this string. - */ -- (NSString*)md5Hash -{ - return [[self dataUsingEncoding:NSUTF8StringEncoding] md5Hash]; -} - - -/////////////////////////////////////////////////////////////////////////////////////////////////// -/** - * Calculate the SHA1 hash using CommonCrypto CC_SHA1. - * - * @returns SHA1 hash of this string. - */ -- (NSString*)sha1Hash -{ - return [[self dataUsingEncoding:NSUTF8StringEncoding] sha1Hash]; -} -#endif - -- (NSString *)valueOfLabel:(NSString *)label -{ - NSError *error = nil; - - NSString *reg = [NSString stringWithFormat:@"(?<=%@\\>).*(?= self.length) - { - return nil; - } - - if (rang.location + rang.length > self.length) - { - return nil; - } - - return [self substringWithRange:rang]; -} - -- (NSString *)emjoiText -{ - if (self.length) - { - - NSData *data = [self dataUsingEncoding:NSNonLossyASCIIStringEncoding]; - NSString *valueUnicode = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; - NSData *dataa = [valueUnicode dataUsingEncoding:NSUTF8StringEncoding]; - NSString *valueEmoj = [[NSString alloc] initWithData:dataa encoding:NSNonLossyASCIIStringEncoding]; - return valueEmoj; - } - else - { - return self; - } - -} - -- (NSUInteger)utf8Length -{ - size_t length = strlen([self UTF8String]); - return length; -} - -- (BOOL)isContainsEmoji; -{ - __block BOOL returnValue = NO; - - [self enumerateSubstringsInRange:NSMakeRange(0, [self length]) options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) { - const unichar hs = [substring characterAtIndex:0]; - if (0xd800 <= hs && hs <= 0xdbff) - { - if (substring.length > 1) - { - const unichar ls = [substring characterAtIndex:1]; - const int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000; - if (0x1d000 <= uc && uc <= 0x1f77f) - { - returnValue = YES; - } - } - } - else if (substring.length > 1) - { - const unichar ls = [substring characterAtIndex:1]; - if (ls == 0x20e3) - { - returnValue = YES; - } - } - else - { - if (0x2100 <= hs && hs <= 0x27ff) - { - returnValue = YES; - } - else if (0x2B05 <= hs && hs <= 0x2b07) - { - returnValue = YES; - } - else if (0x2934 <= hs && hs <= 0x2935) - { - returnValue = YES; - } - else if (0x3297 <= hs && hs <= 0x3299) - { - returnValue = YES; - } - else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030 || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b || hs == 0x2b50) - { - returnValue = YES; - } - } - - *stop = returnValue; - }]; - - return returnValue; -} - -//递归计算符合规定的文本长度 -- (NSString *)cutBeyondTextInLength:(NSInteger)maxLenth -{ - size_t length = strlen([self UTF8String]); - if (length > maxLenth) - { - NSString *text = [self substringToIndex:self.length - 1]; - return [text cutBeyondTextInLength:maxLenth]; - } - else - { - return self; - } -} - -//判断当前系统语言是否为英文 -+ (BOOL)isCurrentLanguageEnglish -{ - NSArray *languages = [NSLocale preferredLanguages]; - NSString *currentLanguage = [languages objectAtIndex:0]; - if ([currentLanguage hasPrefix:@"en"]) - { - return YES; - } - return NO; -} - -@end - -#if TARGET_OS_IOS -#import "NSString+UISize.m" -#endif diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSString+UISize.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSString+UISize.h deleted file mode 100644 index e07297c7..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSString+UISize.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// NSString+UISize.h -// TXLiteAVDemo -// -// Created by cui on 2018/12/17. -// Copyright © 2018 Tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface NSString (UISize) - -- (CGSize)textSizeIn:(CGSize)size font:(UIFont *)font; -- (CGSize)textSizeIn:(CGSize)size font:(UIFont *)font breakMode:(NSLineBreakMode)breakMode; -- (CGSize)textSizeIn:(CGSize)size font:(UIFont *)font breakMode:(NSLineBreakMode)breakMode align:(NSTextAlignment)alignment; - - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSString+UISize.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSString+UISize.m deleted file mode 100644 index fccf2ff2..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/NSString+UISize.m +++ /dev/null @@ -1,40 +0,0 @@ -// -// NSString+UISize.m -// TXLiteAVDemo -// -// Created by cui on 2018/12/17. -// Copyright © 2018 Tencent. All rights reserved. -// - -#import "NSString+UISize.h" - -@implementation NSString (UISize) - -- (CGSize)textSizeIn:(CGSize)size font:(UIFont *)font -{ - return [self textSizeIn:size font:font breakMode:NSLineBreakByWordWrapping]; -} - -- (CGSize)textSizeIn:(CGSize)size font:(UIFont *)afont breakMode:(NSLineBreakMode)breakMode -{ - return [self textSizeIn:size font:afont breakMode:NSLineBreakByWordWrapping align:NSTextAlignmentLeft]; -} - -- (CGSize)textSizeIn:(CGSize)size font:(UIFont *)afont breakMode:(NSLineBreakMode)abreakMode align:(NSTextAlignment)alignment -{ - NSLineBreakMode breakMode = abreakMode; - UIFont *font = afont; - - CGSize contentSize = CGSizeZero; - - NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; - paragraphStyle.lineBreakMode = breakMode; - paragraphStyle.alignment = alignment; - - NSDictionary* attributes = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paragraphStyle}; - contentSize = [self boundingRectWithSize:size options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) attributes:attributes context:nil].size; - contentSize = CGSizeMake((int)contentSize.width + 1, (int)contentSize.height + 1); - return contentSize; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIButton+Additions.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIButton+Additions.h deleted file mode 100755 index 4c531fa6..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIButton+Additions.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// UIButton+Additions.h -// RacingUKiPad -// -// Created by Neil Edwards on 26/09/2013. -// Copyright (c) 2013 racinguk. All rights reserved. -// - -#import - -@interface UIButton (Additions) - -@property (nonatomic, readwrite, strong) NSObject *dataProvider; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIButton+Additions.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIButton+Additions.m deleted file mode 100755 index 17c7480e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIButton+Additions.m +++ /dev/null @@ -1,24 +0,0 @@ -// -// UIButton+Additions.m -// RacingUKiPad -// -// Created by Neil Edwards on 26/09/2013. -// Copyright (c) 2013 racinguk. All rights reserved. -// - -#import "UIButton+Additions.h" -#import - -@implementation UIButton (Additions) - -static char dataProviderKey; - -- (NSObject *)dataProvider { - return objc_getAssociatedObject(self, &dataProviderKey); -} - -- (void)setDataProvider:(NSObject *)dataProvider { - objc_setAssociatedObject(self, &dataProviderKey, dataProvider, OBJC_ASSOCIATION_RETAIN); -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIButton+Glossy.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIButton+Glossy.h deleted file mode 100755 index fe737420..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIButton+Glossy.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - - -@interface UIButton (Glossy) - -+ (void)setPathToRoundedRect:(CGRect)rect forInset:(NSUInteger)inset inContext:(CGContextRef)context; -+ (void)drawGlossyRect:(CGRect)rect withColor:(UIColor*)color inContext:(CGContextRef)context; -+ (void)setBackgroundToGlossyButton:(UIButton*)button forColor:(UIColor*)color withBorder:(BOOL)border forState:(UIControlState)state; - -@end - diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIButton+Glossy.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIButton+Glossy.m deleted file mode 100755 index 191e15da..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIButton+Glossy.m +++ /dev/null @@ -1,304 +0,0 @@ -#import "UIButton+Glossy.h" - - -typedef struct -{ - float color[4]; - float caustic[4]; - float expCoefficient; - float expOffset; - float expScale; - float initialWhite; - float finalWhite; -} GlossyParams; - - -static void rgb_to_hsv(const float* inputComponents, float* outputComponents) -{ - // Unpack r,g,b for conciseness - double r = inputComponents[0]; - double g = inputComponents[1]; - double b = inputComponents[2]; - - // Rather tediously, find the min and max values, and the max component - char max_elt = 'r'; - double max_val=r, min_val=r; - if (g > max_val) - { - max_val = g; - max_elt = 'g'; - } - if (b > max_val) - { - max_val = b; - max_elt = 'b'; - } - if (g < min_val) min_val = g; - if (b < min_val) min_val = b; - - // Cached - double max_minus_min = max_val - min_val; - - // Calculate h as a degree (0 - 360) measurement - double h = 0; - switch (max_elt) - { - case 'r': - h = !max_minus_min?0:60*(g-b)/max_minus_min + 360; - if (h >= 360) h -= 360; - break; - case 'g': - h = !max_minus_min?0:60*(b-r)/max_minus_min + 120; - break; - case 'b': - default: - h = !max_minus_min?0:60*(r-g)/max_minus_min + 240; - break; - } - - // Normalize h - h /= 360; - - // Calculate s - double s = 0; - if (max_val) s = max_minus_min/max_val; - - // Store HSV triple; v is just the max - outputComponents[0] = h; - outputComponents[1] = s; - outputComponents[2] = max_val; -} - - -static float perceptualGlossFractionForColor(float* inputComponents) -{ - static const float REFLECTION_SCALE_NUMBER = 0.2; - static const float NTSC_RED_FRACTION = 0.299; - static const float NTSC_GREEN_FRACTION = 0.587; - static const float NTSC_BLUE_FRACTION = 0.114; - - float glossScale = NTSC_RED_FRACTION * inputComponents[0] + - NTSC_GREEN_FRACTION * inputComponents[1] + - NTSC_BLUE_FRACTION * inputComponents[2]; - - return pow(glossScale, REFLECTION_SCALE_NUMBER); -} - - -static void perceptualCausticColorForColor(float* inputComponents, float* outputComponents) -{ - static const float CAUSTIC_FRACTION = 0.35; - static const float COSINE_ANGLE_SCALE = 1.4; - static const float MIN_RED_THRESHOLD = 0.95; - static const float MAX_BLUE_THRESHOLD = 0.7; - static const float GRAYSCALE_CAUSTIC_SATURATION = 0.2; - - float temp[3]; - - rgb_to_hsv(inputComponents, temp); - float hue=temp[0], saturation=temp[1], brightness=temp[2]; - - rgb_to_hsv(CGColorGetComponents([[UIColor yellowColor] CGColor]), temp); - float targetHue=temp[0], targetBrightness=temp[2]; - - if (saturation < 1e-3) - { - hue = targetHue; - saturation = GRAYSCALE_CAUSTIC_SATURATION; - } - - if (hue > MIN_RED_THRESHOLD) - { - hue -= 1.0; - } - else if (hue > MAX_BLUE_THRESHOLD) - { - rgb_to_hsv(CGColorGetComponents([[UIColor magentaColor] CGColor]), temp); - targetHue=temp[0], targetBrightness=temp[2]; - } - - float scaledCaustic = CAUSTIC_FRACTION * 0.5 * (1.0 + cos(COSINE_ANGLE_SCALE * M_PI * (hue - targetHue))); - UIColor* caustic = [UIColor colorWithHue:hue * (1.0 - scaledCaustic) + targetHue * scaledCaustic - saturation:saturation - brightness:brightness * (1.0 - scaledCaustic) + targetBrightness * scaledCaustic - alpha:inputComponents[3]]; - - const CGFloat* causticComponents = CGColorGetComponents([caustic CGColor]); - for (int j = 3; j >= 0; j--) outputComponents[j] = causticComponents[j]; -} - - -static void calc_glossy_color(void* info, const float* in, float* out) -{ - GlossyParams* params = (GlossyParams*) info; - float progress = *in; - - if (progress < 0.5) - { - progress = progress * 2.0; - - progress = 1.0 - params->expScale * (expf(progress * -params->expCoefficient) - params->expOffset); - - float currentWhite = progress * (params->finalWhite - params->initialWhite) + params->initialWhite; - - out[0] = params->color[0] * (1.0 - currentWhite) + currentWhite; - out[1] = params->color[1] * (1.0 - currentWhite) + currentWhite; - out[2] = params->color[2] * (1.0 - currentWhite) + currentWhite; - out[3] = params->color[3] * (1.0 - currentWhite) + currentWhite; - } - else - { - progress = (progress - 0.5) * 2.0; - - progress = params->expScale * (expf((1.0 - progress) * -params->expCoefficient) - params->expOffset); - - out[0] = params->color[0] * (1.0 - progress) + params->caustic[0] * progress; - out[1] = params->color[1] * (1.0 - progress) + params->caustic[1] * progress; - out[2] = params->color[2] * (1.0 - progress) + params->caustic[2] * progress; - out[3] = params->color[3] * (1.0 - progress) + params->caustic[3] * progress; - } -} - - -@implementation UIButton (Glossy) - -+ (void)setPathToRoundedRect:(CGRect)rect forInset:(NSUInteger)inset inContext:(CGContextRef)context -{ - // Experimentally determined - static const NSUInteger cornerRadius = 8; - - // Unpack size for compactness, find minimum dimension - CGFloat w = rect.size.width; - CGFloat h = rect.size.height; - CGFloat m = w0.5*m)?(0.5*m):d; - - // Define a CW path in the CG co-ordinate system (origin at LL) - CGContextBeginPath(context); - CGContextMoveToPoint(context, (l+r)/2, t); // Begin at TDC - CGContextAddArcToPoint(context, r, t, r, b, d); // UR corner - CGContextAddArcToPoint(context, r, b, l, b, d); // LR corner - CGContextAddArcToPoint(context, l, b, l, t, d); // LL corner - CGContextAddArcToPoint(context, l, t, r, t, d); // UL corner - CGContextClosePath(context); // End at TDC -} - - -+ (void)drawGlossyRect:(CGRect)rect withColor:(UIColor*)color inContext:(CGContextRef)context -{ - static const float EXP_COEFFICIENT = 4.0; - static const float REFLECTION_MAX = 0.80; - static const float REFLECTION_MIN = 0.20; - - static const CGFloat normalizedRanges[8] = {0, 1, 0, 1, 0, 1, 0, 1}; - static const CGFunctionCallbacks callbacks = {0, calc_glossy_color, NULL}; - - // Prepare gradient configuration struct - GlossyParams params; - // Set the base color - const CGFloat* colorComponents = CGColorGetComponents([color CGColor]); - int j = (int) CGColorGetNumberOfComponents([color CGColor]); - if (j == 4) - { - for (j--; j >= 0; j--) params.color[j] = colorComponents[j]; - } - else if (j == 2) - { - for (; j >= 0; j--) params.color[j] = colorComponents[0]; - params.color[3] = colorComponents[1]; - } - else - { - // I dunno - return; - } - // Set the caustic color - perceptualCausticColorForColor(params.color, params.caustic); - // Set the exponent curve parameters - params.expCoefficient = EXP_COEFFICIENT; - params.expOffset = expf(-params.expCoefficient); - params.expScale = 1.0/(1.0 - params.expOffset); - // Set the highlight intensities - float glossScale = perceptualGlossFractionForColor(params.color); - params.initialWhite = glossScale * REFLECTION_MAX; - params.finalWhite = glossScale * REFLECTION_MIN; - - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGFunctionRef function = CGFunctionCreate(¶ms, 1, normalizedRanges, 4, normalizedRanges, &callbacks); - - CGPoint sp = CGPointMake(CGRectGetMidX(rect), CGRectGetMaxY(rect)); - CGPoint ep = CGPointMake(CGRectGetMidX(rect), CGRectGetMinY(rect)); - CGShadingRef shader = CGShadingCreateAxial(colorSpace, sp, ep, function, NO, NO); - - CGFunctionRelease(function); - CGColorSpaceRelease(colorSpace); - - CGContextDrawShading(context, shader); - CGShadingRelease(shader); -} - - -+ (void)setBackgroundToGlossyButton:(UIButton*)button forColor:(UIColor*)color withBorder:(BOOL)border forState:(UIControlState)state{ - static const float MIN_SIZE = 4; - - // Get and check size - CGSize size = button.frame.size; - if ((size.width < MIN_SIZE) || (size.height < MIN_SIZE)) return; - - // Create and get a pointer to context - UIGraphicsBeginImageContext(size); - CGContextRef context = UIGraphicsGetCurrentContext(); - - // Convert co-ordinate system to Cocoa's (origin in UL, not LL) - CGContextTranslateCTM(context, 0, size.height); - CGContextConcatCTM(context, CGAffineTransformMakeScale(1, -1)); - - // Set stroke color - CGContextSetStrokeColorWithColor(context, [[UIColor colorWithRed:159.0/255 green:159.0/255 blue:159.0/255 alpha:1] CGColor]); - - // Draw background image - if (border) - { - // Draw border - [UIButton setPathToRoundedRect:CGRectMake(0.5, 0.5, size.width-1, size.height-1) forInset:0 inContext:context]; - CGContextStrokePath(context); - - // Prepare clipping region - [UIButton setPathToRoundedRect:CGRectMake(1, 1, size.width-2, size.height-2) forInset:1 inContext:context]; - CGContextClip(context); - - // Draw glossy image - [UIButton drawGlossyRect:CGRectMake(1, 1, size.width-2, size.height-2) withColor:color inContext:context]; - } - else - { - // Prepare clipping region - [UIButton setPathToRoundedRect:CGRectMake(0, 0, size.width, size.height) forInset:0 inContext:context]; - CGContextClip(context); - - // Draw glossy image - [UIButton drawGlossyRect:CGRectMake(0, 0, size.width, size.height) withColor:color inContext:context]; - } - - // Create and assign image - [button setBackgroundImage:UIGraphicsGetImageFromCurrentImageContext() forState:state]; - - // Release image context - UIGraphicsEndImageContext(); -} - - - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIColor+MLPFlatColors.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIColor+MLPFlatColors.h deleted file mode 100755 index a49c9cdb..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIColor+MLPFlatColors.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -// UIColor+MLPFlatColors.h -// -// -// Created by Eddy Borja on 4/10/13. -// Copyright (c) 2013 Mainloop LLC. All rights reserved. -// - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#import -#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \ - green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \ - blue:((float)(rgbValue & 0xFF))/255.0 \ - alpha:1.0] - -@interface UIColor (MLPFlatColors) - -+ (UIColor *)flatRedColor; -+ (UIColor *)flatDarkRedColor; - -+ (UIColor *)flatGreenColor; -+ (UIColor *)flatDarkGreenColor; - -+ (UIColor *)flatBlueColor; -+ (UIColor *)flatDarkBlueColor; - -+ (UIColor *)flatTealColor; -+ (UIColor *)flatDarkTealColor; - -+ (UIColor *)flatPurpleColor; -+ (UIColor *)flatDarkPurpleColor; - -+ (UIColor *)flatBlackColor; -+ (UIColor *)flatDarkBlackColor; - -+ (UIColor *)flatYellowColor; -+ (UIColor *)flatDarkYellowColor; - -+ (UIColor *)flatOrangeColor; -+ (UIColor *)flatDarkOrangeColor; - -+ (UIColor *)flatWhiteColor; -+ (UIColor *)flatDarkWhiteColor; - -+ (UIColor *)flatGrayColor; -+ (UIColor *)flatDarkGrayColor; - -+ (UIColor *)randomFlatColor; -+ (UIColor *)randomFlatLightColor; -+ (UIColor *)randomFlatDarkColor; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIColor+MLPFlatColors.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIColor+MLPFlatColors.m deleted file mode 100755 index 2a3ff721..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIColor+MLPFlatColors.m +++ /dev/null @@ -1,247 +0,0 @@ -/* -// UIColor+MLPFlatColors.m -// -// -// Created by Eddy Borja on 4/10/13. -// Copyright (c) 2013 Mainloop LLC. All rights reserved. -// - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - - -#import "UIColor+MLPFlatColors.h" - -@implementation UIColor (MLPFlatColors) - -#pragma mark - Red -+ (UIColor *)flatRedColor -{ - return UIColorFromRGB(0xE74C3C); -} -+ (UIColor *)flatDarkRedColor -{ - return UIColorFromRGB(0xC0392B); -} - -#pragma mark - Green -+ (UIColor *)flatGreenColor -{ - return UIColorFromRGB(0x2ECC71); -} -+ (UIColor *)flatDarkGreenColor -{ - return UIColorFromRGB(0x27AE60); -} - - -#pragma mark - Blue -+ (UIColor *)flatBlueColor -{ - return UIColorFromRGB(0x3498DB); -} -+ (UIColor *)flatDarkBlueColor -{ - return UIColorFromRGB(0x2980B9); -} - - -#pragma mark - Teal -+ (UIColor *)flatTealColor -{ - return UIColorFromRGB(0x1ABC9C); -} -+ (UIColor *)flatDarkTealColor -{ - return UIColorFromRGB(0x16A085); -} - -#pragma mark - Purple -+ (UIColor *)flatPurpleColor -{ - return UIColorFromRGB(0x9B59B6); -} -+ (UIColor *)flatDarkPurpleColor -{ - return UIColorFromRGB(0x8E44AD); -} - - -#pragma mark - Yellow -+ (UIColor *)flatYellowColor -{ - return UIColorFromRGB(0xF1C40F); -} -+ (UIColor *)flatDarkYellowColor -{ - return UIColorFromRGB(0xF39C12); -} - - -#pragma mark - Orange -+ (UIColor *)flatOrangeColor -{ - return UIColorFromRGB(0xE67E22); -} -+ (UIColor *)flatDarkOrangeColor -{ - return UIColorFromRGB(0xD35400); -} - - - -#pragma mark - Gray -+ (UIColor *)flatGrayColor -{ - return UIColorFromRGB(0x95A5A6); -} - -+ (UIColor *)flatDarkGrayColor -{ - return UIColorFromRGB(0x7F8C8D); -} - - - -#pragma mark - White -+ (UIColor *)flatWhiteColor -{ - return UIColorFromRGB(0xECF0F1); -} - -+ (UIColor *)flatDarkWhiteColor -{ - return UIColorFromRGB(0xBDC3C7); -} - - - -#pragma mark - Black -+ (UIColor *)flatBlackColor -{ - return UIColorFromRGB(0x34495E); -} - -+ (UIColor *)flatDarkBlackColor -{ - return UIColorFromRGB(0x2C3E50); -} - - - -#pragma mark - Random -+ (UIColor *)randomFlatColor -{ - return [UIColor randomFlatColorIncludeLightShades:YES darkShades:YES]; -} - -+ (UIColor *)randomFlatLightColor -{ - return [UIColor randomFlatColorIncludeLightShades:YES darkShades:NO]; -} - -+ (UIColor *)randomFlatDarkColor -{ - return [UIColor randomFlatColorIncludeLightShades:NO darkShades:YES]; -} - -+ (UIColor *)randomFlatColorIncludeLightShades:(BOOL)useLightShades - darkShades:(BOOL)useDarkShades; -{ - const NSInteger numberOfLightColors = 10; - const NSInteger numberOfDarkColors = 10; - NSAssert(useLightShades || useDarkShades, @"Must choose random color using at least light shades or dark shades."); - - - u_int32_t numberOfColors = 0; - if(useLightShades){ - numberOfColors += numberOfLightColors; - } - if(useDarkShades){ - numberOfColors += numberOfDarkColors; - } - - u_int32_t chosenColor = arc4random_uniform(numberOfColors); - - if(!useLightShades){ - chosenColor += numberOfLightColors; - } - - UIColor *color = [UIColor clearColor]; - switch (chosenColor) { - case 0: - color = [UIColor flatRedColor]; - break; - case 1: - color = [UIColor flatGreenColor]; - break; - case 2: - color = [UIColor flatBlueColor]; - break; - case 3: - color = [UIColor flatTealColor]; - break; - case 4: - color = [UIColor flatPurpleColor]; - break; - case 5: - color = [UIColor flatYellowColor]; - break; - case 6: - color = [UIColor flatOrangeColor]; - break; - case 7: - color = [UIColor flatGrayColor]; - break; - case 8: - color = [UIColor flatWhiteColor]; - break; - case 9: - color = [UIColor flatBlackColor]; - break; - case 10: - color = [UIColor flatDarkRedColor]; - break; - case 11: - color = [UIColor flatDarkGreenColor]; - break; - case 12: - color = [UIColor flatDarkBlueColor]; - break; - case 13: - color = [UIColor flatDarkTealColor]; - break; - case 14: - color = [UIColor flatDarkPurpleColor]; - break; - case 15: - color = [UIColor flatDarkYellowColor]; - break; - case 16: - color = [UIColor flatDarkOrangeColor]; - break; - case 17: - color = [UIColor flatDarkGrayColor]; - break; - case 18: - color = [UIColor flatDarkWhiteColor]; - break; - case 19: - color = [UIColor flatDarkBlackColor]; - break; - case 20: - default: - NSAssert(0, @"Unrecognized color selected as random color"); - break; - } - - return color; -} - - - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIImage+Additions.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIImage+Additions.h deleted file mode 100755 index 4e0294f1..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIImage+Additions.h +++ /dev/null @@ -1,147 +0,0 @@ -// -// UIImage+Additions.h -// Created by Joan Martin. -// Take a look to my repos at http://github.com/vilanovi -// -// Copyright (c) 2013 Joan Martin, vilanovi@gmail.com. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#import - -typedef struct __UICornerInset -{ - CGFloat topLeft; - CGFloat topRight; - CGFloat bottomLeft; - CGFloat bottomRight; -} UICornerInset; - -UIKIT_EXTERN const UICornerInset UICornerInsetZero; - -UIKIT_STATIC_INLINE UICornerInset UICornerInsetMake(CGFloat topLeft, CGFloat topRight, CGFloat bottomLeft, CGFloat bottomRight) -{ - UICornerInset cornerInset = {topLeft, topRight, bottomLeft, bottomRight}; - return cornerInset; -} - -UIKIT_STATIC_INLINE UICornerInset UICornerInsetMakeWithRadius(CGFloat radius) -{ - UICornerInset cornerInset = {radius, radius, radius, radius}; - return cornerInset; -} - -UIKIT_STATIC_INLINE BOOL UICornerInsetEqualToCornerInset(UICornerInset cornerInset1, UICornerInset cornerInset2) -{ - return - cornerInset1.topLeft == cornerInset2.topLeft && - cornerInset1.topRight == cornerInset2.topRight && - cornerInset1.bottomLeft == cornerInset2.bottomLeft && - cornerInset1.bottomRight == cornerInset2.bottomRight; -} - -FOUNDATION_EXTERN NSString* NSStringFromUICornerInset(UICornerInset cornerInset); - -typedef enum __UIImageTintedStyle -{ - UIImageTintedStyleKeepingAlpha = 1, - UIImageTintedStyleOverAlpha = 2 -} UIImageTintedStyle; - -typedef enum __UIImageGradientDirection -{ - UIImageGradientDirectionVertical = 1, - UIImageGradientDirectionHorizontal = 2, -} UIImageGradientDirection; - -@interface UIImage (Additions) - -/* - * Create images from colors - */ -+ (UIImage*)imageWithColor:(UIColor*)color size:(CGSize)size; -+ (UIImage*)imageWithColor:(UIColor*)color size:(CGSize)size cornerRadius:(CGFloat)cornerRadius; -+ (UIImage*)imageWithColor:(UIColor*)color size:(CGSize)size cornerInset:(UICornerInset)cornerInset; - -/* - * Create rezisable images from colors - */ -+ (UIImage*)resizableImageWithColor:(UIColor*)color; -+ (UIImage*)resizableImageWithColor:(UIColor*)color cornerRadius:(CGFloat)cornerRadius; -+ (UIImage*)resizableImageWithColor:(UIColor*)color cornerInset:(UICornerInset)cornerInset; - -+ (UIImage*)blackColorImage; -+ (UIImage*)darkGrayColorImage; -+ (UIImage*)lightGrayColorImage; -+ (UIImage*)whiteColorImage; -+ (UIImage*)grayColorImage; -+ (UIImage*)redColorImage; -+ (UIImage*)greenColorImage; -+ (UIImage*)blueColorImage; -+ (UIImage*)cyanColorImage; -+ (UIImage*)yellowColorImage; -+ (UIImage*)magentaColorImage; -+ (UIImage*)orangeColorImage; -+ (UIImage*)purpleColorImage; -+ (UIImage*)brownColorImage; -+ (UIImage*)clearColorImage; - -/* - * Tint Images - */ -+ (UIImage*)imageNamed:(NSString *)name tintColor:(UIColor*)color style:(UIImageTintedStyle)tintStyle; -- (UIImage*)tintedImageWithColor:(UIColor*)color style:(UIImageTintedStyle)tintStyle; - -/* - * Rounding corners - */ -- (UIImage*)imageWithRoundedBounds; -- (UIImage*)imageWithCornerRadius:(CGFloat)cornerRadius; -- (UIImage*)imageWithCornerInset:(UICornerInset)cornerInset; -- (BOOL)isValidCornerInset:(UICornerInset)cornerInset; - -/* - * Drawing image on image - */ -- (UIImage*)imageAddingImage:(UIImage*)image; -- (UIImage*)imageAddingImage:(UIImage*)image offset:(CGPoint)offset; - -/* - * Gradient image generation - */ -+ (UIImage*)imageWithGradient:(NSArray*)colors size:(CGSize)size direction:(UIImageGradientDirection)direction; -+ (UIImage*)resizableImageWithGradient:(NSArray*)colors size:(CGSize)size direction:(UIImageGradientDirection)direction; - - -/* - * tint只对里面的图案作更改颜色操作 - */ -- (UIImage *)imageWithTintColor:(UIColor *)tintColor; -- (UIImage *)imageWithTintColor:(UIColor *)tintColor blendMode:(CGBlendMode)blendMode; -- (UIImage *)imageWithGradientTintColor:(UIColor *)tintColor; - -@end - -#pragma mark - Categories - -@interface NSValue (UICornerInset) - -+ (NSValue*)valueWithUICornerInset:(UICornerInset)cornerInset; -- (UICornerInset)UICornerInsetValue; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIImage+Additions.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIImage+Additions.m deleted file mode 100755 index dec3a065..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIImage+Additions.m +++ /dev/null @@ -1,638 +0,0 @@ -// -// UIImage+Additions.m -// Created by Joan Martin. -// Take a look to my repos at http://github.com/vilanovi -// -// Copyright (c) 2013 Joan Martin, vilanovi@gmail.com. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -// of the Software, and to permit persons to whom the Software is furnished to do -// so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE - -#import "UIImage+Additions.h" - -@interface NSString (MD5Hashing) - -- (NSString*)md5; - -@end - -#import - -@implementation NSString (MD5Hashing) - -- (NSString *)md5 -{ - const char *cStr = [self UTF8String]; - unsigned char result[16]; - - CC_MD5(cStr, (CC_LONG)strlen(cStr), result); - - return [NSString stringWithFormat: - @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", - result[0], result[1], result[2], result[3], - result[4], result[5], result[6], result[7], - result[8], result[9], result[10], result[11], - result[12], result[13], result[14], result[15] - ]; -} - -@end - -const UICornerInset UICornerInsetZero = {0.0f, 0.0f, 0.0f, 0.0f}; - -NSString* NSStringFromUICornerInset(UICornerInset cornerInset) -{ - return [NSString stringWithFormat:@"UICornerInset ",cornerInset.topLeft, cornerInset.topRight, cornerInset.bottomLeft, cornerInset.bottomRight]; -} - -static NSCache * _imageCache = nil; - -static NSString * kUIImageName = @"kUIImageName"; -static NSString * kUIImageResizableImage = @"kUIImageResizableImage"; -static NSString * kUIImageColors = @"kUIImageColors"; -static NSString * kUIImageTintColor = @"kUIImageTintColor"; -static NSString * kUIImageTintStyle = @"kUIImageTintStyle"; -static NSString * kUIImageCornerInset = @"kUIImageCornerInset"; -static NSString * kUIImageGradientDirection = @"kUIImageGradientDirection"; -static NSString * kUIImageSize = @"kUIImageSize"; - -@implementation UIImage (Additions) - -+ (UIImage*)imageWithColor:(UIColor*)color size:(CGSize)size -{ - return [self imageWithColor:color size:size cornerInset:UICornerInsetZero]; -} - -+ (UIImage*)imageWithColor:(UIColor*)color size:(CGSize)size cornerRadius:(CGFloat)cornerRadius -{ - return [self imageWithColor:color size:size cornerInset:UICornerInsetMake(cornerRadius, cornerRadius, cornerRadius, cornerRadius)]; -} - -+ (UIImage*)imageWithColor:(UIColor*)color size:(CGSize)size cornerInset:(UICornerInset)cornerInset -{ - return [self _imageWithColor:color size:size cornerInset:cornerInset saveInCache:YES]; -} - -+ (UIImage*)resizableImageWithColor:(UIColor*)color -{ - return [self resizableImageWithColor:color cornerInset:UICornerInsetZero]; -} - -+ (UIImage*)resizableImageWithColor:(UIColor*)color cornerRadius:(CGFloat)cornerRadius -{ - return [self resizableImageWithColor:color cornerInset:UICornerInsetMake(cornerRadius, cornerRadius, cornerRadius, cornerRadius)]; -} - -+ (UIImage*)resizableImageWithColor:(UIColor*)color cornerInset:(UICornerInset)cornerInset -{ - if (!color) - return nil; - - NSDictionary *descriptors = @{kUIImageColors : @[color], - kUIImageResizableImage : @YES, - kUIImageCornerInset : [NSValue valueWithUICornerInset:cornerInset]}; - - UIImage *image = [self _cachedImageWithDescriptors:descriptors]; - - if (image) - return image; - - CGSize size = CGSizeMake(MAX(cornerInset.topLeft, cornerInset.bottomLeft) + MAX(cornerInset.topRight, cornerInset.bottomRight) + 1, - MAX(cornerInset.topLeft, cornerInset.topRight) + MAX(cornerInset.bottomLeft, cornerInset.bottomRight) + 1); - - UIEdgeInsets capInsets = UIEdgeInsetsMake(MAX(cornerInset.topLeft, cornerInset.topRight), - MAX(cornerInset.topLeft, cornerInset.bottomLeft), - MAX(cornerInset.bottomLeft, cornerInset.bottomRight), - MAX(cornerInset.topRight, cornerInset.bottomRight)); - - image = [[self imageWithColor:color size:size cornerInset:cornerInset] resizableImageWithCapInsets:capInsets]; - - [self _cacheImage:image withDescriptors:descriptors]; - - return image; -} - -+ (UIImage*)blackColorImage -{ - return [self resizableImageWithColor:[UIColor blackColor]]; -} - -+ (UIImage*)darkGrayColorImage -{ - return [self resizableImageWithColor:[UIColor darkGrayColor]]; -} - -+ (UIImage*)lightGrayColorImage -{ - return [self resizableImageWithColor:[UIColor lightGrayColor]]; -} - -+ (UIImage*)whiteColorImage -{ - return [self resizableImageWithColor:[UIColor whiteColor]]; -} - -+ (UIImage*)grayColorImage -{ - return [self resizableImageWithColor:[UIColor grayColor]]; -} - -+ (UIImage*)redColorImage -{ - return [self resizableImageWithColor:[UIColor redColor]]; -} - -+ (UIImage*)greenColorImage -{ - return [self resizableImageWithColor:[UIColor greenColor]]; -} - -+ (UIImage*)blueColorImage -{ - return [self resizableImageWithColor:[UIColor blueColor]]; -} - -+ (UIImage*)cyanColorImage -{ - return [self resizableImageWithColor:[UIColor cyanColor]]; -} - -+ (UIImage*)yellowColorImage -{ - return [self resizableImageWithColor:[UIColor yellowColor]]; -} - -+ (UIImage*)magentaColorImage -{ - return [self resizableImageWithColor:[UIColor magentaColor]]; -} - -+ (UIImage*)orangeColorImage -{ - return [self resizableImageWithColor:[UIColor orangeColor]]; -} - -+ (UIImage*)purpleColorImage -{ - return [self resizableImageWithColor:[UIColor purpleColor]]; -} - -+ (UIImage*)brownColorImage -{ - return [self resizableImageWithColor:[UIColor brownColor]]; -} - -+ (UIImage*)clearColorImage -{ - return [self resizableImageWithColor:[UIColor clearColor]]; -} - -+ (UIImage*)imageNamed:(NSString *)name tintColor:(UIColor*)color style:(UIImageTintedStyle)tintStyle -{ - if (!name) - return nil; - - UIImage *image = [UIImage imageNamed:name]; - - if (!image) - return nil; - - if (!color) - return image; - - NSDictionary *descriptors = @{kUIImageName : name, - kUIImageTintColor : color, - kUIImageTintStyle : @(tintStyle)}; - - UIImage *tintedImage = [self _cachedImageWithDescriptors:descriptors]; - - if (!tintedImage) - { - tintedImage = [image tintedImageWithColor:color style:tintStyle]; - [self _cacheImage:tintedImage withDescriptors:descriptors]; - } - - return tintedImage; -} - -- (UIImage*)tintedImageWithColor:(UIColor*)color style:(UIImageTintedStyle)tintStyle -{ - if (!color) - return self; - - CGFloat scale = self.scale; - CGSize size = CGSizeMake(scale * self.size.width, scale * self.size.height); - - UIGraphicsBeginImageContext(size); - - CGContextRef context = UIGraphicsGetCurrentContext(); - - CGContextTranslateCTM(context, 0, size.height); - CGContextScaleCTM(context, 1.0, -1.0); - - CGRect rect = CGRectMake(0, 0, size.width, size.height); - // --- - - if (tintStyle == UIImageTintedStyleOverAlpha) - { - [color setFill]; - CGContextFillRect(context, rect); - } - - // draw alpha-mask - CGContextSetBlendMode(context, kCGBlendModeNormal); - CGContextDrawImage(context, rect, self.CGImage); - - if (tintStyle == UIImageTintedStyleKeepingAlpha) - { - CGContextSetBlendMode(context, kCGBlendModeSourceIn); - [color setFill]; - CGContextFillRect(context, rect); - } - - // --- - CGImageRef bitmapContext = CGBitmapContextCreateImage(context); - - UIImage *coloredImage = [UIImage imageWithCGImage:bitmapContext scale:scale orientation:UIImageOrientationUp]; - - CGImageRelease(bitmapContext); - - UIGraphicsEndImageContext(); - - return coloredImage; -} - -- (UIImage*)imageWithRoundedBounds -{ - CGSize size = self.size; - CGFloat radius = MIN(size.width, size.height) / 2.0; - return [self imageWithCornerRadius:radius]; -} - -- (UIImage*)imageWithCornerRadius:(CGFloat)cornerRadius -{ - return [self imageWithCornerInset:UICornerInsetMake(cornerRadius, cornerRadius, cornerRadius, cornerRadius)]; -} - -- (UIImage *)imageWithCornerInset:(UICornerInset)cornerInset -{ - if (![self isValidCornerInset:cornerInset]) - return nil; - - CGFloat scale = self.scale; - - CGRect rect = CGRectMake(0.0f, 0.0f, scale*self.size.width, scale*self.size.height); - - cornerInset.topRight *= scale; - cornerInset.topLeft *= scale; - cornerInset.bottomLeft *= scale; - cornerInset.bottomRight *= scale; - - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGContextRef context = CGBitmapContextCreate(NULL, rect.size.width, rect.size.height, 8, 0, colorSpace, (CGBitmapInfo)kCGImageAlphaPremultipliedLast); - CGColorSpaceRelease(colorSpace); - - if (context == NULL) - return nil; - - CGFloat minx = CGRectGetMinX(rect), midx = CGRectGetMidX(rect), maxx = CGRectGetMaxX(rect); - CGFloat miny = CGRectGetMinY(rect), midy = CGRectGetMidY(rect), maxy = CGRectGetMaxY(rect); - CGContextBeginPath(context); - CGContextMoveToPoint(context, minx, midy); - CGContextAddArcToPoint(context, minx, miny, midx, miny, cornerInset.bottomLeft); - CGContextAddArcToPoint(context, maxx, miny, maxx, midy, cornerInset.bottomRight); - CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, cornerInset.topRight); - CGContextAddArcToPoint(context, minx, maxy, minx, midy, cornerInset.topLeft); - CGContextClosePath(context); - CGContextClip(context); - - CGContextDrawImage(context, rect, self.CGImage); - - CGImageRef bitmapImageRef = CGBitmapContextCreateImage(context); - - CGContextRelease(context); - - UIImage *newImage = [UIImage imageWithCGImage:bitmapImageRef scale:scale orientation:UIImageOrientationUp]; - - CGImageRelease(bitmapImageRef); - - return newImage; -} - -- (BOOL)isValidCornerInset:(UICornerInset)cornerInset -{ - CGSize size = self.size; - - BOOL isValid = YES; - - if (cornerInset.topLeft + cornerInset.topRight > size.width) - isValid = NO; - - else if (cornerInset.topRight + cornerInset.bottomRight > size.height) - isValid = NO; - - else if (cornerInset.bottomRight + cornerInset.bottomLeft > size.width) - isValid = NO; - - else if (cornerInset.bottomLeft + cornerInset.topLeft > size.height) - isValid = NO; - - return isValid; -} - -- (UIImage*)imageAddingImage:(UIImage*)image -{ - CGSize size1 = self.size; - CGSize size2 = image.size; - - CGPoint offset = CGPointMake(floorf((size1.width - size2.width)/2.0), - floorf((size1.height - size2.height)/2.0)); - return [self imageAddingImage:image offset:offset]; -} - -- (UIImage*)imageAddingImage:(UIImage*)image offset:(CGPoint)offset -{ - CGSize size = self.size; - CGFloat scale = self.scale; - - size.width *= scale; - size.height *= scale; - - UIGraphicsBeginImageContext(size); - - [self drawInRect:CGRectMake( 0, 0, size.width, size.height)]; - - [image drawInRect:CGRectMake(scale * offset.x, scale * offset.y, image.size.width * scale, image.size.height * scale)]; - - CGContextRef context = UIGraphicsGetCurrentContext(); - CGImageRef bitmapContext = CGBitmapContextCreateImage(context); - UIImage *destImage = [UIImage imageWithCGImage:bitmapContext scale:image.scale orientation:UIImageOrientationUp]; - UIGraphicsEndImageContext(); - CGImageRelease(bitmapContext); - - return destImage; -} - -#pragma mark Private Methods - -+ (NSCache*)_cache -{ - if (!_imageCache) - _imageCache = [[NSCache alloc] init]; - - return _imageCache; -} - -+ (UIImage*)_cachedImageWithDescriptors:(NSDictionary*)descriptors -{ - return [[self _cache] objectForKey:[self _keyForImageWithDescriptors:descriptors]]; -} - -+ (void)_cacheImage:(UIImage*)image withDescriptors:(NSDictionary*)descriptors -{ - NSString *key = [self _keyForImageWithDescriptors:descriptors]; - [[self _cache] setObject:image forKey:key]; -} - -+ (NSString*)_keyForImageWithDescriptors:(NSDictionary*)descriptors -{ - NSMutableString *string = [NSMutableString string]; - - NSString *imageName = [descriptors valueForKey:kUIImageName]; - [string appendFormat:@"<%@:%@>",kUIImageName,(imageName == nil)?@"":imageName]; - [string appendFormat:@"<%@:%@>",kUIImageSize, NSStringFromCGSize([[descriptors valueForKey:kUIImageSize] CGSizeValue])]; - [string appendFormat:@"<%@:%d>",kUIImageResizableImage,[[descriptors valueForKey:kUIImageResizableImage] boolValue]]; - - [string appendFormat:@"<%@:",kUIImageColors]; - NSArray *colors = [descriptors valueForKey:kUIImageColors]; - for (UIColor *color in colors) - [string appendFormat:@"%ld",(long)color.hash]; - [string appendFormat:@">"]; - - [string appendFormat:@"<%@:%ld>",kUIImageTintColor,(long)[[descriptors valueForKey:kUIImageTintColor] hash]]; - [string appendFormat:@"<%@:%ld>",kUIImageTintStyle,(long)[[descriptors valueForKey:kUIImageTintStyle] integerValue]]; - [string appendFormat:@"<%@:%@>",kUIImageCornerInset,NSStringFromUICornerInset([[descriptors valueForKey:kUIImageCornerInset] UICornerInsetValue])]; - [string appendFormat:@"<%@:%ld>",kUIImageGradientDirection,(long)[[descriptors valueForKey:kUIImageGradientDirection] integerValue]]; - - return [string md5]; -} - -+ (UIImage*)_imageWithColor:(UIColor*)color size:(CGSize)size cornerInset:(UICornerInset)cornerInset saveInCache:(BOOL)save -{ - NSDictionary *descriptors = @{kUIImageColors : @[color], - kUIImageSize : [NSValue valueWithCGSize:size], - kUIImageCornerInset : [NSValue valueWithUICornerInset:cornerInset]}; - - UIImage *image = [self _cachedImageWithDescriptors:descriptors]; - - if (image) - return image; - - CGFloat scale = [[UIScreen mainScreen] scale]; - CGRect rect = CGRectMake(0.0f, 0.0f, scale*size.width, scale*size.height); - - cornerInset.topRight *= scale; - cornerInset.topLeft *= scale; - cornerInset.bottomLeft *= scale; - cornerInset.bottomRight *= scale; - - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGContextRef context = CGBitmapContextCreate(NULL, rect.size.width, rect.size.height, 8, 0, colorSpace, (CGBitmapInfo)kCGImageAlphaPremultipliedLast); - - CGColorSpaceRelease(colorSpace); - - if (context == NULL) - return nil; - - CGFloat minx = CGRectGetMinX(rect), midx = CGRectGetMidX(rect), maxx = CGRectGetMaxX(rect); - CGFloat miny = CGRectGetMinY(rect), midy = CGRectGetMidY(rect), maxy = CGRectGetMaxY(rect); - - CGContextBeginPath(context); - CGContextSetGrayFillColor(context, 1.0, 0.0); // <-- Alpha color in background - CGContextAddRect(context, rect); - CGContextClosePath(context); - CGContextDrawPath(context, kCGPathFill); - - CGContextSetFillColorWithColor(context, [color CGColor]); // <-- Color to fill - CGContextBeginPath(context); - CGContextMoveToPoint(context, minx, midy); - CGContextAddArcToPoint(context, minx, miny, midx, miny, cornerInset.bottomLeft); - CGContextAddArcToPoint(context, maxx, miny, maxx, midy, cornerInset.bottomRight); - CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, cornerInset.topRight); - CGContextAddArcToPoint(context, minx, maxy, minx, midy, cornerInset.topLeft); - CGContextClosePath(context); - CGContextDrawPath(context, kCGPathFill); - - CGImageRef bitmapContext = CGBitmapContextCreateImage(context); - - CGContextRelease(context); - - UIImage *theImage = [UIImage imageWithCGImage:bitmapContext scale:scale orientation:UIImageOrientationUp]; - - CGImageRelease(bitmapContext); - - if (save) - [self _cacheImage:theImage withDescriptors:descriptors]; - - return theImage; -} - -+ (UIImage*)imageWithGradient:(NSArray*)colors size:(CGSize)size direction:(UIImageGradientDirection)direction -{ - - NSDictionary *descriptors = @{kUIImageColors: colors, - kUIImageSize: [NSValue valueWithCGSize:size], - kUIImageGradientDirection: @(direction)}; - - UIImage *image = [self _cachedImageWithDescriptors:descriptors]; - if (image) - return image; - - CGRect rect = CGRectMake(0, 0, size.width, size.height); - - UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0.0); - - CGContextRef context = UIGraphicsGetCurrentContext(); - - // Create Gradient - NSMutableArray *cgColors = [NSMutableArray arrayWithCapacity:colors.count]; - for (UIColor *color in colors) - [cgColors addObject:(id)color.CGColor]; - - CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB(); - CGGradientRef gradient = CGGradientCreateWithColors(space, (__bridge CFArrayRef)cgColors, NULL); - - // Apply gradient - CGPoint startPoint = CGPointZero; - CGPoint endPoint = CGPointZero; - - if (direction == UIImageGradientDirectionVertical) - endPoint = CGPointMake(0, rect.size.height); - - else if (direction == UIImageGradientDirectionHorizontal) - endPoint = CGPointMake(rect.size.width, 0); - - CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0); - image = UIGraphicsGetImageFromCurrentImageContext(); - - // Clean memory & End context - UIGraphicsEndImageContext(); - CGGradientRelease(gradient); - CGColorSpaceRelease(space); - - [self _cacheImage:image withDescriptors:descriptors]; - - return image; -} - -+ (UIImage*)resizableImageWithGradient:(NSArray*)colors size:(CGSize)size direction:(UIImageGradientDirection)direction -{ - if ((size.width == 0.0f && direction == UIImageGradientDirectionHorizontal) || - (size.height == 0.0f && direction == UIImageGradientDirectionVertical) || - (size.height == 0.0f && size.width == 0.0f)) - return nil; - - NSDictionary *descriptors = @{kUIImageColors: colors, - kUIImageSize: [NSValue valueWithCGSize:size], - kUIImageGradientDirection: @(direction), - kUIImageResizableImage: @YES}; - - UIImage *image = [self _cachedImageWithDescriptors:descriptors]; - if (image) - return image; - - CGSize imageSize = CGSizeMake(1.0f, 1.0f); - - UIEdgeInsets insets = UIEdgeInsetsZero; - - if (direction == UIImageGradientDirectionVertical) - { - imageSize.height = size.height; - insets = UIEdgeInsetsMake(0.0f, 1.0f, 0.0f, 1.0f); - } - else if (direction == UIImageGradientDirectionHorizontal) - { - imageSize.width = size.width; - insets = UIEdgeInsetsMake(1.0f, 0.0f, 1.0f, 0.0f); - } - - return [[self imageWithGradient:colors size:imageSize direction:direction] resizableImageWithCapInsets:insets]; -} - - -- (UIImage *)imageWithTintColor:(UIColor *)tintColor -{ - return [self imageWithTintColor:tintColor blendMode:kCGBlendModeDestinationIn]; -} - -- (UIImage *)imageWithGradientTintColor:(UIColor *)tintColor -{ - return [self imageWithTintColor:tintColor blendMode:kCGBlendModeOverlay]; -} - -- (UIImage *)imageWithTintColor:(UIColor *)tintColor blendMode:(CGBlendMode)blendMode -{ - if (!tintColor) { - return self; - } - - //We want to keep alpha, set opaque to NO; Use 0.0f for scale to use the scale factor of the device’s main screen. - UIGraphicsBeginImageContextWithOptions(self.size, NO, [[UIScreen mainScreen] scale]); - [tintColor setFill]; - CGRect bounds = CGRectMake(0, 0, self.size.width, self.size.height); - UIRectFill(bounds); - - //Draw the tinted image in context - [self drawInRect:bounds blendMode:blendMode alpha:1.0f]; - - if (blendMode != kCGBlendModeDestinationIn) - { - [self drawInRect:bounds blendMode:kCGBlendModeDestinationIn alpha:1.0f]; - } - - UIImage *tintedImage = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - - return tintedImage; -} - -@end - -#pragma mark - Categories - -@implementation NSValue (UICornerInset) - -+ (NSValue*)valueWithUICornerInset:(UICornerInset)cornerInset -{ - CGRect rect = CGRectMake(cornerInset.topLeft, cornerInset.topRight, cornerInset.bottomLeft, cornerInset.bottomRight); - return [NSValue valueWithCGRect:rect]; - - // UICornerInset inset = cornerInset; - // return [[NSValue alloc] initWithBytes:&inset objCType:@encode(struct __UICornerInset)]; -} - -- (UICornerInset)UICornerInsetValue -{ - CGRect rect = [self CGRectValue]; - return UICornerInsetMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height); - - // UICornerInset cornerInset; - // [self getValue:&cornerInset]; - // return cornerInset; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIView+Additions.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIView+Additions.h deleted file mode 100755 index 96176af6..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIView+Additions.h +++ /dev/null @@ -1,58 +0,0 @@ -// -// UIViewAdditions.h -// - -#import - -#define kScaleX [UIScreen mainScreen].bounds.size.width / 375 -#define kScaleY [UIScreen mainScreen].bounds.size.height / 667 - -CG_INLINE CGRect CGRectMake_Auto(CGFloat x, CGFloat y, CGFloat width, CGFloat height) -{ - const CGFloat xScale = [UIScreen mainScreen].bounds.size.width / 375; - const CGFloat yScale = [UIScreen mainScreen].bounds.size.height / 667; - - CGRect rect; - rect.origin.x = x * xScale; - rect.origin.y = y * yScale; - rect.size.width = width * xScale; - rect.size.height = height * yScale; - - return rect; -} - - -@interface UIView (Additions) - -- (void)removeAllSubViews; -- (void)setBackgroundImage:(UIImage*)image; -- (UIImage*)toImage; -- (UIViewController *)tx_viewController; -- (void)tx_observeKeyboardOnChange:(void(^)(CGFloat keyboardTop, CGFloat height))changeHandler; - -// Position of the top-left corner in superview's coordinates -@property CGPoint position; -@property CGFloat x; -@property CGFloat y; -@property CGFloat top; -@property CGFloat bottom; -@property CGFloat left; -@property CGFloat right; - - -// makes hiding more logical -@property BOOL visible; - - -// Setting size keeps the position (top-left corner) constant -@property CGSize size; -@property CGFloat width; -@property CGFloat height; - -@end - -@interface UIImageView (MFAdditions) - -- (void) setImageWithName:(NSString *)name; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIView+Additions.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIView+Additions.m deleted file mode 100755 index 91b7d481..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIView+Additions.m +++ /dev/null @@ -1,191 +0,0 @@ -// -// UIViewAdditions.m -// - -#import "UIView+Additions.h" -#import - - -@implementation UIView (Additions) - -- (void)setBackgroundImage:(UIImage *)image -{ - UIGraphicsBeginImageContext(self.frame.size); - [image drawInRect:self.bounds]; - UIImage *bgImage = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - - self.backgroundColor = [UIColor colorWithPatternImage:bgImage]; -} - -- (UIImage*)toImage -{ - UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0); - - CGContextRef ctx = UIGraphicsGetCurrentContext(); - [self.layer renderInContext:ctx]; - UIImage* tImage = UIGraphicsGetImageFromCurrentImageContext(); - - UIGraphicsEndImageContext(); - - return tImage; -} - -- (UIViewController *)tx_viewController { - UIView *view = self; - while (view) { - UIResponder *nextResponder = [view nextResponder]; - if ([nextResponder isKindOfClass:[UIViewController class]]) { - return (UIViewController *)nextResponder; - } - view = view.superview; - } - return nil; -} - -- (void)tx_observeKeyboardOnChange:(void(^)(CGFloat keyboardTop, CGFloat height))changeHandler { - __weak __typeof(self) wSelf = self; - [[NSNotificationCenter defaultCenter] addObserverForName:UIKeyboardWillChangeFrameNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) { - CGRect endFrame = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue]; - double animDuration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; - changeHandler(endFrame.origin.y, endFrame.size.height); - [UIView animateWithDuration:animDuration animations:^{ - [wSelf layoutIfNeeded]; - }]; - }]; -} - -- (CGPoint)position { - return self.frame.origin; -} - -- (void)setPosition:(CGPoint)position { - CGRect rect = self.frame; - rect.origin = position; - [self setFrame:rect]; -} - -- (CGFloat)x { - return self.frame.origin.x; -} - -- (void)setX:(CGFloat)x { - CGRect rect = self.frame; - rect.origin.x = x; - [self setFrame:rect]; -} - -- (CGFloat)y { - return self.frame.origin.y; -} - -- (void)setY:(CGFloat)y { - CGRect rect = self.frame; - rect.origin.y = y; - [self setFrame:rect]; -} - - -- (CGFloat)left { - return self.frame.origin.x; -} - -- (void)setLeft:(CGFloat)x { - CGRect frame = self.frame; - frame.origin.x = x; - self.frame = frame; -} - -- (CGFloat)top { - return self.frame.origin.y; -} - -- (void)setTop:(CGFloat)y { - CGRect frame = self.frame; - frame.origin.y = y; - self.frame = frame; -} - -- (CGFloat)right { - return self.frame.origin.x + self.frame.size.width; -} - -- (void)setRight:(CGFloat)right { - CGRect frame = self.frame; - frame.origin.x = right - frame.size.width; - self.frame = frame; -} - -- (CGFloat)bottom { - return self.frame.origin.y + self.frame.size.height; -} - -- (void)setBottom:(CGFloat)bottom { - CGRect frame = self.frame; - frame.origin.y = bottom - frame.size.height; - self.frame = frame; -} - - - - - -- (BOOL)visible { - return !self.hidden; -} - -- (void)setVisible:(BOOL)visible { - self.hidden=!visible; -} - - --(void)removeAllSubViews{ - - for (UIView *subview in self.subviews){ - [subview removeFromSuperview]; - } - -} - - -- (CGSize)size { - return [self frame].size; -} - -- (void)setSize:(CGSize)size { - CGRect rect = self.frame; - rect.size = size; - [self setFrame:rect]; -} - -- (CGFloat)width { - return self.frame.size.width; -} - -- (void)setWidth:(CGFloat)width { - CGRect rect = self.frame; - rect.size.width = width; - [self setFrame:rect]; -} - -- (CGFloat)height { - return self.frame.size.height; -} - -- (void)setHeight:(CGFloat)height { - CGRect rect = self.frame; - rect.size.height = height; - [self setFrame:rect]; -} - -@end - -@implementation UIImageView (MFAdditions) - -- (void) setImageWithName:(NSString *)name { - - [self setImage:[UIImage imageNamed:name]]; - [self sizeToFit]; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIView+CustomAutoLayout.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIView+CustomAutoLayout.h deleted file mode 100755 index 840bbc11..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIView+CustomAutoLayout.h +++ /dev/null @@ -1,169 +0,0 @@ -// -// UIView+CustomAutoLayout.h -// CommonLibrary -// -// Created by Alexi on 13-11-20. -// Copyright (c) 2013年 ywchen. All rights reserved. -// - -#import - -// 使用装饰模式进行自动布局处理 - -#ifdef DEBUG - -#define IsArgInvalid(curView, brotherView) NSAssert((self.superview == brotherView.superview) && !(CGRectEqualToRect(brotherView.frame, CGRectZero)), @"UIView (CustomAutoLayout)参数出错") -#define IsSuperViewInvalid(curView) NSAssert((self.superview != nil), @"UIView (CustomAutoLayout)父控件没有设置参数出错") - -#else - -#define IsArgInvalid(curView, brotherView) -#define IsSuperViewInvalid(curView) - -#endif - - - -@interface UIView (CustomAutoLayout) - - -- (UIView *)sameWith:(UIView *)brotherView; - -// 同一控件内两子之空间之间的相对位置 -// margin 之间的空隙 -// brotherView.superView与self.superView相同 -// brotherView必须要先设置了frame - -// 会影响origin的位置,会影响其高度 -- (UIView *)layoutAbove:(UIView *)brotherView; -- (UIView *)layoutAbove:(UIView *)brotherView margin:(CGFloat)margin; - -- (UIView *)layoutBelow:(UIView *)brotherView; -- (UIView *)layoutBelow:(UIView *)brotherView margin:(CGFloat)margin; - -// 会影响origin的位置,会影响其宽度 -- (UIView *)layoutToLeftOf:(UIView *)brotherView; -- (UIView *)layoutToLeftOf:(UIView *)brotherView margin:(CGFloat)margin; - -- (UIView *)layoutToRightOf:(UIView *)brotherView; -- (UIView *)layoutToRightOf:(UIView *)brotherView margin:(CGFloat)margin; - - -// 填充式布局 -- (UIView *)scaleToAboveOf:(UIView *)brotherView; -- (UIView *)scaleToAboveOf:(UIView *)brotherView margin:(CGFloat)margin; - -- (UIView *)scaleToBelowOf:(UIView *)brotherView; -- (UIView *)scaleToBelowOf:(UIView *)brotherView margin:(CGFloat)margin; - -- (UIView *)scaleToLeftOf:(UIView *)brotherView; -- (UIView *)scaleToLeftOf:(UIView *)brotherView margin:(CGFloat)margin; - -- (UIView *)scaleToRightOf:(UIView *)brotherView; -- (UIView *)scaleToRightOf:(UIView *)brotherView margin:(CGFloat)margin; - - -// 相对父控件进行填充 -- (UIView *)scaleParent; -- (UIView *)scaleToParentTop; -- (UIView *)scaleToParentTopWithMargin:(CGFloat)margin; - -- (UIView *)scaleToParentBottom; -- (UIView *)scaleToParentBottomWithMargin:(CGFloat)margin; - -- (UIView *)scaleToParentLeft; -- (UIView *)scaleToParentLeftWithMargin:(CGFloat)margin; - -- (UIView *)scaleToParentRight; -- (UIView *)scaleToParentRightWithMargin:(CGFloat)margin; - - -// 同一控件内两子之空间之间的对齐关系 -// 会影响origin的位置, 不影响大小 -- (UIView *)alignTop:(UIView *)brotherView; -- (UIView *)alignTop:(UIView *)brotherView margin:(CGFloat)margin; - -- (UIView *)alignBottom:(UIView *)brotherView; -- (UIView *)alignBottom:(UIView *)brotherView margin:(CGFloat)margin; - -- (UIView *)alignLeft:(UIView *)brotherView; -- (UIView *)alignLeft:(UIView *)brotherView margin:(CGFloat)margin; - -- (UIView *)alignRight:(UIView *)brotherView; -- (UIView *)alignRight:(UIView *)brotherView margin:(CGFloat)margin; - - -- (UIView *)alignHorizontalCenterOf:(UIView *)brotherView; -- (UIView *)alignVerticalCenterOf:(UIView *)brotherView; -- (UIView *)alignCenterOf:(UIView *)brotherView; - -- (UIView *)moveCenterTo:(CGPoint)center; -- (UIView *)move:(CGPoint)vec; - - -// 与父控件对齐的关系 -// 只影响其坐标位置,不影响其大小 -- (UIView *)alignParentTop; -- (UIView *)alignParentBottom; -- (UIView *)alignParentLeft; -- (UIView *)alignParentRight; - -- (UIView *)alignParentCenter; -- (UIView *)alignParentCenter:(CGPoint)margin; - -- (UIView *)alignParentTopWithMargin:(CGFloat)margin; -- (UIView *)alignParentBottomWithMargin:(CGFloat)margin; -- (UIView *)alignParentLeftWithMargin:(CGFloat)margin; -- (UIView *)alignParentRightWithMargin:(CGFloat)margin; - -// 与父控件的边距 -// 只影响其坐标位置,影响其大小 -- (UIView *)marginParetnTop:(CGFloat)top bottom:(CGFloat)bottom left:(CGFloat)left rigth:(CGFloat)right; -- (UIView *)marginParentWithEdgeInsets:(UIEdgeInsets)inset; -- (UIView *)marginParetn:(CGFloat)margin; -- (UIView *)marginParetnHorizontal:(CGFloat)margin; -- (UIView *)marginParetnVertical:(CGFloat)margin; -- (UIView *)marginParentTop:(CGFloat)margin; -- (UIView *)marginParentBottom:(CGFloat)margin; -- (UIView *)marginParentLeft:(CGFloat)margin; -- (UIView *)marginParentRight:(CGFloat)margin; - - -// 控件在父控控件中的位置 -// 水平居中 -// 只影响其坐标位置,不影响其大小 -- (UIView *)layoutParentHorizontalCenter; -// 垂直居中 -- (UIView *)layoutParentVerticalCenter; -// 居中 -- (UIView *)layoutParentCenter; - - -// 与其他控件的大小关系 -// 影响其大小 -- (UIView *)widthEqualTo:(UIView *)brotherView; -- (UIView *)heigthEqualTo:(UIView *)brotherView; -- (UIView *)sizeEqualTo:(UIView *)brotherView; -- (UIView *)sizeWith:(CGSize)size; - -- (UIView *)shrink:(CGSize)size; -- (UIView *)shrinkHorizontal:(CGFloat)margin; -- (UIView *)shrinkVertical:(CGFloat)margin; - - - -- (UIView *)alignViews:(NSArray *)array isSubView:(BOOL)isSub padding:(CGFloat)padding margin:(CGFloat)margin horizontal:(BOOL)ishorizontal inRect:(CGRect)rect; -// views里面的View都是按UI的指定顺序放好的 -- (UIView *)alignSubviews:(NSArray *)views horizontallyWithPadding:(CGFloat)padding margin:(CGFloat)margin inRect:(CGRect)rect; -- (UIView *)alignSubviews:(NSArray *)views verticallyWithPadding:(CGFloat)padding margin:(CGFloat)margin inRect:(CGRect)rect; - -- (UIView *)alignSubviewsHorizontallyWithPadding:(CGFloat)padding margin:(CGFloat)margin; -- (UIView *)alignSubviewsVerticallyWithPadding:(CGFloat)padding margin:(CGFloat)margin; - - - -// 使views以Grid方式均匀显示 -- (UIView *)gridViews:(NSArray *)views inColumn:(NSInteger)column size:(CGSize)cellSize margin:(CGSize)margin inRect:(CGRect)rect; - - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIView+CustomAutoLayout.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIView+CustomAutoLayout.m deleted file mode 100755 index 2a93acff..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIView+CustomAutoLayout.m +++ /dev/null @@ -1,733 +0,0 @@ -// -// UIView+CustomAutoLayout.m -// CommonLibrary -// -// Created by Alexi on 13-11-20. -// Copyright (c) 2013年 ywchen. All rights reserved. -// - -#import "UIView+CustomAutoLayout.h" - -@implementation UIView (CustomAutoLayout) - -- (UIView *)sameWith:(UIView *)brotherView -{ - IsArgInvalid(self, brotherView); - self.frame = brotherView.frame; - return self; -} - -// 同一控件内两子之空间之间的相对位置 -// margin 之间的空隙 -// brotherView.superView与self.superView相同 -// brotherView必须要先设置了frame - -//- (BOOL)isArgValid:(UIView *)brotherView -//{ -// return (self.superview == brotherView.superview) && (CGRectEqualToRect(brotherView.frame, CGRectZero)); -//} - -// 会影响origin的位置,会影响其高度 -- (UIView *)layoutAbove:(UIView *)brotherView -{ - return [self layoutAbove:brotherView margin:0]; -} - -- (UIView *)layoutAbove:(UIView *)brotherView margin:(CGFloat)margin -{ -// BOOL vailed = (self.superview == brotherView.superview) && !(CGRectEqualToRect(brotherView.frame, CGRectZero)); -// NSAssert(vailed, @"UIView (CustomAutoLayout)参数出错"); - IsArgInvalid(self, brotherView); - CGRect rect = self.frame; - CGRect brect = brotherView.frame; - rect.origin.y = brect.origin.y - margin - rect.size.height; - self.frame = rect; - return self; -} - -- (UIView *)layoutBelow:(UIView *)brotherView -{ - return [self layoutBelow:brotherView margin:0]; -} -- (UIView *)layoutBelow:(UIView *)brotherView margin:(CGFloat)margin -{ - IsArgInvalid(self, brotherView); - CGRect rect = self.frame; - CGRect brect = brotherView.frame; - rect.origin.y = brect.origin.y + brect.size.height + margin; - self.frame = rect; - return self; - -} - -// 会影响origin的位置,会影响其宽度 -- (UIView *)layoutToLeftOf:(UIView *)brotherView -{ - return [self layoutToLeftOf:brotherView margin:0]; -} -- (UIView *)layoutToLeftOf:(UIView *)brotherView margin:(CGFloat)margin -{ - IsArgInvalid(self, brotherView); - CGRect rect = self.frame; - CGRect brect = brotherView.frame; - rect.origin.x = brect.origin.x - margin - rect.size.width; - self.frame = rect; - return self; -} - -- (UIView *)layoutToRightOf:(UIView *)brotherView -{ - return [self layoutToRightOf:brotherView margin:0]; -} -- (UIView *)layoutToRightOf:(UIView *)brotherView margin:(CGFloat)margin -{ - IsArgInvalid(self, brotherView); - CGRect rect = self.frame; - CGRect brect = brotherView.frame; - rect.origin.x = brect.origin.x + brect.size.width + margin; - self.frame = rect; - return self; -} - -///填充式布局 -- (UIView *)scaleToAboveOf:(UIView *)brotherView -{ - return [self scaleToAboveOf:brotherView margin:0]; -} -- (UIView *)scaleToAboveOf:(UIView *)brotherView margin:(CGFloat)margin -{ - IsArgInvalid(self, brotherView); - CGRect rect = self.frame; - CGRect brect = brotherView.frame; - - if (brect.origin.y > rect.origin.y) - { - rect.size.height = brect.origin.y - margin - rect.origin.y; - } - else - { - rect.size.height = rect.origin.y + rect.size.height - (brect.origin.y + margin); - rect.origin.y = brect.origin.y + margin; - } - - - self.frame = rect; - return self; -} - -- (UIView *)scaleToBelowOf:(UIView *)brotherView -{ - return [self scaleToBelowOf:brotherView margin:0]; -} -- (UIView *)scaleToBelowOf:(UIView *)brotherView margin:(CGFloat)margin -{ - IsArgInvalid(self, brotherView); - CGRect rect = self.frame; - CGRect brect = brotherView.frame; - - if (rect.origin.y < brect.origin.y + brect.size.height) { - rect.size.height = brect.origin.y + brect.size.height - margin - rect.origin.y; - } - else - { - rect.size.height = rect.origin.y + rect.size.height - (margin + brect.origin.y + brect.size.height); - rect.origin.y = (margin + brect.origin.y + brect.size.height); - } - - self.frame = rect; - return self; -} - -- (UIView *)scaleToLeftOf:(UIView *)brotherView -{ - return [self scaleToLeftOf:brotherView margin:0]; -} -- (UIView *)scaleToLeftOf:(UIView *)brotherView margin:(CGFloat)margin -{ - IsArgInvalid(self, brotherView); - - CGRect rect = self.frame; - CGRect brect = brotherView.frame; - - if (rect.origin.x < brect.origin.x) - { - rect.size.width = brect.origin.x - margin - rect.origin.x; - } - else - { - rect.size.width = rect.origin.x + rect.size.width - (margin + brect.origin.x); - rect.origin.x = brect.origin.x + margin; - } - - self.frame = rect; - return self; -} - -- (UIView *)scaleToRightOf:(UIView *)brotherView -{ - return [self scaleToRightOf:brotherView margin:0]; -} -- (UIView *)scaleToRightOf:(UIView *)brotherView margin:(CGFloat)margin -{ - IsArgInvalid(self, brotherView); - CGRect rect = self.frame; - CGRect brect = brotherView.frame; - - if (rect.origin.x < brect.origin.x + brect.size.width) - { - rect.size.width = brect.origin.x + brect.size.width - margin - rect.origin.x; - } - else - { - rect.size.width = rect.origin.x + rect.size.width - (brect.origin.x + brect.size.width - margin); - rect.origin.x = brect.origin.x + brect.size.width - margin; - } - - self.frame = rect; - return self; -} - -- (UIView *)scaleParent -{ - self.frame = self.superview.bounds; - return self; -} - -- (UIView *)scaleToParentTop -{ - return [self scaleToParentTopWithMargin:0]; -} -- (UIView *)scaleToParentTopWithMargin:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect sRect = self.superview.bounds; - CGRect rect = self.frame; - rect.size.height = rect.origin.y + rect.size.height - (sRect.origin.y + margin); - rect.origin.y = sRect.origin.y + margin; - self.frame = rect; - return self; -} - -- (UIView *)scaleToParentBottom -{ - return [self scaleToParentBottomWithMargin:0]; -} - -- (UIView *)scaleToParentBottomWithMargin:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect sRect = self.superview.bounds; - CGRect rect = self.frame; - rect.size.height = sRect.origin.y + sRect.size.height - margin - rect.origin.y; - self.frame = rect; - return self; -} - -- (UIView *)scaleToParentLeft -{ - return [self scaleToParentLeftWithMargin:0]; -} -- (UIView *)scaleToParentLeftWithMargin:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect sRect = self.superview.bounds; - CGRect rect = self.frame; - rect.size.width = rect.origin.x + rect.size.width - (sRect.origin.x + margin); - rect.origin.x = sRect.origin.x + margin; - self.frame = rect; - return self; -} - -- (UIView *)scaleToParentRight -{ - return [self scaleToParentRightWithMargin:0]; -} - -- (UIView *)scaleToParentRightWithMargin:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect sRect = self.superview.bounds; - CGRect rect = self.frame; - rect.size.width = sRect.origin.x + sRect.size.width - margin - rect.origin.x; - self.frame = rect; - return self; -} - - -// 同一控件内两子之空间之间的对齐关系 -// 会影响origin的位置, 不影响大小 -- (UIView *)alignTop:(UIView *)brotherView -{ - return [self alignTop:brotherView margin:0]; -} - -- (UIView *)alignTop:(UIView *)brotherView margin:(CGFloat)margin -{ - IsArgInvalid(self, brotherView); - CGRect rect = self.frame; - CGRect brect = brotherView.frame; - rect.origin.y = brect.origin.y - margin; - self.frame = rect; - return self; -} - -- (UIView *)alignBottom:(UIView *)brotherView -{ - return [self alignBottom:brotherView margin:0]; -} - -- (UIView *)alignBottom:(UIView *)brotherView margin:(CGFloat)margin -{ - IsArgInvalid(self, brotherView); - CGRect rect = self.frame; - CGRect brect = brotherView.frame; - rect.origin.y = brect.origin.y + brect.size.height - rect.size.height - margin; - self.frame = rect; - return self; -} - -- (UIView *)alignLeft:(UIView *)brotherView -{ - return [self alignLeft:brotherView margin:0]; -} - -- (UIView *)alignLeft:(UIView *)brotherView margin:(CGFloat)margin -{ - IsArgInvalid(self, brotherView); - CGRect rect = self.frame; - rect.origin.x = brotherView.frame.origin.x + margin; - self.frame = rect; - return self; -} - -- (UIView *)alignRight:(UIView *)brotherView -{ - return [self alignRight:brotherView margin:0]; -} - -- (UIView *)alignRight:(UIView *)brotherView margin:(CGFloat)margin -{ - IsArgInvalid(self, brotherView); - CGRect rect = self.frame; - CGRect brect = brotherView.frame; - rect.origin.x = brect.origin.x + brect.size.width - rect.size.width - margin; - self.frame = rect; - return self; -} - -- (UIView *)alignHorizontalCenterOf:(UIView *)brotherView -{ - IsArgInvalid(self, brotherView); - CGPoint bCenter = brotherView.center; - CGPoint center = self.center; - center.x = bCenter.x; - self.center = center; - return self; - -} -- (UIView *)alignVerticalCenterOf:(UIView *)brotherView -{ - IsArgInvalid(self, brotherView); - CGPoint bCenter = brotherView.center; - CGPoint center = self.center; - center.y = bCenter.y; - self.center = center; - return self; -} -- (UIView *)alignCenterOf:(UIView *)brotherView -{ - IsArgInvalid(self, brotherView); - self.center = brotherView.center; - return self; -} - -- (UIView *)moveCenterTo:(CGPoint)center -{ - self.center = center; - return self; -} - -- (UIView *)move:(CGPoint)vec -{ - CGPoint c = self.center; - c.x += vec.x; - c.y += vec.y; - self.center = c; - return self; -} - - -// 与父控件对齐的关系 -// 只影响其坐标位置,不影响其大小 -- (UIView *)alignParentTop -{ - return [self alignParentLeftWithMargin:0]; -} -- (UIView *)alignParentBottom -{ - return [self alignParentBottomWithMargin:0]; -} -- (UIView *)alignParentLeft -{ - return [self alignParentLeftWithMargin:0]; -} -- (UIView *)alignParentRight -{ - return [self alignParentRightWithMargin:0]; -} - -- (UIView *)alignParentCenter -{ - return [self alignParentCenter:CGPointMake(0, 0)]; -} - -- (UIView *)alignParentCenter:(CGPoint)margin -{ - IsSuperViewInvalid(self); - CGRect sbounds = self.superview.bounds; - CGPoint center = CGPointMake(CGRectGetMidX(sbounds), CGRectGetMidY(sbounds)); - center.x += margin.x; - center.y += margin.y; - self.center = center; - return self; -} - - -- (UIView *)alignParentTopWithMargin:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect rect = self.frame; - rect.origin.y = self.superview.bounds.origin.y + margin; - self.frame = rect; - return self; -} -- (UIView *)alignParentBottomWithMargin:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect superBounds = self.superview.bounds; - CGRect rect = self.frame; - rect.origin.y = superBounds.origin.y + superBounds.size.height - margin - rect.size.height; - self.frame = rect; - return self; -} -- (UIView *)alignParentLeftWithMargin:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect rect = self.frame; - rect.origin.x = self.superview.bounds.origin.x + margin;; - self.frame = rect; - return self; -} -- (UIView *)alignParentRightWithMargin:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect superBounds = self.superview.bounds; - CGRect rect = self.frame; - rect.origin.x = superBounds.origin.x + superBounds.size.width - margin - rect.size.width; - self.frame = rect; - return self; -} - - - -// 与父控件的边距 -// 只影响其坐标位置,不影响其大小 -- (UIView *)marginParetnTop:(CGFloat)top bottom:(CGFloat)bottom left:(CGFloat)left rigth:(CGFloat)right -{ - IsSuperViewInvalid(self); - CGRect superBounds = self.superview.bounds; - CGRect rect = CGRectZero; - rect.origin.y = top; - rect.size.height = superBounds.origin.y + superBounds.size.height - rect.origin.y - bottom; - - rect.origin.x = left; - rect.size.width = superBounds.origin.x + superBounds.size.width - rect.origin.x - right; - - self.frame = rect; - return self; -} - -- (UIView *)marginParentWithEdgeInsets:(UIEdgeInsets)inset -{ - return [self marginParetnTop:inset.top bottom:inset.bottom left:inset.left rigth:inset.right]; -} - -- (UIView *)marginParetn:(CGFloat)margin -{ - IsSuperViewInvalid(self); - self.frame = CGRectInset(self.superview.bounds, margin, margin); - return self; -} -- (UIView *)marginParetnHorizontal:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect supRect = self.superview.bounds; - CGRect rect = self.frame; - rect.origin.x = supRect.origin.x + margin; - rect.size.width = supRect.size.width - 2 * margin; - self.frame = rect; - return self; -} -- (UIView *)marginParetnVertical:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect supRect = self.superview.bounds; - CGRect rect = self.frame; - rect.origin.y = supRect.origin.y + margin; - rect.size.height = supRect.size.height - 2 * margin; - self.frame = rect; - return self; -} - -- (UIView *)marginParentTop:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect supRect = self.superview.bounds; - CGRect rect = self.frame; - rect.origin.y = supRect.origin.y + margin; - self.frame = rect; - return self; -} -- (UIView *)marginParentBottom:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect supRect = self.superview.bounds; - CGRect rect = self.frame; - rect.size.height = supRect.origin.y + supRect.size.height - margin - rect.origin.y; - self.frame = rect; - return self; -} -- (UIView *)marginParentLeft:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect supRect = self.superview.bounds; - CGRect rect = self.frame; - rect.origin.x = supRect.origin.x + margin; - self.frame = rect; - return self; -} -- (UIView *)marginParentRight:(CGFloat)margin -{ - IsSuperViewInvalid(self); - CGRect supRect = self.superview.bounds; - CGRect rect = self.frame; - rect.size.width = supRect.origin.x + supRect.size.width - margin - rect.origin.x; - self.frame = rect; - return self; -} - - -// 控件在父控控件中的位置 -// 水平居中 -// 只影响其坐标位置,不影响其大小 -- (UIView *)layoutParentHorizontalCenter -{ - IsSuperViewInvalid(self); - CGPoint center = CGPointZero; - CGRect srect = self.superview.bounds; - center.x = CGRectGetMidX(srect);; - center.y = self.center.y; - self.center = center; - return self; -} -// 垂直居中 -- (UIView *)layoutParentVerticalCenter -{ - IsSuperViewInvalid(self); - CGPoint center = CGPointZero; - center.x = self.center.x; - - CGRect srect = self.superview.bounds; - - center.y = CGRectGetMidY(srect); - self.center = center; - return self; -} -// 居中 -- (UIView *)layoutParentCenter -{ - IsSuperViewInvalid(self); - CGRect rect = self.superview.bounds; - - self.center = CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect)); - return self; -} - - -// 与其他控件的大小关系 -// 影响其大小 -- (UIView *)widthEqualTo:(UIView *)brotherView -{ - IsArgInvalid(self, brotherView); - CGRect brect = brotherView.frame; - CGRect srect = self.frame; - srect.size.width = brect.size.width; - self.frame = srect; - return self; -} -- (UIView *)heigthEqualTo:(UIView *)brotherView -{ - IsArgInvalid(self, brotherView); - CGRect brect = brotherView.frame; - CGRect srect = self.frame; - srect.size.height = brect.size.height; - self.frame = srect; - return self; -} -- (UIView *)sizeEqualTo:(UIView *)brotherView -{ - IsArgInvalid(self, brotherView); - CGRect brect = brotherView.frame; - CGRect srect = self.frame; - srect.size = brect.size; - self.frame = srect; - return self; -} - -- (UIView *)sizeWith:(CGSize)size -{ - CGRect rect = CGRectZero; - rect.size = size; - self.frame = rect; - return self; -} - -- (UIView *)shrink:(CGSize)size -{ - CGRect rect = self.frame; - self.frame = CGRectInset(rect, size.width, size.height); - return self; -} -- (UIView *)shrinkHorizontal:(CGFloat)margin -{ - CGRect rect = self.frame; - self.frame = CGRectInset(rect, margin, 0); - return self; -} -- (UIView *)shrinkVertical:(CGFloat)margin -{ - CGRect rect = self.frame; - self.frame = CGRectInset(rect, 0, margin); - return self; -} - -// views里面的View都是按UI的指定顺序放好的 -- (UIView *)alignViews:(NSArray *)array isSubView:(BOOL)isSub padding:(CGFloat)padding margin:(CGFloat)margin horizontal:(BOOL)ishorizontal inRect:(CGRect)rect -{ - BOOL isSameParent = YES; - if (!isSub) - { - for (UIView *view in array) - { - isSameParent = isSameParent && (view.superview == self); - if (!isSameParent) - { - //DebugLog(@"所排列的View的父控件不同"); - return self; - break; - } - } - } - - if (ishorizontal) - { - CGRect marginRect = CGRectInset(rect, margin, 0); - - NSInteger count = array.count; - - const CGFloat kWidth = (marginRect.size.width - (count - 1)*padding)/count; - CGFloat startX = marginRect.origin.x; - for (UIView *view in array) - { - CGRect rect = view.frame; - rect.origin.y = marginRect.origin.y; - rect.size.height = marginRect.size.height; - rect.origin.x = startX; - rect.size.width = kWidth; - view.frame = rect; - startX += padding + kWidth; - } - } - else - { - CGRect marginRect = CGRectInset(rect, 0, margin); - - NSInteger count = array.count; - - const CGFloat kHeight = (marginRect.size.width - (count - 1)*padding)/count; - CGFloat startY = marginRect.origin.y; - for (UIView *view in array) - { - CGRect viewrect = view.frame; - rect.origin.x = marginRect.origin.x; - rect.size.width = marginRect.size.width; - viewrect.origin.y = startY; - viewrect.size.height = kHeight; - view.frame = viewrect; - startY += padding + kHeight; - } - } - - - return self; -} -- (UIView *)alignSubviewsHorizontallyWithPadding:(CGFloat)padding margin:(CGFloat)margin -{ - return [self alignViews:self.subviews isSubView:YES padding:padding margin:margin horizontal:YES inRect:self.bounds]; -} - -- (UIView *)alignSubviewsVerticallyWithPadding:(CGFloat)padding margin:(CGFloat)margin; -{ - return[self alignViews:self.subviews isSubView:YES padding:padding margin:margin horizontal:NO inRect:self.bounds]; -} - -- (UIView *)alignSubviews:(NSArray *)views horizontallyWithPadding:(CGFloat)padding margin:(CGFloat)margin inRect:(CGRect)rect -{ - return [self alignViews:views isSubView:NO padding:padding margin:margin horizontal:YES inRect:rect]; -} - -- (UIView *)alignSubviews:(NSArray *)views verticallyWithPadding:(CGFloat)padding margin:(CGFloat)margin inRect:(CGRect)rect -{ - return [self alignViews:views isSubView:NO padding:padding margin:margin horizontal:NO inRect:rect]; -} - - - -- (UIView *)gridViews:(NSArray *)views inColumn:(NSInteger)column size:(CGSize)cellSize margin:(CGSize)margin inRect:(CGRect)rect -{ - CGSize menuSize = cellSize; - - const NSInteger kColumn = column; - const NSInteger kCount = views.count; - const NSInteger kRow = kCount % kColumn == 0 ? kCount / kColumn : kCount / kColumn + 1; - - const CGSize kSpaceSize = margin; - - CGRect menuCellRect = rect; - menuCellRect.size = menuSize; - - for (NSInteger i = 0; i < kRow; i++) - { - for (NSInteger j = 0; j < kColumn; j++) - { - NSInteger index = i * kColumn + j; - if (index >= kCount) - { - return self; - } - - UIView *view = [views objectAtIndex:index]; - view.frame = menuCellRect; - menuCellRect.origin.x += menuCellRect.size.width + kSpaceSize.width; - } - - menuCellRect.origin.x = rect.origin.x; - menuCellRect.origin.y += menuCellRect.size.height + kSpaceSize.height; - } - - return self; -} - - - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIViewController+BackButtonHandler.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIViewController+BackButtonHandler.h deleted file mode 100644 index c4e96ab2..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIViewController+BackButtonHandler.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// UIViewController+BackButtonHandler.h -// -// Created by Sergey Nikitenko on 10/1/13. -// Copyright 2013 Sergey Nikitenko. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -#import - -@protocol BackButtonHandlerProtocol -@optional -// Override this method in UIViewController derived class to handle 'Back' button click --(BOOL)navigationShouldPopOnBackButton; -@end - -@interface UIViewController (BackButtonHandler) - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIViewController+BackButtonHandler.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIViewController+BackButtonHandler.m deleted file mode 100644 index 194b5d62..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/Catetory/UIViewController+BackButtonHandler.m +++ /dev/null @@ -1,64 +0,0 @@ -// -// UIViewController+BackButtonHandler.m -// -// Created by Sergey Nikitenko on 10/1/13. -// Copyright 2013 Sergey Nikitenko. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -#import "UIViewController+BackButtonHandler.h" - -@implementation UIViewController (BackButtonHandler) - -@end - -@implementation UINavigationController (ShouldPopOnBackButton) - -- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item { - - if([self.viewControllers count] < [navigationBar.items count]) { - return YES; - } - - BOOL shouldPop = YES; - UIViewController* vc = [self topViewController]; - if([vc respondsToSelector:@selector(navigationShouldPopOnBackButton)]) { - shouldPop = [vc navigationShouldPopOnBackButton]; - } - - if(shouldPop) { - dispatch_async(dispatch_get_main_queue(), ^{ - [self popViewControllerAnimated:YES]; - }); - } else { - // Workaround for iOS7.1. Thanks to @boliva - http://stackoverflow.com/posts/comments/34452906 - for(UIView *subview in [navigationBar subviews]) { - if(0. < subview.alpha && subview.alpha < 1.) { - [UIView animateWithDuration:.25 animations:^{ - subview.alpha = 1.; - }]; - } - } - } - - return NO; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/ColorMacro.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/ColorMacro.h deleted file mode 100755 index b9a81be6..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/ColorMacro.h +++ /dev/null @@ -1,64 +0,0 @@ -// -// ColorMarcro.h -// CommonLibrary -// -// Created by Alexi on 13-10-23. -// Copyright (c) 2013年 ywchen. All rights reserved. -// - -#ifndef CommonLibrary_ColorMarcro_h -#define CommonLibrary_ColorMarcro_h - - -// 取色值相关的方法 -#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \ -green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \ -blue:((float)(rgbValue & 0xFF))/255.0 \ -alpha:1.0] - -#define RGB(r,g,b) [UIColor colorWithRed:(r)/255.f \ - green:(g)/255.f \ - blue:(b)/255.f \ - alpha:1.f] - -#define RGBA(r,g,b,a) [UIColor colorWithRed:(r)/255.f \ - green:(g)/255.f \ - blue:(b)/255.f \ - alpha:(a)] - -#define RGBOF(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \ - green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \ - blue:((float)(rgbValue & 0xFF))/255.0 \ - alpha:1.0] - -#define RGBA_OF(rgbValue) [UIColor colorWithRed:((float)(((rgbValue) & 0xFF000000) >> 24))/255.0 \ - green:((float)(((rgbValue) & 0x00FF0000) >> 16))/255.0 \ - blue:((float)(rgbValue & 0x0000FF00) >> 8)/255.0 \ - alpha:((float)(rgbValue & 0x000000FF))/255.0] - -#define RGBAOF(v, a) [UIColor colorWithRed:((float)(((v) & 0xFF0000) >> 16))/255.0 \ - green:((float)(((v) & 0x00FF00) >> 8))/255.0 \ - blue:((float)(v & 0x0000FF))/255.0 \ - alpha:a] - - -// 定义通用颜色 -#define kBlackColor [UIColor blackColor] -#define kDarkGrayColor [UIColor darkGrayColor] -#define kLightGrayColor [UIColor lightGrayColor] -#define kWhiteColor [UIColor whiteColor] -#define kGrayColor [UIColor grayColor] -#define kRedColor [UIColor redColor] -#define kGreenColor [UIColor greenColor] -#define kBlueColor [UIColor blueColor] -#define kCyanColor [UIColor cyanColor] -#define kYellowColor [UIColor yellowColor] -#define kMagentaColor [UIColor magentaColor] -#define kOrangeColor [UIColor orangeColor] -#define kPurpleColor [UIColor purpleColor] -#define kClearColor [UIColor clearColor] - -#define kRandomFlatColor [UIColor randomFlatColor] - - -#endif diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/CommonUtils/TCLog.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/CommonUtils/TCLog.h deleted file mode 100644 index d81188d2..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/CommonUtils/TCLog.h +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Module: TCLog - * - * Function: 日志模块 - */ - -#import -#import "TXLiveBase.h" - -/** - * 获取RTMP SDK内部log,并保存到文件 - * 1.实现ITXLiveBaseListener回调接口获取RTMPSDK的log - * 2.log保存到沙箱路径:Library/Caches/rtmpsdk_日期.log - * 其中日期以天为单位,每天保存一个文件,如rtmpsdk_20160901.log - * 3.app的log使用TXLog和RTMPSDK的log一起保存 - */ -@interface TCLog : NSObject - -+ (instancetype)shareInstance; - -- (void)log:(NSString *)formatStr, ...; - -- (void)onLog:(NSString*)log LogLevel:(int)level WhichModule:(NSString *)module; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/CommonUtils/TCLog.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/CommonUtils/TCLog.m deleted file mode 100644 index 04a28cf1..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/CommonUtils/TCLog.m +++ /dev/null @@ -1,88 +0,0 @@ -/** - * Module: TCLog - * - * Function: 日志模块 - */ - - -#import "TCLog.h" - -@implementation TCLog -{ - NSString* _logFilePath; - FILE* _pFileHandle; -} - -static TCLog *_shareInstance = nil; - -+ (instancetype)shareInstance { - static dispatch_once_t predicate; - - dispatch_once(&predicate, ^{ - _shareInstance = [[TCLog alloc] init]; - }); - return _shareInstance; -} - -- (instancetype)init { - if (self = [super init]) - { - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES); - NSString *path = [paths objectAtIndex:0]; - NSDate *date = [NSDate date]; - NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; - formatter.dateFormat = @"yyyyMMdd"; - NSString *res = [formatter stringFromDate:date]; - _logFilePath = [NSString stringWithFormat:@"%@/Caches/rtmpsdk_%@.log",path,res]; - } - return self; -} - -- (void)dealloc { - if (_pFileHandle) - { - fclose(_pFileHandle); - } - _pFileHandle = NULL; -} - -- (void)onLog:(NSString*)log LogLevel:(int)level WhichModule:(NSString*)module { - NSLog(@"rtmpsdk:%@",log); - NSDate *date = [NSDate date]; - NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; - formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss.SSS"; - NSString *formatDate = [formatter stringFromDate:date]; - NSString *logMsg = [NSString stringWithFormat:@"%@|level:%d|module:%@|%@\n",formatDate,level,module,log]; - [self writeLogFile:logMsg]; -} - -- (void)writeLogFile:(NSString*)log { - if (_pFileHandle == NULL) { - _pFileHandle = fopen((char*)_logFilePath.UTF8String, "aw+"); - } - - if (_pFileHandle) { - fwrite(log.UTF8String, 1, strlen(log.UTF8String), _pFileHandle); - } -} - -- (void)log:(NSString *)formatStr, ... { - if (!formatStr) { - return; - } - - va_list arglist; - va_start(arglist, formatStr); - NSString *outStr = [[NSString alloc] initWithFormat:formatStr arguments:arglist]; - va_end(arglist); - NSLog(@"applog:%@", outStr); - - NSDate *date = [NSDate date]; - NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; - formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss.SSS"; - NSString *formatDate = [formatter stringFromDate:date]; - NSString *logMsg = [NSString stringWithFormat:@"%@|applog|%@\n",formatDate,outStr]; - [self writeLogFile:logMsg]; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/CommonUtils/TCUtil.h b/iOS/Demo/TXLiteAVDemo/App/AppCommon/CommonUtils/TCUtil.h deleted file mode 100644 index dd7a60c9..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/CommonUtils/TCUtil.h +++ /dev/null @@ -1,87 +0,0 @@ -/** - * Module: TCUtil - * - * Function: 实用函数 - */ - -#import -#import "TCLog.h" - - -#define IPHONE_X \ -({BOOL isPhoneX = NO;\ -if (@available(iOS 11.0, *)) {\ -isPhoneX = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom > 0.0;\ -}\ -(isPhoneX);}) - -typedef void(^videoIsReadyBlock)(void); - -@interface TCUtil : NSObject - -+ (NSData *)dictionary2JsonData:(NSDictionary *)dict; - -+ (NSDictionary *)jsonData2Dictionary:(NSString *)jsonData; - -+ (NSString *)getFileCachePath:(NSString *)fileName; - -+ (NSUInteger)getContentLength:(NSString*)string; - -+ (void)asyncSendHttpRequest:(NSDictionary*)param handler:(void (^)(int resultCode, NSDictionary* resultDict))handler; -+ (void)asyncSendHttpRequest:(NSString*)command params:(NSDictionary*)params handler:(void (^)(int resultCode, NSString* message, NSDictionary* resultDict))handler; -+ (void)asyncSendHttpRequest:(NSString*)command token:(NSString*)token params:(NSDictionary*)params handler:(void (^)(int resultCode, NSString* message, NSDictionary* resultDict))handler; - - -+ (NSString *)transImageURL2HttpsURL:(NSString *)httpURL; - -+ (NSString*)getStreamIDByStreamUrl:(NSString*) strStreamUrl; - -+ (UIImage *)gsImage:(UIImage *)image withGsNumber:(CGFloat)blur; - -+ (UIImage*)scaleImage:(UIImage *)image scaleToSize:(CGSize)size; - -+ (UIImage *)clipImage:(UIImage *)image inRect:(CGRect)rect; - -+ (void)toastTip:(NSString*)toastInfo parentView:(UIView *)parentView; - -+ (float)heightForString:(UITextView *)textView andWidth:(float)width; - -+ (BOOL)isSuitableMachine:(int)targetPlatNum; - -// - Remove From Github -#pragma mark - 分享相关 -+ (void)initializeShare; - -+ (void)dismissShareDialog; - -@end - - -// 频率控制类,如果频率没有超过 nCounts次/nSeconds秒,canTrigger将返回true -@interface TCFrequeControl : NSObject - -- (instancetype)initWithCounts:(NSInteger)counts andSeconds:(NSTimeInterval)seconds; -- (BOOL)canTrigger; - -@end - - -// 日志 -#ifdef DEBUG - -#ifndef DebugLog -//#define DebugLog(fmt, ...) NSLog((@"[%s Line %d]" fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) -#define DebugLog(fmt, ...) [[TCLog shareInstance] log:fmt, ##__VA_ARGS__] -#endif - -#else - -#ifndef DebugLog -#define DebugLog(fmt, ...) [[TCLog shareInstance] log:fmt, ##__VA_ARGS__] -#endif -#endif - -#ifndef TC_PROTECT_STR -#define TC_PROTECT_STR(x) (x == nil ? @"" : x) -#endif - diff --git a/iOS/Demo/TXLiteAVDemo/App/AppCommon/CommonUtils/TCUtil.m b/iOS/Demo/TXLiteAVDemo/App/AppCommon/CommonUtils/TCUtil.m deleted file mode 100644 index 34184ba5..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppCommon/CommonUtils/TCUtil.m +++ /dev/null @@ -1,549 +0,0 @@ -/** - * Module: TCUtil - * - * Function: 实用函数 - */ - -#import "TCUtil.h" -#import "NSData+Common.h" -#import "NSString+Common.h" -#import -#import -#import -#import -#import -#import "TXLiteAVDemo-Swift.h" -#import "AppLocalized.h" - -//错误码 -#define kError_InvalidParam -10001 -#define kError_ConvertJsonFailed -10002 -#define kError_HttpError -10003 - -#define kHttpServerAddr @"https://xzb.qcloud.com" - -#define kHttpTimeout 30 -//数据上报 -#define DEFAULT_ELK_HOST @"https://ilivelog.qcloud.com" - -@implementation TCUtil - -+ (NSData *)dictionary2JsonData:(NSDictionary *)dict { - // 转成Json数据 - if ([NSJSONSerialization isValidJSONObject:dict]) - { - NSError *error = nil; - NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error]; - if(error) - { - DebugLog(@"[%@] Post Json Error", [self class]); - } - return data; - } - else - { - DebugLog(@"[%@] Post Json is not valid", [self class]); - } - return nil; -} - -+ (NSDictionary *)jsonData2Dictionary:(NSString *)jsonData { - if (jsonData == nil) { - return nil; - } - NSData *data = [jsonData dataUsingEncoding:NSUTF8StringEncoding]; - NSError *err = nil; - NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err]; - if (err || ![dic isKindOfClass:[NSDictionary class]]) { - DebugLog(@"Json parse failed: %@", jsonData); - return nil; - } - return dic; -} - -+ (NSString *)getFileCachePath:(NSString *)fileName { - if (nil == fileName) { - return nil; - } - - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); - NSString *cacheDirectory = [paths objectAtIndex:0]; - - NSString *fileFullPath = [cacheDirectory stringByAppendingPathComponent:fileName]; - return fileFullPath; -} - - -//通过分别计算中文和其他字符来计算长度 -+ (NSUInteger)getContentLength:(NSString*)content { - size_t length = 0; - for (int i = 0; i < [content length]; i++) - { - unichar ch = [content characterAtIndex:i]; - if (0x4e00 < ch && ch < 0x9fff) - { - length += 2; - } - else - { - length++; - } - } - - return length; -} - -+ (void)asyncSendHttpRequest:(NSString*)command token:(NSString*)token params:(NSDictionary*)params handler:(void (^)(int resultCode, NSString* message, NSDictionary* resultDict))handler { - dispatch_async(dispatch_get_global_queue(0, 0), ^{ - NSData* data = [TCUtil dictionary2JsonData:params]; - if (data == nil) - { - DebugLog(AppPortalLocalize(@"AppCommon.TCUtil.sendhttprequest")); - dispatch_async(dispatch_get_main_queue(), ^{ - handler(kError_ConvertJsonFailed, AppPortalLocalize(@"AppCommon.TCUtil.parametererror"), nil); - }); - return; - } - - NSString* urlString = [kHttpServerAddr stringByAppendingPathComponent:command]; - NSMutableString *strUrl = [[NSMutableString alloc] initWithString:urlString]; - - NSURL *URL = [NSURL URLWithString:strUrl]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; - - if (data) - { - [request setValue:[NSString stringWithFormat:@"%ld",(long)[data length]] forHTTPHeaderField:@"Content-Length"]; - [request setHTTPMethod:@"POST"]; - [request setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; - [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; - if (token.length > 0) { - NSString* sig = [[NSString stringWithFormat:@"%@%@", token, [data md5Hash]] md5]; - [request setValue:sig forHTTPHeaderField:@"Liteav-Sig"]; - } - [request setHTTPBody:data]; - } - - [request setTimeoutInterval:kHttpTimeout]; - - - NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - if (error != nil) - { - DebugLog(@"internalSendRequest failed,NSURLSessionDataTask return error code:%d, des:%@", [error code], [error description]); - dispatch_async(dispatch_get_main_queue(), ^{ - handler(kError_HttpError, AppPortalLocalize(@"AppCommon.TCUtil.serverrequesterror"), nil); - }); - } - else - { - NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; - NSDictionary* resultDict = [TCUtil jsonData2Dictionary:responseString]; - int errCode = -1; - NSString* message = @""; - NSDictionary* dataDict = nil; - if (resultDict) - { - if (resultDict[@"code"]) { - errCode = [resultDict[@"code"] intValue]; - } - - if (resultDict[@"message"]) { - message = resultDict[@"message"]; - } - - if (200 == errCode && resultDict[@"data"]) - { - dataDict = resultDict[@"data"]; - } - } - dispatch_async(dispatch_get_main_queue(), ^{ - handler(errCode, message, dataDict); - }); - } - }]; - - [task resume]; - }); -} - -+ (void)asyncSendHttpRequest:(NSString*)command params:(NSDictionary*)params handler:(void (^)(int resultCode, NSString* message, NSDictionary* resultDict))handler { - [self asyncSendHttpRequest:command token:nil params:params handler:handler]; -} - - -+ (void)asyncSendHttpRequest:(NSDictionary*)param handler:(void (^)(int result, NSDictionary* resultDict))handler { - dispatch_async(dispatch_get_global_queue(0, 0), ^{ - NSData* data = [TCUtil dictionary2JsonData:param]; - if (data == nil) - { - DebugLog(AppPortalLocalize(@"AppCommon.TCUtil.sendhttprequest")); - dispatch_async(dispatch_get_main_queue(), ^{ - handler(kError_ConvertJsonFailed, nil); - }); - return; - } - - NSMutableString *strUrl = [[NSMutableString alloc] initWithString:kHttpServerAddr]; - - NSURL *URL = [NSURL URLWithString:strUrl]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; - - if (data) - { - [request setValue:[NSString stringWithFormat:@"%ld",(long)[data length]] forHTTPHeaderField:@"Content-Length"]; - [request setHTTPMethod:@"POST"]; - [request setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; - [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; - - [request setHTTPBody:data]; - } - - [request setTimeoutInterval:kHttpTimeout]; - - - NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - if (error != nil) - { - DebugLog(@"internalSendRequest failed,NSURLSessionDataTask return error code:%d, des:%@", [error code], [error description]); - dispatch_async(dispatch_get_main_queue(), ^{ - handler(kError_HttpError, nil); - }); - } - else - { - NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; - NSDictionary* resultDict = [TCUtil jsonData2Dictionary:responseString]; - int errCode = -1; - NSDictionary* dataDict = nil; - if (resultDict) - { - if (resultDict[@"returnValue"]) - errCode = [resultDict[@"returnValue"] intValue]; - - if (0 == errCode && resultDict[@"returnData"]) - { - dataDict = resultDict[@"returnData"]; - } - } - dispatch_async(dispatch_get_main_queue(), ^{ - handler(errCode, dataDict); - }); - } - }]; - - [task resume]; - }); -} - - -+ (NSString *)transImageURL2HttpsURL:(NSString *)httpURL { - if (httpURL.length == 0) { - return nil; - } - if ([NSURL URLWithString:httpURL] == nil) { - return nil; - } - NSString * httpsURL = httpURL; - if ([httpURL hasPrefix:@"http:"]) { - httpsURL = [httpURL stringByReplacingOccurrencesOfString:@"http:" withString:@"https:"]; - }else{ - if (![httpURL hasPrefix:@"https:"]) { - httpsURL = [NSString stringWithFormat:@"https:%@",httpURL]; - } - } - return httpsURL; -} - -+ (NSString*)getStreamIDByStreamUrl:(NSString*) strStreamUrl { - if (strStreamUrl == nil || strStreamUrl.length == 0) { - return nil; - } - - strStreamUrl = [strStreamUrl lowercaseString]; - - //推流地址格式:rtmp://8888.livepush.myqcloud.com/live/8888_test_12345_test?txSecret=aaaa&txTime=bbbb - NSString * strLive = @"/live/"; - NSRange range = [strStreamUrl rangeOfString:strLive]; - if (range.location == NSNotFound) { - return nil; - } - - NSString * strSubString = [strStreamUrl substringFromIndex:range.location + range.length]; - NSArray * array = [strSubString componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"?."]]; - if ([array count] > 0) { - return [array objectAtIndex:0]; - } - - return nil; -} - -+ (NSString *)getPackageName { - static NSString *packname = nil; - if (packname) - return packname; - - NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary]; - packname = [infoDict objectForKey:@"CFBundleDisplayName"]; - if ([packname isEqual:@""]) { - packname = [infoDict objectForKey:@"CFBundleIdentifier"]; - } - return packname; -} - -+ (void)report:(NSMutableDictionary *)param handler:(void (^)(int resultCode, NSString *message))handler; { - if ([DEFAULT_ELK_HOST length] == 0) { - return; - } - dispatch_async(dispatch_get_global_queue(0, 0), ^{ - NSData* data = [self dictionary2JsonData:param]; - if (data == nil) - { - dispatch_async(dispatch_get_main_queue(), ^{ - if (handler) handler(kError_ConvertJsonFailed, nil); - }); - return; - } - - NSMutableString *strUrl = [[NSMutableString alloc] initWithString:DEFAULT_ELK_HOST]; - - NSURL *URL = [NSURL URLWithString:strUrl]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; - - if (data) - { - [request setValue:[NSString stringWithFormat:@"%ld",(long)[data length]] forHTTPHeaderField:@"Content-Length"]; - [request setHTTPMethod:@"POST"]; - [request setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; - [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; - - [request setHTTPBody:data]; - } - - [request setTimeoutInterval:kHttpTimeout]; - - - NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - if (error != nil) - { - NSLog(@"internalSendRequest failed,NSURLSessionDataTask return error code:%ld, des:%@", (long)[error code], [error description]); - dispatch_async(dispatch_get_main_queue(), ^{ - if (handler) handler(kError_HttpError, nil); - }); - } - else - { - NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; - dispatch_async(dispatch_get_main_queue(), ^{ - if ([responseString isEqualToString:@"ok"]) { - if (handler) handler(0, responseString); - }else{ - if (handler) handler(-1, responseString); - } - }); - } - }]; - - [task resume]; - }); -} -// - /Remove From Github - -//创建高斯模糊效果图片 -+ (UIImage *)gsImage:(UIImage *)image withGsNumber:(CGFloat)blur { - if (blur < 0.f || blur > 1.f) { - blur = 0.5f; - } - int boxSize = (int)(blur * 40); - boxSize = boxSize - (boxSize % 2) + 1; - CGImageRef img = image.CGImage; - vImage_Buffer inBuffer, outBuffer; - vImage_Error error; - void *pixelBuffer; - //从CGImage中获取数据 - CGDataProviderRef inProvider = CGImageGetDataProvider(img); - CFDataRef inBitmapData = CGDataProviderCopyData(inProvider); - //设置从CGImage获取对象的属性 - inBuffer.width = CGImageGetWidth(img); - inBuffer.height = CGImageGetHeight(img); - inBuffer.rowBytes = CGImageGetBytesPerRow(img); - inBuffer.data = (void*)CFDataGetBytePtr(inBitmapData); - pixelBuffer = malloc(CGImageGetBytesPerRow(img) * CGImageGetHeight(img)); - if(pixelBuffer == NULL) - NSLog(@"No pixelbuffer"); - outBuffer.data = pixelBuffer; - outBuffer.width = CGImageGetWidth(img); - outBuffer.height = CGImageGetHeight(img); - outBuffer.rowBytes = CGImageGetBytesPerRow(img); - error = vImageBoxConvolve_ARGB8888(&inBuffer, &outBuffer, NULL, 0, 0, boxSize, boxSize, NULL, kvImageEdgeExtend); - if (error) { - NSLog(@"error from convolution %ld", error); - } - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGContextRef ctx = CGBitmapContextCreate( outBuffer.data, outBuffer.width, outBuffer.height, 8, outBuffer.rowBytes, colorSpace, kCGImageAlphaNoneSkipLast); - CGImageRef imageRef = CGBitmapContextCreateImage (ctx); - UIImage *returnImage = [UIImage imageWithCGImage:imageRef]; - //clean up - CGContextRelease(ctx); - CGColorSpaceRelease(colorSpace); - free(pixelBuffer); - CFRelease(inBitmapData); - CGColorSpaceRelease(colorSpace); - CGImageRelease(imageRef); - return returnImage; -} - -/** - *缩放图片 - */ -+ (UIImage*)scaleImage:(UIImage *)image scaleToSize:(CGSize)size { - UIGraphicsBeginImageContext(size); - [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; - UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - return scaledImage; -} - -/** - *裁剪图片 - */ -+ (UIImage *)clipImage:(UIImage *)image inRect:(CGRect)rect { - CGImageRef sourceImageRef = [image CGImage]; - CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, rect); - UIImage *newImage = [UIImage imageWithCGImage:newImageRef]; - CGImageRelease(newImageRef); - return newImage; -} - -+ (float)heightForString:(UITextView *)textView andWidth:(float)width { - CGSize sizeToFit = [textView sizeThatFits:CGSizeMake(width, MAXFLOAT)]; - return sizeToFit.height; -} - -+ (void)toastTip:(NSString*)toastInfo parentView:(UIView *)parentView { - CGRect frameRC = [[UIScreen mainScreen] bounds]; - frameRC.origin.y = frameRC.size.height - (IPHONE_X ? 114 : 80); - frameRC.size.height -= 110; - __block UITextView * toastView = [[UITextView alloc] init]; - - toastView.editable = NO; - toastView.selectable = NO; - - frameRC.size.height = [self heightForString:toastView andWidth:frameRC.size.width]; - - toastView.frame = frameRC; - - toastView.text = toastInfo; - toastView.textColor = [UIColor blackColor]; - toastView.backgroundColor = [UIColor whiteColor]; - toastView.alpha = 0.5; - - [parentView addSubview:toastView]; - - dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC); - - dispatch_after(popTime, dispatch_get_main_queue(), ^(){ - [toastView removeFromSuperview]; - toastView = nil; - }); -} - -+ (BOOL)isSuitableMachine:(int)targetPlatNum { - int mib[2] = {CTL_HW, HW_MACHINE}; - size_t len = 0; - char* machine; - - sysctl(mib, 2, NULL, &len, NULL, 0); - - machine = (char*)malloc(len); - sysctl(mib, 2, machine, &len, NULL, 0); - - NSString* platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding]; - free(machine); - if ([platform length] > 6) { - NSString * platNum = [NSString stringWithFormat:@"%C", [platform characterAtIndex: 6 ]]; - return ([platNum intValue] >= targetPlatNum); - } else { - return NO; - } -} - -// - Remove From Github -#pragma mark - 分享 - -+ (void)initializeShare { -#if ENABLE_SHARE - //打开调试日志 - [[UMSocialManager defaultManager] openLog:YES]; - - //设置友盟appkey - [[UMSocialManager defaultManager] setUmSocialAppkey:@"57f214fb67e58ecb11003aea"]; - - // 获取友盟social版本号 - NSLog(@"UMeng social version: %@", [UMSocialGlobal umSocialSDKVersion]); - - //设置微信的appId和appKey - [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:kWeiXin_Share_ID appSecret:kWeiXin_Share_Secrect redirectURL:@"http://mobile.umeng.com/social"]; - - //设置分享到QQ互联的appId和appKey - [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:kQQZone_Share_ID appSecret:kQQZone_Share_Secrect redirectURL:@"http://mobile.umeng.com/social"]; - - //设置新浪的appId和appKey - [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:kSina_WeiBo_Share_ID appSecret:kSina_WeiBo_Share_Secrect redirectURL:@"http://sns.whalecloud.com/sina2/callback"]; -#endif -} - -#if ENABLE_SHARE -+ (UMSocialPlatformType)toUMPlatform:(TCSocialPlatform)p { - return (UMSocialPlatformType)p; -} -#endif - -+ (void)dismissShareDialog { - // [UMSocialUIManager dismissShareMenuView]; -} - -//+ (void)shareLive:(TRTCLiveRoomInfo *)liveInfo currentViewController:(UIViewController *)currentViewController { -// -//} - - - -@end - - -@implementation TCFrequeControl -{ - NSInteger _countsLimit; - NSInteger _curCounts; - NSTimeInterval _secondsLimit; - NSTimeInterval _preTime; -} - -- (instancetype)initWithCounts:(NSInteger)counts andSeconds:(NSTimeInterval)seconds { - if (self = [super init]) { - _countsLimit = counts; - _secondsLimit = seconds; - _curCounts = 0; - _preTime = 0; - } - return self; -} - -- (BOOL)canTrigger { - NSTimeInterval time = [[NSDate date] timeIntervalSince1970]; - if (_preTime == 0 || time - _preTime > _secondsLimit) { - _preTime = time; - _curCounts = 0; - } - if (_curCounts >= _countsLimit) { - return NO; - } - _curCounts += 1; - - return YES; -} - -@end - - diff --git a/iOS/Demo/TXLiteAVDemo/App/AppDelegate.h b/iOS/Demo/TXLiteAVDemo/App/AppDelegate.h deleted file mode 100644 index 427661b8..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppDelegate.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// AppDelegate.h -// RTMPiOSDemo -// -// Created by kuenzhang on 16/3/3. -// Copyright © 2016年 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; -@property (strong, nonatomic, nullable) NSData* deviceToken; - -- (void)clickHelp:(UIButton *)sender; - -- (void)showPortalConroller; -- (void)showLoginController; - -@end - -NS_ASSUME_NONNULL_END -// 新加跳转链接到在这里注册 -// annidy - -typedef enum : NSUInteger { - Help_MLVBLiveRoom, - Help_录屏直播, - Help_超级播放器, - Help_视频录制, - Help_特效编辑, - Help_视频拼接, - Help_图片转场, - Help_视频上传, - Help_双人音视频, - Help_多人音视频, - Help_rtmp推流, - Help_直播播放器, - Help_点播播放器, - Help_webrtc, - Help_TRTC, -} HelpTitle; - -#define HelpBtnUI(NAME) \ -UIButton *helpbtn = [UIButton buttonWithType:UIButtonTypeCustom]; \ -helpbtn.tag = Help_##NAME; \ -[helpbtn setFrame:CGRectMake(0, 0, 60, 25)]; \ -[helpbtn setBackgroundImage:[UIImage imageNamed:@"help_small"] forState:UIControlStateNormal]; \ -[helpbtn addTarget:[[UIApplication sharedApplication] delegate] action:@selector(clickHelp:) forControlEvents:UIControlEventTouchUpInside]; \ -[helpbtn sizeToFit]; \ -UIBarButtonItem *rightItem = [[UIBarButtonItem alloc] initWithCustomView:helpbtn]; \ -self.navigationItem.rightBarButtonItems = @[rightItem]; - -#define HelpBtnConfig(helpbtn, x) \ -helpbtn.tag = Help_##x; \ -[helpbtn addTarget:[[UIApplication sharedApplication] delegate] action:@selector(clickHelp:) forControlEvents:UIControlEventTouchUpInside]; - - diff --git a/iOS/Demo/TXLiteAVDemo/App/AppDelegate.m b/iOS/Demo/TXLiteAVDemo/App/AppDelegate.m deleted file mode 100644 index e2022304..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppDelegate.m +++ /dev/null @@ -1,441 +0,0 @@ -// -// AppDelegate.m -// RTMPiOSDemo -// -// Created by kuenzhang on 16/3/3. -// Copyright © 2016年 tencent. All rights reserved. -// - -#import "AppDelegate.h" -#import -#import "AppLocalized.h" - -#ifdef ENABLE_TRTC -#ifdef ENABLE_PLAY -#import "TRTCCloud.h" -#import "TXLiveBase.h" //TRTC -#else -#import "TRTCCloud.h" //TRTC_Smart -#endif -#else -#ifdef LIVE -#import "V2TXLivePremier.h" -#else -#import "TXLiveBase.h" -#endif -#endif - -#ifndef UGC_SMART -#import "AppLogMgr.h" -#endif - -#import "MainViewController.h" - -#import "AFNetworkReachabilityManager.h" -#import -#import - -#ifdef ENABLE_UGC -#import "TXUGCBase.h" -#endif - -#if !defined(UGC) && !defined(PLAYER) -#import "TXLiteAVDemo-Swift.h" -#import -#endif - -#if defined(ENTERPRISE) || defined(PROFESSIONAL) || defined(SMART) || defined(TRTC) -#import "Replaykit2Define.h" -#endif - -#if defined(PLAYER) || defined(PROFESSIONAL) || defined(ENTERPRISE) -#import "TXLaunchMoviePlayProtocol.h" -#endif - -#define BUGLY_APP_ID @"0" - -NSString *helpUrlDb[] = { - [Help_MLVBLiveRoom] = @"https://cloud.tencent.com/document/product/454/14606", - [Help_录屏直播 ] = @"https://cloud.tencent.com/document/product/454/7883", - [Help_超级播放器] = @"https://cloud.tencent.com/document/product/454/18871", - [Help_视频录制] = @"https://cloud.tencent.com/document/product/584/9367", - [Help_特效编辑] = @"https://cloud.tencent.com/document/product/584/9375", - [Help_视频拼接] = @"https://cloud.tencent.com/document/product/584/9370", - [Help_图片转场] = @"https://cloud.tencent.com/document/product/584/9375#14.-.E5.9B.BE.E7.89.87.E7.BC.96.E8.BE.91", - [Help_视频上传] = @"https://cloud.tencent.com/document/product/584/15534", - [Help_双人音视频] = @"https://cloud.tencent.com/document/product/454/14617", - [Help_多人音视频] = @"https://cloud.tencent.com/document/product/454/14617", - [Help_rtmp推流] = @"https://cloud.tencent.com/document/product/454/7879", - [Help_直播播放器] = @"https://cloud.tencent.com/document/product/454/7880", - [Help_点播播放器] = @"https://cloud.tencent.com/document/product/454/12147", - [Help_webrtc] = @"https://cloud.tencent.com/document/product/454/16914", - [Help_TRTC] = @"https://cloud.tencent.com/document/product/647/32221", - }; - -#if !defined(PLAYER) && !defined(UGC) -@interface AppDelegate () -#else -@interface AppDelegate () -#endif - -@property (nonatomic, strong) MainViewController* mainViewController; -@property (nonatomic, strong) NSDictionary *launchInfo; //从其他应用打开 -@property (nonatomic, assign) BOOL didLaunched; -@end - - -@implementation AppDelegate - - --(MainViewController *)mainViewController{ - if (!_mainViewController) { - _mainViewController = [[MainViewController alloc] init]; - } - return _mainViewController; -} - -- (void)clickHelp:(UIButton *)sender { - NSURL *helpUrl = [NSURL URLWithString:helpUrlDb[sender.tag]]; - UIApplication *myApp = [UIApplication sharedApplication]; - if ([myApp canOpenURL:helpUrl]) { - [myApp openURL:helpUrl]; - } -} - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - self.didLaunched = YES; - if ([[NSUserDefaults standardUserDefaults] boolForKey:@"remove_cache_preference"]) { - NSFileManager *fm = [NSFileManager defaultManager]; - NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; - [fm removeItemAtPath:[documentPath stringByAppendingPathComponent:@"TXUgcSDK.licence"] error:nil]; - [fm removeItemAtPath:[documentPath stringByAppendingPathComponent:@"TXLiveSDK.licence"] error:nil]; - [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"remove_cache_preference"]; - } - [self registNotificaiton]; - //启动bugly组件,bugly组件为腾讯提供的用于crash上报和分析的开放组件,如果您不需要该组件,可以自行移除 - BuglyConfig * config = [[BuglyConfig alloc] init]; - NSString *version = nil; -#if ENABLE_TRTC - version = [TRTCCloud getSDKVersion]; -#else -#ifdef LIVE - version = [V2TXLivePremier getSDKVersionStr]; -#else - version = [TXLiveBase getSDKVersionStr]; -#endif -#endif - -#if DEBUG - config.debugMode = YES; -#endif - NSString *appVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; - config.version = appVersion; - config.channel = @"LiteAV Demo"; - - [Bugly startWithAppId:BUGLY_APP_ID config:config]; -#ifdef ENABLE_UGC - [TXUGCBase setLicence:@"" key:@""]; -#endif - -#if (defined(ENABLE_PUSH) || defined(ENABLE_INTERNATIONAL)) && !defined(TRTC) -#ifdef LIVE - [V2TXLivePremier setLicence:@"" key:@""]; -#else - [TXLiveBase setLicence:@"" key:@""]; -#endif -#endif - -#ifdef TRTC - [TXLiveBase setLicence:@"" key:@""]; -#endif - - NSLog(@"rtmp demo init crash report"); - - // Override point for customization after application launch. - self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - - self.window.backgroundColor = [UIColor whiteColor]; - -#ifdef ENABLE_TRTC - [TRTCCloud setConsoleEnabled:NO]; - [TRTCCloud setLogLevel:TRTCLogLevelDebug]; - [TRTCCloud setLogDelegate:[AppLogMgr shareInstance]]; -#else - //初始化log模块 -#ifndef UGC_SMART -#ifndef LIVE - [TXLiveBase sharedInstance].delegate = [AppLogMgr shareInstance]; - [TXLiveBase setConsoleEnabled:NO]; - [TXLiveBase setAppID:@"1252463788"]; -#else - [V2TXLivePremier setObserver:[AppLogMgr shareInstance]]; - V2TXLiveLogConfig *logConf = [V2TXLiveLogConfig new]; - logConf.enableObserver = YES; - [V2TXLivePremier setLogConfig:logConf]; -#endif -#endif -#endif - [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-1000, 0) - forBarMetrics:UIBarMetricsDefault]; - - [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent; - [[UINavigationBar appearance] setBarTintColor:UIColor.blackColor]; - [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; - [[UINavigationBar appearance] setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:18],NSForegroundColorAttributeName:[UIColor whiteColor]}]; - [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"transparent.png"] forBarMetrics:UIBarMetricsDefault]; - [[UINavigationBar appearance] setShadowImage:[UIImage new]]; -#ifdef NOT_LOGIN - [self showPortalConroller]; -#else - [self showLoginController]; -#endif - - - [self.window makeKeyAndVisible]; -#ifndef ENABLE_TRTC - [[AFNetworkReachabilityManager sharedManager] startMonitoring]; -#endif - -#if !defined(PLAYER) && !defined(UGC) - // 自定义 APP 未读数 - [[V2TIMManager sharedInstance] setAPNSListener:self]; -#endif - //For ReplayKit2. 使用 UNUserNotificationCenter 来管理通知 - if ([UIDevice currentDevice].systemVersion.floatValue >= 11.0) { - UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; - //监听回调事件 - center.delegate = self; - - //iOS 10 使用以下方法注册,才能得到授权 - [center requestAuthorizationWithOptions:(UNAuthorizationOptionAlert + UNAuthorizationOptionSound + UNAuthorizationOptionBadge) - completionHandler:^(BOOL granted, NSError * _Nullable error) { - // Enable or disable features based on authorization. - }]; - } - if (!self.didLaunched && [(NSString *)self.launchInfo[@"protocol"] isEqualToString:@"v4vodplay"]) { - self.didLaunched = YES; - [self playVideoFromLaunchInfo:self.launchInfo]; - } - return YES; -} - -#pragma mark - 从其他应用拉起 -- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options { - NSMutableDictionary *params = [self getParamsFromURL:url.query].mutableCopy; - self.launchInfo = params.copy; - if (self.didLaunched) { - [self playVideoFromLaunchInfo:self.launchInfo]; - } - return YES; -} - -- (NSDictionary *)getParamsFromURL:(NSString *)queryStr { - NSArray *paramPairs = [queryStr componentsSeparatedByString:@"&"]; - if ([paramPairs count] == 0) { - return @{}; - } - NSMutableDictionary *params = [[NSMutableDictionary alloc] initWithCapacity:10]; - for (NSString *str in paramPairs) { - NSArray *pairs = [str componentsSeparatedByString:@"="]; - if ([pairs count] == 2) { - [params setValue:pairs[1] forKey:pairs[0]]; - } - } - return params.copy; -} - -#pragma mark - 扫码拉起APP播放视频 -- (void)playVideoFromLaunchInfo:(NSDictionary *)launchInfo { -#if defined(PLAYER) || defined(PROFESSIONAL) || defined(ENTERPRISE) - __weak UINavigationController *rootVC = (UINavigationController *)self.window.rootViewController; - if (launchInfo && [rootVC isKindOfClass:[UINavigationController class]]) { - if ([self findClass:NSClassFromString(@"LoginViewController") InNav:rootVC]) { - //登录流程,等待,这里不作处理,登录成功后showPortalConroller中主动调用这个函数 - } else if ([self findClass:NSClassFromString(@"MoviePlayerViewController") InNav:rootVC]) { - ///已有播放器 - id vc = - (id)[self findVCWith:NSClassFromString(@"MoviePlayerViewController") InNav:rootVC]; - __weak __typeof(self) weakSelf = self; - [vc startPlayVideoFromLaunchInfo:self.launchInfo complete:^(BOOL succ){ - weakSelf.launchInfo = nil; - }]; - } else { - id vc = [[NSClassFromString(@"MoviePlayerViewController") alloc] init]; - if (vc) { - __weak __typeof(self) weakSelf = self; - [(id)vc startPlayVideoFromLaunchInfo:self.launchInfo complete:^(BOOL succ){ - weakSelf.launchInfo = nil; - if (succ) { - [rootVC pushViewController:vc animated:NO]; - } - }]; - } else { - NSLog(@"current version not support super player, so cannot play video"); - } - } - } -#endif -} - -- (UIViewController *)findVCWith:(Class)aclass InNav:(UINavigationController *)nav { - for (UIViewController *vc in nav.viewControllers) { - if ([vc isKindOfClass: aclass]) { - return vc; - } - } - return nil; -} - -- (BOOL)findClass:(Class)aclass InNav:(UINavigationController *)nav { - UIViewController *vc = [self findVCWith:aclass InNav:nav]; - return vc != nil; -} - -#pragma mark - - --(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler{ - #if defined(ENTERPRISE) || defined(PROFESSIONAL) || defined(SMART) - if (notification.request.content.userInfo.allKeys.count > 0) { - if ([notification.request.content.userInfo[kReplayKit2UploadingKey] isEqualToString:kReplayKit2Stop]) { - [[NSNotificationCenter defaultCenter] postNotificationName:kCocoaNotificationNameReplayKit2Stop object:nil]; - } - } - #endif - // 处理完成后条用 completionHandler ,用于指示在前台显示通知的形式 - completionHandler(UNNotificationPresentationOptionSound + UNNotificationPresentationOptionBadge + UNAuthorizationOptionAlert); -} - -- (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler -{ - if (response.notification.request.content.userInfo.allKeys.count > 0) { -// NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:kReplayKit2AppGroupId]; -// if ([response.notification.request.content.userInfo[kReplayKit2UploadingKey] isEqualToString:kReplayKit2Uploading]) { -// [defaults setObject:kReplayKit2Uploading forKey:kReplayKit2UploadingKey]; -// [defaults synchronize]; -// } - } - completionHandler(); -} - -- (void)applicationWillResignActive:(UIApplication *)application { - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. -} - -- (void)applicationDidEnterBackground:(UIApplication *)application { - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. -} - -- (void)applicationWillEnterForeground:(UIApplication *)application { - // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. -} - -- (void)applicationDidBecomeActive:(UIApplication *)application { - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. -} - -- (void)applicationWillTerminate:(UIApplication *)application { - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. -} - -#pragma mark - 通知相关方法 --(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{ - NSLog(@"error: %@", error); -} - --(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{ - self.deviceToken = deviceToken; -} - -- (void)registNotificaiton { - UIUserNotificationSettings* settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge categories:nil]; - [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; - [[UIApplication sharedApplication] registerForRemoteNotifications]; -} - -#pragma mark - 登录跳转方法 -- (void)showPortalConroller { - UINavigationController *nav = nil; - NSString *appStoreID = @"1152295397"; - nav = [[UINavigationController alloc] initWithRootViewController:self.mainViewController]; - self.window.rootViewController = nav; - [self playVideoFromLaunchInfo:self.launchInfo]; - -#if !defined(ENABLE_INTERNATIONAL) - [self checkStoreVersion:appStoreID]; -#endif -} - -- (void)showLoginController { -#ifndef NOT_LOGIN - LoginViewController *vc = [[LoginViewController alloc] init]; - self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:vc]; -#endif -} - -#pragma mark - 推送设置回调 -- (uint32_t)onSetAPPUnreadCount { - return 0; -} - -#pragma mark - 检测商店版本 -- (void)checkStoreVersion:(NSString *)appID { - NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/cn/lookup?id=%@", appID]; - NSURLRequest * request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]]; - NSURLSession *session = [NSURLSession sharedSession]; - __weak __typeof(self) wself = self; - NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { - NSError *err; - if (!data || data.length == 0) { - NSLog(@"====== no store data ======"); - return; - } - NSDictionary *remoteDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&err]; - if (err) { - NSLog(@"====== no store info ======"); - return; - } - NSArray *array = [remoteDic objectForKey:@"results"]; - if (array.count < 1) { - return; - } - NSDictionary *appInfo = [array firstObject]; - NSString *appStoreVersion = [appInfo objectForKey:@"version"]; - NSLog(@"====== store version info: %@ ======", appStoreVersion); - BOOL result = [wself compareVersion:appStoreVersion]; - dispatch_async(dispatch_get_main_queue(), ^{ - if (result) { - [wself showUpdateAlertController:appID]; - } - }); - }]; - [task resume]; -} - -- (BOOL)compareVersion:(NSString *)appStoreVersion { - NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary]; - NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"]; - NSLog(@"====== current version is %@ ======", currentVersion); - return [appStoreVersion compare:currentVersion options:NSNumericSearch] == NSOrderedDescending; -} - -- (void)showUpdateAlertController:(NSString *)appID { - - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:TRTCLocalize(@"Demo.TRTC.LiveRoom.prompt") message:TRTCLocalize(@"Demo.TRTC.Home.newversionpublic") preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *sureAction = [UIAlertAction actionWithTitle:TRTCLocalize(@"Demo.TRTC.Home.updatenow") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - [self openAppStore:appID]; - }]; - UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:TRTCLocalize(@"Demo.TRTC.Home.later") style:UIAlertActionStyleCancel handler:nil]; - [alertController addAction:sureAction]; - [alertController addAction:cancelAction]; - if (self.window.rootViewController) { - [self.window.rootViewController presentViewController:alertController animated:YES completion:nil]; - } -} - -- (void)openAppStore:(NSString *)appID { - NSURL*url = [NSURL URLWithString:[NSString stringWithFormat:@"https://itunes.apple.com/us/app/id%@?ls=1&mt=8",appID]]; - [[UIApplication sharedApplication] openURL:url]; -} -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/AppLogMgr.h b/iOS/Demo/TXLiteAVDemo/App/AppLogMgr.h deleted file mode 100644 index 58b2e131..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppLogMgr.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// TCLog.h -// TCLVBIMDemo -// -// Created by kuenzhang on 16/9/5. -// Copyright © 2016年 tencent. All rights reserved. -// - -#import -#ifdef ENABLE_TRTC -#import "TRTCCloud.h" -#define DelegateProtocol TRTCLogDelegate -#else -#ifdef LIVE -#import "V2TXLivePremier.h" -#define DelegateProtocol V2TXLivePremierObserver -#else -#import "TXLiveBase.h" -#define DelegateProtocol TXLiveBaseDelegate -#endif -#endif -/** - * APPlog保存到沙箱路径:Library/Caches/rtmpsdk_日期.log - * 其中日期以天为单位,每天保存一个文件,如rtmpsdk_20160901.log - */ -@interface AppLogMgr: NSObject - -+ (instancetype)shareInstance; - --(void) log:(Boolean)bOnlyFile format:(NSString *)formatStr, ...; - -#ifdef LIVE -- (void)onLog:(V2TXLiveLogLevel)level log:(NSString *)log; -#else --(void) onLog:(NSString*)log LogLevel:(int)level WhichModule:(NSString*)module; -#endif - -@end - -#define AppDemoLog(fmt, ...) [[AppLogMgr shareInstance] log:NO format:fmt, ##__VA_ARGS__] -#define AppDemoLogOnlyFile(fmt, ...) [[AppLogMgr shareInstance] log:YES format:fmt, ##__VA_ARGS__] diff --git a/iOS/Demo/TXLiteAVDemo/App/AppLogMgr.m b/iOS/Demo/TXLiteAVDemo/App/AppLogMgr.m deleted file mode 100644 index cca58f9d..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/AppLogMgr.m +++ /dev/null @@ -1,101 +0,0 @@ -// -// TCLog.m -// TCLVBIMDemo -// -// Created by kuenzhang on 16/9/5. -// Copyright © 2016年 tencent. All rights reserved. -// - -#import "AppLogMgr.h" - -@implementation AppLogMgr -{ - NSString* _logFilePath; - FILE* _pFileHandle; -} - -static AppLogMgr *_shareInstance = nil; - -+ (instancetype)shareInstance -{ - static dispatch_once_t predicate; - - dispatch_once(&predicate, ^{ - _shareInstance = [[AppLogMgr alloc] init]; - }); - return _shareInstance; -} - -- (instancetype)init -{ - if (self = [super init]) - { - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); - NSString *path = [paths objectAtIndex:0]; - NSDate *date = [NSDate date]; - NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; - formatter.dateFormat = @"yyyyMMdd"; - - NSString *res = [formatter stringFromDate:date]; - _logFilePath = [NSString stringWithFormat:@"%@/appdemolog.log",path]; - //_logFilePath = [NSString stringWithFormat:@"%@/Caches/rtmpsdk_%@.log",path,res]; - } - return self; -} - --(void) dealloc -{ - if (_pFileHandle) - { - fclose(_pFileHandle); - } - _pFileHandle = NULL; -} - -#ifdef LIVE -- (void)onLog:(V2TXLiveLogLevel)level log:(NSString *)log { - NSLog(@"level:%ld| %@\n", (long)level, log); -} -#else --(void) onLog:(NSString*)log LogLevel:(int)level WhichModule:(NSString*)module -{ - NSLog(@"level:%d|module:%@| %@\n", level, module, log); -} -#endif - --(void) writeLogFile:(NSString*)log -{ - if (_pFileHandle == NULL) - { - _pFileHandle = fopen((char*)_logFilePath.UTF8String, "w"); - } - - if (_pFileHandle) - { - fwrite(log.UTF8String, 1, strlen(log.UTF8String), _pFileHandle); - fflush(_pFileHandle); - } -} - --(void) log:(Boolean)bOnlyFile format:(NSString *)formatStr, ...; -{ - if (!formatStr) - return; - - va_list arglist; - va_start(arglist, formatStr); - NSString *outStr = [[NSString alloc] initWithFormat:formatStr arguments:arglist]; - va_end(arglist); - - if (!bOnlyFile) { - NSLog(@"applog:%@", outStr); - } - - NSDate *date = [NSDate date]; - NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; - formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss.SSS"; - NSString *formatDate = [formatter stringFromDate:date]; - NSString *logMsg = [NSString stringWithFormat:@"%@|applog|%@\n",formatDate,outStr]; - [self writeLogFile:logMsg]; -} -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/Info.plist b/iOS/Demo/TXLiteAVDemo/App/Info.plist deleted file mode 100644 index 5f500734..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Info.plist +++ /dev/null @@ -1,78 +0,0 @@ - - - - - CFBundleDevelopmentRegion - zh_CN - CFBundleDisplayName - 腾讯云工具包 - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIconName - AppIcon - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 8.9.1103 - CFBundleSignature - ???? - CFBundleURLTypes - - - CFBundleTypeRole - Editor - CFBundleURLName - com.tencent.liteav.demo - CFBundleURLSchemes - - liteav - - - - CFBundleVersion - 1103 - IMSDKCrashReporterEnable - - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - NSAppleMusicUsageDescription - 视频云工具包需要访问你的媒体库权限以获取音乐,不允许则无法添加音乐 - NSCameraUsageDescription - 视频云工具包需要访问你的相机权限,开启后用于视频录制,以及访问您实时拍摄的面部信息用于美颜功能的体验 - NSMicrophoneUsageDescription - 视频云工具包需要访问你的麦克风权限,开启后录制的视频才会有声音 - NSPhotoLibraryAddUsageDescription - 视频云工具包需要访问你的相册权限,开启后才能保存编辑的文件 - NSPhotoLibraryUsageDescription - 视频云工具包需要访问你的相册权限,开启后才能编辑视频文件 - UIBackgroundModes - - audio - - UIFileSharingEnabled - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/iOS/Demo/TXLiteAVDemo/App/Main/MainTableViewCell.h b/iOS/Demo/TXLiteAVDemo/App/Main/MainTableViewCell.h deleted file mode 100644 index 4fb57174..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Main/MainTableViewCell.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// MainTableViewCell.h -// RTMPiOSDemo -// -// Created by rushanting on 2017/5/3. -// Copyright © 2017年 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -typedef NS_ENUM(NSInteger, CellInfoType) { - CellInfoTypeEntry, - CellInfoTypeAction -}; - -@interface CellInfo : NSObject -@property (readonly, nonatomic) CellInfoType type; -@property (nonatomic, copy) NSString* title; -@property (nonatomic, copy) NSString* iconName; -@property BOOL isUnFold; -@property NSArray *subCells; - -+ (instancetype)cellInfoWithTitle:(NSString *)title - controllerClassName:(NSString *)className; - -+ (instancetype)cellInfoWithTitle:(NSString *)title - controllerCreationBlock:(UIViewController *(^)(void))creator; - -+ (instancetype)cellInfoWithTitle:(NSString *)title - actionBlock:(void (^)(void))action; - -- (nullable UIViewController *)createEntryController; -- (void)performAction; -@end - - - -@interface MainTableViewCell : UITableViewCell - -@property (nonatomic) CellInfo *cellData; -@property (nonatomic) BOOL highLight; - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/App/Main/MainTableViewCell.m b/iOS/Demo/TXLiteAVDemo/App/Main/MainTableViewCell.m deleted file mode 100644 index c0040302..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Main/MainTableViewCell.m +++ /dev/null @@ -1,162 +0,0 @@ -// -// MainTableViewCell.m -// RTMPiOSDemo -// -// Created by rushanting on 2017/5/3. -// Copyright © 2017年 tencent. All rights reserved. -// - -#import "MainTableViewCell.h" -#import "ColorMacro.h" - - -@interface CellInfo () -@property (nonatomic, copy) NSString* controllerClassName; -@property (copy, nonatomic) UIViewController *(^controllerCreator)(void); -@property (readwrite, nonatomic) CellInfoType type; -@property (copy, nonatomic) void(^action)(void); -@end - -@implementation CellInfo -- (id)init { - self = [super init]; - - return self; -} - -+ (instancetype)cellInfoWithTitle:(NSString *)title controllerClassName:(NSString *)className { - CellInfo *info = [[CellInfo alloc] init]; - info.title = title; - info.controllerClassName = className; - info.type = CellInfoTypeEntry; - return info; -} - -+ (instancetype)cellInfoWithTitle:(NSString *)title - controllerCreationBlock:(UIViewController *(^)(void))creator { - CellInfo *info = [[CellInfo alloc] init]; - info.title = title; - info.controllerCreator = creator; - info.type = CellInfoTypeEntry; - return info; -} - -+ (instancetype)cellInfoWithTitle:(NSString *)title actionBlock:(void (^)(void))action { - CellInfo *info = [[CellInfo alloc] init]; - info.title = title; - info.action = action; - info.type = CellInfoTypeAction; - return info; -} - - -- (UIViewController *)createEntryController { - if (self.controllerClassName) { - return [[NSClassFromString(self.controllerClassName) alloc] init]; - } else if (self.controllerCreator) { - return self.controllerCreator(); - } - return nil; -} - -- (void)performAction { - if (self.action) { - self.action(); - } -} - -@end - - -@interface MainTableViewCell () { - UIView* _backgroundView; - UIImageView* _iconImageView; - UILabel* _titleLabel; - UIImageView* _detailImageView; -} - -@end - -@implementation MainTableViewCell - -- (void)awakeFromNib { - [super awakeFromNib]; - // Initialization code -} - - - -- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier -{ - if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { - self.backgroundColor = UIColor.clearColor; - self.selectionStyle = UITableViewCellSelectionStyleNone; - - _backgroundView = [[UIView alloc] init]; - [self addSubview:_backgroundView]; - - _iconImageView = [[UIImageView alloc] init]; - _iconImageView.contentMode = UIViewContentModeScaleAspectFit; - [_backgroundView addSubview:_iconImageView]; - - _titleLabel = [[UILabel alloc] init]; - _titleLabel.textAlignment = NSTextAlignmentLeft; - _titleLabel.font = [UIFont systemFontOfSize:18]; - _titleLabel.textColor = UIColor.whiteColor; - [_backgroundView addSubview:_titleLabel]; - - _detailImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrow"]]; - [_backgroundView addSubview:_detailImageView]; - _detailImageView.hidden = YES; - - } - - return self; -} - -- (void)layoutSubviews -{ - [super layoutSubviews]; - if (_cellData.subCells) { - _backgroundView.frame = CGRectMake(0, 10, self.frame.size.width, 55); - } else { - _backgroundView.frame = CGRectMake(0, 0, self.frame.size.width, 50); - } - - _titleLabel.center = CGPointMake(_titleLabel.center.x, _titleLabel.superview.frame.size.height/2); - _titleLabel.frame = CGRectMake(10, _titleLabel.frame.origin.y, _titleLabel.frame.size.width, _titleLabel.frame.size.height); - _iconImageView.center = (CGPointMake(_backgroundView.frame.size.width-41, _backgroundView.frame.size.height/2)); - _detailImageView.center = (CGPointMake(_backgroundView.frame.size.width-41, _backgroundView.frame.size.height/2)); - - if (_cellData.subCells != nil) { - _iconImageView.hidden = NO; - _detailImageView.hidden = YES; - _titleLabel.font = [UIFont systemFontOfSize:18]; - } else { - _iconImageView.hidden = YES; - _detailImageView.hidden = NO; - _titleLabel.font = [UIFont systemFontOfSize:16]; - } -} - -- (void)setCellData:(CellInfo*)cellInfo -{ - _cellData = cellInfo; - UIImage* image = cellInfo.iconName != nil ? [UIImage imageNamed:cellInfo.iconName] : nil; - _iconImageView.image = image; - [_iconImageView sizeToFit]; - _titleLabel.text = cellInfo.title; - [_titleLabel sizeToFit]; - self.highLight = _cellData.isUnFold; -} - -- (void)setHighLight:(BOOL)highLight { - if (highLight) { - _backgroundView.backgroundColor = UIColorFromRGB(0x173370); - } else { - _backgroundView.backgroundColor = UIColorFromRGB(0x0D2C5B); - } - _highLight = highLight; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/Main/MainViewController.h b/iOS/Demo/TXLiteAVDemo/App/Main/MainViewController.h deleted file mode 100644 index 7fad82bb..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Main/MainViewController.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// MainViewController.h -// RTMPiOSDemo -// -// Created by rushanting on 2017/4/28. -// Copyright © 2017年 tencent. All rights reserved. -// - -#import - -@interface MainViewController : UIViewController - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/Main/MainViewController.m b/iOS/Demo/TXLiteAVDemo/App/Main/MainViewController.m deleted file mode 100644 index 092dd8dc..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Main/MainViewController.m +++ /dev/null @@ -1,654 +0,0 @@ -// -// MainViewController.m -// RTMPiOSDemo -// -// Created by rushanting on 2017/4/28. -// Copyright © 2017年 tencent. All rights reserved. -// - -#import "MainViewController.h" -#ifdef ENABLE_PUSH -#import "CameraPushViewController.h" -#import "LebLauncherViewController.h" -#endif -#if !defined(UGC) && !defined(PLAYER) -#import "PlayViewController.h" - -//#ifndef DISABLE_VOD -//#import "DownloadViewController.h" -//#endif - -#endif -#ifdef ENABLE_UGC -#import "UGCVideoEditWrapper.h" -#import "UGCVideoJoinWrapper.h" -#import "UGCVideoUploadWrapper.h" -#import "UGCRecordWrapper.h" -#endif - -#if defined(ENABLE_PLAY) && !defined(DISABLE_VOD) -#import "SuperPlayer.h" -#endif - -#ifdef ENABLE_TRTC -#import "TXLiteAVSDK.h" -#import "TXLiteAVDemo-Swift.h" -#import "TRTCLiveEnterViewController.h" -#import "TRTCCallingEnterViewController.h" -#import "TRTCSpeedTestViewController.h" -#endif - -#import "ColorMacro.h" -#import "MainTableViewCell.h" - -#ifndef ENABLE_TRTC -#ifdef LIVE -#import "V2TXLivePremier.h" -#else -#import "TXLiveBase.h" -#endif -#endif - -#if !defined(UGC) && !defined(PLAYER) -#import "TXLiteAVDemo-Swift.h" -#import -#import "GenerateTestUserSig.h" -#endif - -#import "AppLocalized.h" - - - -#define STATUS_BAR_HEIGHT [UIApplication sharedApplication].statusBarFrame.size.height - -static NSString * const XiaoZhiBoAppStoreURLString = @"http://itunes.apple.com/cn/app/id1132521667?mt=8"; -static NSString * const XiaoShiPinAppStoreURLString = @"http://itunes.apple.com/cn/app/id1374099214?mt=8"; -static NSString * const trtcAppStoreURLString = @"http://itunes.apple.com/cn/app/id1400663224?mt=8"; - - -@interface MainViewController ()< -UITableViewDelegate, -UITableViewDataSource, -UIPickerViewDataSource, -UIPickerViewDelegate, -UIAlertViewDelegate -> -#ifdef ENABLE_UGC -@property (strong, nonatomic) UGCRecordWrapper *ugcRecordWrapper; -@property (strong, nonatomic) UGCVideoUploadWrapper *ugcUploadWrapper; -@property (strong, nonatomic) UGCVideoJoinWrapper *ugcJoinWrapper; -@property (strong, nonatomic) UGCVideoEditWrapper *ugcEditWrapper; -#endif -@property (nonatomic) NSMutableArray* cellInfos; -@property (nonatomic) NSArray* addNewCellInfos; -@property (nonatomic) MainTableViewCell *selectedCell; -@property (nonatomic) UITableView* tableView; -@property (nonatomic) UIView* logUploadView; -@property (nonatomic) UIPickerView* logPickerView; -@property (nonatomic) NSMutableArray* logFilesArray; - -#ifdef ENABLE_TRTC -//@property (nonatomic, strong) TRTCCallingContactViewController *videoCallVC; -//@property (nonatomic, strong) TRTCLiveRoom *liveRoom; -//@property (nonatomic, strong) TRTCVoiceRoom *voiceRoom; -#endif - -@end - -@implementation MainViewController - -- (void)viewWillAppear:(BOOL)animated -{ - [super viewWillAppear:animated]; - [self.navigationController setNavigationBarHidden:YES animated:NO]; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view. -#ifdef ENABLE_UGC - _ugcEditWrapper = [[UGCVideoEditWrapper alloc] initWithViewController:self theme:nil]; - _ugcJoinWrapper = [[UGCVideoJoinWrapper alloc] initWithViewController:self theme:nil]; - _ugcRecordWrapper = [[UGCRecordWrapper alloc] initWithViewController:self theme:nil]; - _ugcUploadWrapper = [[UGCVideoUploadWrapper alloc] initWithViewController:self theme:nil]; -#endif - -#ifdef ENABLE_TRTC -// _videoCallVC = [[TRTCCallingContactViewController alloc] init]; -// _voiceRoom = [TRTCVoiceRoom sharedInstance]; -// [[TRTCCalling shareInstance] addDelegate:_videoCallVC]; - - -#endif - -#if !defined(UGC) && !defined(PLAYER) - V2TIMSDKConfig *config = [[V2TIMSDKConfig alloc] init]; - [[V2TIMManager sharedInstance] initSDK:SDKAPPID config:config listener:nil]; -#endif - - [self initCellInfos]; - [self initUI]; -} - --(void)viewDidAppear:(BOOL)animated { - [super viewDidAppear:animated]; -} - -- (IBAction)userInfoButtonClick:(id)sender { - #if !defined(UGC) && !defined(PLAYER) - MineViewController *mineVC = [[MineViewController alloc] init]; - [self.navigationController pushViewController:mineVC animated:YES]; - #endif -} - -- (void)initCellInfos -{ - - _cellInfos = [NSMutableArray new]; - CellInfo* cellInfo = nil; - __weak __typeof(self) weakSelf = self; -#if defined(ENABLE_PUSH) - cellInfo = [CellInfo new]; - cellInfo.title = V2Localize(@"V2.Live.LinkMicNew.title"); - cellInfo.iconName = @"main_room_live"; - [_cellInfos addObject:cellInfo]; - cellInfo.subCells = ({ - // 移动直播相关入口 - NSMutableArray *subCells = [NSMutableArray new]; - CellInfo* scellInfo; - -#ifdef ENABLE_PUSH - scellInfo = [CellInfo cellInfoWithTitle:V2Localize(@"MLVB.MainMenu.pushcamera") - controllerClassName:@"CameraPushViewController"]; - [subCells addObject:scellInfo]; - scellInfo = [CellInfo cellInfoWithTitle:V2Localize(@"MLVB.MainMenu.pushscreen") - controllerClassName:@"ScreenPushViewController"]; - [subCells addObject:scellInfo]; -#endif - -#if !defined(UGC) && !defined(PLAYER) - scellInfo = [CellInfo cellInfoWithTitle:V2Localize(@"MLVB.MainMenu.pull") - controllerClassName:@"PlayViewController"]; - [subCells addObject:scellInfo]; -#endif - -#ifndef SMART - scellInfo = [CellInfo cellInfoWithTitle:V2Localize(@"MLVB.lebLauncher.title") controllerClassName:@"LebLauncherViewController"]; - [subCells addObject:scellInfo]; - scellInfo = [CellInfo cellInfoWithTitle:V2Localize(@"V2.Live.LinkMicNew.coanchornew") - controllerClassName:@"V2MainViewController"]; - [subCells addObject:scellInfo]; -#endif - -#ifndef LIVE - scellInfo = [CellInfo cellInfoWithTitle:V2Localize(@"MLVB.MainMenu.coanchoringold") - controllerClassName:@"LiveRoomListViewController"]; - [subCells addObject:scellInfo]; -#endif - -// scellInfo = [CellInfo cellInfoWithTitle:@"小直播" actionBlock:^{ -// // 打开小直播AppStore -// [[UIApplication sharedApplication] -// openURL:[NSURL URLWithString:XiaoZhiBoAppStoreURLString]]; -// }]; -// [subCells addObject:scellInfo]; - - subCells; - }); - -#endif - -#if defined(ENABLE_INTERNATIONAL) - cellInfo = [CellInfo new]; - cellInfo.title = V2Localize(@"V2.Live.LinkMicNew.title"); - cellInfo.iconName = @"main_room_live"; - [_cellInfos addObject:cellInfo]; - cellInfo.subCells = ({ - // 移动直播相关入口 - NSMutableArray *subCells = [NSMutableArray new]; - CellInfo* scellInfo; - - scellInfo = [CellInfo cellInfoWithTitle:V2Localize(@"V2.Live.LinkMicNew.coanchornew") - controllerClassName:@"V2MainViewController"]; - [subCells addObject:scellInfo]; - subCells; - }); - -#endif - -#if defined(ENABLE_PLAY) && !defined(DISABLE_VOD) - cellInfo = [CellInfo new]; - cellInfo.title = @"播放器 Player"; - cellInfo.iconName = @"main_composite"; - [_cellInfos addObject:cellInfo]; - cellInfo.subCells = ({ -// NSArray* playerCellInfos = ({ - NSMutableArray *subCells = [NSMutableArray new]; - CellInfo* scellInfo; - scellInfo = [CellInfo cellInfoWithTitle:@"超级播放器" - controllerClassName:@"MoviePlayerViewController"]; - [subCells addObject:scellInfo]; - subCells; - }); -// [_cellInfos addObjectsFromArray:playerCellInfos]; -#endif - -#ifdef ENABLE_UGC - cellInfo = [CellInfo new]; - cellInfo.title = @"短视频 UGSV"; - cellInfo.iconName = @"main_room_video"; - [_cellInfos addObject:cellInfo]; - cellInfo.subCells = ({ -// NSArray* videoCellInfos = ({ - NSMutableArray *subCells = [NSMutableArray new]; - CellInfo* scellInfo; - - scellInfo = [CellInfo cellInfoWithTitle:@"视频录制" actionBlock:^{ - [weakSelf.ugcRecordWrapper showRecordEntryController]; - }]; - [subCells addObject:scellInfo]; - -#ifndef UGC_SMART - scellInfo = [CellInfo cellInfoWithTitle:@"特效编辑" actionBlock:^{ - [weakSelf.ugcEditWrapper showEditEntryControllerWithType:UGCKitMediaTypeVideo]; - }]; - [subCells addObject:scellInfo]; - - scellInfo = [CellInfo cellInfoWithTitle:@"视频拼接" actionBlock:^{ - [weakSelf.ugcJoinWrapper showVideoJoinEntryController]; - }]; - [subCells addObject:scellInfo]; - - scellInfo = [CellInfo cellInfoWithTitle:@"图片转场" actionBlock:^{ - [weakSelf.ugcEditWrapper showEditEntryControllerWithType:UGCKitMediaTypePhoto]; - }]; - [subCells addObject:scellInfo]; -#endif - scellInfo = [CellInfo cellInfoWithTitle:@"视频上传" actionBlock:^{ - [weakSelf.ugcUploadWrapper showVideoUploadEntryController]; - }]; - [subCells addObject:scellInfo]; - - scellInfo = [CellInfo cellInfoWithTitle:@"小视频" actionBlock:^{ - //打开小视频AppStore - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:XiaoShiPinAppStoreURLString]]; - }]; - [subCells addObject:scellInfo]; - - subCells; - }); -// [_cellInfos addObjectsFromArray:videoCellInfos]; -#endif - - -#if defined(ENABLE_TRTC) - cellInfo = [CellInfo new]; - cellInfo.title = V2Localize(@"TRTC.MainMenu.trtc"); - cellInfo.iconName = @"main_room_multi"; - [_cellInfos addObject:cellInfo]; - cellInfo.subCells = ({ - NSMutableArray *subCells = [NSMutableArray new]; - CellInfo* scellInfo; - scellInfo = [CellInfo cellInfoWithTitle:TRTCLocalize(@"Demo.TRTC.Live.trtcSpeedTest") controllerCreationBlock:^UIViewController * _Nonnull{ - TRTCSpeedTestViewController* speedTestVC = [[TRTCSpeedTestViewController alloc] init]; - speedTestVC.title = TRTCLocalize(@"Demo.TRTC.Live.trtcSpeedTest"); - return speedTestVC; - }]; - [subCells addObject:scellInfo]; - - scellInfo = [CellInfo cellInfoWithTitle:TRTCLocalize(@"Demo.TRTC.Live.trtcLive") controllerCreationBlock:^UIViewController * _Nonnull{ - TRTCLiveEnterViewController* entranceVC = [[TRTCLiveEnterViewController alloc] init]; - entranceVC.title = TRTCLocalize(@"Demo.TRTC.Live.trtcLive"); - return entranceVC; - }]; - [subCells addObject:scellInfo]; - - scellInfo = [CellInfo cellInfoWithTitle:TRTCLocalize(@"Demo.TRTC.Live.trtcCalling") controllerCreationBlock:^UIViewController * _Nonnull{ - TRTCCallingEnterViewController* entranceVC = [[TRTCCallingEnterViewController alloc] init]; - entranceVC.title = TRTCLocalize(@"Demo.TRTC.Live.trtcCalling"); - return entranceVC; - }]; - [subCells addObject:scellInfo]; - - scellInfo = [CellInfo cellInfoWithTitle:@"TRTC APP" actionBlock:^{ - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:trtcAppStoreURLString]]; - }]; - [subCells addObject:scellInfo]; - - subCells; - }); -// [_cellInfos addObjectsFromArray:TRTCCellInfos]; -#endif -// -// if ([cellInfo.subCells count] > 0) { -// [_cellInfos addObject:cellInfo]; -// } -} - -- (void)initUI -{ - int originX = 15; - CGFloat width = self.view.frame.size.width - 2 * originX; - // 背景色 - self.view.backgroundColor = [UIColor whiteColor]; - NSArray *colors = @[(__bridge id)[UIColor colorWithRed:19.0 / 255.0 green:41.0 / 255.0 blue:75.0 / 255.0 alpha:1].CGColor, - (__bridge id)[UIColor colorWithRed:5.0 / 255.0 green:12.0 / 255.0 blue:23.0 / 255.0 alpha:1].CGColor]; - CAGradientLayer *gradientLayer = [CAGradientLayer layer]; - gradientLayer.colors = colors; - gradientLayer.startPoint = CGPointMake(0, 0); - gradientLayer.endPoint = CGPointMake(1, 1); - gradientLayer.frame = self.view.bounds; - [self.view.layer insertSublayer:gradientLayer atIndex:0]; - - //大标题 - UILabel* lbHeadLine = [[UILabel alloc] initWithFrame:CGRectMake(originX, 50, width, 48)]; - lbHeadLine.text = V2Localize(@"V2.Live.LinkMicNew.txvideoremote"); - lbHeadLine.textColor = UIColorFromRGB(0xffffff); - lbHeadLine.font = [UIFont systemFontOfSize:24]; - [lbHeadLine sizeToFit]; - [self.view addSubview:lbHeadLine]; - lbHeadLine.center = CGPointMake(lbHeadLine.superview.center.x, lbHeadLine.center.y); - - lbHeadLine.userInteractionEnabled = YES; - UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; - [lbHeadLine addGestureRecognizer:tapGesture]; - - UILongPressGestureRecognizer* pressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; //提取SDK日志暗号! - pressGesture.minimumPressDuration = 2.0; - pressGesture.numberOfTouchesRequired = 1; - [self.view addGestureRecognizer:pressGesture]; - - // 用户个人信息按钮 - UIButton* userInfoButton = [UIButton buttonWithType:UIButtonTypeCustom]; - userInfoButton.frame = CGRectMake(20, 0, 32, 32); - CGPoint center = userInfoButton.center; - center.y = lbHeadLine.center.y; - userInfoButton.center = center; - [userInfoButton setImage:[UIImage imageNamed:@"ic_logout"] forState:UIControlStateNormal]; - [userInfoButton addTarget:self action:@selector(userInfoButtonClick:) forControlEvents:UIControlEventTouchUpInside]; - -#if !defined(UGC) && !defined(PLAYER) - [self.view addSubview:userInfoButton]; -#endif - - - //副标题 - UILabel* lbSubHead = [[UILabel alloc] initWithFrame:CGRectMake(originX, lbHeadLine.frame.origin.y + lbHeadLine.frame.size.height + 15, width, 30)]; - NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; -#ifdef LIVE - NSString *sdkVersion = [V2TXLivePremier getSDKVersionStr]; -#else - NSString *sdkVersion = [TXLiveBase getSDKVersionStr]; -#endif - - lbSubHead.text = [NSString stringWithFormat:@"%@ v%@(%@)", V2Localize(@"V2.Live.LinkMicNew.txtoolpkg"), sdkVersion, version]; - lbSubHead.text = [lbSubHead.text stringByAppendingFormat:@"\n%@", V2Localize(@"V2.Live.LinkMicNew.appusetoshowfunc")]; - lbSubHead.numberOfLines = 2; - lbSubHead.textColor = UIColor.grayColor; - lbSubHead.textAlignment = NSTextAlignmentCenter; - lbSubHead.font = [UIFont systemFontOfSize:14]; - lbSubHead.textColor = UIColorFromRGB(0x535353); - - //行间距 - NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:lbSubHead.text]; - NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; - paragraphStyle.alignment = NSTextAlignmentCenter; - [paragraphStyle setLineSpacing:7.5f];//设置行间距 - [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, lbSubHead.text.length)]; - lbSubHead.attributedText = attributedString; - - [lbSubHead sizeToFit]; - - [self.view addSubview:lbSubHead]; - lbSubHead.userInteractionEnabled = YES; - [lbSubHead addGestureRecognizer:tapGesture]; - lbSubHead.frame = CGRectMake(lbSubHead.frame.origin.x, self.view.frame.size.height-lbSubHead.frame.size.height-34, lbSubHead.frame.size.width, lbSubHead.frame.size.height); - lbSubHead.center = CGPointMake(lbSubHead.superview.frame.size.width/2, lbSubHead.center.y); - - //功能列表 - int tableviewY = lbSubHead.frame.origin.y + lbSubHead.frame.size.height + 12; - int bottomHeight = lbSubHead.frame.size.height + 34; - _tableView = [[UITableView alloc] initWithFrame:CGRectMake(originX, tableviewY, width, self.view.frame.size.height - tableviewY - bottomHeight)]; - _tableView.backgroundColor = UIColor.clearColor; - _tableView.delegate = self; - _tableView.dataSource = self; - - [self.view addSubview:_tableView]; - _tableView.frame = CGRectMake(_tableView.frame.origin.x, lbHeadLine.frame.origin.y+lbHeadLine.frame.size.height+12, _tableView.frame.size.width, _tableView.superview.frame.size.height); - _tableView.frame = CGRectMake(_tableView.frame.origin.x, _tableView.frame.origin.y, _tableView.frame.size.width, _tableView.superview.frame.size.height-_tableView.frame.origin.y - bottomHeight - 20); - - UIView *view = [UIView new]; - view.backgroundColor = [UIColor clearColor]; - [_tableView setTableFooterView:view]; - - _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; - - _logUploadView = [[UIView alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height / 2, self.view.bounds.size.width, self.view.bounds.size.height / 2)]; - _logUploadView.backgroundColor = [UIColor whiteColor]; - _logUploadView.hidden = YES; - - _logPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, _logUploadView.frame.size.height * 0.8)]; - _logPickerView.dataSource = self; - _logPickerView.delegate = self; - [_logUploadView addSubview:_logPickerView]; - - UIButton* uploadButton = [UIButton buttonWithType:UIButtonTypeSystem]; - uploadButton.center = CGPointMake(self.view.bounds.size.width / 2, _logUploadView.frame.size.height * 0.9); - uploadButton.bounds = CGRectMake(0, 0, self.view.bounds.size.width / 3, _logUploadView.frame.size.height * 0.2); - [uploadButton setTitle:AppPortalLocalize(@"App.PortalViewController.sharelog") forState:UIControlStateNormal]; - [uploadButton addTarget:self action:@selector(onSharedUploadLog:) forControlEvents:UIControlEventTouchUpInside]; - [_logUploadView addSubview:uploadButton]; - - [self.view addSubview:_logUploadView]; -} - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView -{ - return 1; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section -{ - return _cellInfos.count; -} - -- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath -{ - if (_cellInfos.count < indexPath.row) - return nil; - - static NSString* cellIdentifier = @"MainViewCellIdentifier"; - MainTableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; - if (!cell) { - cell = [[MainTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; - } - - CellInfo* cellInfo = _cellInfos[indexPath.row]; - - [cell setCellData:cellInfo]; - - return cell; -} - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath -{ - if (!_logUploadView.hidden) { - _logUploadView.hidden = YES; - } - - if (_cellInfos.count < indexPath.row) - return ; - - MainTableViewCell *currentCell = [tableView cellForRowAtIndexPath:indexPath]; - CellInfo* cellInfo = currentCell.cellData; - - if (cellInfo.subCells != nil) { - [tableView beginUpdates]; - NSMutableArray *indexArray = [NSMutableArray new]; - if (self.addNewCellInfos) { - NSUInteger deleteFrom = [_cellInfos indexOfObject:self.addNewCellInfos[0]]; - for (int i = 0; i < self.addNewCellInfos.count; i++) { - [indexArray addObject:[NSIndexPath indexPathForRow:i+deleteFrom inSection:0]]; - } - [tableView deleteRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationAutomatic]; - [_cellInfos removeObjectsInArray:self.addNewCellInfos]; - } - [tableView endUpdates]; - - [tableView beginUpdates]; - if (!cellInfo.isUnFold) { - self.selectedCell.highLight = NO; - self.selectedCell.cellData.isUnFold = NO; - - NSUInteger row = [_cellInfos indexOfObject:cellInfo]+1; - [indexArray removeAllObjects]; - for (int i = 0; i < cellInfo.subCells.count; i++) { - [indexArray addObject:[NSIndexPath indexPathForRow:i+row inSection:0]]; - } - [_cellInfos insertObjects:cellInfo.subCells atIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(row, cellInfo.subCells.count)]]; - [tableView insertRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationAutomatic]; - } - [tableView endUpdates]; - - cellInfo.isUnFold = !cellInfo.isUnFold; - currentCell.highLight = cellInfo.isUnFold; - self.selectedCell = currentCell; - if (cellInfo.isUnFold) { - self.addNewCellInfos = cellInfo.subCells; - } else { - self.addNewCellInfos = nil; - } - return; - } - - if (cellInfo.type == CellInfoTypeEntry) { - UIViewController *controller = [cellInfo createEntryController]; - if (controller) { - if (![controller isKindOfClass:NSClassFromString(@"MoviePlayerViewController")]) { - [self _hideSuperPlayer]; - } - [self.navigationController pushViewController:controller animated:YES]; - } - } else if (cellInfo.type == CellInfoTypeAction) { - [cellInfo performAction]; - } -} - -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath -{ - CellInfo* cellInfo = _cellInfos[indexPath.row]; - if (cellInfo.subCells != nil) { - return 65; - } - return 51; -} - -#if defined(ENABLE_PLAY) && !defined(DISABLE_VOD) -- (void)_hideSuperPlayer { - if (SuperPlayerWindowShared.isShowing) { - [SuperPlayerWindowShared hide]; - [SuperPlayerWindowShared.superPlayer resetPlayer]; - SuperPlayerWindowShared.backController = nil; - } -} -#else -- (void)_hideSuperPlayer {} -#endif - -- (void)handleLongPress:(UILongPressGestureRecognizer *)pressRecognizer -{ - if (pressRecognizer.state == UIGestureRecognizerStateBegan) { - NSLog(@"long Press"); - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); - NSString *logDoc = [NSString stringWithFormat:@"%@%@", paths[0], @"/log"]; - NSFileManager *fileManager = [NSFileManager defaultManager]; - NSArray* fileArray = [fileManager contentsOfDirectoryAtPath:logDoc error:nil]; - fileArray = [fileArray sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { - NSString* file1 = (NSString*)obj1; - NSString* file2 = (NSString*)obj2; - return [file1 compare:file2] == NSOrderedDescending; - }]; - self.logFilesArray = [NSMutableArray new]; - for (NSString* logName in fileArray) { - if ([logName hasSuffix:@"xlog"]) { - [self.logFilesArray addObject:logName]; - } - } - - _logUploadView.alpha = 0.1; - UIView *logUploadView = _logUploadView; - [UIView animateWithDuration:0.5 animations:^{ - logUploadView.hidden = NO; - logUploadView.alpha = 1; - }]; - [_logPickerView reloadAllComponents]; - } -} - -- (void)handleTap:(UITapGestureRecognizer*)tapRecognizer -{ - if (!_logUploadView.hidden) { - _logUploadView.hidden = YES; - } -} - -- (void)onSharedUploadLog:(UIButton*)sender -{ - NSInteger row = [_logPickerView selectedRowInComponent:0]; - if (row < self.logFilesArray.count) { - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); - NSString *logDoc = [NSString stringWithFormat:@"%@%@", paths[0], @"/log"]; - NSString* logPath = [logDoc stringByAppendingPathComponent:self.logFilesArray[row]]; - NSURL *shareobj = [NSURL fileURLWithPath:logPath]; - UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:@[shareobj] applicationActivities:nil]; - UIView *logUploadView = _logUploadView; - [self presentViewController:activityView animated:YES completion:^{ - logUploadView.hidden = YES; - }]; - } -} -#pragma mark - UIPickerView -- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView -{ - return 1; -} - -- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component -{ - return self.logFilesArray.count; -} - -- (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component -{ - if (row < self.logFilesArray.count) { - return (NSString*)self.logFilesArray[row]; - } - - return nil; -} - -#pragma mark - TRTC相关 -#ifdef ENABLE_TRTC -//- (void)setupIMOnDidAppear { -// NSString *userID = [[ProfileManager shared] curUserID]; -// NSString *userSig = [[ProfileManager shared] curUserSig]; -// -// if (![[[V2TIMManager sharedInstance] getLoginUser] isEqual:userID]) { -// [[ProfileManager shared] IMLoginWithUserSig:userSig success:^{ -// [[TRTCCalling shareInstance] login:SDKAPPID user:userID userSig:userSig success:^{ -// NSLog(@"Calling login success."); -// } failed:^(int code, NSString * _Nonnull des) { -// NSLog(@"Calling login failed."); -// }]; -// [[TRTCMeeting sharedInstance] login:SDKAPPID userId:userID userSig:userSig callback:^(NSInteger code, NSString *message) { -// -// }]; -// } failed:^(NSString * error) { -// -// }]; -// } -//} - -#endif - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/LayoutDefine.swift b/iOS/Demo/TXLiteAVDemo/App/Main/Mine/LayoutDefine.swift deleted file mode 100644 index 3af15573..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/LayoutDefine.swift +++ /dev/null @@ -1,51 +0,0 @@ -// -// LayoutDefine.swift -// TXLiteAVDemo -// -// Created by gg on 2021/3/15. -// Copyright © 2021 Tencent. All rights reserved. -// - -import Foundation - -let ScreenWidth = UIScreen.main.bounds.width -let ScreenHeight = UIScreen.main.bounds.height - -let kDeviceIsIphoneX : Bool = { - if UIDevice.current.userInterfaceIdiom == .pad { - return false - } - let size = UIScreen.main.bounds.size - let notchValue = Int(size.width/size.height*100) - if notchValue == 216 || notchValue == 46 { - return true - } - return false -}() - -let kDeviceSafeTopHeight : CGFloat = { - if kDeviceIsIphoneX { - return 44 - } - else { - return 20 - } -}() - -let kDeviceSafeBottomHeight : CGFloat = { - if kDeviceIsIphoneX { - return 34 - } - else { - return 0 - } -}() - -func convertPixel(w:CGFloat) -> CGFloat { - return w/375.0*ScreenWidth -} - -func convertPixel(h:CGFloat) -> CGFloat { - return h/812.0*ScreenHeight -} - diff --git a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineAboutResignViewController.swift b/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineAboutResignViewController.swift deleted file mode 100644 index 10766868..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineAboutResignViewController.swift +++ /dev/null @@ -1,163 +0,0 @@ -// -// MineAboutResignViewController.swift -// TXLiteAVDemo -// -// Created by gg on 2021/6/2. -// Copyright © 2021 Tencent. All rights reserved. -// - -import Foundation -import NVActivityIndicatorView - -class MineAboutResignViewController: UIViewController { - lazy var imageView: UIImageView = { - let imageView = UIImageView(image: UIImage(named: "resign")) - return imageView - }() - lazy var tipsLabel: UILabel = { - let label = UILabel(frame: .zero) - label.font = UIFont(name: "PingFangSC-Regular", size: 16) - label.textColor = .white - label.numberOfLines = 0 - label.adjustsFontSizeToFitWidth = true - label.minimumScaleFactor = 0.5 - label.text = .tipsText - return label - }() - lazy var numberLabel: UILabel = { - let label = UILabel(frame: .zero) - label.font = UIFont(name: "PingFangSC-Regular", size: 16) - label.textColor = .white - label.numberOfLines = 0 - label.adjustsFontSizeToFitWidth = true - label.minimumScaleFactor = 0.5 - return label - }() - lazy var confirmBtn: UIButton = { - let btn = UIButton(type: .custom) - btn.setTitle(.confirmResignText, for: .normal) - btn.backgroundColor = UIColor(hex: "006EFF") - btn.addTarget(self, action: #selector(resignBtnClick), for: .touchUpInside) - return btn - }() - - override func viewDidLoad() { - super.viewDidLoad() - - let colors = [UIColor(red: 19.0 / 255.0, green: 41.0 / 255.0, - blue: 75.0 / 255.0, alpha: 1).cgColor, - UIColor(red: 5.0 / 255.0, green: 12.0 / 255.0, - blue: 23.0 / 255.0, alpha: 1).cgColor] - let gradientLayer = CAGradientLayer() - gradientLayer.colors = colors.compactMap { $0 } - gradientLayer.startPoint = CGPoint(x: 0, y: 0) - gradientLayer.endPoint = CGPoint(x: 1, y: 1) - gradientLayer.frame = view.bounds - view.layer.insertSublayer(gradientLayer, at: 0) - - self.title = .titleText; - - let backBtn = UIButton(type: .custom) - backBtn.setImage(UIImage(named: "back"), for: .normal) - backBtn.addTarget(self, action: #selector(backBtnClick), for: .touchUpInside) - backBtn.sizeToFit() - let item = UIBarButtonItem(customView: backBtn) - navigationItem.leftBarButtonItem = item - - view.addSubview(imageView) - imageView.snp.makeConstraints { (make) in - make.centerX.equalToSuperview() - make.top.equalTo(view.snp.top).offset(200) - } - - view.addSubview(tipsLabel) - tipsLabel.snp.makeConstraints { (make) in - make.top.equalTo(imageView.snp.bottom).offset(20) - make.centerX.equalToSuperview() - make.leading.greaterThanOrEqualToSuperview().offset(40) - make.trailing.lessThanOrEqualToSuperview().offset(-40) - } - - view.addSubview(numberLabel) - numberLabel.snp.makeConstraints { (make) in - make.top.equalTo(tipsLabel.snp.bottom).offset(10) - make.centerX.equalToSuperview() - make.leading.greaterThanOrEqualToSuperview().offset(40) - make.trailing.lessThanOrEqualToSuperview().offset(-40) - } - - view.addSubview(confirmBtn) - confirmBtn.snp.makeConstraints { (make) in - make.top.equalTo(numberLabel.snp.bottom).offset(20) - make.leading.equalToSuperview().offset(40) - make.trailing.equalToSuperview().offset(-40) - make.height.equalTo(56) - } - - numberLabel.text = LocalizeReplaceXX(.numberText, ProfileManager.shared.curUserModel?.phone ?? "") - - view.addSubview(loading) - loading.snp.makeConstraints { (make) in - make.width.height.equalTo(40) - make.centerX.centerY.equalTo(view) - } - } - - override func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) - navigationController?.navigationBar.titleTextAttributes = - [NSAttributedString.Key.foregroundColor : UIColor.white, - NSAttributedString.Key.font : UIFont(name: "PingFangSC-Semibold", size: 18) ?? UIFont.systemFont(ofSize: 18) - ] - navigationController?.navigationBar.isTranslucent = true - } - - let loading = NVActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 100, height: 60), - type: .ballBeat, - color: .appTint) - @objc func resignBtnClick() { - let alert = UIAlertController(title: .resignAlertTitleText, message: "", preferredStyle: .alert) - let cancel = UIAlertAction(title: .cancelBtnText, style: .cancel) { (action) in - - } - let confirm = UIAlertAction(title: .confirmResignText, style: .default) { [weak self] (action) in - guard let `self` = self else { return } - self.resignPhoneNumber() - } - alert.addAction(cancel) - alert.addAction(confirm) - present(alert, animated: true, completion: nil) - } - - @objc func resignPhoneNumber() { - loading.startAnimating() - ProfileManager.shared.resign { [weak self] (success, message) in - guard let `self` = self else { return } - self.loading.stopAnimating() - if success { - AppUtils.shared.showLoginController() - if let window = UIApplication.shared.windows.first { - window.makeToast(.resignSuccessText) - } - } - else { - self.view.makeToast(message) - } - } - } - - @objc func backBtnClick() { - navigationController?.popViewController(animated: true) - } -} - -/// MARK: - internationalization string -fileprivate extension String { - static let titleText = AppPortalLocalize("Demo.TRTC.Portal.resignaccount") - static let tipsText = AppPortalLocalize("Demo.TRTC.Portal.resigntips") - static let numberText = AppPortalLocalize("Demo.TRTC.Portal.currentaccount") - static let confirmResignText = AppPortalLocalize("Demo.TRTC.Portal.confirmresign") - static let resignAlertTitleText = AppPortalLocalize("Demo.TRTC.Portal.alerttoresign") - static let cancelBtnText = AppPortalLocalize("App.PortalViewController.cancel") - static let resignSuccessText = AppPortalLocalize("Demo.TRTC.Portal.resignsuccess") -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineAboutViewController.swift b/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineAboutViewController.swift deleted file mode 100644 index 9248e6d4..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineAboutViewController.swift +++ /dev/null @@ -1,302 +0,0 @@ -// -// MineAboutViewController.swift -// TXLiteAVDemo -// -// Created by gg on 2021/4/8. -// Copyright © 2021 Tencent. All rights reserved. -// - -import Foundation - -class MineAboutViewController: UIViewController { - override func viewDidLoad() { - super.viewDidLoad() - - view.backgroundColor = .clear - - self.title = .titleText; - - let backBtn = UIButton(type: .custom) - backBtn.setImage(UIImage(named: "back"), for: .normal) - backBtn.addTarget(self, action: #selector(backBtnClick), for: .touchUpInside) - backBtn.sizeToFit() - let item = UIBarButtonItem(customView: backBtn) - item.tintColor = .clear - navigationItem.leftBarButtonItem = item - - view.addSubview(tableView) - tableView.snp.makeConstraints { (make) in - make.edges.equalToSuperview() - } - } - - @objc func backBtnClick() { - navigationController?.popViewController(animated: true) - } - - override func viewWillAppear(_ animated: Bool) { - navigationController?.navigationBar.titleTextAttributes = - [NSAttributedString.Key.foregroundColor : UIColor.white, - NSAttributedString.Key.font : UIFont(name: "PingFangSC-Semibold", size: 18) ?? UIFont.systemFont(ofSize: 18) - ] - navigationController?.setNavigationBarHidden(false, animated: false) - navigationController?.navigationBar.isTranslucent = true - - - let colors = [UIColor(red: 19.0 / 255.0, green: 41.0 / 255.0, - blue: 75.0 / 255.0, alpha: 1).cgColor, - UIColor(red: 5.0 / 255.0, green: 12.0 / 255.0, - blue: 23.0 / 255.0, alpha: 1).cgColor] - let gradientLayer = CAGradientLayer() - gradientLayer.colors = colors.compactMap { $0 } - gradientLayer.startPoint = CGPoint(x: 0, y: 0) - gradientLayer.endPoint = CGPoint(x: 1, y: 1) - gradientLayer.frame = view.bounds - view.layer.insertSublayer(gradientLayer, at: 0) - } - - lazy var tableView: UITableView = { - let tableView = UITableView(frame: .zero, style: .plain) - tableView.backgroundColor = .clear - tableView.separatorStyle = .none - tableView.dataSource = self - tableView.delegate = self - tableView.contentInset = UIEdgeInsets(top: 20, left: 0, bottom: 20, right: 0) - tableView.register(MineAboutTableViewCell.self, forCellReuseIdentifier: "MineAboutTableViewCell") - tableView.register(MineAboutDetailCell.self, forCellReuseIdentifier: "MineAboutDetailCell") - return tableView - }() - - lazy var dataSource: [MineAboutModel] = { - var res : [MineAboutModel] = [] - #if LIVE - let sdkVersion = V2TXLivePremier.getSDKVersionStr() - let sdk = MineAboutModel(title: .sdkVersionText, value: sdkVersion) - res.append(sdk) - #else - if let sdkVersion = TXLiveBase.getSDKVersionStr() { - let sdk = MineAboutModel(title: .sdkVersionText, value: sdkVersion) - res.append(sdk) - } - #endif - - if let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String { - let storeVersion = MineAboutModel(title: .storeVersionText, value: version) - res.append(storeVersion) - } - - let resign = MineAboutModel(title: .resignText, type: .resign) - res.append(resign) - - return res - }() - - public override var preferredStatusBarStyle: UIStatusBarStyle { - get { - if #available(iOS 13.0, *) { - return .darkContent - } else { - return .default - } - } - } - - public override var prefersStatusBarHidden: Bool { - get { - return false - } - } -} - -extension MineAboutViewController: UITableViewDataSource { - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return dataSource.count - } - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let model = dataSource[indexPath.row] - switch model.type { - case .normal: - let cell = tableView.dequeueReusableCell(withIdentifier: "MineAboutTableViewCell", for: indexPath) - if let scell = cell as? MineAboutTableViewCell { - scell.titleLabel.text = model.title - scell.descLabel.text = model.value - } - return cell - case .resign: - let cell = tableView.dequeueReusableCell(withIdentifier: "MineAboutDetailCell", for: indexPath) - if let scell = cell as? MineAboutDetailCell { - scell.titleLabel.text = model.title - } - return cell - } - } - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - return 56 - } -} -extension MineAboutViewController: UITableViewDelegate { - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - let model = dataSource[indexPath.row] - if model.type == .resign { - let vc = MineAboutResignViewController() - navigationController?.pushViewController(vc, animated: true) - } - } -} - -enum MineAboutCellType { - case normal - case resign -} - -class MineAboutModel: NSObject { - let title: String - let value: String - let type: MineAboutCellType - init(title: String, value: String = "", type: MineAboutCellType = .normal) { - self.title = title - self.value = value - self.type = type - super.init() - } -} - -class MineAboutDetailCell: UITableViewCell { - lazy var titleLabel: UILabel = { - let label = UILabel(frame: .zero) - label.font = UIFont(name: "PingFangSC-Regular", size: 16) - label.textColor = .white - return label - }() - lazy var lineView: UIView = { - let view = UIView(frame: .zero) - view.backgroundColor = UIColor(hex: "666666") - return view - }() - lazy var detailImageView: UIImageView = { - let imageView = UIImageView(image: UIImage(named: "main_mine_detail")) - return imageView - }() - - override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { - super.init(style: style, reuseIdentifier: reuseIdentifier) - selectionStyle = .none - backgroundColor = .clear - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - var isViewReady = false - override func didMoveToWindow() { - super.didMoveToWindow() - guard !isViewReady else { - return - } - isViewReady = true - constructViewHierarchy() - activateConstraints() - bindInteraction() - } - - func constructViewHierarchy() { - contentView.addSubview(titleLabel) - contentView.addSubview(detailImageView) - contentView.addSubview(lineView) - } - func activateConstraints() { - titleLabel.snp.makeConstraints { (make) in - make.leading.equalToSuperview().offset(20) - make.centerY.equalToSuperview() - } - detailImageView.snp.makeConstraints { (make) in - make.trailing.equalToSuperview().offset(-20) - make.centerY.equalToSuperview() - } - lineView.snp.makeConstraints { (make) in - make.leading.equalTo(titleLabel) - make.trailing.equalToSuperview().offset(-20) - make.bottom.equalToSuperview() - make.height.equalTo(1) - } - } - func bindInteraction() { - - } -} - -class MineAboutTableViewCell: UITableViewCell { - lazy var titleLabel: UILabel = { - let label = UILabel(frame: .zero) - label.font = UIFont(name: "PingFangSC-Regular", size: 16) - label.textColor = .white - return label - }() - lazy var descLabel: UILabel = { - let label = UILabel(frame: .zero) - label.font = UIFont(name: "PingFangSC-Regular", size: 16) - label.textColor = UIColor(hex: "666666") - return label - }() - lazy var lineView: UIView = { - let view = UIView(frame: .zero) - view.backgroundColor = UIColor(hex: "666666") - return view - }() - - override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { - super.init(style: style, reuseIdentifier: reuseIdentifier) - selectionStyle = .none - backgroundColor = .clear - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - var isViewReady = false - override func didMoveToWindow() { - super.didMoveToWindow() - guard !isViewReady else { - return - } - isViewReady = true - constructViewHierarchy() - activateConstraints() - bindInteraction() - } - - func constructViewHierarchy() { - contentView.addSubview(titleLabel) - contentView.addSubview(descLabel) - contentView.addSubview(lineView) - } - func activateConstraints() { - titleLabel.snp.makeConstraints { (make) in - make.leading.equalToSuperview().offset(20) - make.centerY.equalToSuperview() - } - descLabel.snp.makeConstraints { (make) in - make.trailing.equalToSuperview().offset(-20) - make.centerY.equalToSuperview() - } - lineView.snp.makeConstraints { (make) in - make.leading.equalTo(titleLabel) - make.trailing.equalTo(descLabel) - make.bottom.equalToSuperview() - make.height.equalTo(1) - } - } - func bindInteraction() { - - } -} - -/// MARK: - internationalization string -fileprivate extension String { - static let titleText = AppPortalLocalize("Demo.TRTC.Portal.Mine.about") - static let sdkVersionText = AppPortalLocalize("Demo.TRTC.Portal.sdkversion") - static let storeVersionText = AppPortalLocalize("Demo.TRTC.Portal.appversion") - static let resignText = AppPortalLocalize("Demo.TRTC.Portal.resignaccount") -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineRootView.swift b/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineRootView.swift deleted file mode 100644 index 2af55938..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineRootView.swift +++ /dev/null @@ -1,480 +0,0 @@ -// -// MineRootView.swift -// TXLiteAVDemo -// -// Created by gg on 2021/4/6. -// Copyright © 2021 Tencent. All rights reserved. -// - -import Foundation - -class MineRootView: UIView { - - let viewModel : MineViewModel - - public weak var rootVC: MineViewController? - - init(viewModel: MineViewModel, frame: CGRect = .zero) { - self.viewModel = viewModel - super.init(frame: frame) - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - lazy var bgView: UIImageView = { - let bgView = UIImageView(frame: .zero) - bgView.contentMode = .scaleAspectFill - bgView.image = UIImage(named: "main_mine_headerbg") - return bgView - }() - - lazy var containerView: UIView = { - let view = UIView(frame: .zero) - view.backgroundColor = .clear - return view - }() - - lazy var contentView: UIView = { - let view = UIView(frame: .zero) - view.backgroundColor = .clear - return view - }() - - lazy var titleLabel: UILabel = { - let label = UILabel(frame: .zero) - label.font = UIFont(name: "PingFangSC-Semibold", size: 18) - label.textColor = .white - label.text = .titleText - return label - }() - - lazy var backBtn: UIButton = { - let backBtn = UIButton(type: .custom) - backBtn.setImage(UIImage(named: "back"), for: .normal) - backBtn.addTarget(self, action: #selector(backBtnClick), for: .touchUpInside) - backBtn.sizeToFit() - return backBtn - }() - - lazy var userNameBtn: UIButton = { - let btn = UIButton(type: .custom) - btn.setTitle("USERID", for: .normal) - btn.adjustsImageWhenHighlighted = false - btn.setTitleColor(.white, for: .normal) - btn.titleLabel?.font = UIFont(name: "PingFangSC-Semibold", size: 18) - btn.setImage(UIImage(named: "main_mine_edit"), for: .normal) - return btn - }() - - lazy var userIdLabel: UILabel = { - let label = UILabel(frame: .zero) - label.font = UIFont(name: "PingFangSC-Regular", size: 16) - label.textColor = .white - return label - }() - - let versionTip: UILabel = { - let tip = UILabel() - tip.textAlignment = .center - tip.font = UIFont.systemFont(ofSize: 14) - tip.textColor = UIColor(hex: "525252") - let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") ?? "0.1.1" - #if LIVE - let sdvVersionStr = V2TXLivePremier.getSDKVersionStr() - #else - let sdvVersionStr = TXLiveBase.getSDKVersionStr() ?? "1.0.0" - #endif - tip.text = V2Localize("V2.Live.LinkMicNew.loginTitle") - let versionStr: String = " v\(sdvVersionStr)(\(version))" - tip.text = tip.text! + versionStr - tip.adjustsFontSizeToFitWidth = true - return tip - }() - - let bottomTip: UILabel = { - let tip = UILabel() - tip.textAlignment = .center - tip.font = UIFont.systemFont(ofSize: 14) - tip.textColor = UIColor(hex: "525252") - tip.text = V2Localize("V2.Live.LinkMicNew.appusetoshowfunc") - tip.adjustsFontSizeToFitWidth = true - return tip - }() - - let headImageDiameter: CGFloat = 100 - - lazy var headImageView: UIImageView = { - let imageV = UIImageView(frame: .zero) - imageV.contentMode = .scaleAspectFill - imageV.layer.cornerRadius = headImageDiameter * 0.5 - imageV.clipsToBounds = true - return imageV - }() - - lazy var tableView: UITableView = { - let tableView = UITableView(frame: .zero, style: .plain) - tableView.backgroundColor = .clear - tableView.separatorStyle = .none - tableView.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0) - return tableView - }() - - override func draw(_ rect: CGRect) { - super.draw(rect) - contentView.roundedRect(rect: contentView.bounds, byRoundingCorners: .topRight, cornerRadii: CGSize(width: 20, height: 20)) - } - - @objc func backBtnClick() { - var parentResponder: UIResponder? = self - while parentResponder != nil { - parentResponder = parentResponder?.next - if let viewController = parentResponder as? UIViewController { - viewController.navigationController?.popViewController(animated: true) - return; - } - } - } - - @objc func logoutBtnClick() { - let alert:UIAlertController = UIAlertController(title: V2Localize("V2.Live.LinkMicNew.suretologout"), message: nil, preferredStyle: .alert) - let cancelAction = UIAlertAction(title: V2Localize("V2.Live.LinkMicNew.cancel"), style: .cancel) { (action) in - } - let okAction = UIAlertAction(title: V2Localize("V2.Live.LinkMicNew.confirm"), style: .default) { (action) in - ProfileManager.shared.removeLoginCache() - AppUtils.shared.showLoginController() - V2TIMManager.sharedInstance()?.logout({ - - }, fail: { (Int32, _: String?) in - - }) - } - alert.addAction(cancelAction) - alert.addAction(okAction) - - if let rootVC = self.rootVC { - rootVC.present(alert, animated: false, completion: nil) - } - } - - var isViewReady = false - override func didMoveToWindow() { - super.didMoveToWindow() - guard !isViewReady else { - return - } - isViewReady = true - constructViewHierarchy() // 视图层级布局 - activateConstraints() // 生成约束(此时有可能拿不到父视图正确的frame) - bindInteraction() - } - - func constructViewHierarchy() { - addSubview(bgView) - addSubview(containerView) - containerView.addSubview(contentView) - contentView.addSubview(userNameBtn) - contentView.addSubview(userIdLabel) - contentView.addSubview(tableView) - containerView.addSubview(headImageView) - addSubview(titleLabel) - addSubview(backBtn) - addSubview(bottomTip) - addSubview(versionTip) - } - - func activateConstraints() { - titleLabel.snp.makeConstraints { (make) in - make.centerX.equalToSuperview() - make.top.equalToSuperview().offset(kDeviceSafeTopHeight+20) - } - backBtn.snp.makeConstraints { (make) in - make.centerY.equalTo(titleLabel) - make.leading.equalToSuperview().offset(20) - } - bgView.snp.makeConstraints { (make) in - make.leading.trailing.top.equalToSuperview() - make.height.equalTo(bgView.snp_width).multipliedBy(220.0/375.0) - } - containerView.snp.makeConstraints { (make) in - make.top.equalTo(bgView.snp_bottom).offset(-32-headImageDiameter * 0.5) - make.leading.trailing.bottom.equalToSuperview(); - } - contentView.snp.makeConstraints { (make) in - make.top.equalToSuperview().offset(headImageDiameter * 0.5) - make.leading.trailing.bottom.equalToSuperview() - } - userNameBtn.snp.makeConstraints { (make) in - make.top.equalToSuperview().offset(headImageDiameter * 0.5); - make.centerX.equalToSuperview(); - } - userIdLabel.snp.makeConstraints { (make) in - make.top.equalTo(userNameBtn.snp_bottom).offset(4) - make.centerX.equalToSuperview() - } - tableView.snp.makeConstraints { (make) in - make.top.equalTo(userIdLabel.snp_bottom).offset(10) - make.leading.trailing.bottom.equalToSuperview() - } - headImageView.snp.makeConstraints { (make) in - make.top.centerX.equalToSuperview(); - make.size.equalTo(CGSize(width: headImageDiameter, height: headImageDiameter)); - } - bottomTip.snp.makeConstraints { (make) in - make.bottomMargin.equalTo(self).offset(-12) - make.leading.trailing.equalTo(self) - make.height.equalTo(30) - } - versionTip.snp.makeConstraints { (make) in - make.bottom.equalTo(bottomTip.snp.top).offset(-2) - make.height.equalTo(12) - make.leading.trailing.equalTo(self) - } - } - - func bindInteraction() { - - userNameBtn.addTarget(self, action: #selector(userIdBtnClick(btn:)), for: .touchUpInside) - - tableView.register(MineTableViewCell.self, forCellReuseIdentifier: "MineTableViewCell") - tableView.delegate = self - tableView.dataSource = self - - let tap = UITapGestureRecognizer(target: self, action: #selector(headBtnClick)) - headImageView.addGestureRecognizer(tap) - - updateHeadImage() - updateName() - updateUserId() - } - - func updateHeadImage() { - if let user = viewModel.user { - headImageView.sd_setImage(with: URL(string: user.avatar), placeholderImage: nil, options: .continueInBackground, completed: nil) - } - } - - func updateUserId() { - if let user = viewModel.user { - userIdLabel.text = "ID:\(user.userId)" - } - } - - func updateName() { - if let user = viewModel.user { - // replace title and image, then add spacing - userNameBtn.setTitle(user.name, for: .normal) - userNameBtn.sizeToFit() - let totalWidth = userNameBtn.frame.width - let imageWidth = userNameBtn.imageView!.frame.width - let titleWidth = totalWidth - imageWidth - let spacing = CGFloat(4) - userNameBtn.titleEdgeInsets = UIEdgeInsets(top: 0, left: -imageWidth-spacing * 0.5, bottom: 0, right: imageWidth+spacing * 0.5) - userNameBtn.imageEdgeInsets = UIEdgeInsets(top: 0, left: titleWidth+spacing * 0.5, bottom: 0, right: -titleWidth-spacing * 0.5) - userNameBtn.snp.remakeConstraints { (make) in - make.top.equalToSuperview().offset(headImageDiameter * 0.5); - make.centerX.equalToSuperview(); - make.width.equalTo(totalWidth + spacing) - } - } - } - - override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { - - guard let superview = headImageView.superview else { - return super.hitTest(point, with: event) - } - let rect = superview.convert(headImageView.frame, to: self) - if rect.contains(point) { - return headImageView - } - return super.hitTest(point, with: event) - } - - @objc func userIdBtnClick(btn: UIButton) { - let alert = MineUserIdEditView(viewModel: viewModel) - (UIApplication.shared.windows.first ?? self).addSubview(alert) - alert.snp.makeConstraints { (make) in - make.edges.equalToSuperview() - } - alert.layoutIfNeeded() - alert.show() - alert.didDismiss = { [weak self] in - guard let `self` = self else { return } - self.updateName() - } - } - - @objc func headBtnClick() { - let model = TRTCAlertViewModel() - let alert = TRTCAvatarListAlertView(viewModel: model) - (UIApplication.shared.windows.first ?? self).addSubview(alert) - alert.snp.makeConstraints { (make) in - make.edges.equalToSuperview() - } - alert.layoutIfNeeded() - alert.show() - alert.didClickConfirmBtn = { [weak self] in - guard let `self` = self else { return } - if let url = ProfileManager.shared.curUserModel?.avatar { - self.headImageView.sd_setImage(with: URL(string: url), placeholderImage: nil, options: .continueInBackground, completed: nil) - } - ProfileManager.shared.synchronizUserInfo() - } - alert.willDismiss = { [weak self] in - guard let `self` = self else { return } - self.updateHeadImage() - } - } -} - -extension MineRootView : UITableViewDataSource { - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return viewModel.tableDataSource.count - } - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell = tableView.dequeueReusableCell(withIdentifier: "MineTableViewCell", for: indexPath) - if let scell = cell as? MineTableViewCell { - let model = viewModel.tableDataSource[indexPath.row] - if model.title == .logoutText { - scell.detailImageView.isHidden = true - } - scell.model = model - } - return cell - } - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - return 56 - } -} -extension MineRootView : UITableViewDelegate { - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - let model = viewModel.tableDataSource[indexPath.row] - switch model.type { - - case .about: - let vc = MineAboutViewController() - vc.hidesBottomBarWhenPushed = true - rootVC?.navigationController?.pushViewController(vc, animated: true) - - case .privacy: - let vc = TRTCWebViewController(url: URL(string: "https://web.sdk.qcloud.com/document/Tencent-Video-Cloud-Toolkit-Privacy-Protection-Guidelines.html")!, title: model.title) - vc.hidesBottomBarWhenPushed = true - rootVC?.navigationController?.pushViewController(vc, animated: true) -// if let url = URL(string: "https://privacy.qq.com/yszc-m.htm"), UIApplication.shared.canOpenURL(url) { -// UIApplication.shared.openURL(url) -// } - - case .agreement: - let vc = TRTCWebViewController(url: URL(string: "https://web.sdk.qcloud.com/document/Tencent-Video-Cloud-Toolkit-User-Agreement.html")!, title: model.title) - vc.hidesBottomBarWhenPushed = true - rootVC?.navigationController?.pushViewController(vc, animated: true) - - case .disclaimer: - let alert = UIAlertController(title: .disclaimerText, message: "", preferredStyle: .alert) - let action = UIAlertAction(title: .doneText, style: .default, handler: nil) - alert.addAction(action) - rootVC?.present(alert, animated: true, completion: nil) - - case .logout: - logoutBtnClick() - } - } -} - -class MineTableViewCellModel: NSObject { - let title: String - let image: UIImage? - let type: MineListType - init(title: String, image: UIImage?, type: MineListType) { - self.title = title - self.image = image - self.type = type - super.init() - } -} - -class MineTableViewCell: UITableViewCell { - - lazy var titleImageView: UIImageView = { - let imageV = UIImageView(frame: .zero) - return imageV - }() - - lazy var titleLabel: UILabel = { - let label = UILabel(frame: .zero) - label.font = UIFont(name: "PingFangSC-Regular", size: 16) - label.textColor = .white - return label - }() - - lazy var detailImageView: UIImageView = { - let imageV = UIImageView(image: UIImage(named: "main_mine_detail")) - return imageV - }() - - var model: MineTableViewCellModel? { - didSet { - guard let model = model else { - return - } - titleImageView.image = model.image - titleLabel.text = model.title - } - } - - override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { - super.init(style: style, reuseIdentifier: reuseIdentifier) - selectionStyle = .none - backgroundColor = .clear - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - var isViewReady = false - override func didMoveToWindow() { - super.didMoveToWindow() - guard !isViewReady else { - return - } - isViewReady = true - constructViewHierarchy() - activateConstraints() - bindInteraction() - } - - func constructViewHierarchy() { - contentView.addSubview(titleImageView) - contentView.addSubview(titleLabel) - contentView.addSubview(detailImageView) - } - func activateConstraints() { - titleImageView.snp.makeConstraints { (make) in - make.centerX.equalTo(contentView.snp_leading).offset(36) - make.centerY.equalToSuperview() - } - detailImageView.snp.makeConstraints { (make) in - make.trailing.equalToSuperview().offset(-20) - make.centerY.equalTo(titleImageView) - } - titleLabel.snp.makeConstraints { (make) in - make.centerY.equalTo(titleImageView) - make.leading.equalTo(titleImageView.snp_centerX).offset(28) - make.trailing.lessThanOrEqualTo(detailImageView.snp_leading).offset(-10) - } - } - func bindInteraction() { - - } -} - -/// MARK: - internationalization string -fileprivate extension String { - static let titleText = AppPortalLocalize("Demo.TRTC.Portal.Mine.personalcenter") - static let disclaimerText = AppPortalLocalize("Demo.TRTC.Portal.disclaimerdesc") - static let doneText = AppPortalLocalize("Demo.TRTC.Portal.confirm") - static let logoutText = AppPortalLocalize("Demo.TRTC.Portal.Home.logout") -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineViewController.swift b/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineViewController.swift deleted file mode 100644 index a74cbd7d..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineViewController.swift +++ /dev/null @@ -1,59 +0,0 @@ -// -// MineViewController.swift -// TXLiteAVDemo -// -// Created by gg on 2021/4/6. -// Copyright © 2021 Tencent. All rights reserved. -// - -import Foundation - -@objc class MineViewController: UIViewController { - override func viewDidLoad() { - super.viewDidLoad() - } - - override func loadView() { - super.loadView() - let viewModel = MineViewModel() - let rootView = MineRootView(viewModel: viewModel) - rootView.rootVC = self - view = rootView - } - - override func viewWillAppear(_ animated: Bool) { - navigationController?.setNavigationBarHidden(true, animated: false) - navigationController?.navigationBar.isTranslucent = true; - navigationController?.navigationBar.titleTextAttributes = - [NSAttributedString.Key.foregroundColor : UIColor.white, - NSAttributedString.Key.font : UIFont(name: "PingFangSC-Semibold", size: 18) ?? UIFont.systemFont(ofSize: 18) - ] - - let colors = [UIColor(red: 19.0 / 255.0, green: 41.0 / 255.0, - blue: 75.0 / 255.0, alpha: 1).cgColor, - UIColor(red: 5.0 / 255.0, green: 12.0 / 255.0, - blue: 23.0 / 255.0, alpha: 1).cgColor] - let gradientLayer = CAGradientLayer() - gradientLayer.colors = colors.compactMap { $0 } - gradientLayer.startPoint = CGPoint(x: 0, y: 0) - gradientLayer.endPoint = CGPoint(x: 1, y: 1) - gradientLayer.frame = view.bounds - view.layer.insertSublayer(gradientLayer, at: 0) - } - - public override var preferredStatusBarStyle: UIStatusBarStyle { - get { - if #available(iOS 13.0, *) { - return .darkContent - } else { - return .default - } - } - } - - public override var prefersStatusBarHidden: Bool { - get { - return false - } - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineViewModel.swift b/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineViewModel.swift deleted file mode 100644 index 330d56dc..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/MineViewModel.swift +++ /dev/null @@ -1,66 +0,0 @@ -// -// MineViewModel.swift -// TXLiteAVDemo -// -// Created by gg on 2021/4/7. -// Copyright © 2021 Tencent. All rights reserved. -// - -import Foundation - -enum MineListType { - case privacy - case agreement - case disclaimer - case about - case logout -} - -class MineViewModel: NSObject { - public var user: LoginResultModel? { - get { - return ProfileManager.shared.curUserModel - } - } - public lazy var tableDataSource: [MineTableViewCellModel] = { - var res: [MineTableViewCellModel] = [] - tableTypeSource.forEach { (type) in - switch type { - case .privacy: - let model = MineTableViewCellModel(title: .privacyTitleText, image: UIImage(named: "main_mine_privacy"), type: type) - res.append(model) - case .agreement: - let model = MineTableViewCellModel(title: .protocolTitleText, image: UIImage(named: "userAgreement"), type: type) - res.append(model) - case .disclaimer: - let model = MineTableViewCellModel(title: .disclaimerTitleText, image: UIImage(named: "main_mine_disclaimer"), type: type) - res.append(model) - case .about: - let model = MineTableViewCellModel(title: .aboutTitleText, image: UIImage(named: "main_mine_about"), type: type) - res.append(model) - case .logout: - let model = MineTableViewCellModel(title: .logoutText, image: UIImage(named: "exit"), type: type) - res.append(model) - } - } - return res - }() - public lazy var tableTypeSource: [MineListType] = { - return [.privacy, .agreement, .disclaimer, .about, .logout] - }() - - public func validate(userName: String) -> Bool { - let reg = "^[a-z0-9A-Z\\u4e00-\\u9fa5\\_]{2,20}$" - let predicate = NSPredicate(format: "SELF MATCHES %@", reg) - return predicate.evaluate(with: userName) - } -} - -/// MARK: - internationalization string -fileprivate extension String { -// static let privacyTitleText = AppPortalLocalize("Demo.TRTC.Portal.privacy") - static let disclaimerTitleText = AppPortalLocalize("Demo.TRTC.Portal.disclaimer") - static let aboutTitleText = AppPortalLocalize("Demo.TRTC.Portal.Mine.about") - static let logoutText = AppPortalLocalize("Demo.TRTC.Portal.Home.logout") -// static let protocolTitleText = AppPortalLocalize("用户协议") -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/subview/MineAlertContentView.swift b/iOS/Demo/TXLiteAVDemo/App/Main/Mine/subview/MineAlertContentView.swift deleted file mode 100644 index 835244e0..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/subview/MineAlertContentView.swift +++ /dev/null @@ -1,303 +0,0 @@ -// -// MineAlertContentView.swift -// TXLiteAVDemo -// -// Created by gg on 2021/4/7. -// Copyright © 2021 Tencent. All rights reserved. -// - -import Foundation - -// MARK: - User ID Edit -class MineUserIdEditView: MineAlertContentView { - - override init(frame: CGRect = .zero, viewModel: MineViewModel) { - super.init(viewModel: viewModel) - titleLabel.text = .changeUseridText - NotificationCenter.default.addObserver(self, selector: #selector(keyboardFrameChange(noti:)), name: UIResponder.keyboardWillChangeFrameNotification, object: nil) - } - - deinit { - NotificationCenter.default.removeObserver(self) - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - @objc func keyboardFrameChange(noti : Notification) { - guard let info = noti.userInfo else { - return - } - guard let value = info[UIResponder.keyboardFrameEndUserInfoKey], value is CGRect else { - return - } - let rect = value as! CGRect - transform = CGAffineTransform(translationX: 0, y: -ScreenHeight+rect.minY) - } - - lazy var confirmBtn: UIButton = { - let btn = UIButton(type: .system) - btn.setTitle(.confirmText, for: .normal) - btn.isEnabled = false - return btn - }() - - lazy var textField: UITextField = { - let textField = UITextField(frame: .zero) - textField.font = UIFont(name: "PingFangSC-Regular", size: 16) - textField.textColor = UIColor(hex: "333333") - textField.backgroundColor = UIColor(hex: "F4F5F9") - - let leftView = UIView(frame: CGRect(x: 0, y: 0, width: 20, height: 0)) - leftView.backgroundColor = .clear - leftView.isUserInteractionEnabled = false - textField.leftView = leftView - textField.leftViewMode = .always - - let attr = NSAttributedString(string: .useridPlaceholderText, attributes: - [NSAttributedString.Key.font : UIFont(name: "PingFangSC-Regular", size: 16) ?? UIFont.systemFont(ofSize: 16), - NSAttributedString.Key.foregroundColor : UIColor(hex: "BBBBBB") ?? .lightGray, - ]) - textField.attributedPlaceholder = attr - textField.layer.cornerRadius = 52/2 - return textField - }() - - lazy var alertTitleLabel: UILabel = { - let label = UILabel(frame: .zero) - label.font = UIFont(name: "PingFangSC-Regular", size: 14) - label.textColor = enableColor - label.text = .useridDescText - return label - }() - - override func constructViewHierarchy() { - super.constructViewHierarchy() - contentView.addSubview(confirmBtn) - contentView.addSubview(textField) - contentView.addSubview(alertTitleLabel) - } - override func activateConstraints() { - super.activateConstraints() - confirmBtn.snp.makeConstraints { (make) in - make.trailing.equalToSuperview().offset(-20) - make.centerY.equalTo(titleLabel) - } - textField.snp.makeConstraints { (make) in - make.top.equalTo(titleLabel.snp_bottom).offset(20) - make.leading.equalTo(titleLabel) - make.trailing.equalTo(confirmBtn) - make.height.equalTo(52) - } - alertTitleLabel.snp.makeConstraints { (make) in - make.leading.equalTo(textField) - make.top.equalTo(textField.snp_bottom).offset(10) - make.trailing.lessThanOrEqualToSuperview().offset(-20) - make.bottom.equalToSuperview().offset(-20-kDeviceSafeBottomHeight) - } - } - override func bindInteraction() { - super.bindInteraction() - confirmBtn.addTarget(self, action: #selector(confirmBtnClick(btn:)), for: .touchUpInside) - textField.delegate = self - } - - @objc func confirmBtnClick(btn: UIButton) { - textField.resignFirstResponder() - guard let name = textField.text, name.count > 0 else { - return - } - ProfileManager.shared.curUserModel?.name = name - ProfileManager.shared.synchronizUserInfo() - dismiss() - ProfileManager.shared.setNickName(name: name) { - debugPrint("sms set profile success") - } failed: { (err) in - debugPrint("sms set profile err:\(err)") - } - } - - override func touchesBegan(_ touches: Set, with event: UIEvent?) { - guard let point = touches.first?.location(in: self) else { - return - } - textField.resignFirstResponder() - if !contentView.frame.contains(point) { - dismiss() - } - else { - checkConfirmBtnState() - } - } - - var canUse = false - let enableColor = UIColor(hex: "BBBBBB") ?? UIColor.gray - let disableColor = UIColor(hex: "FA585E") ?? UIColor.red -} - -extension MineUserIdEditView : UITextFieldDelegate { - func textFieldDidBeginEditing(_ textField: UITextField) { - textField.becomeFirstResponder() - } - func textFieldShouldReturn(_ textField: UITextField) -> Bool { - textField.resignFirstResponder() - checkConfirmBtnState() - return true - } - func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { - let maxCount = 20 - guard let textFieldText = textField.text, - let rangeOfTextToReplace = Range(range, in: textFieldText) else { - return false - } - let substringToReplace = textFieldText[rangeOfTextToReplace] - let count = textFieldText.count - substringToReplace.count + string.count - let res = count <= maxCount - if res { - let newText = (textFieldText as NSString).replacingCharacters(in: range, with: string) - checkAlertTitleLState(newText) - - checkConfirmBtnState(count) - } - return res - } - - func checkAlertTitleLState(_ text: String = "") { - if text == "" { - if let str = textField.text { - canUse = viewModel.validate(userName: str) - alertTitleLabel.textColor = canUse ? enableColor : disableColor - } - else { - canUse = false - alertTitleLabel.textColor = disableColor - } - } - else { - canUse = viewModel.validate(userName: text) - alertTitleLabel.textColor = canUse ? enableColor : disableColor - } - } - - func checkConfirmBtnState(_ count: Int = -1) { - var ctt = textField.text?.count ?? 0 - if count > -1 { - ctt = count - } - confirmBtn.isEnabled = canUse && ctt > 0 - } -} - -class MineAlertContentView: UIView { - lazy var bgView: UIView = { - let view = UIView(frame: .zero) - view.backgroundColor = .black - view.alpha = 0.6 - return view - }() - lazy var contentView: UIView = { - let view = UIView(frame: .zero) - view.backgroundColor = .white - return view - }() - - lazy var titleLabel: UILabel = { - let label = UILabel(frame: .zero) - label.textColor = .black - label.font = UIFont(name: "PingFangSC-Medium", size: 24) - return label - }() - - let viewModel: MineViewModel - - public var willDismiss: (()->())? - public var didDismiss: (()->())? - - public init(frame: CGRect = .zero, viewModel: MineViewModel) { - self.viewModel = viewModel - super.init(frame: frame) - contentView.transform = CGAffineTransform(translationX: 0, y: ScreenHeight) - alpha = 0 - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - private var isViewReady = false - override func didMoveToWindow() { - super.didMoveToWindow() - guard !isViewReady else { - return - } - isViewReady = true - constructViewHierarchy() - activateConstraints() - bindInteraction() - } - - public func show() { - UIView.animate(withDuration: 0.3) { - self.alpha = 1 - self.contentView.transform = .identity - } - } - - public func dismiss() { - if let action = willDismiss { - action() - } - UIView.animate(withDuration: 0.3) { - self.alpha = 0 - self.contentView.transform = CGAffineTransform(translationX: 0, y: ScreenHeight) - } completion: { (finish) in - if let action = self.didDismiss { - action() - } - self.removeFromSuperview() - } - } - - override func touchesBegan(_ touches: Set, with event: UIEvent?) { - guard let point = touches.first?.location(in: self) else { - return - } - if !contentView.frame.contains(point) { - dismiss() - } - } - - override func draw(_ rect: CGRect) { - super.draw(rect) - contentView.roundedRect(rect: contentView.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: 20, height: 20)) - } - - func constructViewHierarchy() { - addSubview(bgView) - addSubview(contentView) - contentView.addSubview(titleLabel) - } - func activateConstraints() { - bgView.snp.makeConstraints { (make) in - make.edges.equalToSuperview() - } - contentView.snp.makeConstraints { (make) in - make.leading.trailing.bottom.equalToSuperview() - } - titleLabel.snp.makeConstraints { (make) in - make.leading.equalToSuperview().offset(20) - make.top.equalToSuperview().offset(32) - } - } - func bindInteraction() { - - } -} -/// MARK: - internationalization string -fileprivate extension String { - static let changeUseridText = AppPortalLocalize("Demo.TRTC.Portal.changenickname") - static let confirmText = AppPortalLocalize("Demo.TRTC.Portal.confirm") - static let useridPlaceholderText = AppPortalLocalize("Demo.TRTC.Portal.enterusername") - static let useridDescText = AppPortalLocalize("Demo.TRTC.Portal.limit20count") -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/subview/TRTCAlertControl.swift b/iOS/Demo/TXLiteAVDemo/App/Main/Mine/subview/TRTCAlertControl.swift deleted file mode 100644 index d5f7881e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/subview/TRTCAlertControl.swift +++ /dev/null @@ -1,68 +0,0 @@ -// -// TRTCAlertViewModel.swift -// TXLiteAVDemo -// -// Created by gg on 2021/4/8. -// Copyright © 2021 Tencent. All rights reserved. -// - -import Foundation - -class AvatarModel: NSObject { - let url: String - init(url: String) { - self.url = url - super.init() - } -} - -class TRTCAlertViewModel: NSObject { - - func setUserAvatar(_ avatarUrl: String) { - ProfileManager.shared.curUserModel?.avatar = avatarUrl - } - - func synchronizUserInfo() { - ProfileManager.shared.synchronizUserInfo() - } - - var currentSelectAvatarModel: AvatarModel? - - lazy var avatarListDataSource: [AvatarModel] = { - var res : [AvatarModel] = [] - - let allUrl = [ - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar1.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar10.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar11.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar12.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar13.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar14.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar15.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar16.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar17.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar18.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar19.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar2.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar20.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar21.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar22.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar23.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar24.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar3.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar4.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar5.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar6.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar7.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar8.png", - "https://liteav.sdk.qcloud.com/app/res/picture/voiceroom/avatar/user_avatar9.png", - ] - - allUrl.forEach { (url) in - let model = AvatarModel(url: url) - res.append(model) - } - - return res - }() -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/subview/TRTCAlerts.swift b/iOS/Demo/TXLiteAVDemo/App/Main/Mine/subview/TRTCAlerts.swift deleted file mode 100644 index da280b9c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Main/Mine/subview/TRTCAlerts.swift +++ /dev/null @@ -1,294 +0,0 @@ -// -// TRTCAlerts.swift -// TXLiteAVDemo -// -// Created by gg on 2021/4/8. -// Copyright © 2021 Tencent. All rights reserved. -// - -import Foundation - -class TRTCAvatarListAlertView: TRTCAlertContentView { - - lazy var confirmBtn: UIButton = { - let btn = UIButton(type: .system) - btn.setTitle(.confirmText, for: .normal) - btn.titleLabel?.font = UIFont(name: "PingFangSC-Medium", size: 16) - btn.isEnabled = false - return btn - }() - - lazy var collectionView: UICollectionView = { - let itemWH = (ScreenWidth - 20 * 5) / 4 - let layout = UICollectionViewFlowLayout() - layout.scrollDirection = .vertical - layout.itemSize = CGSize(width: itemWH, height: itemWH) - layout.minimumLineSpacing = 20 - layout.minimumInteritemSpacing = 20 - let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout) - collectionView.contentInset = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20) - collectionView.showsVerticalScrollIndicator = false - collectionView.showsHorizontalScrollIndicator = false - collectionView.backgroundColor = .clear - return collectionView - }() - - override init(frame: CGRect = .zero, viewModel: TRTCAlertViewModel) { - super.init(frame: frame, viewModel: viewModel) - titleLabel.font = UIFont(name: "PingFangSC-Medium", size: 20) - titleLabel.text = .setAvatarText - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - override func constructViewHierarchy() { - super.constructViewHierarchy() - contentView.addSubview(collectionView) - contentView.addSubview(confirmBtn) - } - override func activateConstraints() { - super.activateConstraints() - collectionView.snp.makeConstraints { (make) in - make.leading.bottom.trailing.equalToSuperview() - make.top.equalTo(titleLabel.snp_bottom) - make.height.equalTo(convertPixel(h: 440)) - } - confirmBtn.snp.makeConstraints { (make) in - make.trailing.equalToSuperview().offset(-20) - make.centerY.equalTo(titleLabel) - } - } - override func bindInteraction() { - super.bindInteraction() - - confirmBtn.addTarget(self, action: #selector(confirmBtnClick), for: .touchUpInside) - - collectionView.delegate = self - collectionView.dataSource = self - collectionView.register(TRTCAvatarListCell.self, forCellWithReuseIdentifier: "TRTCAvatarListCell") - } - - public var didClickConfirmBtn: (()->())? - - @objc func confirmBtnClick() { - guard let model = viewModel.currentSelectAvatarModel else { - return - } - viewModel.setUserAvatar(model.url) - if let action = didClickConfirmBtn { - action() - } - dismiss() - } - - override func dismiss() { - super.dismiss() - viewModel.currentSelectAvatarModel = nil - } -} -extension TRTCAvatarListAlertView: UICollectionViewDataSource { - func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - return viewModel.avatarListDataSource.count - } - func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { - let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "TRTCAvatarListCell", for: indexPath) - if let scell = cell as? TRTCAvatarListCell { - let model = viewModel.avatarListDataSource[indexPath.item] - scell.model = model - } - return cell - } -} -extension TRTCAvatarListAlertView: UICollectionViewDelegate { - func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { - viewModel.currentSelectAvatarModel = viewModel.avatarListDataSource[indexPath.item] - confirmBtn.isEnabled = true - } -} - -class TRTCAvatarListCell: UICollectionViewCell { - - var model: AvatarModel? { - didSet { - guard let model = model else { - return - } - headImageView.sd_setImage(with: URL(string: model.url), placeholderImage: nil, options: .continueInBackground, completed: nil) - } - } - - override var isSelected: Bool { - didSet { - selectView.isHidden = !isSelected - } - } - - lazy var headImageView: UIImageView = { - let imageV = UIImageView(frame: .zero) - imageV.contentMode = .scaleAspectFill - imageV.clipsToBounds = true - return imageV - }() - - lazy var selectView: UIView = { - let view = UIView(frame: .zero) - view.backgroundColor = .clear - view.isHidden = true - return view - }() - - override init(frame: CGRect) { - super.init(frame: frame) - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - override func draw(_ rect: CGRect) { - super.draw(rect) - headImageView.layer.cornerRadius = frame.height * 0.5 - selectView.layer.cornerRadius = selectView.frame.height * 0.5 - selectView.layer.borderWidth = 3 - selectView.layer.borderColor = UIColor(hex: "006EFF")?.cgColor - } - - private var isViewReady = false - override func didMoveToWindow() { - super.didMoveToWindow() - guard !isViewReady else { - return - } - isViewReady = true - constructViewHierarchy() - activateConstraints() - } - - func constructViewHierarchy() { - contentView.addSubview(headImageView) - headImageView.addSubview(selectView) - } - - func activateConstraints() { - headImageView.snp.makeConstraints { (make) in - make.edges.equalToSuperview() - } - selectView.snp.makeConstraints { (make) in - make.edges.equalToSuperview() - } - } -} - -class TRTCAlertContentView: UIView { - lazy var bgView: UIView = { - let view = UIView(frame: .zero) - view.backgroundColor = .black - view.alpha = 0.6 - return view - }() - lazy var contentView: UIView = { - let view = UIView(frame: .zero) - view.backgroundColor = .white - return view - }() - - lazy var titleLabel: UILabel = { - let label = UILabel(frame: .zero) - label.textColor = .black - label.font = UIFont(name: "PingFangSC-Medium", size: 24) - return label - }() - - public var willDismiss: (()->())? - public var didDismiss: (()->())? - - let viewModel: TRTCAlertViewModel - - public init(frame: CGRect = .zero, viewModel: TRTCAlertViewModel) { - self.viewModel = viewModel - super.init(frame: frame) - contentView.transform = CGAffineTransform(translationX: 0, y: ScreenHeight) - alpha = 0 - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - private var isViewReady = false - override func didMoveToWindow() { - super.didMoveToWindow() - guard !isViewReady else { - return - } - isViewReady = true - constructViewHierarchy() - activateConstraints() - bindInteraction() - } - - public func show() { - UIView.animate(withDuration: 0.3) { - self.alpha = 1 - self.contentView.transform = .identity - } - } - - public func dismiss() { - if let action = willDismiss { - action() - } - UIView.animate(withDuration: 0.3) { - self.alpha = 0 - self.contentView.transform = CGAffineTransform(translationX: 0, y: ScreenHeight) - } completion: { (finish) in - if let action = self.didDismiss { - action() - } - self.removeFromSuperview() - } - } - - override func touchesBegan(_ touches: Set, with event: UIEvent?) { - guard let point = touches.first?.location(in: self) else { - return - } - if !contentView.frame.contains(point) { - dismiss() - } - } - - override func draw(_ rect: CGRect) { - super.draw(rect) - contentView.roundedRect(rect: contentView.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: 20, height: 20)) - } - - func constructViewHierarchy() { - addSubview(bgView) - addSubview(contentView) - contentView.addSubview(titleLabel) - } - func activateConstraints() { - bgView.snp.makeConstraints { (make) in - make.edges.equalToSuperview() - } - contentView.snp.makeConstraints { (make) in - make.leading.trailing.bottom.equalToSuperview() - } - titleLabel.snp.makeConstraints { (make) in - make.leading.equalToSuperview().offset(20) - make.top.equalToSuperview().offset(32) - } - } - func bindInteraction() { - - } -} - -/// MARK: - internationalization string -fileprivate extension String { - static let confirmText = TRTCLocalize("Demo.TRTC.Login.done") - static let setAvatarText = TRTCLocalize("Demo.TRTC.Login.setavatar") -} diff --git a/iOS/Demo/TXLiteAVDemo/App/ReplayKit2Define.h b/iOS/Demo/TXLiteAVDemo/App/ReplayKit2Define.h deleted file mode 100644 index 7988f0c9..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/ReplayKit2Define.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// Replaykit2Define.h -// TXLiteAVDemo -// -// Created by rushanting on 2018/3/26. -// Copyright © 2018年 Tencent. All rights reserved. -// - -#ifndef Replaykit2Define_h -#define Replaykit2Define_h - -#define kReplayKitUseAppGroup 0 -#if DEBUG -#define kReplayKit2AppGroupId @"group.com.tencent.liteav.RPLiveStreamShare" -#else -#define kReplayKit2AppGroupId @"group.com.tencent.liteav.RPLiveStreamRelease" -#endif -#define kReplayKit2PasteboardName @"group.com.tencent.replaykit2.pasteboard" -#define kReplayKitIPCPort 31753 - -#define kDarvinNotificationNamePushStart CFSTR("Darwin_ReplayKit2_Push_Start") -#define kDarvinNotificaiotnNamePushStop CFSTR("Darwin_ReplayKit2_Push_Stop") -#define kDarvinNotificaiotnNameRotationChange CFSTR("Darwin_ReplayKit2_Rotate_Change") - -#define kCocoaNotificationNameReplayKit2Stop @"Cocoa_ReplayKit2_Stop" - -#define kLocalNotificationTypeKey @"LocalNotificationType" -#define kLocalNotificationTypeReplaykit2 @"LocalNotificationReplaykit2" - -#define kReplayKit2UploadingKey @"replaykit2Uploading" -#define kReplayKit2Uploading @"uploading" -#define kReplayKit2Stop @"stop" - - -#define kReplayKit2PushUrlKey @"replaykit2RtmpURL" - -#define kReplayKit2RotateKey @"replaykit2Rotation" -#define kReplayKit2Portrait @"replaykit2Portrait" -#define kReplayKit2Lanscape @"replaykit2Lanscape" - -#define kReplayKit2ResolutionKey @"replaykit2Resolution" -#define kResolutionSD @"SD" -#define kResolutionHD @"HD" -#define kResolutionFHD @"FHD" -#define kDarvinNotificaiotnNameResolutionChange CFSTR("Darwin_ReplayKit2_Resolution_Change") - - -#define kReplayKit2UserDefaultRoomidKey @"roomID" - -#endif /* Replaykit2Define_h */ - diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/camera_dis.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/camera_dis.imageset/Contents.json deleted file mode 100644 index b2056168..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/camera_dis.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "camera_dis.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/camera_dis.imageset/camera_dis.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/camera_dis.imageset/camera_dis.png deleted file mode 100644 index 3ac5af81..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/camera_dis.imageset/camera_dis.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/camera_nol.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/camera_nol.imageset/Contents.json deleted file mode 100644 index 3d54bad1..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/camera_nol.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "camera_nol.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/camera_nol.imageset/camera_nol.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/camera_nol.imageset/camera_nol.png deleted file mode 100644 index 9afb44b5..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/camera_nol.imageset/camera_nol.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/mic.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/mic.imageset/Contents.json deleted file mode 100644 index a532760d..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/mic.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "mic.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/mic.imageset/mic.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/mic.imageset/mic.png deleted file mode 100644 index d5a70998..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/mic.imageset/mic.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/mic_dis.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/mic_dis.imageset/Contents.json deleted file mode 100644 index b7c51d03..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/mic_dis.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "mic_dis.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/mic_dis.imageset/mic_dis.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/mic_dis.imageset/mic_dis.png deleted file mode 100644 index f5eb09f7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/mic_dis.imageset/mic_dis.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/sound.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/sound.imageset/Contents.json deleted file mode 100644 index d22d3184..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/sound.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "sound.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/sound.imageset/sound.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/sound.imageset/sound.png deleted file mode 100644 index 02056166..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/sound.imageset/sound.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/sound_dis.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/sound_dis.imageset/Contents.json deleted file mode 100644 index d227e793..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/sound_dis.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "sound_dis.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/sound_dis.imageset/sound_dis.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/sound_dis.imageset/sound_dis.png deleted file mode 100644 index 19eef52a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AVRoom/sound_dis.imageset/sound_dis.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 47611157..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-40.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-60.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-58.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-87.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-80.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-120.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-180.png", - "scale" : "3x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "AppIcon1024x1024.png", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Contents.json deleted file mode 100644 index 1b3ccc86..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Contents.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "images" : [ - { - "filename" : "Icon-Spotlight-40.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "filename" : "Icon-60.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "filename" : "Icon-Small@2x.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "filename" : "Icon-Small@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "filename" : "Icon-Spotlight-40@2x.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "filename" : "Icon-Spotlight-40@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "filename" : "Icon-60@2x.png", - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "filename" : "Icon-60@3x.png", - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "filename" : "TRTC_Demo_App_icon.jpg", - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-60.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-60.png deleted file mode 100644 index e3737673..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-60.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-60@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-60@2x.png deleted file mode 100644 index f3a2645b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-60@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-60@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-60@3x.png deleted file mode 100644 index 57979025..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-60@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Small@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Small@2x.png deleted file mode 100644 index b2c6f172..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Small@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Small@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Small@3x.png deleted file mode 100644 index 3608904e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Small@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Spotlight-40.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Spotlight-40.png deleted file mode 100644 index 3efd0700..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Spotlight-40.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Spotlight-40@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Spotlight-40@2x.png deleted file mode 100644 index 56083c76..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Spotlight-40@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Spotlight-40@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Spotlight-40@3x.png deleted file mode 100644 index 00d03623..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/Icon-Spotlight-40@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/TRTC_Demo_App_icon.jpg b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/TRTC_Demo_App_icon.jpg deleted file mode 100644 index 92d3aca7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon_TRTC.appiconset/TRTC_Demo_App_icon.jpg and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/Contents.json deleted file mode 100644 index 73c00596..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/arrow.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/arrow.imageset/Contents.json deleted file mode 100644 index 4b678ae7..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/arrow.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "arrow@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/arrow.imageset/arrow@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/arrow.imageset/arrow@2x.png deleted file mode 100644 index 38354607..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/arrow.imageset/arrow@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/avroom.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/avroom.imageset/Contents.json deleted file mode 100644 index 5b66c98b..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/avroom.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "avroom@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/avroom.imageset/avroom@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/avroom.imageset/avroom@2x.png deleted file mode 100644 index 7c553efb..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/avroom.imageset/avroom@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/block_normal.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/block_normal.imageset/Contents.json deleted file mode 100644 index 3181a4d0..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/block_normal.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "block_normal@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/block_normal.imageset/block_normal@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/block_normal.imageset/block_normal@2x.png deleted file mode 100644 index 4fa0a0d3..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/block_normal.imageset/block_normal@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/block_pressed.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/block_pressed.imageset/Contents.json deleted file mode 100644 index 26ce61c0..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/block_pressed.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "block_pressed@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/block_pressed.imageset/block_pressed@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/block_pressed.imageset/block_pressed@2x.png deleted file mode 100644 index 06134324..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/block_pressed.imageset/block_pressed@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/cut.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/cut.imageset/Contents.json deleted file mode 100644 index 5ae568ba..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/cut.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "cut@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/cut.imageset/cut@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/cut.imageset/cut@2x.png deleted file mode 100644 index c108c5e1..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/cut.imageset/cut@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/dbg_tool.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/dbg_tool.imageset/Contents.json deleted file mode 100644 index 116bc394..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/dbg_tool.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "调试.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/dbg_tool.imageset/\350\260\203\350\257\225.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/dbg_tool.imageset/\350\260\203\350\257\225.png" deleted file mode 100644 index 4123d9e1..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/dbg_tool.imageset/\350\260\203\350\257\225.png" and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/double_room.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/double_room.imageset/Contents.json deleted file mode 100644 index d3221d85..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/double_room.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "double_room@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/double_room.imageset/double_room@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/double_room.imageset/double_room@2x.png deleted file mode 100644 index 7317120d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/double_room.imageset/double_room@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/liveplay.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/liveplay.imageset/Contents.json deleted file mode 100644 index bcd5578f..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/liveplay.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "liveplay@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/liveplay.imageset/liveplay@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/liveplay.imageset/liveplay@2x.png deleted file mode 100644 index e99322b3..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/liveplay.imageset/liveplay@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_composite.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_composite.imageset/Contents.json deleted file mode 100644 index 3ed9709e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_composite.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "main_composite.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_composite.imageset/main_composite.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_composite.imageset/main_composite.png deleted file mode 100644 index d6f3ed7e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_composite.imageset/main_composite.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_live.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_live.imageset/Contents.json deleted file mode 100644 index 7dc4767f..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_live.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "main_room_live.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_live.imageset/main_room_live.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_live.imageset/main_room_live.png deleted file mode 100644 index ce51da7b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_live.imageset/main_room_live.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_multi.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_multi.imageset/Contents.json deleted file mode 100644 index 8112a78c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_multi.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "main_room_multi.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_multi.imageset/main_room_multi.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_multi.imageset/main_room_multi.png deleted file mode 100644 index dadc4904..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_multi.imageset/main_room_multi.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_video.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_video.imageset/Contents.json deleted file mode 100644 index 0b4416b2..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_video.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "main_room_video.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_video.imageset/main_room_video.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_video.imageset/main_room_video.png deleted file mode 100644 index 9cddb3ca..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/main_room_video.imageset/main_room_video.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/multi-chat.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/multi-chat.imageset/Contents.json deleted file mode 100644 index 8b604597..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/multi-chat.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "multi-chat.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/multi-chat.imageset/multi-chat.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/multi-chat.imageset/multi-chat.png deleted file mode 100644 index 9cc36bfe..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/multi-chat.imageset/multi-chat.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/push.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/push.imageset/Contents.json deleted file mode 100644 index afd69365..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/push.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "push@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/push.imageset/push@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/push.imageset/push@2x.png deleted file mode 100644 index 8eb02d84..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/push.imageset/push@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/qa.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/qa.imageset/Contents.json deleted file mode 100644 index bca7e1e9..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/qa.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "qa@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/qa.imageset/qa@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/qa.imageset/qa@2x.png deleted file mode 100644 index 1fef23dd..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/qa.imageset/qa@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/realtime-player.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/realtime-player.imageset/Contents.json deleted file mode 100644 index 82cf2a45..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/realtime-player.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "realtime-player.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/realtime-player.imageset/realtime-player.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/realtime-player.imageset/realtime-player.png deleted file mode 100644 index 8ac6f308..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/realtime-player.imageset/realtime-player.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/transparent.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/transparent.imageset/Contents.json deleted file mode 100644 index 9bfe33fa..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/transparent.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "transparent.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/transparent.imageset/transparent.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/transparent.imageset/transparent.png deleted file mode 100644 index c1f9c487..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/transparent.imageset/transparent.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/vodplay.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/vodplay.imageset/Contents.json deleted file mode 100644 index c82b1c9e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/vodplay.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "vodplay@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/vodplay.imageset/vodplay@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/vodplay.imageset/vodplay@2x.png deleted file mode 100644 index 87bf0c7c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Main/vodplay.imageset/vodplay@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/Input_box.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/Input_box.imageset/Contents.json deleted file mode 100644 index a967a076..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/Input_box.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Input_box.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/Input_box.imageset/Input_box.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/Input_box.imageset/Input_box.png deleted file mode 100644 index 73931863..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/Input_box.imageset/Input_box.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/QR_code.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/QR_code.imageset/Contents.json deleted file mode 100644 index 82f19d55..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/QR_code.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "QR_code.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/QR_code.imageset/QR_code.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/QR_code.imageset/QR_code.png deleted file mode 100644 index 5bb7d017..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/QR_code.imageset/QR_code.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/addp.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/addp.imageset/Contents.json deleted file mode 100644 index eee3b840..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/addp.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "addp@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/addp.imageset/addp@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/addp.imageset/addp@2x.png deleted file mode 100644 index 8bb45e57..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/addp.imageset/addp@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/back_full.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/back_full.imageset/Contents.json deleted file mode 100644 index 1bd30a45..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/back_full.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "back_full@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "back_full@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/back_full.imageset/back_full@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/back_full.imageset/back_full@2x.png deleted file mode 100644 index b6ae8afd..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/back_full.imageset/back_full@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/back_full.imageset/back_full@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/back_full.imageset/back_full@3x.png deleted file mode 100644 index e0a0d1a8..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/back_full.imageset/back_full@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_back_full.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_back_full.imageset/Contents.json deleted file mode 100644 index e844b925..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_back_full.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "player_back_full@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "player_back_full@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_back_full.imageset/player_back_full@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_back_full.imageset/player_back_full@2x.png deleted file mode 100644 index b6ae8afd..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_back_full.imageset/player_back_full@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_back_full.imageset/player_back_full@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_back_full.imageset/player_back_full@3x.png deleted file mode 100644 index e0a0d1a8..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_back_full.imageset/player_back_full@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_bottom_shadow.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_bottom_shadow.imageset/Contents.json deleted file mode 100644 index 86333dce..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_bottom_shadow.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "player_bottom_shadow.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_bottom_shadow.imageset/player_bottom_shadow.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_bottom_shadow.imageset/player_bottom_shadow.png deleted file mode 100644 index e67cb360..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_bottom_shadow.imageset/player_bottom_shadow.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_close.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_close.imageset/Contents.json deleted file mode 100644 index 95ac4afa..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_close.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "player_close.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "player_close@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "player_close@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_close.imageset/player_close.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_close.imageset/player_close.png deleted file mode 100644 index 26a893a2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_close.imageset/player_close.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_close.imageset/player_close@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_close.imageset/player_close@2x.png deleted file mode 100644 index 80ab29f1..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_close.imageset/player_close@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_close.imageset/player_close@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_close.imageset/player_close@3x.png deleted file mode 100644 index 95c6484f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_close.imageset/player_close@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_fullscreen.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_fullscreen.imageset/Contents.json deleted file mode 100644 index 2364e675..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_fullscreen.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "player_fullscreen.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "player_fullscreen@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "player_fullscreen@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_fullscreen.imageset/player_fullscreen.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_fullscreen.imageset/player_fullscreen.png deleted file mode 100644 index ced952bb..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_fullscreen.imageset/player_fullscreen.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_fullscreen.imageset/player_fullscreen@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_fullscreen.imageset/player_fullscreen@2x.png deleted file mode 100644 index 769afae7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_fullscreen.imageset/player_fullscreen@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_fullscreen.imageset/player_fullscreen@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_fullscreen.imageset/player_fullscreen@3x.png deleted file mode 100644 index c68b2cea..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_fullscreen.imageset/player_fullscreen@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_unlock-nor.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_unlock-nor.imageset/Contents.json deleted file mode 100644 index 9f375d8c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_unlock-nor.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "player_unlock-nor@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "player_unlock-nor@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_unlock-nor.imageset/player_unlock-nor@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_unlock-nor.imageset/player_unlock-nor@2x.png deleted file mode 100644 index d6a2c98d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_unlock-nor.imageset/player_unlock-nor@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_unlock-nor.imageset/player_unlock-nor@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_unlock-nor.imageset/player_unlock-nor@3x.png deleted file mode 100644 index 1d1f46c7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/SuperPlayer/player_unlock-nor.imageset/player_unlock-nor@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/adjust.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/adjust.imageset/Contents.json deleted file mode 100644 index c0bfac87..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/adjust.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "adjust.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/adjust.imageset/adjust.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/adjust.imageset/adjust.png deleted file mode 100644 index 9d38bf67..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/adjust.imageset/adjust.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/black.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/black.imageset/Contents.json deleted file mode 100644 index 0c9394f9..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/black.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "black.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/black.imageset/black.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/black.imageset/black.png deleted file mode 100644 index d96a03fc..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/black.imageset/black.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache.imageset/Contents.json deleted file mode 100644 index 71bbb543..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "cache.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache.imageset/cache.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache.imageset/cache.png deleted file mode 100644 index 4bb56827..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache.imageset/cache.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache2.imageset/Contents.json deleted file mode 100644 index 79e89dfb..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "cache2.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache2.imageset/cache2.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache2.imageset/cache2.png deleted file mode 100644 index c551c9f7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache2.imageset/cache2.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache_time.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache_time.imageset/Contents.json deleted file mode 100644 index 9ef20548..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache_time.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "cache_time.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache_time.imageset/cache_time.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache_time.imageset/cache_time.png deleted file mode 100644 index 90c0cb56..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/cache_time.imageset/cache_time.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/close.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/close.imageset/Contents.json deleted file mode 100644 index 8e09a778..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/close.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "close@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/close.imageset/close@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/close.imageset/close@2x.png deleted file mode 100644 index 1df01415..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/close.imageset/close@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/fill.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/fill.imageset/Contents.json deleted file mode 100644 index 98d655a5..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/fill.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "fill.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/fill.imageset/fill.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/fill.imageset/fill.png deleted file mode 100644 index 340e1336..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/fill.imageset/fill.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/jisu_off.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/jisu_off.imageset/Contents.json deleted file mode 100644 index dedee157..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/jisu_off.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "jisu_on.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/jisu_off.imageset/jisu_on.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/jisu_off.imageset/jisu_on.png deleted file mode 100644 index 07c2b5ee..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/jisu_off.imageset/jisu_on.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/jisu_on.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/jisu_on.imageset/Contents.json deleted file mode 100644 index ecfa857c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/jisu_on.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "jisu_off.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/jisu_on.imageset/jisu_off.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/jisu_on.imageset/jisu_off.png deleted file mode 100644 index d3c7167d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/jisu_on.imageset/jisu_off.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/landscape.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/landscape.imageset/Contents.json deleted file mode 100644 index cecfb0ed..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/landscape.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "landscape.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/landscape.imageset/landscape.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/landscape.imageset/landscape.png deleted file mode 100644 index 0d2075c6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/landscape.imageset/landscape.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image0.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image0.imageset/Contents.json deleted file mode 100644 index b422abbb..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image0.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_image0.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image0.imageset/loading_image0.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image0.imageset/loading_image0.png deleted file mode 100644 index 752ad96d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image0.imageset/loading_image0.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image1.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image1.imageset/Contents.json deleted file mode 100644 index a19a5350..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image1.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_image1.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image1.imageset/loading_image1.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image1.imageset/loading_image1.png deleted file mode 100644 index 4a486a5e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image1.imageset/loading_image1.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image2.imageset/Contents.json deleted file mode 100644 index f99a7e2f..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_image2.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image2.imageset/loading_image2.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image2.imageset/loading_image2.png deleted file mode 100644 index 18e2e46e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image2.imageset/loading_image2.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image3.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image3.imageset/Contents.json deleted file mode 100644 index b2b2bad5..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image3.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_image3.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image3.imageset/loading_image3.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image3.imageset/loading_image3.png deleted file mode 100644 index c8fd81f2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image3.imageset/loading_image3.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image4.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image4.imageset/Contents.json deleted file mode 100644 index a188ccda..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image4.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_image4.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image4.imageset/loading_image4.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image4.imageset/loading_image4.png deleted file mode 100644 index 06327aae..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image4.imageset/loading_image4.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image5.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image5.imageset/Contents.json deleted file mode 100644 index 34002fb5..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image5.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_image5.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image5.imageset/loading_image5.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image5.imageset/loading_image5.png deleted file mode 100644 index bedd3f92..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image5.imageset/loading_image5.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image6.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image6.imageset/Contents.json deleted file mode 100644 index 704f7221..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image6.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_image6.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image6.imageset/loading_image6.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image6.imageset/loading_image6.png deleted file mode 100644 index 24ed320b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image6.imageset/loading_image6.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image7.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image7.imageset/Contents.json deleted file mode 100644 index 2a967238..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image7.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_image7.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image7.imageset/loading_image7.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image7.imageset/loading_image7.png deleted file mode 100644 index 8171db08..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/loading_image7.imageset/loading_image7.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/log.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/log.imageset/Contents.json deleted file mode 100644 index b392f9b3..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/log.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "log.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/log.imageset/log.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/log.imageset/log.png deleted file mode 100644 index ee413104..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/log.imageset/log.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/log2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/log2.imageset/Contents.json deleted file mode 100644 index 03b637c7..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/log2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "log2.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/log2.imageset/log2.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/log2.imageset/log2.png deleted file mode 100644 index 71f9769e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/log2.imageset/log2.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/portrait.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/portrait.imageset/Contents.json deleted file mode 100644 index 70423661..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/portrait.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "portrait.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/portrait.imageset/portrait.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/portrait.imageset/portrait.png deleted file mode 100644 index 0d2075c6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/portrait.imageset/portrait.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/quick.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/quick.imageset/Contents.json deleted file mode 100644 index 56651313..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/quick.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "quick.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/quick.imageset/quick.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/quick.imageset/quick.png deleted file mode 100644 index bdc9cfeb..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/quick.imageset/quick.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/quick2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/quick2.imageset/Contents.json deleted file mode 100644 index 8b98cca0..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/quick2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "quick2.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/quick2.imageset/quick2.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/quick2.imageset/quick2.png deleted file mode 100644 index 3f91be8b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/quick2.imageset/quick2.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/start.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/start.imageset/Contents.json deleted file mode 100644 index d44a38d7..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/start.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "start.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/start.imageset/start.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/start.imageset/start.png deleted file mode 100644 index 37ab0984..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/start.imageset/start.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/suspend.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/suspend.imageset/Contents.json deleted file mode 100644 index 2b02e993..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/suspend.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "suspend.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/suspend.imageset/suspend.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/suspend.imageset/suspend.png deleted file mode 100644 index 7afab730..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/suspend.imageset/suspend.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/white.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/white.imageset/Contents.json deleted file mode 100644 index 497600f8..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/white.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "white.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/white.imageset/white.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/white.imageset/white.png deleted file mode 100644 index 544fe98f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Play/white.imageset/white.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/HD.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/HD.imageset/Contents.json deleted file mode 100644 index 32f450e4..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/HD.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "HD.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/HD.imageset/HD.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/HD.imageset/HD.png deleted file mode 100644 index e2348ba7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/HD.imageset/HD.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/PU.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/PU.imageset/Contents.json deleted file mode 100644 index b70cbf66..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/PU.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "PU.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/PU.imageset/PU.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/PU.imageset/PU.png deleted file mode 100644 index 1150d177..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/PU.imageset/PU.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/SD.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/SD.imageset/Contents.json deleted file mode 100644 index ce090d66..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/SD.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "SD.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/SD.imageset/SD.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/SD.imageset/SD.png deleted file mode 100644 index 8df20746..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/SD.imageset/SD.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/beauty_b2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/beauty_b2.imageset/Contents.json deleted file mode 100644 index 3b329ae7..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/beauty_b2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "美颜-关.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/beauty_b2.imageset/\347\276\216\351\242\234-\345\205\263.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/beauty_b2.imageset/\347\276\216\351\242\234-\345\205\263.png" deleted file mode 100644 index 3abd0ef4..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/beauty_b2.imageset/\347\276\216\351\242\234-\345\205\263.png" and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/beauty_dis.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/beauty_dis.imageset/Contents.json deleted file mode 100644 index 00bccaa1..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/beauty_dis.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "beauty_dis.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/beauty_dis.imageset/beauty_dis.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/beauty_dis.imageset/beauty_dis.png deleted file mode 100644 index 3abd0ef4..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/beauty_dis.imageset/beauty_dis.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera.imageset/Contents.json deleted file mode 100644 index 628217b7..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "camera.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "camera@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "camera@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera.imageset/camera.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera.imageset/camera.png deleted file mode 100644 index c01bee78..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera.imageset/camera.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera.imageset/camera@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera.imageset/camera@2x.png deleted file mode 100644 index 6e423839..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera.imageset/camera@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera.imageset/camera@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera.imageset/camera@3x.png deleted file mode 100644 index bcec6de1..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera.imageset/camera@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera2.imageset/Contents.json deleted file mode 100644 index 4946a87e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "camera2.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera2.imageset/camera2.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera2.imageset/camera2.png deleted file mode 100644 index e35534e7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/camera2.imageset/camera2.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/float.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/float.imageset/Contents.json deleted file mode 100644 index a176c50a..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/float.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "float.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/float.imageset/float.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/float.imageset/float.png deleted file mode 100644 index ec79c7b2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/float.imageset/float.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/float_b.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/float_b.imageset/Contents.json deleted file mode 100644 index 365af0fc..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/float_b.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "排列-浮动.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/float_b.imageset/\346\216\222\345\210\227-\346\265\256\345\212\250.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/float_b.imageset/\346\216\222\345\210\227-\346\265\256\345\212\250.png" deleted file mode 100644 index 9fe78aa1..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/float_b.imageset/\346\216\222\345\210\227-\346\265\256\345\212\250.png" and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/gird.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/gird.imageset/Contents.json deleted file mode 100644 index 1bd23b4c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/gird.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "gird.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/gird.imageset/gird.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/gird.imageset/gird.png deleted file mode 100644 index 553881a7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/gird.imageset/gird.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/gird_b.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/gird_b.imageset/Contents.json deleted file mode 100644 index c79df28a..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/gird_b.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "排列-平铺.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/gird_b.imageset/\346\216\222\345\210\227-\345\271\263\351\223\272.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/gird_b.imageset/\346\216\222\345\210\227-\345\271\263\351\223\272.png" deleted file mode 100644 index 102f4649..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/gird_b.imageset/\346\216\222\345\210\227-\345\271\263\351\223\272.png" and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/greenb.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/greenb.imageset/Contents.json deleted file mode 100644 index 8050898a..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/greenb.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "greenb.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/greenb.imageset/greenb.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/greenb.imageset/greenb.png deleted file mode 100644 index 440c6dbe..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/greenb.imageset/greenb.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/greenb2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/greenb2.imageset/Contents.json deleted file mode 100644 index 2c0f63ae..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/greenb2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "greenb2.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/greenb2.imageset/greenb2.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/greenb2.imageset/greenb2.png deleted file mode 100644 index f6f25de4..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/greenb2.imageset/greenb2.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/help.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/help.imageset/Contents.json deleted file mode 100644 index ee57ed38..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/help.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "help.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/help.imageset/help.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/help.imageset/help.png deleted file mode 100644 index 6bf96b1c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/help.imageset/help.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/ic_green.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/ic_green.imageset/Contents.json deleted file mode 100644 index 469b4905..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/ic_green.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "ic_green.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/ic_green.imageset/ic_green.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/ic_green.imageset/ic_green.png deleted file mode 100644 index 7abdd3e2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/ic_green.imageset/ic_green.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/ic_red.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/ic_red.imageset/Contents.json deleted file mode 100644 index 39c2b7ab..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/ic_red.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "ic_red.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/ic_red.imageset/ic_red.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/ic_red.imageset/ic_red.png deleted file mode 100644 index e822219d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/ic_red.imageset/ic_red.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/log_b.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/log_b.imageset/Contents.json deleted file mode 100644 index e8d92544..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/log_b.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "logo-开.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/log_b.imageset/logo-\345\274\200.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/log_b.imageset/logo-\345\274\200.png" deleted file mode 100644 index 71f9769e..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/log_b.imageset/logo-\345\274\200.png" and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/log_b2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/log_b2.imageset/Contents.json deleted file mode 100644 index bbf118d4..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/log_b2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "logo-关.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/log_b2.imageset/logo-\345\205\263.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/log_b2.imageset/logo-\345\205\263.png" deleted file mode 100644 index ee413104..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/log_b2.imageset/logo-\345\205\263.png" and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_beauty.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_beauty.imageset/Contents.json deleted file mode 100644 index 22320bd3..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_beauty.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "mlvb_beauty.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_beauty.imageset/mlvb_beauty.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_beauty.imageset/mlvb_beauty.png deleted file mode 100644 index 20a6385e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_beauty.imageset/mlvb_beauty.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_camera_back.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_camera_back.imageset/Contents.json deleted file mode 100644 index 57fc03f2..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_camera_back.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "mlvb_camera_back.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_camera_back.imageset/mlvb_camera_back.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_camera_back.imageset/mlvb_camera_back.png deleted file mode 100644 index e35534e7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_camera_back.imageset/mlvb_camera_back.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_camera_front.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_camera_front.imageset/Contents.json deleted file mode 100644 index 30aa4c88..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_camera_front.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "mlvb_camera_front.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_camera_front.imageset/mlvb_camera_front.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_camera_front.imageset/mlvb_camera_front.png deleted file mode 100644 index 0b94ccb5..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mlvb_camera_front.imageset/mlvb_camera_front.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/music.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/music.imageset/Contents.json deleted file mode 100644 index ec78ce1f..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/music.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "music.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/music.imageset/music.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/music.imageset/music.png deleted file mode 100644 index 3087be98..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/music.imageset/music.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mute_b.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mute_b.imageset/Contents.json deleted file mode 100644 index 73631438..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mute_b.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "mute_b.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mute_b.imageset/mute_b.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mute_b.imageset/mute_b.png deleted file mode 100644 index ea771a25..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mute_b.imageset/mute_b.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mute_b2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mute_b2.imageset/Contents.json deleted file mode 100644 index a486f761..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mute_b2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "静音-关.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mute_b2.imageset/\351\235\231\351\237\263-\345\205\263.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mute_b2.imageset/\351\235\231\351\237\263-\345\205\263.png" deleted file mode 100644 index b2c86758..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/mute_b2.imageset/\351\235\231\351\237\263-\345\205\263.png" and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/new.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/new.imageset/Contents.json deleted file mode 100644 index 63d08144..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/new.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "new.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/new.imageset/new.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/new.imageset/new.png deleted file mode 100644 index f2c2e3f6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/new.imageset/new.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/pause_publish.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/pause_publish.imageset/Contents.json deleted file mode 100644 index bca18975..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/pause_publish.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "pause_publish.jpg", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/pause_publish.imageset/pause_publish.jpg b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/pause_publish.imageset/pause_publish.jpg deleted file mode 100644 index 45374385..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/pause_publish.imageset/pause_publish.jpg and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/send.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/send.imageset/Contents.json deleted file mode 100644 index ba958e2d..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/send.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "send.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/send.imageset/send.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/send.imageset/send.png deleted file mode 100644 index 9feeeb7d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/send.imageset/send.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set.imageset/Contents.json deleted file mode 100644 index 8f0469cb..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "set.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set.imageset/set.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set.imageset/set.png deleted file mode 100644 index 84caeb09..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set.imageset/set.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set_b.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set_b.imageset/Contents.json deleted file mode 100644 index 083e2b62..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set_b.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "设置-开.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set_b.imageset/\350\256\276\347\275\256-\345\274\200.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set_b.imageset/\350\256\276\347\275\256-\345\274\200.png" deleted file mode 100644 index 84caeb09..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set_b.imageset/\350\256\276\347\275\256-\345\274\200.png" and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set_b2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set_b2.imageset/Contents.json deleted file mode 100644 index 0738b6d1..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set_b2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "设置-关.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set_b2.imageset/\350\256\276\347\275\256-\345\205\263.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set_b2.imageset/\350\256\276\347\275\256-\345\205\263.png" deleted file mode 100644 index 529ff081..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/set_b2.imageset/\350\256\276\347\275\256-\345\205\263.png" and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/snapshot.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/snapshot.imageset/Contents.json deleted file mode 100644 index dcbb9ca7..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/snapshot.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "snapshot.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/snapshot.imageset/snapshot.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/snapshot.imageset/snapshot.png deleted file mode 100644 index 5c181385..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/snapshot.imageset/snapshot.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/start2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/start2.imageset/Contents.json deleted file mode 100644 index 4e3eb696..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/start2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "start2.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/start2.imageset/start2.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/start2.imageset/start2.png deleted file mode 100644 index c9f884b3..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/start2.imageset/start2.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stop2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stop2.imageset/Contents.json deleted file mode 100644 index 6f7e44c7..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stop2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "stop2.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stop2.imageset/stop2.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stop2.imageset/stop2.png deleted file mode 100644 index 9cea8738..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stop2.imageset/stop2.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stopwatch.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stopwatch.imageset/Contents.json deleted file mode 100644 index 8cbddef3..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stopwatch.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "stopwatch.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stopwatch.imageset/stopwatch.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stopwatch.imageset/stopwatch.png deleted file mode 100644 index 49928883..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stopwatch.imageset/stopwatch.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stopwatch_b.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stopwatch_b.imageset/Contents.json deleted file mode 100644 index dce8e6b2..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stopwatch_b.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "stopwatch_h.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stopwatch_b.imageset/stopwatch_h.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stopwatch_b.imageset/stopwatch_h.png deleted file mode 100644 index a6cc375f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/stopwatch_b.imageset/stopwatch_h.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/video_press.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/video_press.imageset/Contents.json deleted file mode 100644 index c22dfabd..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/video_press.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_press.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/video_press.imageset/video_press.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/video_press.imageset/video_press.png deleted file mode 100644 index 32fadbd4..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/video_press.imageset/video_press.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/watermark.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/watermark.imageset/Contents.json deleted file mode 100644 index c757910d..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/watermark.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "watermark.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/watermark.imageset/watermark.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/watermark.imageset/watermark.png deleted file mode 100644 index 0c9f2c2d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Push/watermark.imageset/watermark.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/help_small.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/help_small.imageset/Contents.json deleted file mode 100644 index c803fef3..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/help_small.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "help_small@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/help_small.imageset/help_small@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/help_small.imageset/help_small@2x.png deleted file mode 100644 index a2c496be..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/help_small.imageset/help_small@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_kickout.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_kickout.imageset/Contents.json deleted file mode 100644 index 262d6556..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_kickout.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "linkmic_kickout@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_kickout.imageset/linkmic_kickout@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_kickout.imageset/linkmic_kickout@2x.png deleted file mode 100644 index ad86bbbb..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_kickout.imageset/linkmic_kickout@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_start.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_start.imageset/Contents.json deleted file mode 100644 index 2b2faea4..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_start.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "linkmic_start@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_start.imageset/linkmic_start@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_start.imageset/linkmic_start@2x.png deleted file mode 100644 index af6a6241..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_start.imageset/linkmic_start@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_stop.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_stop.imageset/Contents.json deleted file mode 100644 index 252665d1..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_stop.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "linkmic_stop@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_stop.imageset/linkmic_stop@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_stop.imageset/linkmic_stop@2x.png deleted file mode 100644 index 2796df69..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/linkmic_stop.imageset/linkmic_stop@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_1.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_1.imageset/Contents.json deleted file mode 100644 index ca450e8f..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_1.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_1.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_1.imageset/loading_1.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_1.imageset/loading_1.png deleted file mode 100644 index 3d19f87a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_1.imageset/loading_1.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_10.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_10.imageset/Contents.json deleted file mode 100644 index 5ebd5de6..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_10.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_10.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_10.imageset/loading_10.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_10.imageset/loading_10.png deleted file mode 100644 index 1b1bc7b8..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_10.imageset/loading_10.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_11.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_11.imageset/Contents.json deleted file mode 100644 index 782066a6..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_11.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_11.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_11.imageset/loading_11.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_11.imageset/loading_11.png deleted file mode 100644 index cdb6a924..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_11.imageset/loading_11.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_12.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_12.imageset/Contents.json deleted file mode 100644 index f77cf6ac..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_12.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_12.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_12.imageset/loading_12.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_12.imageset/loading_12.png deleted file mode 100644 index e58783de..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_12.imageset/loading_12.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_13.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_13.imageset/Contents.json deleted file mode 100644 index fae716b3..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_13.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_13.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_13.imageset/loading_13.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_13.imageset/loading_13.png deleted file mode 100644 index 105287e4..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_13.imageset/loading_13.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_14.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_14.imageset/Contents.json deleted file mode 100644 index a76376f2..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_14.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_14.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_14.imageset/loading_14.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_14.imageset/loading_14.png deleted file mode 100644 index 57a1e2d2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_14.imageset/loading_14.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_2.imageset/Contents.json deleted file mode 100644 index 89e4b465..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_2.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_2.imageset/loading_2.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_2.imageset/loading_2.png deleted file mode 100644 index f0fe7ba4..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_2.imageset/loading_2.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_3.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_3.imageset/Contents.json deleted file mode 100644 index 0bac1b2a..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_3.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_3.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_3.imageset/loading_3.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_3.imageset/loading_3.png deleted file mode 100644 index ae7c959c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_3.imageset/loading_3.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_4.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_4.imageset/Contents.json deleted file mode 100644 index 610a55be..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_4.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_4.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_4.imageset/loading_4.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_4.imageset/loading_4.png deleted file mode 100644 index 1c38ea6f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_4.imageset/loading_4.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_5.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_5.imageset/Contents.json deleted file mode 100644 index e3b83f97..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_5.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_5.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_5.imageset/loading_5.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_5.imageset/loading_5.png deleted file mode 100644 index 0e992b82..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_5.imageset/loading_5.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_6.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_6.imageset/Contents.json deleted file mode 100644 index b8822ada..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_6.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_6.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_6.imageset/loading_6.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_6.imageset/loading_6.png deleted file mode 100644 index 9b00c27a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_6.imageset/loading_6.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_7.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_7.imageset/Contents.json deleted file mode 100644 index 27fed476..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_7.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_7.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_7.imageset/loading_7.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_7.imageset/loading_7.png deleted file mode 100644 index 7d1bedfa..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_7.imageset/loading_7.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_8.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_8.imageset/Contents.json deleted file mode 100644 index 047692a6..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_8.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_8.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_8.imageset/loading_8.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_8.imageset/loading_8.png deleted file mode 100644 index 1d160f66..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_8.imageset/loading_8.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_9.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_9.imageset/Contents.json deleted file mode 100644 index 3f3ab4bb..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_9.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "loading_9.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_9.imageset/loading_9.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_9.imageset/loading_9.png deleted file mode 100644 index 9a2e8e1f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/loading_9.imageset/loading_9.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/look_log.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/look_log.imageset/Contents.json deleted file mode 100644 index 4e96c04e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/look_log.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "look_log@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/look_log.imageset/look_log@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/look_log.imageset/look_log@2x.png deleted file mode 100644 index 38708d48..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/look_log.imageset/look_log@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_comment.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_comment.imageset/Contents.json deleted file mode 100644 index bbc644f6..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_comment.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "mlvb_comment@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_comment.imageset/mlvb_comment@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_comment.imageset/mlvb_comment@2x.png deleted file mode 100644 index 0f502dc1..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_comment.imageset/mlvb_comment@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_pk.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_pk.imageset/Contents.json deleted file mode 100644 index 79ba76b8..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_pk.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "mlvb_pk.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_pk.imageset/mlvb_pk.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_pk.imageset/mlvb_pk.png deleted file mode 100644 index a5cea66e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_pk.imageset/mlvb_pk.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_pk_stop_button.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_pk_stop_button.imageset/Contents.json deleted file mode 100644 index 50db2269..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_pk_stop_button.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "mlvb_pk_stop_button.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_pk_stop_button.imageset/mlvb_pk_stop_button.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_pk_stop_button.imageset/mlvb_pk_stop_button.png deleted file mode 100644 index 0e464186..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/mlvb_pk_stop_button.imageset/mlvb_pk_stop_button.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/nick_mask.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/nick_mask.imageset/Contents.json deleted file mode 100644 index fb86d50b..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/nick_mask.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "nick_mask@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/nick_mask.imageset/nick_mask@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/nick_mask.imageset/nick_mask@2x.png deleted file mode 100644 index 8d9391b6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/nick_mask.imageset/nick_mask@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/people.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/people.imageset/Contents.json deleted file mode 100644 index ae8a6437..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/people.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "people@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/people.imageset/people@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/people.imageset/people@2x.png deleted file mode 100644 index 692e0c66..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/people.imageset/people@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/pk_start.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/pk_start.imageset/Contents.json deleted file mode 100644 index 6835ab73..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/pk_start.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "pk_start.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "pk_start@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "pk_start@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/pk_start.imageset/pk_start.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/pk_start.imageset/pk_start.png deleted file mode 100644 index 4bc909fa..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/pk_start.imageset/pk_start.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/pk_start.imageset/pk_start@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/pk_start.imageset/pk_start@2x.png deleted file mode 100644 index cc5ccb2c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/pk_start.imageset/pk_start@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/pk_start.imageset/pk_start@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/pk_start.imageset/pk_start@3x.png deleted file mode 100644 index 7ded264f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/pk_start.imageset/pk_start@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/release-env.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/release-env.imageset/Contents.json deleted file mode 100644 index 67efe225..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/release-env.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "正式环境.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/release-env.imageset/\346\255\243\345\274\217\347\216\257\345\242\203.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/release-env.imageset/\346\255\243\345\274\217\347\216\257\345\242\203.png" deleted file mode 100644 index 23eebf16..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/release-env.imageset/\346\255\243\345\274\217\347\216\257\345\242\203.png" and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/test-env.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/test-env.imageset/Contents.json deleted file mode 100644 index 60d14e52..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/test-env.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "测试环境.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/test-env.imageset/\346\265\213\350\257\225\347\216\257\345\242\203.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/test-env.imageset/\346\265\213\350\257\225\347\216\257\345\242\203.png" deleted file mode 100644 index 91e38977..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/test-env.imageset/\346\265\213\350\257\225\347\216\257\345\242\203.png" and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/tim-test.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/tim-test.imageset/Contents.json deleted file mode 100644 index 8a203486..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/tim-test.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "tim_test.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/tim-test.imageset/tim_test.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/tim-test.imageset/tim_test.png deleted file mode 100644 index 1e4ce3ea..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/tim-test.imageset/tim_test.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/tim-yun.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/tim-yun.imageset/Contents.json deleted file mode 100644 index cd8eaa02..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/tim-yun.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "tim_formal.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/tim-yun.imageset/tim_formal.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/tim-yun.imageset/tim_formal.png deleted file mode 100644 index 29d26a4c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/RTCRoom/tim-yun.imageset/tim_formal.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/VideoClosed.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/VideoClosed.imageset/Contents.json deleted file mode 100644 index a23a0b9e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/VideoClosed.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "VideoClosed@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/VideoClosed.imageset/VideoClosed@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/VideoClosed.imageset/VideoClosed@2x.png deleted file mode 100644 index feb3ac70..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/VideoClosed.imageset/VideoClosed@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/cdnLogo.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/cdnLogo.imageset/Contents.json deleted file mode 100644 index f8e697fa..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/cdnLogo.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "cdnLogo.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/cdnLogo.imageset/cdnLogo.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/cdnLogo.imageset/cdnLogo.png deleted file mode 100644 index a4b1f6c7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/cdnLogo.imageset/cdnLogo.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/handsfree_off.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/handsfree_off.imageset/Contents.json deleted file mode 100644 index 38e2b512..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/handsfree_off.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "handsfree_off@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/handsfree_off.imageset/handsfree_off@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/handsfree_off.imageset/handsfree_off@2x.png deleted file mode 100644 index f4d84c8d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/handsfree_off.imageset/handsfree_off@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/handsfree_on.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/handsfree_on.imageset/Contents.json deleted file mode 100644 index 4fe05327..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/handsfree_on.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "handsfree_on@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/handsfree_on.imageset/handsfree_on@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/handsfree_on.imageset/handsfree_on@2x.png deleted file mode 100644 index 2d25a803..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/handsfree_on.imageset/handsfree_on@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/members.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/members.imageset/Contents.json deleted file mode 100644 index 273dca8a..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/members.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "members.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/members.imageset/members.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/members.imageset/members.png deleted file mode 100644 index 644d87c7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/members.imageset/members.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/more_b.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/more_b.imageset/Contents.json deleted file mode 100644 index 0b64a557..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/more_b.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "more_b@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/more_b.imageset/more_b@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/more_b.imageset/more_b@2x.png deleted file mode 100644 index 820da1a0..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/more_b.imageset/more_b@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/muteAudio.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/muteAudio.imageset/Contents.json deleted file mode 100644 index 1a032957..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/muteAudio.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "muteAudio@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/muteAudio.imageset/muteAudio@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/muteAudio.imageset/muteAudio@2x.png deleted file mode 100644 index a98d1fd7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/muteAudio.imageset/muteAudio@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/muteVideo.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/muteVideo.imageset/Contents.json deleted file mode 100644 index bdcd954b..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/muteVideo.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "closeVideo.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/muteVideo.imageset/closeVideo.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/muteVideo.imageset/closeVideo.png deleted file mode 100644 index 555b2f79..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/muteVideo.imageset/closeVideo.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/navback.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/navback.imageset/Contents.json deleted file mode 100644 index d9707408..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/navback.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "back_full@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/navback.imageset/back_full@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/navback.imageset/back_full@3x.png deleted file mode 100644 index 3473b14f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/navback.imageset/back_full@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/scaleFill.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/scaleFill.imageset/Contents.json deleted file mode 100644 index b53b7ef0..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/scaleFill.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "scaleFill@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/scaleFill.imageset/scaleFill@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/scaleFill.imageset/scaleFill@2x.png deleted file mode 100644 index 340e1336..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/scaleFill.imageset/scaleFill@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/scaleFit.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/scaleFit.imageset/Contents.json deleted file mode 100644 index 3a7cc3f0..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/scaleFit.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "scaleFit@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/scaleFit.imageset/scaleFit@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/scaleFit.imageset/scaleFit@2x.png deleted file mode 100644 index 9d38bf67..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/scaleFit.imageset/scaleFit@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal1.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal1.imageset/Contents.json deleted file mode 100644 index ca64d608..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal1.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "signal1@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal1.imageset/signal1@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal1.imageset/signal1@2x.png deleted file mode 100644 index 7a59030f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal1.imageset/signal1@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal2.imageset/Contents.json deleted file mode 100644 index e58a3cd7..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "signal2@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal2.imageset/signal2@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal2.imageset/signal2@2x.png deleted file mode 100644 index 11abdf55..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal2.imageset/signal2@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal3.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal3.imageset/Contents.json deleted file mode 100644 index e348e0e5..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal3.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "signal3@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal3.imageset/signal3@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal3.imageset/signal3@2x.png deleted file mode 100644 index a76f597e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal3.imageset/signal3@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal4.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal4.imageset/Contents.json deleted file mode 100644 index eda647a7..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal4.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "signal4@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal4.imageset/signal4@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal4.imageset/signal4@2x.png deleted file mode 100644 index 7c666930..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal4.imageset/signal4@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal5.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal5.imageset/Contents.json deleted file mode 100644 index c55732dd..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal5.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "signal5@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal5.imageset/signal5@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal5.imageset/signal5@2x.png deleted file mode 100644 index 32ffe524..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/signal5.imageset/signal5@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/unmuteAudio.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/unmuteAudio.imageset/Contents.json deleted file mode 100644 index d3196672..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/unmuteAudio.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "unmuteAudio@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/unmuteAudio.imageset/unmuteAudio@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/unmuteAudio.imageset/unmuteAudio@2x.png deleted file mode 100644 index 8653b7cc..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/unmuteAudio.imageset/unmuteAudio@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/unmuteVideo.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/unmuteVideo.imageset/Contents.json deleted file mode 100644 index 824678b5..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/unmuteVideo.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "unCloseVideo.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/unmuteVideo.imageset/unCloseVideo.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/unmuteVideo.imageset/unCloseVideo.png deleted file mode 100644 index a4a63d43..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/unmuteVideo.imageset/unCloseVideo.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/view_close.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/view_close.imageset/Contents.json deleted file mode 100644 index e38fe0e9..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/view_close.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "close@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/view_close.imageset/close@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/view_close.imageset/close@3x.png deleted file mode 100644 index 297bc638..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTC/view_close.imageset/close@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_disable.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_disable.imageset/Contents.json deleted file mode 100644 index b8151f1e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_disable.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "voice_changer_disable.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "voice_changer_disable@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "voice_changer_disable@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_disable.imageset/voice_changer_disable.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_disable.imageset/voice_changer_disable.png deleted file mode 100644 index 2afe1f32..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_disable.imageset/voice_changer_disable.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_disable.imageset/voice_changer_disable@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_disable.imageset/voice_changer_disable@2x.png deleted file mode 100644 index d9876972..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_disable.imageset/voice_changer_disable@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_disable.imageset/voice_changer_disable@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_disable.imageset/voice_changer_disable@3x.png deleted file mode 100644 index 604da25c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_disable.imageset/voice_changer_disable@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_off.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_off.imageset/Contents.json deleted file mode 100644 index a33a5b8e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_off.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "voice_changer_off.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "voice_changer_off@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "voice_changer_off@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_off.imageset/voice_changer_off.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_off.imageset/voice_changer_off.png deleted file mode 100644 index 6ce7a53c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_off.imageset/voice_changer_off.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_off.imageset/voice_changer_off@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_off.imageset/voice_changer_off@2x.png deleted file mode 100644 index 65b3d2d3..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_off.imageset/voice_changer_off@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_off.imageset/voice_changer_off@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_off.imageset/voice_changer_off@3x.png deleted file mode 100644 index 78c6706f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_off.imageset/voice_changer_off@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_on.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_on.imageset/Contents.json deleted file mode 100644 index 6a68ec8e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_on.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "voice_changer_on.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "voice_changer_on@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "voice_changer_on@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_on.imageset/voice_changer_on.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_on.imageset/voice_changer_on.png deleted file mode 100644 index 88df230a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_on.imageset/voice_changer_on.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_on.imageset/voice_changer_on@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_on.imageset/voice_changer_on@2x.png deleted file mode 100644 index a9aaa1dc..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_on.imageset/voice_changer_on@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_on.imageset/voice_changer_on@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_on.imageset/voice_changer_on@3x.png deleted file mode 100644 index 3831d0c7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/audioRoute_on.imageset/voice_changer_on@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar0_100.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar0_100.imageset/Contents.json deleted file mode 100644 index 6363bc28..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar0_100.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "avatar0_100.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar0_100.imageset/avatar0_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar0_100.imageset/avatar0_100.png deleted file mode 100644 index 4ab41bae..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar0_100.imageset/avatar0_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar0_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar0_100.png deleted file mode 100644 index 4ab41bae..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar0_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar1_100.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar1_100.imageset/Contents.json deleted file mode 100644 index 1c45910a..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar1_100.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "avatar1_100.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar1_100.imageset/avatar1_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar1_100.imageset/avatar1_100.png deleted file mode 100644 index 2af4fb99..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar1_100.imageset/avatar1_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar1_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar1_100.png deleted file mode 100644 index 2af4fb99..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar1_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar2_100.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar2_100.imageset/Contents.json deleted file mode 100644 index 5da48b0a..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar2_100.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "avatar2_100.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar2_100.imageset/avatar2_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar2_100.imageset/avatar2_100.png deleted file mode 100644 index d446561c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar2_100.imageset/avatar2_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar2_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar2_100.png deleted file mode 100644 index d446561c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar2_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar3_100.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar3_100.imageset/Contents.json deleted file mode 100644 index 50d96034..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar3_100.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "avatar3_100.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar3_100.imageset/avatar3_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar3_100.imageset/avatar3_100.png deleted file mode 100644 index ae15b332..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar3_100.imageset/avatar3_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar3_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar3_100.png deleted file mode 100644 index ae15b332..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar3_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar4_100.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar4_100.imageset/Contents.json deleted file mode 100644 index b554b2a5..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar4_100.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "avatar4_100.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar4_100.imageset/avatar4_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar4_100.imageset/avatar4_100.png deleted file mode 100644 index 5109088f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar4_100.imageset/avatar4_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar4_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar4_100.png deleted file mode 100644 index 5109088f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar4_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar5_100.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar5_100.imageset/Contents.json deleted file mode 100644 index 826e2b28..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar5_100.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "avatar5_100.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar5_100.imageset/avatar5_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar5_100.imageset/avatar5_100.png deleted file mode 100644 index 8c5af1b8..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar5_100.imageset/avatar5_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar5_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar5_100.png deleted file mode 100644 index 8c5af1b8..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar5_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar6_100.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar6_100.imageset/Contents.json deleted file mode 100644 index 879e7563..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar6_100.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "avatar6_100.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar6_100.imageset/avatar6_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar6_100.imageset/avatar6_100.png deleted file mode 100644 index c90ec2af..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar6_100.imageset/avatar6_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar6_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar6_100.png deleted file mode 100644 index c90ec2af..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar6_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar7_100.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar7_100.imageset/Contents.json deleted file mode 100644 index 8f1a6228..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar7_100.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "avatar7_100.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar7_100.imageset/avatar7_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar7_100.imageset/avatar7_100.png deleted file mode 100644 index 74a75148..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar7_100.imageset/avatar7_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar7_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar7_100.png deleted file mode 100644 index 74a75148..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar7_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar8_100.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar8_100.imageset/Contents.json deleted file mode 100644 index f6820406..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar8_100.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "avatar8_100.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar8_100.imageset/avatar8_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar8_100.imageset/avatar8_100.png deleted file mode 100644 index a6d49fca..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar8_100.imageset/avatar8_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar8_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar8_100.png deleted file mode 100644 index a6d49fca..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar8_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar9_100.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar9_100.imageset/Contents.json deleted file mode 100644 index 393a3a93..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar9_100.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "avatar9_100.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar9_100.imageset/avatar9_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar9_100.imageset/avatar9_100.png deleted file mode 100644 index 34278668..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar9_100.imageset/avatar9_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar9_100.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar9_100.png deleted file mode 100644 index 34278668..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/avatar9_100.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_pause.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_pause.imageset/Contents.json deleted file mode 100644 index 25c1a9b4..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_pause.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "bgm_pause.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "bgm_pause@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "bgm_pause@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_pause.imageset/bgm_pause.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_pause.imageset/bgm_pause.png deleted file mode 100644 index d27c2bd0..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_pause.imageset/bgm_pause.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_pause.imageset/bgm_pause@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_pause.imageset/bgm_pause@2x.png deleted file mode 100644 index bb6c2335..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_pause.imageset/bgm_pause@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_pause.imageset/bgm_pause@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_pause.imageset/bgm_pause@3x.png deleted file mode 100644 index 8d01dedc..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_pause.imageset/bgm_pause@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_play.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_play.imageset/Contents.json deleted file mode 100644 index a6d62fdc..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_play.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "bgm_play.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "bgm_play@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "bgm_play@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_play.imageset/bgm_play.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_play.imageset/bgm_play.png deleted file mode 100644 index 5985bd44..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_play.imageset/bgm_play.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_play.imageset/bgm_play@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_play.imageset/bgm_play@2x.png deleted file mode 100644 index 8656d67b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_play.imageset/bgm_play@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_play.imageset/bgm_play@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_play.imageset/bgm_play@3x.png deleted file mode 100644 index 1b644326..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/bgm_play.imageset/bgm_play@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_dissable.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_dissable.imageset/Contents.json deleted file mode 100644 index ddd19cdb..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_dissable.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "mic_dissable.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "mic_dissable@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "mic_dissable@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_dissable.imageset/mic_dissable.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_dissable.imageset/mic_dissable.png deleted file mode 100644 index c8eb31ff..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_dissable.imageset/mic_dissable.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_dissable.imageset/mic_dissable@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_dissable.imageset/mic_dissable@2x.png deleted file mode 100644 index c0aa3ae2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_dissable.imageset/mic_dissable@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_dissable.imageset/mic_dissable@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_dissable.imageset/mic_dissable@3x.png deleted file mode 100644 index 4cb42687..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_dissable.imageset/mic_dissable@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_off.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_off.imageset/Contents.json deleted file mode 100644 index 62bf64ea..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_off.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "mic_off.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "mic_off@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "mic_off@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_off.imageset/mic_off.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_off.imageset/mic_off.png deleted file mode 100644 index e5e019c4..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_off.imageset/mic_off.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_off.imageset/mic_off@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_off.imageset/mic_off@2x.png deleted file mode 100644 index 507d26df..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_off.imageset/mic_off@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_off.imageset/mic_off@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_off.imageset/mic_off@3x.png deleted file mode 100644 index 773da38a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_off.imageset/mic_off@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_on.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_on.imageset/Contents.json deleted file mode 100644 index d5820514..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_on.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "mic_on.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "mic_on@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "mic_on@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_on.imageset/mic_on.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_on.imageset/mic_on.png deleted file mode 100644 index bf52869c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_on.imageset/mic_on.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_on.imageset/mic_on@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_on.imageset/mic_on@2x.png deleted file mode 100644 index 572a3f39..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_on.imageset/mic_on@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_on.imageset/mic_on@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_on.imageset/mic_on@3x.png deleted file mode 100644 index b9ff0cb0..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/mic_on.imageset/mic_on@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_disable.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_disable.imageset/Contents.json deleted file mode 100644 index ab32c1f6..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_disable.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "more_disable.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "more_disable@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "more_disable@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_disable.imageset/more_disable.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_disable.imageset/more_disable.png deleted file mode 100644 index a8a7fb3c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_disable.imageset/more_disable.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_disable.imageset/more_disable@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_disable.imageset/more_disable@2x.png deleted file mode 100644 index 925a63ba..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_disable.imageset/more_disable@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_disable.imageset/more_disable@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_disable.imageset/more_disable@3x.png deleted file mode 100644 index efffc0b3..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_disable.imageset/more_disable@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_off.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_off.imageset/Contents.json deleted file mode 100644 index 7d9c46bd..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_off.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "more.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "more@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "more_off@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_off.imageset/more.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_off.imageset/more.png deleted file mode 100644 index d0520cfe..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_off.imageset/more.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_off.imageset/more@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_off.imageset/more@2x.png deleted file mode 100644 index c07b8759..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_off.imageset/more@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_off.imageset/more_off@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_off.imageset/more_off@3x.png deleted file mode 100644 index 62644088..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_off.imageset/more_off@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_on.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_on.imageset/Contents.json deleted file mode 100644 index bdc526c4..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_on.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "more_on.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "more_on@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "more_on@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_on.imageset/more_on.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_on.imageset/more_on.png deleted file mode 100644 index 6cbc4c29..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_on.imageset/more_on.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_on.imageset/more_on@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_on.imageset/more_on@2x.png deleted file mode 100644 index d9383baf..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_on.imageset/more_on@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_on.imageset/more_on@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_on.imageset/more_on@3x.png deleted file mode 100644 index 98234fbe..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/more_on.imageset/more_on@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_dissable.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_dissable.imageset/Contents.json deleted file mode 100644 index e847021b..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_dissable.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "music_dissable.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "music_dissable@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "music_dissable@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_dissable.imageset/music_dissable.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_dissable.imageset/music_dissable.png deleted file mode 100644 index 87cb9926..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_dissable.imageset/music_dissable.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_dissable.imageset/music_dissable@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_dissable.imageset/music_dissable@2x.png deleted file mode 100644 index 77db6f51..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_dissable.imageset/music_dissable@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_dissable.imageset/music_dissable@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_dissable.imageset/music_dissable@3x.png deleted file mode 100644 index 51edad06..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_dissable.imageset/music_dissable@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_off.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_off.imageset/Contents.json deleted file mode 100644 index 6f305548..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_off.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "music_off.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "music_off@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "music_off@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_off.imageset/music_off.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_off.imageset/music_off.png deleted file mode 100644 index 1e12173d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_off.imageset/music_off.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_off.imageset/music_off@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_off.imageset/music_off@2x.png deleted file mode 100644 index ae2503b5..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_off.imageset/music_off@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_off.imageset/music_off@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_off.imageset/music_off@3x.png deleted file mode 100644 index 51c30593..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_off.imageset/music_off@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_on.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_on.imageset/Contents.json deleted file mode 100644 index 80cdf7f9..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_on.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "music_on.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "music_on@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "music_on@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_on.imageset/music_on.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_on.imageset/music_on.png deleted file mode 100644 index be8fab17..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_on.imageset/music_on.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_on.imageset/music_on@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_on.imageset/music_on@2x.png deleted file mode 100644 index e7699334..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_on.imageset/music_on@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_on.imageset/music_on@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_on.imageset/music_on@3x.png deleted file mode 100644 index a1c592bf..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/music_on.imageset/music_on@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/plus.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/plus.imageset/Contents.json deleted file mode 100644 index d984b4ae..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/plus.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "plus.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "plus@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "plus@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/plus.imageset/plus.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/plus.imageset/plus.png deleted file mode 100644 index b6d37bfd..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/plus.imageset/plus.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/plus.imageset/plus@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/plus.imageset/plus@2x.png deleted file mode 100644 index 07b903cb..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/plus.imageset/plus@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/plus.imageset/plus@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/plus.imageset/plus@3x.png deleted file mode 100644 index d6fb7c59..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/plus.imageset/plus@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_off.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_off.imageset/Contents.json deleted file mode 100644 index 9e20fcb9..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_off.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "select_off.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "select_off@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "select_off@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_off.imageset/select_off.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_off.imageset/select_off.png deleted file mode 100644 index 049f39c2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_off.imageset/select_off.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_off.imageset/select_off@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_off.imageset/select_off@2x.png deleted file mode 100644 index 10e4fa2e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_off.imageset/select_off@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_off.imageset/select_off@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_off.imageset/select_off@3x.png deleted file mode 100644 index 3f1e0a2c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_off.imageset/select_off@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_on.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_on.imageset/Contents.json deleted file mode 100644 index 13ffd72c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_on.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "select_on.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "select_on@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "select_on@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_on.imageset/select_on.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_on.imageset/select_on.png deleted file mode 100644 index 2196eb87..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_on.imageset/select_on.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_on.imageset/select_on@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_on.imageset/select_on@2x.png deleted file mode 100644 index da070334..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_on.imageset/select_on@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_on.imageset/select_on@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_on.imageset/select_on@3x.png deleted file mode 100644 index a6a11d59..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/select_on.imageset/select_on@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_disable.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_disable.imageset/Contents.json deleted file mode 100644 index 52c7bc73..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_disable.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "voice_changer_dissable.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "voice_changer_dissable@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "voice_changer_dissable@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_disable.imageset/voice_changer_dissable.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_disable.imageset/voice_changer_dissable.png deleted file mode 100644 index c1b1083c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_disable.imageset/voice_changer_dissable.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_disable.imageset/voice_changer_dissable@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_disable.imageset/voice_changer_dissable@2x.png deleted file mode 100644 index c4710beb..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_disable.imageset/voice_changer_dissable@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_disable.imageset/voice_changer_dissable@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_disable.imageset/voice_changer_dissable@3x.png deleted file mode 100644 index 13b3354e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_disable.imageset/voice_changer_dissable@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_off.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_off.imageset/Contents.json deleted file mode 100644 index a33a5b8e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_off.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "voice_changer_off.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "voice_changer_off@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "voice_changer_off@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_off.imageset/voice_changer_off.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_off.imageset/voice_changer_off.png deleted file mode 100644 index cacbf6f1..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_off.imageset/voice_changer_off.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_off.imageset/voice_changer_off@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_off.imageset/voice_changer_off@2x.png deleted file mode 100644 index b87c543e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_off.imageset/voice_changer_off@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_off.imageset/voice_changer_off@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_off.imageset/voice_changer_off@3x.png deleted file mode 100644 index 92713050..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_off.imageset/voice_changer_off@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_on.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_on.imageset/Contents.json deleted file mode 100644 index 6a68ec8e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_on.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "voice_changer_on.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "voice_changer_on@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "voice_changer_on@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_on.imageset/voice_changer_on.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_on.imageset/voice_changer_on.png deleted file mode 100644 index 0ade21db..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_on.imageset/voice_changer_on.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_on.imageset/voice_changer_on@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_on.imageset/voice_changer_on@2x.png deleted file mode 100644 index ae7b7004..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_on.imageset/voice_changer_on@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_on.imageset/voice_changer_on@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_on.imageset/voice_changer_on@3x.png deleted file mode 100644 index f56c885d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_changer_on.imageset/voice_changer_on@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_chatroom_1.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_chatroom_1.imageset/Contents.json deleted file mode 100644 index 01cf40ba..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_chatroom_1.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "voice_chatroom_1.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "voice_chatroom_1@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "voice_chatroom_1@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_chatroom_1.imageset/voice_chatroom_1.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_chatroom_1.imageset/voice_chatroom_1.png deleted file mode 100644 index 8572edfd..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_chatroom_1.imageset/voice_chatroom_1.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_chatroom_1.imageset/voice_chatroom_1@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_chatroom_1.imageset/voice_chatroom_1@2x.png deleted file mode 100644 index 0fee189f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_chatroom_1.imageset/voice_chatroom_1@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_chatroom_1.imageset/voice_chatroom_1@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_chatroom_1.imageset/voice_chatroom_1@3x.png deleted file mode 100644 index 5175eb33..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_chatroom_1.imageset/voice_chatroom_1@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_dissable.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_dissable.imageset/Contents.json deleted file mode 100644 index 8c51dc31..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_dissable.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "voice_effector_dissable.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "voice_effector_dissable@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "voice_effector_dissable@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_dissable.imageset/voice_effector_dissable.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_dissable.imageset/voice_effector_dissable.png deleted file mode 100644 index a8451218..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_dissable.imageset/voice_effector_dissable.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_dissable.imageset/voice_effector_dissable@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_dissable.imageset/voice_effector_dissable@2x.png deleted file mode 100644 index 7bc79870..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_dissable.imageset/voice_effector_dissable@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_dissable.imageset/voice_effector_dissable@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_dissable.imageset/voice_effector_dissable@3x.png deleted file mode 100644 index 2f6e38e5..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_dissable.imageset/voice_effector_dissable@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_off.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_off.imageset/Contents.json deleted file mode 100644 index fb9e2cc1..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_off.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "voice_effector_off.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "voice_effector_off@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "voice_effector_off@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_off.imageset/voice_effector_off.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_off.imageset/voice_effector_off.png deleted file mode 100644 index 91266c48..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_off.imageset/voice_effector_off.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_off.imageset/voice_effector_off@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_off.imageset/voice_effector_off@2x.png deleted file mode 100644 index b735ce03..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_off.imageset/voice_effector_off@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_off.imageset/voice_effector_off@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_off.imageset/voice_effector_off@3x.png deleted file mode 100644 index b9ade5e2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_off.imageset/voice_effector_off@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_on.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_on.imageset/Contents.json deleted file mode 100644 index fbc7e266..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_on.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "voice_effector_on.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "voice_effector_on@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "voice_effector_on@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_on.imageset/voice_effector_on.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_on.imageset/voice_effector_on.png deleted file mode 100644 index 5f6449ef..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_on.imageset/voice_effector_on.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_on.imageset/voice_effector_on@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_on.imageset/voice_effector_on@2x.png deleted file mode 100644 index 0d66f90d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_on.imageset/voice_effector_on@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_on.imageset/voice_effector_on@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_on.imageset/voice_effector_on@3x.png deleted file mode 100644 index 1b0baaf4..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_effector_on.imageset/voice_effector_on@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_off.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_off.imageset/Contents.json deleted file mode 100644 index ceeeb2b7..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_off.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "voice_off.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "voice_off@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "voice_off@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_off.imageset/voice_off.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_off.imageset/voice_off.png deleted file mode 100644 index d819e269..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_off.imageset/voice_off.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_off.imageset/voice_off@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_off.imageset/voice_off@2x.png deleted file mode 100644 index 1522839c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_off.imageset/voice_off@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_off.imageset/voice_off@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_off.imageset/voice_off@3x.png deleted file mode 100644 index 5ca7121b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_off.imageset/voice_off@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_on.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_on.imageset/Contents.json deleted file mode 100644 index e2eb3f70..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_on.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "voice_on.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "voice_on@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "voice_on@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_on.imageset/voice_on.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_on.imageset/voice_on.png deleted file mode 100644 index 806d31a2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_on.imageset/voice_on.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_on.imageset/voice_on@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_on.imageset/voice_on@2x.png deleted file mode 100644 index 0714479c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_on.imageset/voice_on@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_on.imageset/voice_on@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_on.imageset/voice_on@3x.png deleted file mode 100644 index 7ca83163..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/voice_on.imageset/voice_on@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/volume.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/volume.imageset/Contents.json deleted file mode 100644 index 0f7c8bd4..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/volume.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "volume.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "volume@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "volume@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/volume.imageset/volume.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/volume.imageset/volume.png deleted file mode 100644 index 1c276c42..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/volume.imageset/volume.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/volume.imageset/volume@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/volume.imageset/volume@2x.png deleted file mode 100644 index e5235bd1..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/volume.imageset/volume@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/volume.imageset/volume@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/volume.imageset/volume@3x.png deleted file mode 100644 index 23277f6c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/TRTCVoiceRoom/volume.imageset/volume@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_pause.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_pause.imageset/Contents.json deleted file mode 100644 index 5798458a..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_pause.imageset/Contents.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "audio_pause.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "audio_pause@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "audio_pause@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - }, - "properties" : { - "template-rendering-intent" : "template" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_pause.imageset/audio_pause.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_pause.imageset/audio_pause.png deleted file mode 100644 index 4a33fe9b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_pause.imageset/audio_pause.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_pause.imageset/audio_pause@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_pause.imageset/audio_pause@2x.png deleted file mode 100644 index bb707eab..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_pause.imageset/audio_pause@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_pause.imageset/audio_pause@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_pause.imageset/audio_pause@3x.png deleted file mode 100644 index bfd01502..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_pause.imageset/audio_pause@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_play.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_play.imageset/Contents.json deleted file mode 100644 index 9544e010..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_play.imageset/Contents.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "audio_play.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "audio_play@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "audio_play@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - }, - "properties" : { - "template-rendering-intent" : "template" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_play.imageset/audio_play.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_play.imageset/audio_play.png deleted file mode 100644 index 29b5fb5b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_play.imageset/audio_play.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_play.imageset/audio_play@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_play.imageset/audio_play@2x.png deleted file mode 100644 index 425d62f3..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_play.imageset/audio_play@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_play.imageset/audio_play@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_play.imageset/audio_play@3x.png deleted file mode 100644 index 01e53d1d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_play.imageset/audio_play@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_stop.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_stop.imageset/Contents.json deleted file mode 100644 index 3aaf97cf..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_stop.imageset/Contents.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "audio_stop.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "audio_stop@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "audio_stop@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - }, - "properties" : { - "template-rendering-intent" : "template" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_stop.imageset/audio_stop.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_stop.imageset/audio_stop.png deleted file mode 100644 index 75a09bb8..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_stop.imageset/audio_stop.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_stop.imageset/audio_stop@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_stop.imageset/audio_stop@2x.png deleted file mode 100644 index 9d6b65da..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_stop.imageset/audio_stop@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_stop.imageset/audio_stop@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_stop.imageset/audio_stop@3x.png deleted file mode 100644 index 75f47c1b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/audio_stop.imageset/audio_stop@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/back.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/back.imageset/Contents.json deleted file mode 100644 index 694bc882..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/back.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "bgm_back.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "bgm_back@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "bgm_back@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/back.imageset/bgm_back.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/back.imageset/bgm_back.png deleted file mode 100644 index 4d4b18a9..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/back.imageset/bgm_back.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/back.imageset/bgm_back@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/back.imageset/bgm_back@2x.png deleted file mode 100644 index b4613b53..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/back.imageset/bgm_back@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/back.imageset/bgm_back@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/back.imageset/bgm_back@3x.png deleted file mode 100644 index 9b854fe5..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/back.imageset/bgm_back@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/background.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/background.imageset/Contents.json deleted file mode 100644 index e97bcdb6..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/background.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "background.jpg", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/background.imageset/background.jpg b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/background.imageset/background.jpg deleted file mode 100644 index 676b7a3c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/background.imageset/background.jpg and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/Contents.json deleted file mode 100644 index 0ee2d4ab..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelMenuSelectionBackgroundImage@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/beautyPanelMenuSelectionBackgroundImage@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/beautyPanelMenuSelectionBackgroundImage@2x.png deleted file mode 100644 index 46ed0c0f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/beautyPanelMenuSelectionBackgroundImage@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_nor.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_nor.imageset/Contents.json deleted file mode 100644 index 411c85d6..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_nor.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "checkbox_nor.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "checkbox_nor@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "checkbox_nor@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_nor.imageset/checkbox_nor.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_nor.imageset/checkbox_nor.png deleted file mode 100644 index 1ce76947..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_nor.imageset/checkbox_nor.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_nor.imageset/checkbox_nor@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_nor.imageset/checkbox_nor@2x.png deleted file mode 100644 index d72f1939..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_nor.imageset/checkbox_nor@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_nor.imageset/checkbox_nor@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_nor.imageset/checkbox_nor@3x.png deleted file mode 100644 index 53941936..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_nor.imageset/checkbox_nor@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_sel.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_sel.imageset/Contents.json deleted file mode 100644 index 6e6f73a5..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_sel.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "checkbox_sel.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "checkbox_sel@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "checkbox_sel@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_sel.imageset/checkbox_sel.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_sel.imageset/checkbox_sel.png deleted file mode 100644 index 3fa79af2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_sel.imageset/checkbox_sel.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_sel.imageset/checkbox_sel@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_sel.imageset/checkbox_sel@2x.png deleted file mode 100644 index 099c72b4..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_sel.imageset/checkbox_sel@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_sel.imageset/checkbox_sel@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_sel.imageset/checkbox_sel@3x.png deleted file mode 100644 index 129c8043..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/checkbox_sel.imageset/checkbox_sel@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/exit.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/exit.imageset/Contents.json deleted file mode 100644 index 2a47bea1..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/exit.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "exitRoom.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "exitRoom@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "exitRoom@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/exit.imageset/exitRoom.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/exit.imageset/exitRoom.png deleted file mode 100644 index 09a9d510..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/exit.imageset/exitRoom.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/exit.imageset/exitRoom@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/exit.imageset/exitRoom@2x.png deleted file mode 100644 index b68e5266..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/exit.imageset/exitRoom@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/exit.imageset/exitRoom@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/exit.imageset/exitRoom@3x.png deleted file mode 100644 index ea03892a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/exit.imageset/exitRoom@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/ic_logout.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/ic_logout.imageset/Contents.json deleted file mode 100644 index 8add77d8..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/ic_logout.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "ic_logout.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "ic_logout@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "ic_logout@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/ic_logout.imageset/ic_logout.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/ic_logout.imageset/ic_logout.png deleted file mode 100644 index 7efbff89..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/ic_logout.imageset/ic_logout.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/ic_logout.imageset/ic_logout@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/ic_logout.imageset/ic_logout@2x.png deleted file mode 100644 index 12d7c675..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/ic_logout.imageset/ic_logout@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/ic_logout.imageset/ic_logout@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/ic_logout.imageset/ic_logout@3x.png deleted file mode 100644 index f3afc4c2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/ic_logout.imageset/ic_logout@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/launchimage.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/launchimage.imageset/Contents.json deleted file mode 100644 index 0f8630c2..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/launchimage.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "launchimage@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "launchimage@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/livepusher_ic_qcode.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/livepusher_ic_qcode.imageset/Contents.json deleted file mode 100644 index c695e4e3..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/livepusher_ic_qcode.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "livepusher_ic_qcode.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/livepusher_ic_qcode.imageset/livepusher_ic_qcode.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/livepusher_ic_qcode.imageset/livepusher_ic_qcode.png deleted file mode 100644 index b99b8171..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/livepusher_ic_qcode.imageset/livepusher_ic_qcode.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about.imageset/Contents.json deleted file mode 100644 index 64ba1a17..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "about.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "about@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "about@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about.imageset/about.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about.imageset/about.png deleted file mode 100644 index 670eb270..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about.imageset/about.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about.imageset/about@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about.imageset/about@2x.png deleted file mode 100644 index 568ab30d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about.imageset/about@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about.imageset/about@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about.imageset/about@3x.png deleted file mode 100644 index bc6063a2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about.imageset/about@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about_back.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about_back.imageset/Contents.json deleted file mode 100644 index e275b755..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about_back.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "black_back.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "black_back@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "black_back@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about_back.imageset/black_back.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about_back.imageset/black_back.png deleted file mode 100644 index c1b18270..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about_back.imageset/black_back.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about_back.imageset/black_back@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about_back.imageset/black_back@2x.png deleted file mode 100644 index e0d845d1..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about_back.imageset/black_back@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about_back.imageset/black_back@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about_back.imageset/black_back@3x.png deleted file mode 100644 index ed992662..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_about_back.imageset/black_back@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_detail.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_detail.imageset/Contents.json deleted file mode 100644 index ec731a93..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_detail.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "detail.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "detail@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "detail@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_detail.imageset/detail.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_detail.imageset/detail.png deleted file mode 100644 index a0c90c23..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_detail.imageset/detail.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_detail.imageset/detail@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_detail.imageset/detail@2x.png deleted file mode 100644 index b36478ec..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_detail.imageset/detail@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_detail.imageset/detail@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_detail.imageset/detail@3x.png deleted file mode 100644 index a6b56da7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_detail.imageset/detail@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_disclaimer.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_disclaimer.imageset/Contents.json deleted file mode 100644 index 0c4e90ea..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_disclaimer.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "Disclaimers.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Disclaimers@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "Disclaimers@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_disclaimer.imageset/Disclaimers.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_disclaimer.imageset/Disclaimers.png deleted file mode 100644 index 5409d7ff..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_disclaimer.imageset/Disclaimers.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_disclaimer.imageset/Disclaimers@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_disclaimer.imageset/Disclaimers@2x.png deleted file mode 100644 index 10589577..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_disclaimer.imageset/Disclaimers@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_disclaimer.imageset/Disclaimers@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_disclaimer.imageset/Disclaimers@3x.png deleted file mode 100644 index eb8ee9aa..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_disclaimer.imageset/Disclaimers@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_edit.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_edit.imageset/Contents.json deleted file mode 100644 index 3719cf60..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_edit.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "edit.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "edit@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "edit@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_edit.imageset/edit.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_edit.imageset/edit.png deleted file mode 100644 index 4a42d37a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_edit.imageset/edit.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_edit.imageset/edit@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_edit.imageset/edit@2x.png deleted file mode 100644 index 2ffa392a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_edit.imageset/edit@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_edit.imageset/edit@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_edit.imageset/edit@3x.png deleted file mode 100644 index e2df4a85..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_edit.imageset/edit@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_privacy.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_privacy.imageset/Contents.json deleted file mode 100644 index 1a15665e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_privacy.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "privaty.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "privaty@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "privaty@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_privacy.imageset/privaty.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_privacy.imageset/privaty.png deleted file mode 100644 index d5aa2c62..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_privacy.imageset/privaty.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_privacy.imageset/privaty@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_privacy.imageset/privaty@2x.png deleted file mode 100644 index b57fdc69..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_privacy.imageset/privaty@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_privacy.imageset/privaty@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_privacy.imageset/privaty@3x.png deleted file mode 100644 index 2938604f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/main_mine_privacy.imageset/privaty@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/members.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/members.imageset/Contents.json deleted file mode 100644 index 82599163..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/members.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "members@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/members.imageset/members@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/members.imageset/members@2x.png deleted file mode 100644 index f23ddd2e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/members.imageset/members@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/resign.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/resign.imageset/Contents.json deleted file mode 100644 index 198454d4..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/resign.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "resign.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/resign.imageset/resign.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/resign.imageset/resign.png deleted file mode 100644 index dcbda04f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/resign.imageset/resign.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/userAgreement.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/userAgreement.imageset/Contents.json deleted file mode 100644 index 9e615c64..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/userAgreement.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "userAgreement.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "userAgreement@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "userAgreement@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/userAgreement.imageset/userAgreement.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/userAgreement.imageset/userAgreement.png deleted file mode 100644 index 6aabdf4f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/userAgreement.imageset/userAgreement.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/userAgreement.imageset/userAgreement@2x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/userAgreement.imageset/userAgreement@2x.png deleted file mode 100644 index 0e494e25..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/userAgreement.imageset/userAgreement@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/userAgreement.imageset/userAgreement@3x.png b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/userAgreement.imageset/userAgreement@3x.png deleted file mode 100644 index bf8228b3..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/userAgreement.imageset/userAgreement@3x.png and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\270\213\344\270\200\344\270\252.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\270\213\344\270\200\344\270\252.imageset/Contents.json" deleted file mode 100644 index 33d3b49f..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\270\213\344\270\200\344\270\252.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "下一个@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\270\213\344\270\200\344\270\252.imageset/\344\270\213\344\270\200\344\270\252@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\270\213\344\270\200\344\270\252.imageset/\344\270\213\344\270\200\344\270\252@3x.png" deleted file mode 100644 index f30b57af..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\270\213\344\270\200\344\270\252.imageset/\344\270\213\344\270\200\344\270\252@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\270\213\344\270\200\344\270\252_pressed.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\270\213\344\270\200\344\270\252_pressed.imageset/Contents.json" deleted file mode 100644 index ca0c30fa..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\270\213\344\270\200\344\270\252_pressed.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "下一个_pressed@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\270\213\344\270\200\344\270\252_pressed.imageset/\344\270\213\344\270\200\344\270\252_pressed@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\270\213\344\270\200\344\270\252_pressed.imageset/\344\270\213\344\270\200\344\270\252_pressed@3x.png" deleted file mode 100644 index aa88aa8b..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\270\213\344\270\200\344\270\252_pressed.imageset/\344\270\213\344\270\200\344\270\252_pressed@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\272\256\345\272\246\345\244\247.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\272\256\345\272\246\345\244\247.imageset/Contents.json" deleted file mode 100644 index d179e5ab..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\272\256\345\272\246\345\244\247.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "亮度大@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\272\256\345\272\246\345\244\247.imageset/\344\272\256\345\272\246\345\244\247@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\272\256\345\272\246\345\244\247.imageset/\344\272\256\345\272\246\345\244\247@3x.png" deleted file mode 100644 index d9c8e085..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\272\256\345\272\246\345\244\247.imageset/\344\272\256\345\272\246\345\244\247@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\272\256\345\272\246\345\260\217.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\272\256\345\272\246\345\260\217.imageset/Contents.json" deleted file mode 100644 index fb7febfa..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\272\256\345\272\246\345\260\217.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "亮度小@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\272\256\345\272\246\345\260\217.imageset/\344\272\256\345\272\246\345\260\217@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\272\256\345\272\246\345\260\217.imageset/\344\272\256\345\272\246\345\260\217@3x.png" deleted file mode 100644 index 968c2847..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\344\272\256\345\272\246\345\260\217.imageset/\344\272\256\345\272\246\345\260\217@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\205\250\345\261\217.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\205\250\345\261\217.imageset/Contents.json" deleted file mode 100644 index 7ae97672..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\205\250\345\261\217.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "全屏@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\205\250\345\261\217.imageset/\345\205\250\345\261\217@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\205\250\345\261\217.imageset/\345\205\250\345\261\217@3x.png" deleted file mode 100644 index e6d32f4a..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\205\250\345\261\217.imageset/\345\205\250\345\261\217@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\205\250\345\261\217_pressed.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\205\250\345\261\217_pressed.imageset/Contents.json" deleted file mode 100644 index 71c43c57..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\205\250\345\261\217_pressed.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "全屏_pressed@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\205\250\345\261\217_pressed.imageset/\345\205\250\345\261\217_pressed@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\205\250\345\261\217_pressed.imageset/\345\205\250\345\261\217_pressed@3x.png" deleted file mode 100644 index 60688046..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\205\250\345\261\217_pressed.imageset/\345\205\250\345\261\217_pressed@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\243\260\351\237\263.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\243\260\351\237\263.imageset/Contents.json" deleted file mode 100644 index 7737c974..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\243\260\351\237\263.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "声音@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\243\260\351\237\263.imageset/\345\243\260\351\237\263@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\243\260\351\237\263.imageset/\345\243\260\351\237\263@3x.png" deleted file mode 100644 index 01bef48e..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\243\260\351\237\263.imageset/\345\243\260\351\237\263@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\243\260\351\237\263\346\224\276\345\244\247.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\243\260\351\237\263\346\224\276\345\244\247.imageset/Contents.json" deleted file mode 100644 index 3bcb1876..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\243\260\351\237\263\346\224\276\345\244\247.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "声音放大@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\243\260\351\237\263\346\224\276\345\244\247.imageset/\345\243\260\351\237\263\346\224\276\345\244\247@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\243\260\351\237\263\346\224\276\345\244\247.imageset/\345\243\260\351\237\263\346\224\276\345\244\247@3x.png" deleted file mode 100644 index 07d170e4..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\243\260\351\237\263\346\224\276\345\244\247.imageset/\345\243\260\351\237\263\346\224\276\345\244\247@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\274\271\345\271\225.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\274\271\345\271\225.imageset/Contents.json" deleted file mode 100644 index 6910490c..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\274\271\345\271\225.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "弹幕@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\274\271\345\271\225.imageset/\345\274\271\345\271\225@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\274\271\345\271\225.imageset/\345\274\271\345\271\225@3x.png" deleted file mode 100644 index fc8caab1..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\274\271\345\271\225.imageset/\345\274\271\345\271\225@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\274\271\345\271\225_pressed.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\274\271\345\271\225_pressed.imageset/Contents.json" deleted file mode 100644 index 6be446aa..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\274\271\345\271\225_pressed.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "弹幕_pressed@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\274\271\345\271\225_pressed.imageset/\345\274\271\345\271\225_pressed@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\274\271\345\271\225_pressed.imageset/\345\274\271\345\271\225_pressed@3x.png" deleted file mode 100644 index 7eca8518..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\345\274\271\345\271\225_pressed.imageset/\345\274\271\345\271\225_pressed@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\210\252\345\261\217.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\210\252\345\261\217.imageset/Contents.json" deleted file mode 100644 index 9c7d7a0b..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\210\252\345\261\217.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "截屏@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\210\252\345\261\217.imageset/\346\210\252\345\261\217@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\210\252\345\261\217.imageset/\346\210\252\345\261\217@3x.png" deleted file mode 100644 index 91821856..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\210\252\345\261\217.imageset/\346\210\252\345\261\217@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\210\252\345\261\217_pressed.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\210\252\345\261\217_pressed.imageset/Contents.json" deleted file mode 100644 index d3a5f104..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\210\252\345\261\217_pressed.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "截屏_pressed@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\210\252\345\261\217_pressed.imageset/\346\210\252\345\261\217_pressed@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\210\252\345\261\217_pressed.imageset/\346\210\252\345\261\217_pressed@3x.png" deleted file mode 100644 index c73d3be0..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\210\252\345\261\217_pressed.imageset/\346\210\252\345\261\217_pressed@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\211\253\347\240\201.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\211\253\347\240\201.imageset/Contents.json" deleted file mode 100644 index 4483ebad..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\211\253\347\240\201.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "扫码@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\211\253\347\240\201.imageset/\346\211\253\347\240\201@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\211\253\347\240\201.imageset/\346\211\253\347\240\201@3x.png" deleted file mode 100644 index b99b8171..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\211\253\347\240\201.imageset/\346\211\253\347\240\201@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\220\234\347\264\242\346\241\206.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\220\234\347\264\242\346\241\206.imageset/Contents.json" deleted file mode 100644 index 0685df6f..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\220\234\347\264\242\346\241\206.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "搜索框@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\220\234\347\264\242\346\241\206.imageset/\346\220\234\347\264\242\346\241\206@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\220\234\347\264\242\346\241\206.imageset/\346\220\234\347\264\242\346\241\206@3x.png" deleted file mode 100644 index fe6a11ab..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\220\234\347\264\242\346\241\206.imageset/\346\220\234\347\264\242\346\241\206@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\233\264\345\244\232.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\233\264\345\244\232.imageset/Contents.json" deleted file mode 100644 index d68387f8..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\233\264\345\244\232.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "更多@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\233\264\345\244\232.imageset/\346\233\264\345\244\232@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\233\264\345\244\232.imageset/\346\233\264\345\244\232@3x.png" deleted file mode 100644 index e3d930a4..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\233\264\345\244\232.imageset/\346\233\264\345\244\232@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\233\264\345\244\232_pressed.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\233\264\345\244\232_pressed.imageset/Contents.json" deleted file mode 100644 index d35351b5..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\233\264\345\244\232_pressed.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "更多_pressed@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\233\264\345\244\232_pressed.imageset/\346\233\264\345\244\232_pressed@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\233\264\345\244\232_pressed.imageset/\346\233\264\345\244\232_pressed@3x.png" deleted file mode 100644 index 092afd00..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\346\233\264\345\244\232_pressed.imageset/\346\233\264\345\244\232_pressed@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\203\214\346\231\257.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\203\214\346\231\257.imageset/Contents.json" deleted file mode 100644 index 345590c2..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\203\214\346\231\257.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "背景@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\203\214\346\231\257.imageset/\350\203\214\346\231\257@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\203\214\346\231\257.imageset/\350\203\214\346\231\257@3x.png" deleted file mode 100644 index 949c7c81..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\203\214\346\231\257.imageset/\350\203\214\346\231\257@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\224\345\233\236.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\224\345\233\236.imageset/Contents.json" deleted file mode 100644 index a523da5a..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\224\345\233\236.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "返回@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\224\345\233\236.imageset/\350\277\224\345\233\236@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\224\345\233\236.imageset/\350\277\224\345\233\236@3x.png" deleted file mode 100644 index 3473b14f..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\224\345\233\236.imageset/\350\277\224\345\233\236@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\233\345\272\246\346\214\211\351\222\256.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\233\345\272\246\346\214\211\351\222\256.imageset/Contents.json" deleted file mode 100644 index 8735c598..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\233\345\272\246\346\214\211\351\222\256.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "进度按钮@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\233\345\272\246\346\214\211\351\222\256.imageset/\350\277\233\345\272\246\346\214\211\351\222\256@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\233\345\272\246\346\214\211\351\222\256.imageset/\350\277\233\345\272\246\346\214\211\351\222\256@3x.png" deleted file mode 100644 index 08c802a5..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\233\345\272\246\346\214\211\351\222\256.imageset/\350\277\233\345\272\246\346\214\211\351\222\256@3x.png" and /dev/null differ diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\233\345\272\246\346\214\211\351\222\256\347\202\271\345\207\273.imageset/Contents.json" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\233\345\272\246\346\214\211\351\222\256\347\202\271\345\207\273.imageset/Contents.json" deleted file mode 100644 index e6bab0e2..00000000 --- "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\233\345\272\246\346\214\211\351\222\256\347\202\271\345\207\273.imageset/Contents.json" +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "进度按钮点击@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\233\345\272\246\346\214\211\351\222\256\347\202\271\345\207\273.imageset/\350\277\233\345\272\246\346\214\211\351\222\256\347\202\271\345\207\273@3x.png" "b/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\233\345\272\246\346\214\211\351\222\256\347\202\271\345\207\273.imageset/\350\277\233\345\272\246\346\214\211\351\222\256\347\202\271\345\207\273@3x.png" deleted file mode 100644 index c3317121..00000000 Binary files "a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/\350\277\233\345\272\246\346\214\211\351\222\256\347\202\271\345\207\273.imageset/\350\277\233\345\272\246\346\214\211\351\222\256\347\202\271\345\207\273@3x.png" and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/English.lproj/UserProtocol.html b/iOS/Demo/TXLiteAVDemo/App/Resource/English.lproj/UserProtocol.html deleted file mode 100644 index 12bb1875..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/English.lproj/UserProtocol.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - Terms and Conditions - - - -

Terms and Conditions

-

Please read carefully the content below. If you have any objections, you can choose not to use this app. By using this app, you agree to all terms in this agreement.

-

Law Compliance

-

You agree to abide by the Law of the People's Republic of China on Guarding State Secrets, Regulations on Confidentiality Protection for the International Networking of Computer Information Networks, Regulations of the People's Republic of China on Protecting the Safety of Computer Information Systems, Measures for Security Protection Administration of the International Networking of Computer Information Networks, Provisional Regulations of the People's Republic of China on the Management of the International Networking of Computer Information Networks, as well as their implementation rules. You assume all responsibility with respect to your use of the app and the consequences.

-

Terms of Use

-

You must not use this app to create, upload, copy, publish or spread any content that is forbidden by laws, regulations or government policies, including:

-

1. Content that violates the Constitution of the People's Republic of China;

-

2. Content that endangers national security, leaks state secrets, subverts state power, or undermines national unity;

-

3. Content that harms national reputation or interests;

-

4. Content that incites ethnic enmity, propagates racial discrimination, or undermines ethnic unity;

-

5. Content that violates China’s policies on religion, or promotes cults or superstitions;

-

6. Content that spreads rumors, disturbs social order, or undermines social stability;

-

7. Obscene, pornographic, violent, gambling/murder/terrorism-related, or crime-abetting content;

-

8. Insulting or defaming content or content that infringes others’ legal rights;

-

9. Content that crosses any of the “Seven Baselines” of laws and regulations, the socialist system, national interests, citizens’ legal rights and interests, public order, morality, and information accuracy.

-

10. Other content forbidden by laws and regulations. -

-

You take responsibility for the consequences of having your permissions and access to the app revoked as a result of violating any of the above terms.

- - - - diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/bailan.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/bailan.png deleted file mode 100755 index cd2380af..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/bailan.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/baixi.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/baixi.png deleted file mode 100644 index ca7a810f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/baixi.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/chaotuo.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/chaotuo.png deleted file mode 100755 index a22dec09..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/chaotuo.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/chunzhen.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/chunzhen.png deleted file mode 100755 index a3a84bc6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/chunzhen.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/fennen.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/fennen.png deleted file mode 100755 index 955e7319..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/fennen.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/huaijiu.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/huaijiu.png deleted file mode 100755 index c7110c25..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/huaijiu.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/landiao.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/landiao.png deleted file mode 100755 index 7cf59a4d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/landiao.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/langman.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/langman.png deleted file mode 100755 index 0c0a5895..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/langman.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/normal.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/normal.png deleted file mode 100644 index bd4d7092..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/normal.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/qingliang.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/qingliang.png deleted file mode 100755 index 16125240..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/qingliang.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/qingxin.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/qingxin.png deleted file mode 100755 index 4eb940c2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/qingxin.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/rixi.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/rixi.png deleted file mode 100755 index 54584a54..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/rixi.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/weimei.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/weimei.png deleted file mode 100755 index 01995e17..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/weimei.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/white.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/white.png deleted file mode 100644 index b148d227..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/white.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/xiangfen.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/xiangfen.png deleted file mode 100755 index da46b958..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/xiangfen.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/yinghong.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/yinghong.png deleted file mode 100644 index 7a9db008..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/yinghong.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/yuanqi.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/yuanqi.png deleted file mode 100755 index 65ad5044..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/yuanqi.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/yunshang.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/yunshang.png deleted file mode 100755 index 74bd4e8d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/yunshang.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/ziran.png b/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/ziran.png deleted file mode 100644 index d58ecae3..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/FilterResource.bundle/ziran.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppLocalized.h b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppLocalized.h deleted file mode 100644 index c406312f..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppLocalized.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// AppLocalized.h -// TXLiteAVDemo -// -// Created by gg on 2021/3/17. -// Copyright © 2021 Tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - - -#pragma mark - Base - -extern NSString *LocalizeFromTable(NSString *key, NSString *table); -extern NSString *LocalizeFromTableAndCommon(NSString *key, NSString *common, NSString *table); - -#pragma mark - Replace String -extern NSString *LocalizeReplaceXX(NSString *origin, NSString *xxx_replace); -extern NSString *LocalizeReplace(NSString *origin, NSString *xxx_replace, NSString *yyy_replace); -extern NSString *LocalizeReplaceThreeCharacter(NSString *origin, NSString *xxx_replace, NSString *yyy_replace, NSString *zzz_replace); -extern NSString *LocalizeReplaceFourCharacter(NSString *origin, NSString *xxx_replace, NSString *yyy_replace, NSString *zzz_replace, NSString *mmm_replace); -extern NSString *LocalizeReplaceFiveCharacter(NSString *origin, NSString *xxx_replace, NSString *yyy_replace, NSString *zzz_replace, NSString *mmm_replace, NSString *nnn_replace); - -#pragma mark - TRTC -extern NSString *const TRTC_Localize_TableName; -extern NSString *TRTCLocalize(NSString *key); - -#pragma mark - V2 -extern NSString *const V2_Localize_TableName; -extern NSString *V2Localize(NSString *key); - -#pragma mark - LivePlayer -extern NSString *const LivePlayer_Localize_TableName; -extern NSString *LivePlayerLocalize(NSString *key); - -#pragma mark - UGC -extern NSString *const UGC_Localize_TableName; -extern NSString *UGCLocalize(NSString *key); - -#pragma mark - LoginNetwork -extern NSString *const LoginNetwork_Localize_TableName; -extern NSString *LoginNetworkLocalize(NSString *key); - -#pragma mark - AppPortal -extern NSString *const AppPortal_Localize_TableName; -extern NSString *AppPortalLocalize(NSString *key); - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppLocalized.m b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppLocalized.m deleted file mode 100644 index fef9751c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppLocalized.m +++ /dev/null @@ -1,100 +0,0 @@ -// -// AppLocalized.m -// TXLiteAVDemo -// -// Created by gg on 2021/3/17. -// Copyright © 2021 Tencent. All rights reserved. -// - -#import "AppLocalized.h" - -#pragma mark - Base -NSString *LocalizeFromTable(NSString *key, NSString *table) { - return [NSBundle.mainBundle localizedStringForKey:key value:@"" table:table]; -} - -NSString *LocalizeFromTableAndCommon(NSString *key, NSString *common, NSString *table) { - return LocalizeFromTable(key, table); -} - -#pragma mark - Replace String -NSString *LocalizeReplaceXX(NSString *origin, NSString *xxx_replace) { - if (xxx_replace == nil) { xxx_replace = @"";} - return [origin stringByReplacingOccurrencesOfString:@"xxx" withString:xxx_replace]; -} - -NSString *LocalizeReplace(NSString *origin, NSString *xxx_replace, NSString *yyy_replace) { - if (xxx_replace == nil) { xxx_replace = @"";} - if (yyy_replace == nil) { yyy_replace = @"";} - return [[origin stringByReplacingOccurrencesOfString:@"xxx" withString:xxx_replace] stringByReplacingOccurrencesOfString:@"yyy" withString:yyy_replace]; -} - -NSString *LocalizeReplaceThreeCharacter(NSString *origin, NSString *xxx_replace, NSString *yyy_replace, NSString *zzz_replace) { - if (xxx_replace == nil) { xxx_replace = @"";} - if (yyy_replace == nil) { yyy_replace = @"";} - if (zzz_replace == nil) { zzz_replace = @"";} - return [[[origin stringByReplacingOccurrencesOfString:@"xxx" withString:xxx_replace] stringByReplacingOccurrencesOfString:@"yyy" withString:yyy_replace] - stringByReplacingOccurrencesOfString:@"zzz" withString:zzz_replace]; -} - -NSString *LocalizeReplaceFourCharacter(NSString *origin, NSString *xxx_replace, NSString *yyy_replace, NSString *zzz_replace, NSString *mmm_replace) { - if (xxx_replace == nil) { xxx_replace = @"";} - if (yyy_replace == nil) { yyy_replace = @"";} - if (zzz_replace == nil) { zzz_replace = @"";} - if (mmm_replace == nil) { mmm_replace = @"";} - return [[[[origin stringByReplacingOccurrencesOfString:@"xxx" withString:xxx_replace] stringByReplacingOccurrencesOfString:@"yyy" withString:yyy_replace] - stringByReplacingOccurrencesOfString:@"zzz" withString:zzz_replace] - stringByReplacingOccurrencesOfString:@"mmm" withString:mmm_replace]; -} - -NSString *LocalizeReplaceFiveCharacter(NSString *origin, NSString *xxx_replace, NSString *yyy_replace, NSString *zzz_replace, NSString *mmm_replace, NSString *nnn_replace) { - if (xxx_replace == nil) { xxx_replace = @"";} - if (yyy_replace == nil) { yyy_replace = @"";} - if (zzz_replace == nil) { zzz_replace = @"";} - if (mmm_replace == nil) { mmm_replace = @"";} - if (nnn_replace == nil) { nnn_replace = @"";} - return [[[[[origin stringByReplacingOccurrencesOfString:@"xxx" withString:xxx_replace] stringByReplacingOccurrencesOfString:@"yyy" withString:yyy_replace] - stringByReplacingOccurrencesOfString:@"zzz" withString:zzz_replace] - stringByReplacingOccurrencesOfString:@"mmm" withString:mmm_replace] - stringByReplacingOccurrencesOfString:@"nnn" withString:nnn_replace]; -} - - -#pragma mark - TRTC -NSString *const TRTC_Localize_TableName = @"TRTCDemoLocalized"; - -NSString *TRTCLocalize(NSString *key) { - return LocalizeFromTable(key, TRTC_Localize_TableName); -} - -#pragma mark - V2 -NSString *const V2_Localize_TableName = @"V2LiveLocalized"; - -NSString *V2Localize(NSString *key) { - return LocalizeFromTable(key, V2_Localize_TableName); -} - -#pragma mark - LivePlayer -NSString *const LivePlayer_Localize_TableName = @"LivePlayerLocalized"; - -NSString *LivePlayerLocalize(NSString *key) { - return LocalizeFromTable(key, LivePlayer_Localize_TableName); -} - -#pragma mark - UGC -NSString *const UGC_Localize_TableName = @"UGCLocalized"; -NSString *UGCLocalize(NSString *key) { - return LocalizeFromTable(key, UGC_Localize_TableName); -} - -#pragma mark - LoginNetwork -NSString *const LoginNetwork_Localize_TableName = @"LoginNetworkLocalized"; -NSString *LoginNetworkLocalize(NSString *key) { - return LocalizeFromTable(key, LoginNetwork_Localize_TableName); -} - -#pragma mark - AppPortal -NSString *const AppPortal_Localize_TableName = @"AppPortalLocalized"; -NSString *AppPortalLocalize(NSString *key) { - return LocalizeFromTable(key, AppPortal_Localize_TableName); -} diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppPortalLocalized/English.lproj/AppPortalLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppPortalLocalized/English.lproj/AppPortalLocalized.strings deleted file mode 100644 index 738a9784..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppPortalLocalized/English.lproj/AppPortalLocalized.strings +++ /dev/null @@ -1,31 +0,0 @@ -/* - AppPortalLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/22. - Copyright © 2021 Tencent. All rights reserved. -*/ -"Video Conferencing" = "Video Conferencing"; -"Audio Chat Room" = "Audio Chat Room"; -"Interactive Video Live Streaming" = "Interactive Video Live Streaming"; -"Audio Call" = "Audio Call"; -"Video Call" = "Video Call"; -"Chat Salon" = "Chat Salon"; - -"App.PortalViewController.audioauto" = "Noise cancellation and HD videos, suitable for online conferences, remote training, small classes, etc."; -"App.PortalViewController.includesoundchanges" = "内含变声、音效、伴奏、背景音乐等声音玩法,适用于闲聊房、K歌房和开黑房等场景"; -"App.PortalViewController.audiencedelayaslow" = "Watch latency as low as 800 ms, and no waiting periods for mic on/off, suitable for low-latency and high-concurrency live streaming (up to 100,000 participants)"; -"App.PortalViewController.highqualityspeech" = "48 kHz sample rate, uninterrupted even when packet loss reaches 60%, and leading audio processing technologies to eliminate echo and feedback"; -"App.PortalViewController.supports1080PUHDvideo" = "1080p UHD videos, uninterrupted even when packet loss reaches 50%, and built-in beauty filters to ensure premium video call experience"; -"App.PortalViewController.loginimsuccess" = "Logged in to IM"; -"App.PortalViewController.loginimfailed" = "Failed to log in to IM"; -"App.PortalViewController.videocalling" = "Video Call"; -"App.PortalViewController.audiocalling" = "Audio Call"; -"App.PortalViewController.areyousureloginout" = "Are you sure you want to log out?"; -"App.PortalViewController.cancel" = "Cancel"; -"App.PortalViewController.determine" = "Yes"; -"App.PortalViewController.sharelog" = "分享上传日志"; - -"AppCommon.TCUtil.sendhttprequest" = "sendHttpRequest failed,参数转成json格式失败"; -"AppCommon.TCUtil.parametererror" = "Parameter error"; -"AppCommon.TCUtil.serverrequesterror" = "Server request error"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppPortalLocalized/en.lproj/AppPortalLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppPortalLocalized/en.lproj/AppPortalLocalized.strings deleted file mode 100644 index 98231276..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppPortalLocalized/en.lproj/AppPortalLocalized.strings +++ /dev/null @@ -1,61 +0,0 @@ -/* - AppPortalLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/22. - Copyright © 2021 Tencent. All rights reserved. -*/ -"Video Conferencing" = "Video Conferencing"; -"Audio Chat Room" = "Audio Chat Room"; -"Interactive Video Live Streaming" = "Interactive Live Video Streaming"; -"Audio Call" = "Audio Call"; -"Video Call" = "Video Call"; -"Chat Salon" = "Chat Salon"; - -"App.PortalViewController.audioauto" = "Noise cancellation and HD videos, suitable for online conferences, remote training, small classes, etc."; -"App.PortalViewController.includesoundchanges" = "Voice change, audio effects, and background music, suitable for chat rooms, karaoke, gaming chat, etc."; -"App.PortalViewController.audiencedelayaslow" = "Watch latency as low as 800 ms, and no waiting periods for mic on/off, suitable for low-latency and high-concurrency live streaming (up to 100,000 participants)"; -"App.PortalViewController.highqualityspeech" = "48 kHz sample rate, uninterrupted even when packet loss reaches 60%, and leading audio processing technologies to eliminate echo and feedback"; -"App.PortalViewController.supports1080PUHDvideo" = "1080p UHD videos, uninterrupted even when packet loss reaches 50%, and built-in beauty filters to ensure premium video call experience"; -"App.PortalViewController.loginimsuccess" = "Logged in to IM"; -"App.PortalViewController.loginimfailed" = "Failed to log in to IM"; -"App.PortalViewController.videocalling" = "Video Call"; -"App.PortalViewController.audiocalling" = "Audio Call"; -"App.PortalViewController.areyousureloginout" = "Are you sure you want to log out?"; -"App.PortalViewController.cancel" = "Cancel"; -"App.PortalViewController.determine" = "Yes"; -"App.PortalViewController.sharelog" = "Share and Upload Logs"; - -"AppCommon.TCUtil.sendhttprequest" = "Unable to convert parameter value to JSON string due to sendHttpRequest failure"; -"AppCommon.TCUtil.parametererror" = "Parameter error"; -"AppCommon.TCUtil.serverrequesterror" = "Server request error"; - - -"Demo.TRTC.Portal.Home.logout" = "Log out"; -"Demo.TRTC.Portal.Mine.personalcenter" = "Personal Center"; -"Demo.TRTC.Portal.Mine.about" = "About"; -"Demo.TRTC.Portal.Main.home" = "Home"; -"Demo.TRTC.Portal.Main.mine" = "Me"; -"Demo.TRTC.Portal.confirm" = "Done"; -"Demo.TRTC.Portal.enterusername" = "Please enter a nickname"; -"Demo.TRTC.Portal.privacy" = "Privacy"; -"Demo.TRTC.Portal.disclaimer" = "Disclaimer"; -"Demo.TRTC.Portal.sdkversion" = "SDK Version"; -"Demo.TRTC.Portal.appversion" = "Application Version"; -"Demo.TRTC.Portal.limit20count" = "Chinese characters, letters, numbers and underscores, 2 - 20 words"; -"Demo.TRTC.Portal.changenickname" = "Change Your Nickname"; -"Demo.TRTC.Portal.disclaimerdesc" = "this app is a tryout app, whose copyright is owned by Tencent Cloud. This app is for tryout only and must not be used commercially.\nIn accordance with relevant regulations, this app forbids pornographic, abusive, terrorism, and politically sensitive content. All audio/video interactions are recorded and archived."; - -"Demo.TRTC.Portal.resignaccount" = "Delete Account"; -"Demo.TRTC.Portal.resignsuccess" = "Account deleted"; -"Demo.TRTC.Portal.resigntips" = "You can no longer use this account after deletion. Its data will also be deleted and cannot be retrieved."; -"Demo.TRTC.Portal.currentaccount" = "Account:xxx"; -"Demo.TRTC.Portal.confirmresign" = "Delete"; -"Demo.TRTC.Portal.alerttoresign" = "Are you sure you want to delete this account?"; -"Demo.TRTC.Portal.privateandagreement" = "I have read and agree to the Privacy Policy and Terms of Use, and I authorize Tencent Cloud to manage the data (nickname, profile photo, phone number) of this account ."; -"Demo.TRTC.Portal.agreeprivatefirst" = "You must agree to the Privacy Policy and Terms of Use first."; -"Demo.TRTC.Portal.agree" = "agree"; -"Demo.TRTC.Portal.disagree" = "disagree"; -"Demo.TRTC.Portal.popTitle" = "Welcome to Tencent Cloud Video Toolkit"; -"Demo.TRTC.Portal.popMessage" = - "Welcome to Tencent Cloud Video Toolkit. We will help you understand our collection, use, and storage of personal information through the xxx and yyy. In addition, you can also learn about your related rights and implementation methods. If you agree, please click the button below to start accepting our services;"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppPortalLocalized/zh-Hans.lproj/AppPortalLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppPortalLocalized/zh-Hans.lproj/AppPortalLocalized.strings deleted file mode 100644 index fadcca68..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/AppPortalLocalized/zh-Hans.lproj/AppPortalLocalized.strings +++ /dev/null @@ -1,61 +0,0 @@ -/* - AppPortalLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/22. - Copyright © 2021 Tencent. All rights reserved. -*/ -"Video Conferencing" = "多人视频会议"; -"Audio Chat Room" = "语音聊天室"; -"Interactive Video Live Streaming" = "视频互动"; -"Audio Call" = "语音通话"; -"Video Call" = "视频通话"; -"Chat Salon" = "语音沙龙"; - -"App.PortalViewController.audioauto" = "语音自动降噪、视频画质超高清,适用于在线会议、远程培训、小班课等场景"; -"App.PortalViewController.includesoundchanges" = "内含变声、音效、伴奏、背景音乐等声音玩法,适用于闲聊房、K歌房和开黑房等场景"; -"App.PortalViewController.audiencedelayaslow" = "观众时延低至800ms,上下麦无需loading,适用于低延时、十万人高并发的大型互动直播"; -"App.PortalViewController.highqualityspeech" = "48kHz高音质语音,60%丢包可正常语音,领先行业的3A处理,杜绝回声和啸叫"; -"App.PortalViewController.supports1080PUHDvideo" = "支持1080P超清视频,50%丢包率可正常视频,自备美颜特效,带来高品质视频通话体验"; -"App.PortalViewController.loginimsuccess" = "登录IM成功"; -"App.PortalViewController.loginimfailed" = "登录IM失败"; -"App.PortalViewController.videocalling" = "视频通话"; -"App.PortalViewController.audiocalling" = "语音通话"; -"App.PortalViewController.areyousureloginout" = "确定要退出登录吗?"; -"App.PortalViewController.cancel" = "取消"; -"App.PortalViewController.determine" = "确定"; -"App.PortalViewController.sharelog" = "分享上传日志"; - -"AppCommon.TCUtil.sendhttprequest" = "sendHttpRequest failed,参数转成json格式失败"; -"AppCommon.TCUtil.parametererror" = "参数错误"; -"AppCommon.TCUtil.serverrequesterror" = "服务请求失败"; - -"Demo.TRTC.Portal.Home.logout" = "退出登录"; -"Demo.TRTC.Portal.Mine.personalcenter" = "个人中心"; -"Demo.TRTC.Portal.Mine.about" = "关于"; -"Demo.TRTC.Portal.Main.home" = "主页"; -"Demo.TRTC.Portal.Main.mine" = "我的"; -"Demo.TRTC.Portal.confirm" = "确认"; -"Demo.TRTC.Portal.enterusername" = "请输入用户昵称"; -"Demo.TRTC.Portal.privacy" = "隐私条例"; -"Demo.TRTC.Portal.disclaimer" = "免责声明"; -"Demo.TRTC.Portal.sdkversion" = "SDK 版本"; -"Demo.TRTC.Portal.appversion" = "商店版本"; -"Demo.TRTC.Portal.limit20count" = "仅限中文、字母、数字和下划线,2-20个字"; -"Demo.TRTC.Portal.changenickname" = "修改用户昵称"; -"Demo.TRTC.Portal.disclaimerdesc" = "视频云工具包(\"本产品\")是由腾讯云提供的一款测试产品,腾讯云享有本产品的著作权和所有权。本产品仅用于功能体验,不得用于任何商业用途。\n为配合相关部门监管要求,本产品音视频互动全程均有录音录像存档,严禁在使用中有任何但不限于色情、辱骂、暴恐、涉政等违规内容的传播。"; - -"Demo.TRTC.Portal.resignaccount" = "注销账户"; -"Demo.TRTC.Portal.resignsuccess" = "注销成功"; -"Demo.TRTC.Portal.resigntips" = "注销后,您将无法使用当前账号,相关数据也将删除无法找回"; -"Demo.TRTC.Portal.currentaccount" = "当前账号 xxx"; -"Demo.TRTC.Portal.confirmresign" = "确认注销"; -"Demo.TRTC.Portal.alerttoresign" = "确定要注销账户吗?"; -"Demo.TRTC.Portal.privateandagreement" = "我已阅读并同意《隐私条例》和《用户协议》,并授权腾讯云使用该账号(昵称、头像、电话号码)进行统一管理"; -"Demo.TRTC.Portal.agreeprivatefirst" = "请先同意隐私条款条款和用户协议。"; -"Demo.TRTC.Portal.agree" = "同意"; -"Demo.TRTC.Portal.disagree" = "不同意"; -"Demo.TRTC.Portal.popTitle" = "欢迎使用腾讯云视频工具包"; -"Demo.TRTC.Portal.popMessage" = - "欢迎使用腾讯云视频工具包,我们将通过xxx和yyy帮助您了解我们收集,使用,存储个人信息的情况,此外,您还可以了解到您所享有的相关权利和实现途径,如您同意请点击下方按钮开始接受我们的服务;"; - diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LiveLocalized/English.lproj/LivePlayerLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LiveLocalized/English.lproj/LivePlayerLocalized.strings deleted file mode 100644 index 43b2af86..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LiveLocalized/English.lproj/LivePlayerLocalized.strings +++ /dev/null @@ -1,269 +0,0 @@ -/* - LivePlayerLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/19. - Copyright © 2021 Tencent. All rights reserved. -*/ - -"LiveLinkMicDemoOld.RoomList.thereisnolivebroadcastinprogress" = "No live streams now"; -"LiveLinkMicDemoOld.RoomList.pleaseclickonthenewbroadcastroom" = "Tap to create one"; -"LiveLinkMicDemoOld.RoomList.selectthebroadcastroomandclickin" = "Select a room and tap to join"; -"LiveLinkMicDemoOld.RoomList.createliveroom" = "Create Room"; -"LiveLinkMicDemoOld.RoomList.inthelogin" = "Logging in"; -"LiveLinkMicDemoOld.RoomList.login" = "Log In"; -"LiveLinkMicDemoOld.RoomList.determine" = "OK"; -"LiveLinkMicDemoOld.RoomList.lyf" = "Faye"; -"LiveLinkMicDemoOld.RoomList.lb" = "刘备"; -"LiveLinkMicDemoOld.RoomList.mq" = "Maggie"; -"LiveLinkMicDemoOld.RoomList.wzj" = "Joe"; -"LiveLinkMicDemoOld.RoomList.zy" = "John"; -"LiveLinkMicDemoOld.RoomList.lb" = "鲁班"; -"LiveLinkMicDemoOld.RoomList.hy" = "Hobert"; -"LiveLinkMicDemoOld.RoomList.aql" = "Angela"; -"LiveLinkMicDemoOld.RoomList.as" = "Arthur"; -"LiveLinkMicDemoOld.RoomList.cc" = "Chace"; -"LiveLinkMicDemoOld.RoomList.blsy" = "Biden"; -"LiveLinkMicDemoOld.RoomList.dhty" = "Dobbin"; -"LiveLinkMicDemoOld.RoomList.hml" = "Holly"; -"LiveLinkMicDemoOld.RoomList.zgl" = "Lucas"; -"LiveLinkMicDemoOld.RoomList.hz" = "Zachary"; -"LiveLinkMicDemoOld.RoomList.bzhw" = "William"; -"LiveLinkMicDemoOld.RoomList.zk" = "Ken"; -"LiveLinkMicDemoOld.RoomList.lb" = "Ben"; -"LiveLinkMicDemoOld.RoomList.nkll" = "Lulu"; -"LiveLinkMicDemoOld.RoomList.zf" = "Fernand"; -"LiveLinkMicDemoOld.RoomList.liveRoominitfailure" = "Failed to initialize room"; - -"LiveLinkMicDemoOld.RoomMsgList.systemmessage" = "System message"; -"LiveLinkMicDemoOld.RoomMsgList.me" = "Me"; - -"LiveLinkMicDemoOld.RoomNew.createliveroom" = "Create Room"; -"LiveLinkMicDemoOld.RoomNew.liveroomname" = "Room Name"; -"LiveLinkMicDemoOld.RoomNew.enterthenameofthestudio" = "Enter a room name"; -"LiveLinkMicDemoOld.RoomNew.beginlive" = "Start"; -"LiveLinkMicDemoOld.RoomNew.prompt" = "Note"; -"LiveLinkMicDemoOld.RoomNew.nameoftheliveroomcannotbeempty" = "Room name cannot be empty"; -"LiveLinkMicDemoOld.RoomNew.liveroomnamelengthexceedslimit" = "Name length exceeded the limit"; - -"LiveLinkMicDemoOld.RoomPlayer.entertextcontent" = "Send a message"; -"LiveLinkMicDemoOld.RoomPlayer.send" = "Send"; -"LiveLinkMicDemoOld.RoomPlayer.connectionsuccessful" = "Connected"; -"LiveLinkMicDemoOld.RoomPlayer.enterliveroomfailed" = "Failed to enter the room"; -"LiveLinkMicDemoOld.RoomPlayer.messagecannotbeempty" = "You cannot send an empty message"; -"LiveLinkMicDemoOld.RoomPlayer.liveroomhasbeendisbanded" = "The room is closed"; -"LiveLinkMicDemoOld.RoomPlayer.playxx" = "播放: userID[xxx] userName[yyy] accelerateURL[zzz]"; - -"LiveLinkMicDemoOld.RoomPusher.selecttheanchor" = "Select Anchor"; -"LiveLinkMicDemoOld.RoomPusher.nicknamexx" = "Nickname: xxx"; -"LiveLinkMicDemoOld.RoomPusher.pkrequestsentwaiting" = "Your request to compete has been sent. Please wait for reply."; -"LiveLinkMicDemoOld.RoomPusher.yourrequestacceptedstartpk" = "Your request was accepted. The competition starts."; -"LiveLinkMicDemoOld.RoomPusher.imaudioandvideochatrooms" = "The number of chat rooms created has reached the maximum. Please go to the Tencent Cloud website to enable **IM Audio-Video Chat Room** for your -account"; -"LiveLinkMicDemoOld.RoomPusher.toopen" = "去开通"; -"LiveLinkMicDemoOld.RoomPusher.confirm" = "确认"; -"LiveLinkMicDemoOld.RoomPusher.failedtocreatealivebooth" = "Failed to create room"; -"LiveLinkMicDemoOld.RoomPusher.pleasewaithostisbusy" = "The anchor is busy. Please wait."; -"LiveLinkMicDemoOld.RoomPusher.xxrequestwheat" = "[xxx] requested to co-anchor"; -"LiveLinkMicDemoOld.RoomPusher.refusedto" = "Decline"; -"LiveLinkMicDemoOld.RoomPusher.anchordoesnotyourpk" = "The anchor declined your request to compete"; -"LiveLinkMicDemoOld.RoomPusher.accept" = "Accept"; -"LiveLinkMicDemoOld.RoomPusher.theendpk" = "The anchor ended competition"; -"LiveLinkMicDemoOld.RoomPusher.anchordoesnotyourconnection" = "The anchor declined your request to co-anchor"; -"LiveLinkMicDemoOld.RoomPusher.xxrequestpk" = "[xxx] requested to compete"; - -"LiveLinkMicDemoOld.RoomTableCell.liveroomid" = "Room ID:"; -"LiveLinkMicDemoOld.RoomTableCell.onlinenumber" = "Online Users:"; -"LiveLinkMicDemoOld.RoomTableCell.xxxpeople" = "xxx"; - -"LiveLinkMicDemoOld.MLVBLiveRoom.initIMSDKxxyyzz" = "Initializing the IM SDK: appID[xxx] userID[yyy] timestamp[zzz]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.imloginbackxxyy" = "IM login error returned: errCode[xxx] errMsg[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.loginsuccess" = "Logged in"; -"LiveLinkMicDemoOld.MLVBLiveRoom.loginfailed" = "Login failed"; -"LiveLinkMicDemoOld.MLVBLiveRoom.initliveroomfailedxxyy" = "Failed to initialize the room: errorCode[xxx] errorMsg[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.imforcedoffline" = "IM force logout "; -"LiveLinkMicDemoOld.MLVBLiveRoom.requestgetliveroom" = "Requested room list: index[xxx] cnt[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.joinimfinishxxyy" = "加入IMGroup完成: errCode[xxx] errMsg[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.enterroomfailed" = "Failed to enter the room. Failed to get the room list."; -"LiveLinkMicDemoOld.MLVBLiveRoom.invalidplaybackaddress" = "Invalid playback addresss or no data now"; -"LiveLinkMicDemoOld.MLVBLiveRoom.joinroomfailedxx" = "Failed to enter the room IM: xxx"; -"LiveLinkMicDemoOld.MLVBLiveRoom.leaveimfinishxxyy" = "离开IM Group完成: errCode[xxx] errMsg[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.notjoinroom" = "Not in the room"; -"LiveLinkMicDemoOld.MLVBLiveRoom.donothavepking" = "No ongoing competition"; -"LiveLinkMicDemoOld.MLVBLiveRoom.liveroomloginxx" = "LiveRoom登录, userID[xxx]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.liveroomloginfailedxx" = "LiveRoom登录失败: error[xxx]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.networktimeout" = "Network request timed out. Please check your network."; -"LiveLinkMicDemoOld.MLVBLiveRoom.anchordidnotprocessconnectionrequest" = "The anchor did not respond to your co-anchoring request"; -"LiveLinkMicDemoOld.MLVBLiveRoom.anchordidnotprocesspk" = "The anchor did not respond to your competition request or response timeout"; -"LiveLinkMicDemoOld.MLVBLiveRoom.joinroomxxyyzz" = "Joined room: userID[xxx] userName[yyy] playUrl[zzz]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.leaveroomxxyy" = "Left room: userID[xxx] userName[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.pushstreamdisconnected" = "Push interrupted. Please check your network."; -"LiveLinkMicDemoOld.MLVBLiveRoom.failedtogetcamerapermission" = "Failed to get camera permission. Please go to Privacy > Camera to grant the permission"; -"LiveLinkMicDemoOld.MLVBLiveRoom.failedtogetmicrophonepermission" = "Failed to get mic permission. Please go to Privacy > Microphone to grant the permission"; -"LiveLinkMicDemoOld.MLVBLiveRoom.groupisusedxx" = "群组 xxx 已被使用,并且操作者为群主,可以直接使用"; -"LiveLinkMicDemoOld.MLVBLiveRoom.thecloudcommunicationaccountyou" = "The number of chat rooms created has reached the maximum. Please go to the Tencent Cloud website (https://buy.cloud.tencent.com/avc) to enable **IM Audio-Video Chat Room** for your account."; -"LiveLinkMicDemoOld.MLVBLiveRoom.startrequestxxyy" = "Requesting xxx, yyy"; -"LiveLinkMicDemoOld.MLVBLiveRoom.requestxxyybackzz" = "Requested xxx yyy, returned zzz"; -"LiveLinkMicDemoOld.MLVBLiveRoom.success" = "succeeded"; -"LiveLinkMicDemoOld.MLVBLiveRoom.failed" = "failed"; -"LiveLinkMicDemoOld.MLVBLiveRoom.requestxxerroryy" = "Failed to request xxx: error[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.networktimeoutchecknetworksettingxx" = "[MLVBLiveRoom] Network request timed out. Please check your network. xxx"; -"LiveLinkMicDemoOld.MLVBLiveRoom.isdestruction" = "[MLVBLiveRoom] The room was destroyed"; -"LiveLinkMicDemoOld.MLVBLiveRoom.startpushfailedxx" = "[MLVBLiveRoom] Failed to push streams. xxx"; -"LiveLinkMicDemoOld.MLVBLiveRoom.requestfailedxx" = "merge_video_stream request failed: error[xxx]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.appsvrmsgrequestxxyyzzmmnn" = "AppSvr回复merge_video_stream请求: errCode[xxx] errMsg[yyy] description[code = zzz message = mmm timestamp = nnn]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.roomxxxwasdisbanded" = "Room [xxx] was closed"; -"LiveLinkMicDemoOld.MLVBLiveRoom.rogerthehostxxyy" = "Received a co-anchoring request from anchor [xxx-yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.receivethebiganchortorespondxxyy" = "Received response from the room owner: :result[xxx] message[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.receiveanchorkickoutthenewsofevenwheat" = "Received a message that your co-anchoring was ended by the room owner"; -"LiveLinkMicDemoOld.MLVBLiveRoom.receiveroomanchorpkrequestxxyy" = "Received a competition request from anchor [yyy] from room [xxx]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.pushstreamdisconnectedxxyyzzmm" = "Received response from anchor [yyy] from room [xxx]: result[zzz] message[mmm]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.receiveroomanchorpkendmsgxxyy" = "Received a message that anchor [yyy] from room [xxx] ended competition"; - -"LivePlayerDemo.PlayViewController.pleaseenterorscantheqrcode" = "Enter a playback address or scan QR code"; -"LivePlayerDemo.PlayViewController.livestreamingplayer" = "Live Streaming Player"; -"LivePlayerDemo.PlayViewController.delayadjustment" = "Latency Setting"; -"LivePlayerDemo.PlayViewController.speed" = "Fast"; -"LivePlayerDemo.PlayViewController.smooth" = "Smooth"; -"LivePlayerDemo.PlayViewController.auto" = "Auto"; -"LivePlayerDemo.PlayViewController.iosversionbelow" = "Your iOS is below 8.2 and does not support hardware acceleration"; -"LivePlayerDemo.PlayViewController.switchtoharddecoding" = "Switched to hardware decoding. The playback restarts."; -"LivePlayerDemo.PlayViewController.switchtosoftdecoding" = "Switched to software decoding. The playback restarts."; -"LivePlayerDemo.PlayViewController.lowdelayplayback" = "Low-latency Play"; -"LivePlayerDemo.PlayViewController.lowdelaypullstreamaddress" = "Low-latency pull requires hotlink protection signature. See https://cloud.tencent.com/document/product/454/7880#RealTimePlay"; -"LivePlayerDemo.PlayViewController.playaddressisnotlegal" = "Invalid playback address. Only RTMP and FLV are supported for live streaming currently!"; -"LivePlayerDemo.PlayViewController.playerstartfailed" = "Failed to start the player"; -"LivePlayerDemo.PlayViewController.changewifitosee" = "Do you want to wait till your are connected to Wi-Fi to watch?"; -"LivePlayerDemo.PlayViewController.yes" = "Yes"; -"LivePlayerDemo.PlayViewController.no" = "No"; -"LivePlayerDemo.PlayViewController.failedtogetlowdelayplaybackaddress" = "Failed to get the low-latency playback address"; -"LivePlayerDemo.PlayViewController.testaddressfromonline" = "A screen recording stream in UTC time is pushed via the test address , and the MLVB SDK for Windows and VCam are used for push"; - -"LivePusherDemo.CameraPush.pleaseinputthepushstream" = "Enter a push address or scan QR code"; -"LivePusherDemo.CameraPush.rtmppullstream" = "RTMP Push"; -"LivePusherDemo.CameraPush.iosemulatordoesnotsupport" = "iOS simulators cannot push or play back streams. Please use a real device."; -"LivePusherDemo.CameraPush.pushstreamaddressisnotvalid" = "Invalid push address. Only RTMP is supported now."; -"LivePusherDemo.CameraPush.thethrusterfailedtostart" = "Failed to start the pusher"; -"LivePusherDemo.CameraPush.off" = "Close"; -"LivePusherDemo.CameraPush.addressacquisitioninprocess" = "Getting address"; -"LivePusherDemo.CameraPush.failedtogetpushstreamaddress" = "Failed to get the playback address"; -"LivePusherDemo.CameraPush.lowlatency" = "Low Latency"; -"LivePusherDemo.CameraPush.rtmpaddressxxflvaddressyyhlsaddresszz" = "RTMP playback address: xxx\n\nFLV playback address: yyy\n\nHLS playback address: zzz\n\nLow-latency playback address: mmm"; -"LivePusherDemo.CameraPush.getaddresssuccess" = "Suceeded"; -"LivePusherDemo.CameraPush.playbackaddresshasbeencopiedtotheclipboard" = "Playback address copied to clipboard"; -"LivePusherDemo.CameraPush.changetowifipushstream" = "Do you want to wait till you are connected to Wi-Fi to push streams?"; -"LivePusherDemo.CameraPush.currentnetworkenvironmentisnotgood" = "Poor network conditions. Change a network to ensure "; -"LivePusherDemo.CameraPush.startloadingassets" = "Loading resources"; -"LivePusherDemo.CameraPush.loadingxx" = "Loading xxx %%"; -"LivePusherDemo.CameraPush.assetsloadsuccess" = "Loaded successfully"; -"LivePusherDemo.CameraPush.assetsloadfailed" = "Failed to load resources"; - -"LivePusherDemo.MoreSetting.screenshots" = "Take"; -"LivePusherDemo.MoreSetting.enableprivacymode" = "Private"; -"LivePusherDemo.MoreSetting.turnonmutemode" = "Mute"; -"LivePusherDemo.MoreSetting.turnonviewmirror" = "Playback Mirror"; -"LivePusherDemo.MoreSetting.turnontherearflash" = "Back Flashlight"; -"LivePusherDemo.MoreSetting.turnonhorizontalpushflow" = "Landscape Mode"; -"LivePusherDemo.MoreSetting.openingdebuglog" = "Debug Logs"; -"LivePusherDemo.MoreSetting.addwatermark" = "Watermarking"; -"LivePusherDemo.MoreSetting.delaymeasurementbar" = "Latency Measurement Toolbar"; -"LivePusherDemo.MoreSetting.manuallyclickexposureandfocus" = "Tap to Adjust Focus/Exposure"; -"LivePusherDemo.MoreSetting.gesturetozoominonthepreview" = "Pinch to Zoom"; -"LivePusherDemo.MoreSetting.enableaudiopushstream" = "Audio-Only Stream"; -"LivePusherDemo.MoreSetting.localscreenshots" = "Local Screenshot"; -"LivePusherDemo.MoreSetting.sendmessage" = "Send Message"; - -"LivePusherDemo.PushSetting.setting" = "Setting"; -"LivePusherDemo.PushSetting.bluray" = "蓝光"; -"LivePusherDemo.PushSetting.superclear" = "UHD"; -"LivePusherDemo.PushSetting.hd" = "HD"; -"LivePusherDemo.PushSetting.standarddefinition" = "SD"; -"LivePusherDemo.PushSetting.lianmaibighost" = "Co-anchor with Room Owner"; -"LivePusherDemo.PushSetting.lianmaismallhost" = "Co-anchor with Non-room owner Anchor"; -"LivePusherDemo.PushSetting.realtimeaudioandvideo" = "TRTC"; -"LivePusherDemo.PushSetting.voice" = "Voice"; -"LivePusherDemo.PushSetting.standard" = "Standard"; -"LivePusherDemo.PushSetting.music" = "Music"; -"LivePusherDemo.PushSetting.back" = "Back"; -"LivePusherDemo.PushSetting.imagequality" = "Video Quality"; -"LivePusherDemo.PushSetting.cancel" = "Cancel"; -"LivePusherDemo.PushSetting.thesoundquality" = "Audio Quality"; -"LivePusherDemo.PushSetting.openbandwidthadaptation" = "Bandwidth Adaptation"; -"LivePusherDemo.PushSetting.enablehardwareacceleration" = "Hardware Acceleration"; -"LivePusherDemo.PushSetting.opentheearsback" = "In-ear Monitor"; -"LivePusherDemo.PushSetting.qualitypreference" = "Video Quality"; -"LivePusherDemo.PushSetting.thesoundqualitychoice" = "Sound Quality"; - -"LivePusherDemo.PushLogView.coderate" = "Bitrate:"; -"LivePusherDemo.PushLogView.uploadspeed" = "Upload speed:"; -"LivePusherDemo.PushLogView.stepcheckaddresslegitimacy" = "State 1: check address validity"; -"LivePusherDemo.PushLogView.connecttothecloudserver" = "Stage 2: connected to CVM"; -"LivePusherDemo.PushLogView.cameraissuccessfullyopened" = "Stage 3: camera turned on"; -"LivePusherDemo.PushLogView.encoderstartsnormally" = "Stage 4: encoder started"; -"LivePusherDemo.PushLogView.begintopushflow" = "Stage 5: starting push"; - -"LivePusherDemo.PushBgm.numberofcycles" = "循环次数:"; -"LivePusherDemo.PushBgm.onlinemusic" = "在线音乐?"; -"LivePusherDemo.PushBgm.micvolume" = "MIC音量:"; -"LivePusherDemo.PushBgm.bgmvolume" = "BGM音量:"; -"LivePusherDemo.PushBgm.bgmtone" = "BGM音调:"; -"LivePusherDemo.PushBgm.start" = "Start"; -"LivePusherDemo.PushBgm.pause" = "Pause"; -"LivePusherDemo.PushBgm.end" = "End"; -"LivePusherDemo.PushBgm.restore" = "Resume"; - -"LivePusherDemo.ScreenPush.recordthelivescreen" = "Stream Screen Recording"; -"LivePusherDemo.ScreenPush.scantheqrcodeorclick" = "Scan QR code or tap New to generate an address"; -"LivePusherDemo.ScreenPush.verticalscreen" = "Portrait"; -"LivePusherDemo.ScreenPush.landscape" = "Landscape"; -"LivePusherDemo.ScreenPush.startpushstream" = "Start Push"; -"LivePusherDemo.ScreenPush.instructionsforscreenrecording" = "Note:"; -"LivePusherDemo.ScreenPush.gotothecontrolcenterandlongpressthestartscreen" = "In Control Center, touch and hold the record button, and select Video Cloud Toolkt to start screen recording. If you cannot find the button, go to Settings > Control Center to add."; -"LivePusherDemo.ScreenPush.addressinprocess" = "Getting address"; -"LivePusherDemo.ScreenPush.failedtogetpushstreamaddress" = "Failed to get the push address"; -"LivePusherDemo.ScreenPush.tencentcloudpushstream" = "腾讯云录屏推流"; -"LivePusherDemo.ScreenPush.systempleaseupgrade" = "Only iOS 11 and above support screen recording. Please update your system."; -"LivePusherDemo.ScreenPush.enterpushaddress" = "Enter a push address"; -"LivePusherDemo.ScreenPush.gotothecontrolcenter" = "Please start screen recording in Control Center first."; -"LivePusherDemo.ScreenPush.turnonscreenrecordingpushstreams" = "Are you sure you want to start pushing screen recording streams?"; -"LivePusherDemo.ScreenPush.flvplayaddress" = "FLV playback address"; -"LivePusherDemo.ScreenPush.pushoverflow" = "End"; -"LivePusherDemo.ScreenPush.closescreenpushstream" = "Are you sure you want to stop pushing screen recording streams?"; - -"SuperPlayerDemo.UGCUploadList.errorcodexxerrormsgyy" = "Error code: xxx; error message: yyy"; - -"SuperPlayerDemo.DownloadView.deletetask" = "删除任务"; -"SuperPlayerDemo.DownloadView.stoptask" = "停止任务"; -"SuperPlayerDemo.DownloadView.progressxxspeedyy" = "进度 xxx, 速度 yyy"; - -"SuperPlayerDemo.CFDanmaku.usebarrage" = "如果要使用中间弹幕 必须先设置中间弹幕的时间及最大行数"; -"SuperPlayerDemo.CFDanmaku.toomanycomments" = "同一时间评论太多--排不开了--------------------------"; -"SuperPlayerDemo.CFDanmaku.mustsettingbarrage" = "必须先设置弹幕的时间\\最大行数\\弹幕行高"; - -"SuperPlayerDemo.MoviePlayer.xxtherelease" = "xxx释放了"; -"SuperPlayerDemo.MoviePlayer.uploadvideo" = "上传视频"; -"SuperPlayerDemo.MoviePlayer.ondemandlist" = "VOD List"; -"SuperPlayerDemo.MoviePlayer.livelist" = "Live Streaming List"; -"SuperPlayerDemo.MoviePlayer.getvideoerrorxx" = "获取视频失败:xxx"; -"SuperPlayerDemo.MoviePlayer.getlivelisterror" = "直播列表请求失败"; -"SuperPlayerDemo.MoviePlayer.video" = "Video"; -"SuperPlayerDemo.MoviePlayer.fileidrequesterror" = "Failed to request file ID"; -"SuperPlayerDemo.MoviePlayer.lackofparameterxxyyzz" = "缺少参数:appId=xxx,fileId=yyy,psign=zzz"; -"SuperPlayerDemo.MoviePlayer.changetoweibostyle" = "已切换微博风格"; -"SuperPlayerDemo.MoviePlayer.changetonormalstyle" = "已切换默认风格"; -"SuperPlayerDemo.MoviePlayer.newplayvideo" = "这是新播放的视频"; -"SuperPlayerDemo.MoviePlayer.addvideo" = "添加视频"; -"SuperPlayerDemo.MoviePlayer.enterappid" = "Enter a valid app ID"; -"SuperPlayerDemo.MoviePlayer.enterfileid" = "Enter a valid file ID"; -"SuperPlayerDemo.MoviePlayer.enterliveurl" = "请输入直播url"; -"SuperPlayerDemo.MoviePlayer.enterplayeraddress" = "Enter a valid playback address"; - -"SuperPlayerDemo.TXMoviePlayerNetApi.parametererror" = "Incorrect parameter"; -"SuperPlayerDemo.TXMoviePlayerNetApi.requesterror" = "请求失败"; -"SuperPlayerDemo.TXMoviePlayerNetApi.contentisnil" = "内容为空"; -"SuperPlayerDemo.TXMoviePlayerNetApi.invalidformat" = "格式错误"; - -"SuperPlayerDemo.SuperPlayerGuideView.slideupanddowntoadjust" = "Draw up/down to adjust screen brightness"; -"SuperPlayerDemo.SuperPlayerGuideView.slideupanddowntovolume" = "Drag up/down to adjust volume"; -"SuperPlayerDemo.SuperPlayerGuideView.slideleftandrighttofastforward" = "Drag left/right to rewind/fast-forward"; -"SuperPlayerDemo.SuperPlayerGuideView.leftwatchlivecontent" = "Drag to the left to watch earlier streams"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LiveLocalized/en.lproj/LivePlayerLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LiveLocalized/en.lproj/LivePlayerLocalized.strings deleted file mode 100644 index 35d21ac8..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LiveLocalized/en.lproj/LivePlayerLocalized.strings +++ /dev/null @@ -1,272 +0,0 @@ -/* - LivePlayerLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/19. - Copyright © 2021 Tencent. All rights reserved. -*/ - -"LiveLinkMicDemoOld.RoomList.thereisnolivebroadcastinprogress" = "No live stream now"; -"LiveLinkMicDemoOld.RoomList.pleaseclickonthenewbroadcastroom" = "Tap to create a room"; -"LiveLinkMicDemoOld.RoomList.selectthebroadcastroomandclickin" = "Tap to join a room"; -"LiveLinkMicDemoOld.RoomList.createliveroom" = "Create Room"; -"LiveLinkMicDemoOld.RoomList.inthelogin" = "Logging in"; -"LiveLinkMicDemoOld.RoomList.login" = "Log In"; -"LiveLinkMicDemoOld.RoomList.determine" = "OK"; -"LiveLinkMicDemoOld.RoomList.lyf" = "Faye"; -"LiveLinkMicDemoOld.RoomList.lb" = "Ben"; -"LiveLinkMicDemoOld.RoomList.mq" = "Maggie"; -"LiveLinkMicDemoOld.RoomList.wzj" = "Joe"; -"LiveLinkMicDemoOld.RoomList.zy" = "John"; -"LiveLinkMicDemoOld.RoomList.lb" = "Ben"; -"LiveLinkMicDemoOld.RoomList.hy" = "Hobert"; -"LiveLinkMicDemoOld.RoomList.aql" = "Angela"; -"LiveLinkMicDemoOld.RoomList.as" = "Arthur"; -"LiveLinkMicDemoOld.RoomList.cc" = "Chace"; -"LiveLinkMicDemoOld.RoomList.blsy" = "Biden"; -"LiveLinkMicDemoOld.RoomList.dhty" = "Dobbin"; -"LiveLinkMicDemoOld.RoomList.hml" = "Holly"; -"LiveLinkMicDemoOld.RoomList.zgl" = "Lucas"; -"LiveLinkMicDemoOld.RoomList.hz" = "Zachary"; -"LiveLinkMicDemoOld.RoomList.bzhw" = "William"; -"LiveLinkMicDemoOld.RoomList.zk" = "Ken"; -"LiveLinkMicDemoOld.RoomList.lb" = "Ben"; -"LiveLinkMicDemoOld.RoomList.nkll" = "Lulu"; -"LiveLinkMicDemoOld.RoomList.zf" = "Fernand"; -"LiveLinkMicDemoOld.RoomList.liveRoominitfailure" = "LiveRoom initialization failed"; - -"LiveLinkMicDemoOld.RoomMsgList.systemmessage" = "System message"; -"LiveLinkMicDemoOld.RoomMsgList.me" = "Me"; - -"LiveLinkMicDemoOld.RoomNew.createliveroom" = "Create Room"; -"LiveLinkMicDemoOld.RoomNew.liveroomname" = "Room Name"; -"LiveLinkMicDemoOld.RoomNew.enterthenameofthestudio" = "Enter a room name"; -"LiveLinkMicDemoOld.RoomNew.beginlive" = "Start"; -"LiveLinkMicDemoOld.RoomNew.prompt" = "Note"; -"LiveLinkMicDemoOld.Live.LinkMicNew.checknetworkandtry" = "Please check the network status and try again"; -"LiveLinkMicDemoOld.RoomNew.nameoftheliveroomcannotbeempty" = "Room name cannot be empty"; -"LiveLinkMicDemoOld.RoomNew.liveroomnamelengthexceedslimit" = "Name length exceeded the limit"; - -"LiveLinkMicDemoOld.RoomPlayer.entertextcontent" = "Send a message"; -"LiveLinkMicDemoOld.RoomPlayer.send" = "Send"; -"LiveLinkMicDemoOld.RoomPlayer.connectionsuccessful" = "Connected"; -"LiveLinkMicDemoOld.RoomPlayer.enterliveroomfailed" = "Failed to enter the room"; -"LiveLinkMicDemoOld.RoomPlayer.messagecannotbeempty" = "You cannot send an empty message"; -"LiveLinkMicDemoOld.RoomPlayer.liveroomhasbeendisbanded" = "The room is closed"; -"LiveLinkMicDemoOld.RoomPlayer.playxx" = "Playback: userID[xxx] userName[yyy] accelerateURL[zzz]"; - -"LiveLinkMicDemoOld.RoomPusher.selecttheanchor" = "Select Anchor"; -"LiveLinkMicDemoOld.RoomPusher.nicknamexx" = "Nickname: xxx"; -"LiveLinkMicDemoOld.RoomPusher.pkrequestsentwaiting" = "Your request to compete has been sent. Please wait for reply."; -"LiveLinkMicDemoOld.RoomPusher.yourrequestacceptedstartpk" = "Your request was accepted. The competition starts."; -"LiveLinkMicDemoOld.RoomPusher.imaudioandvideochatrooms" = "The number of chat rooms created has reached the maximum. Please go to the Tencent Cloud website to enable **IM Audio-Video Chat Room** for your\r\naccount"; -"LiveLinkMicDemoOld.RoomPusher.toopen" = "Go to the Website"; -"LiveLinkMicDemoOld.RoomPusher.confirm" = "OK"; -"LiveLinkMicDemoOld.RoomPusher.failedtocreatealivebooth" = "Failed to create room"; -"LiveLinkMicDemoOld.RoomPusher.pleasewaithostisbusy" = "The anchor is busy. Please wait."; -"LiveLinkMicDemoOld.RoomPusher.xxrequestwheat" = "[xxx] requested to co-anchor"; -"LiveLinkMicDemoOld.RoomPusher.refusedto" = "Decline"; -"LiveLinkMicDemoOld.RoomPusher.anchordoesnotyourpk" = "The anchor declined your request to compete"; -"LiveLinkMicDemoOld.RoomPusher.accept" = "Accept"; -"LiveLinkMicDemoOld.RoomPusher.theendpk" = "The anchor ended competition"; -"LiveLinkMicDemoOld.RoomPusher.anchordoesnotyourconnection" = "The anchor declined your request to co-anchor"; -"LiveLinkMicDemoOld.RoomPusher.xxrequestpk" = "[xxx] requested to compete"; - -"LiveLinkMicDemoOld.RoomTableCell.liveroomid" = "Room ID:"; -"LiveLinkMicDemoOld.RoomTableCell.onlinenumber" = "Online users:"; -"LiveLinkMicDemoOld.RoomTableCell.xxxpeople" = "xxx"; - -"LiveLinkMicDemoOld.MLVBLiveRoom.initIMSDKxxyyzz" = "IM SDK initialization: appID[xxx] userID[yyy] timestamp[zzz]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.imloginbackxxyy" = "IM login: errCode[xxx] errMsg[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.loginsuccess" = "Logged in"; -"LiveLinkMicDemoOld.MLVBLiveRoom.loginfailed" = "Login failed"; -"LiveLinkMicDemoOld.MLVBLiveRoom.initliveroomfailedxxyy" = "Failed to initialize LiveRoom: errorCode[xxx] errorMsg[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.imforcedoffline" = "IM force logout"; -"LiveLinkMicDemoOld.MLVBLiveRoom.requestgetliveroom" = "Request room list: index[xxx] cnt[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.joinimfinishxxyy" = "Joined IM group: errCode[xxx] errMsg[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.enterroomfailed" = "Failed to enter the room. Could not get the room list."; -"LiveLinkMicDemoOld.MLVBLiveRoom.invalidplaybackaddress" = "Invalid playback address or no data now"; -"LiveLinkMicDemoOld.MLVBLiveRoom.joinroomfailedxx" = "Failed to enter the room IM: xxx"; -"LiveLinkMicDemoOld.MLVBLiveRoom.leaveimfinishxxyy" = "Quitted IM group: errCode[xxx] errMsg[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.notjoinroom" = "Not in the room"; -"LiveLinkMicDemoOld.MLVBLiveRoom.donothavepking" = "No ongoing competition"; -"LiveLinkMicDemoOld.MLVBLiveRoom.liveroomloginxx" = "LiveRoom login successful, userID[xxx]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.liveroomloginfailedxx" = "LiveRoom login failed: error[xxx]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.networktimeout" = "Network request timed out. Please check your network."; -"LiveLinkMicDemoOld.MLVBLiveRoom.anchordidnotprocessconnectionrequest" = "The anchor did not respond to your co-anchoring request"; -"LiveLinkMicDemoOld.MLVBLiveRoom.anchordidnotprocesspk" = "The anchor did not respond to your competition request or response timeout"; -"LiveLinkMicDemoOld.MLVBLiveRoom.joinroomxxyyzz" = "Joined room: userID[xxx] userName[yyy] playUrl[zzz]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.leaveroomxxyy" = "Left room: userID[xxx] userName[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.pushstreamdisconnected" = "Push interrupted. Please check your network."; -"LiveLinkMicDemoOld.MLVBLiveRoom.failedtogetcamerapermission" = "Failed to get camera permission. Please go to Privacy > Camera to grant the permission"; -"LiveLinkMicDemoOld.MLVBLiveRoom.failedtogetmicrophonepermission" = "Failed to get mic permission. Please go to Privacy > Microphone to grant the permission"; -"LiveLinkMicDemoOld.MLVBLiveRoom.groupisusedxx" = "Group xxx is being used and you are the owner. You don't need to create again."; -"LiveLinkMicDemoOld.MLVBLiveRoom.thecloudcommunicationaccountyou" = "The number of chat rooms created has reached the maximum. Please go to the Tencent Cloud website (https://buy.cloud.tencent.com/avc) to enable **IM Audio-Video Chat Room** for your account."; -"LiveLinkMicDemoOld.MLVBLiveRoom.startrequestxxyy" = "Requesting xxx, yyy"; -"LiveLinkMicDemoOld.MLVBLiveRoom.requestxxyybackzz" = "Request xxx yyy, zzz returned "; -"LiveLinkMicDemoOld.MLVBLiveRoom.success" = "succeeded"; -"LiveLinkMicDemoOld.MLVBLiveRoom.failed" = "failed"; -"LiveLinkMicDemoOld.MLVBLiveRoom.requestxxerroryy" = "Failed to request xxx: error[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.networktimeoutchecknetworksettingxx" = "[MLVBLiveRoom] Network request timed out. Please check your network: xxx"; -"LiveLinkMicDemoOld.MLVBLiveRoom.isdestruction" = "[MLVBLiveRoom] The room was terminated in MLVBLiveRoom "; -"LiveLinkMicDemoOld.MLVBLiveRoom.startpushfailedxx" = "[MLVBLiveRoom] Failed to start stream pushing: xxx"; -"LiveLinkMicDemoOld.MLVBLiveRoom.requestfailedxx" = "merge_video_stream request failed: error[xxx]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.appsvrmsgrequestxxyyzzmmnn" = "AppSvr responded to the merge_video_stream request: errCode[xxx] errMsg[yyy] description[code = zzz message = mmm timestamp = nnn]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.roomxxxwasdisbanded" = "Room [xxx] was closed"; -"LiveLinkMicDemoOld.MLVBLiveRoom.rogerthehostxxyy" = "Received a co-anchoring request from anchor [xxx-yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.receivethebiganchortorespondxxyy" = "Received response from the room owner: :result[xxx] message[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.receiveanchorkickoutthenewsofevenwheat" = "Received a message that your co-anchoring was ended by the room owner"; -"LiveLinkMicDemoOld.MLVBLiveRoom.receiveroomanchorpkrequestxxyy" = "Received a competition request from anchor [yyy] in room [xxx]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.pushstreamdisconnectedxxyyzzmm" = "Received response from anchor [yyy] in room [xxx]: result[zzz] message[mmm]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.receiveroomanchorpkendmsgxxyy" = "Received a message that anchor [yyy] in room [xxx] ended competition"; - -"LivePlayerDemo.PlayViewController.pleaseenterorscantheqrcode" = "Enter a playback address or scan QR code"; -"LivePlayerDemo.PlayViewController.livestreamingplayer" = "Live Streaming Player"; -"LivePlayerDemo.PlayViewController.delayadjustment" = "Latency Setting"; -"LivePlayerDemo.PlayViewController.speed" = "Fast"; -"LivePlayerDemo.PlayViewController.smooth" = "Smooth"; -"LivePlayerDemo.PlayViewController.auto" = "Auto"; -"LivePlayerDemo.PlayViewController.iosversionbelow" = "Your iOS is below 8.2 and does not support hardware acceleration"; -"LivePlayerDemo.PlayViewController.switchtoharddecoding" = "Switched to hardware decoding. The playback restarts."; -"LivePlayerDemo.PlayViewController.switchtosoftdecoding" = "Switched to software decoding. The playback restarts."; -"LivePlayerDemo.PlayViewController.lowdelayplayback" = "Low-latency Play"; -"LivePlayerDemo.PlayViewController.lowdelaypullstreamaddress" = "Low-latency pull requires hotlink protection signature. See https://cloud.tencent.com/document/product/454/7880#RealTimePlay"; -"LivePlayerDemo.PlayViewController.playaddressisnotlegal" = "Invalid playback address. Only RTMP and FLV are supported for live streaming currently"; -"LivePlayerDemo.PlayViewController.playerstartfailed" = "Failed to start the player"; -"LivePlayerDemo.PlayViewController.changewifitosee" = "Do you want to wait till you are connected to Wi-Fi to watch?"; -"LivePlayerDemo.PlayViewController.yes" = "Yes"; -"LivePlayerDemo.PlayViewController.no" = "No"; -"LivePlayerDemo.PlayViewController.failedtogetlowdelayplaybackaddress" = "Failed to get the low-latency playback address"; -"LivePlayerDemo.PlayViewController.testaddressfromonline" = "Screen recording streams in UTC time are pushed via the test address, and the MLVB SDK for Windows and VCam are used for push"; - -"LivePusherDemo.CameraPush.pleaseinputthepushstream" = "Enter a push address or scan QR code"; -"LivePusherDemo.CameraPush.rtmppullstream" = "RTMP Push"; -"LivePusherDemo.CameraPush.iosemulatordoesnotsupport" = "iOS simulators cannot push or play back streams. Please use a real device."; -"LivePusherDemo.CameraPush.pushstreamaddressisnotvalid" = "Invalid push address. Only RTMP is supported now."; -"LivePusherDemo.CameraPush.thethrusterfailedtostart" = "Failed to start the pusher"; -"LivePusherDemo.CameraPush.off" = "Close"; -"LivePusherDemo.CameraPush.addressacquisitioninprocess" = "Getting address"; -"LivePusherDemo.CameraPush.failedtogetpushstreamaddress" = "Failed to get the playback address"; -"LivePusherDemo.CameraPush.lowlatency" = "Low Latency"; -"LivePusherDemo.CameraPush.lebUrl" = "Leb"; -"LivePusherDemo.CameraPush.rtmpaddressxxflvaddressyyhlsaddresszz" = "RTMP playback address: xxx\n\nFLV playback address: yyy\n\nHLS playback address: zzz\n\nLow-latency playback address: mmm"; -"LivePusherDemo.CameraPush.getaddresssuccess" = "Succeeded"; -"LivePusherDemo.CameraPush.playbackaddresshasbeencopiedtotheclipboard" = "Playback address copied to clipboard"; -"LivePusherDemo.CameraPush.changetowifipushstream" = "Do you want to wait till you are connected to Wi-Fi to push streams?"; -"LivePusherDemo.CameraPush.currentnetworkenvironmentisnotgood" = "Poor network conditions. Try a different network."; -"LivePusherDemo.CameraPush.startloadingassets" = "Loading resources"; -"LivePusherDemo.CameraPush.loadingxx" = "Loading xxx %"; -"LivePusherDemo.CameraPush.assetsloadsuccess" = "Loaded"; -"LivePusherDemo.CameraPush.assetsloadfailed" = "Failed to load resources"; - -"LivePusherDemo.MoreSetting.screenshots" = "Take"; -"LivePusherDemo.MoreSetting.enableprivacymode" = "Private"; -"LivePusherDemo.MoreSetting.turnonmutemode" = "Mute"; -"LivePusherDemo.MoreSetting.turnonviewmirror" = "Playback Mirror"; -"LivePusherDemo.MoreSetting.turnontherearflash" = "Back Flashlight"; -"LivePusherDemo.MoreSetting.turnonhorizontalpushflow" = "Landscape Mode"; -"LivePusherDemo.MoreSetting.openingdebuglog" = "Debug Logs"; -"LivePusherDemo.MoreSetting.addwatermark" = "Watermarking"; -"LivePusherDemo.MoreSetting.delaymeasurementbar" = "Latency Measurement Toolbar"; -"LivePusherDemo.MoreSetting.manuallyclickexposureandfocus" = "Tap to Adjust Focus/Exposure"; -"LivePusherDemo.MoreSetting.gesturetozoominonthepreview" = "Pinch to Zoom"; -"LivePusherDemo.MoreSetting.enableaudiopushstream" = "Audio-Only Stream"; -"LivePusherDemo.MoreSetting.localscreenshots" = "Local Screenshot"; -"LivePusherDemo.MoreSetting.sendmessage" = "Send Message"; - -"LivePusherDemo.PushSetting.setting" = "Settings"; -"LivePusherDemo.PushSetting.bluray" = "Blu-ray"; -"LivePusherDemo.PushSetting.superclear" = "UHD"; -"LivePusherDemo.PushSetting.hd" = "HD"; -"LivePusherDemo.PushSetting.standarddefinition" = "SD"; -"LivePusherDemo.PushSetting.lianmaibighost" = "Co-anchor (with Room Owner)"; -"LivePusherDemo.PushSetting.lianmaismallhost" = "Co-anchor"; -"LivePusherDemo.PushSetting.realtimeaudioandvideo" = "TRTC"; -"LivePusherDemo.PushSetting.voice" = "Voice"; -"LivePusherDemo.PushSetting.standard" = "Standard"; -"LivePusherDemo.PushSetting.music" = "Music"; -"LivePusherDemo.PushSetting.back" = "Back"; -"LivePusherDemo.PushSetting.imagequality" = "Video Quality"; -"LivePusherDemo.PushSetting.cancel" = "Cancel"; -"LivePusherDemo.PushSetting.thesoundquality" = "Audio Quality"; -"LivePusherDemo.PushSetting.openbandwidthadaptation" = "Bandwidth Adaptation"; -"LivePusherDemo.PushSetting.enablehardwareacceleration" = "Hardware Acceleration"; -"LivePusherDemo.PushSetting.opentheearsback" = "In-ear Monitor"; -"LivePusherDemo.PushSetting.qualitypreference" = "Video Quality"; -"LivePusherDemo.PushSetting.thesoundqualitychoice" = "Sound Quality"; - -"LivePusherDemo.PushLogView.videobitrate" = "Video bitrate:"; -"LivePusherDemo.PushLogView.audiobitrate" = "Audio Bitrate:"; -"LivePusherDemo.PushLogView.uploadspeed" = "Upload speed:"; -"LivePusherDemo.PushLogView.stepcheckaddresslegitimacy" = "State 1: check address validity"; -"LivePusherDemo.PushLogView.connecttothecloudserver" = "Stage 2: connected to CVM"; -"LivePusherDemo.PushLogView.cameraissuccessfullyopened" = "Stage 3: camera turned on"; -"LivePusherDemo.PushLogView.encoderstartsnormally" = "Stage 4: encoder started"; -"LivePusherDemo.PushLogView.begintopushflow" = "Stage 5: starting push"; - -"LivePusherDemo.PushBgm.numberofcycles" = "Loop times:"; -"LivePusherDemo.PushBgm.onlinemusic" = "Online music?"; -"LivePusherDemo.PushBgm.micvolume" = "Mic volume:"; -"LivePusherDemo.PushBgm.bgmvolume" = "Music volume:"; -"LivePusherDemo.PushBgm.bgmtone" = "Music pitch:"; -"LivePusherDemo.PushBgm.start" = "Start"; -"LivePusherDemo.PushBgm.pause" = "Pause"; -"LivePusherDemo.PushBgm.end" = "End"; -"LivePusherDemo.PushBgm.restore" = "Resume"; - -"LivePusherDemo.ScreenPush.recordthelivescreen" = "Stream Screen Recording"; -"LivePusherDemo.ScreenPush.scantheqrcodeorclick" = "Scan QR code or tap New to generate an address"; -"LivePusherDemo.ScreenPush.verticalscreen" = "Portrait"; -"LivePusherDemo.ScreenPush.landscape" = "Landscape"; -"LivePusherDemo.ScreenPush.startpushstream" = "Start"; -"LivePusherDemo.ScreenPush.instructionsforscreenrecording" = "Note:"; -"LivePusherDemo.ScreenPush.gotothecontrolcenterandlongpressthestartscreen" = "Before tapping Start to push streams, touch and hold the record button in Control Center, and select Video Cloud Toolkit to start screen recording. If you cannot find the button, add it in Settings > Control Center."; -"LivePusherDemo.ScreenPush.addressinprocess" = "Getting address"; -"LivePusherDemo.ScreenPush.failedtogetpushstreamaddress" = "Failed to get the push address"; -"LivePusherDemo.ScreenPush.tencentcloudpushstream" = "Stream Screen Recording"; -"LivePusherDemo.ScreenPush.systempleaseupgrade" = "Only iOS 11 and above support screen recording. Please update your system."; -"LivePusherDemo.ScreenPush.enterpushaddress" = "Enter a push address"; -"LivePusherDemo.ScreenPush.gotothecontrolcenter" = "Please start screen recording in Control Center first."; -"LivePusherDemo.ScreenPush.turnonscreenrecordingpushstreams" = "Are you sure you want to push screen recording streams?"; -"LivePusherDemo.ScreenPush.flvplayaddress" = "FLV playback address"; -"LivePusherDemo.ScreenPush.pushoverflow" = "End"; -"LivePusherDemo.ScreenPush.closescreenpushstream" = "Are you sure you want to stop pushing screen recording streams?"; - -"SuperPlayerDemo.UGCUploadList.errorcodexxerrormsgyy" = "Error code; error message: yyy"; - -"SuperPlayerDemo.DownloadView.deletetask" = "Delete Task"; -"SuperPlayerDemo.DownloadView.stoptask" = "Stop Task"; -"SuperPlayerDemo.DownloadView.progressxxspeedyy" = "Progress xxx, speed yyy"; - -"SuperPlayerDemo.CFDanmaku.usebarrage" = "To enable mid-screen comments, you need to set the time range for comments and maximum number of rows allowed"; -"SuperPlayerDemo.CFDanmaku.toomanycomments" = "Too many comments. Insufficient space."; -"SuperPlayerDemo.CFDanmaku.mustsettingbarrage" = "You must first set the time range, maximum number of rows, and row height for comments"; - -"SuperPlayerDemo.MoviePlayer.xxtherelease" = "xxx was released"; -"SuperPlayerDemo.MoviePlayer.uploadvideo" = "Upload Video"; -"SuperPlayerDemo.MoviePlayer.ondemandlist" = "VOD List"; -"SuperPlayerDemo.MoviePlayer.livelist" = "Live Streaming List"; -"SuperPlayerDemo.MoviePlayer.getvideoerrorxx" = "Failed to get video: xxx"; -"SuperPlayerDemo.MoviePlayer.getlivelisterror" = "Failed to request the live stream list"; -"SuperPlayerDemo.MoviePlayer.video" = "Video"; -"SuperPlayerDemo.MoviePlayer.fileidrequesterror" = "Failed to request file ID"; -"SuperPlayerDemo.MoviePlayer.lackofparameterxxyyzz" = "Parameter missing: appId=xxx,fileId=yyy,psign=zzz"; -"SuperPlayerDemo.MoviePlayer.changetoweibostyle" = "Switched to Weibo style"; -"SuperPlayerDemo.MoviePlayer.changetonormalstyle" = "Switched to default style"; -"SuperPlayerDemo.MoviePlayer.newplayvideo" = "This is a newly played video."; -"SuperPlayerDemo.MoviePlayer.addvideo" = "Add Video"; -"SuperPlayerDemo.MoviePlayer.enterappid" = "Enter an app ID"; -"SuperPlayerDemo.MoviePlayer.enterfileid" = "Enter a file ID"; -"SuperPlayerDemo.MoviePlayer.enterliveurl" = "Enter a live streaming URL"; -"SuperPlayerDemo.MoviePlayer.enterplayeraddress" = "Enter a valid playback address"; - -"SuperPlayerDemo.TXMoviePlayerNetApi.parametererror" = "Parameter error"; -"SuperPlayerDemo.TXMoviePlayerNetApi.requesterror" = "Request failed"; -"SuperPlayerDemo.TXMoviePlayerNetApi.contentisnil" = "No content"; -"SuperPlayerDemo.TXMoviePlayerNetApi.invalidformat" = "Invalid format"; - -"SuperPlayerDemo.SuperPlayerGuideView.slideupanddowntoadjust" = "Slide up/down to adjust brightness"; -"SuperPlayerDemo.SuperPlayerGuideView.slideupanddowntovolume" = "Slide up/down to adjust volume"; -"SuperPlayerDemo.SuperPlayerGuideView.slideleftandrighttofastforward" = "Slide left/right to rewind/fast-forward"; -"SuperPlayerDemo.SuperPlayerGuideView.leftwatchlivecontent" = "Drag left to watch earlier streams"; -"MLVB.MainMenu.pushscreen" = "Push (Screen Recording)"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LiveLocalized/zh-Hans.lproj/LivePlayerLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LiveLocalized/zh-Hans.lproj/LivePlayerLocalized.strings deleted file mode 100644 index e1100bca..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LiveLocalized/zh-Hans.lproj/LivePlayerLocalized.strings +++ /dev/null @@ -1,274 +0,0 @@ -/* - LivePlayerLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/19. - Copyright © 2021 Tencent. All rights reserved. -*/ - -"LiveLinkMicDemoOld.RoomList.thereisnolivebroadcastinprogress" = "当前没有进行中的直播"; -"LiveLinkMicDemoOld.RoomList.pleaseclickonthenewbroadcastroom" = "请点击新建直播间"; -"LiveLinkMicDemoOld.RoomList.selectthebroadcastroomandclickin" = "选择直播间点击进入"; -"LiveLinkMicDemoOld.RoomList.createliveroom" = "新建直播间"; -"LiveLinkMicDemoOld.RoomList.inthelogin" = "登录中…"; -"LiveLinkMicDemoOld.RoomList.login" = "登录"; -"LiveLinkMicDemoOld.RoomList.determine" = "确定"; -"LiveLinkMicDemoOld.RoomList.lyf" = "李元芳"; -"LiveLinkMicDemoOld.RoomList.lb" = "刘备"; -"LiveLinkMicDemoOld.RoomList.mq" = "梦奇"; -"LiveLinkMicDemoOld.RoomList.wzj" = "王昭君"; -"LiveLinkMicDemoOld.RoomList.zy" = "周瑜"; -"LiveLinkMicDemoOld.RoomList.lb" = "鲁班"; -"LiveLinkMicDemoOld.RoomList.hy" = "后裔"; -"LiveLinkMicDemoOld.RoomList.aql" = "安其拉"; -"LiveLinkMicDemoOld.RoomList.as" = "亚瑟"; -"LiveLinkMicDemoOld.RoomList.cc" = "曹操"; -"LiveLinkMicDemoOld.RoomList.blsy" = "百里守约"; -"LiveLinkMicDemoOld.RoomList.dhty" = "东皇太一"; -"LiveLinkMicDemoOld.RoomList.hml" = "花木兰"; -"LiveLinkMicDemoOld.RoomList.zgl" = "诸葛亮"; -"LiveLinkMicDemoOld.RoomList.hz" = "黄忠"; -"LiveLinkMicDemoOld.RoomList.bzhw" = "不知火舞"; -"LiveLinkMicDemoOld.RoomList.zk" = "钟馗"; -"LiveLinkMicDemoOld.RoomList.lb" = "李白"; -"LiveLinkMicDemoOld.RoomList.nkll" = "娜可露露"; -"LiveLinkMicDemoOld.RoomList.zf" = "张飞"; -"LiveLinkMicDemoOld.RoomList.liveRoominitfailure" = "LiveRoom init失败"; - -"LiveLinkMicDemoOld.RoomMsgList.systemmessage" = "系统消息"; -"LiveLinkMicDemoOld.RoomMsgList.me" = "我"; - -"LiveLinkMicDemoOld.RoomNew.createliveroom" = "创建直播间"; -"LiveLinkMicDemoOld.RoomNew.liveroomname" = "直播间名称"; -"LiveLinkMicDemoOld.RoomNew.enterthenameofthestudio" = "请输入直播间名称"; -"LiveLinkMicDemoOld.RoomNew.beginlive" = "开始直播"; -"LiveLinkMicDemoOld.RoomNew.prompt" = "提示"; -"LiveLinkMicDemoOld.Live.LinkMicNew.checknetworkandtry" = "请检查网络状态,然后重试"; -"LiveLinkMicDemoOld.RoomNew.nameoftheliveroomcannotbeempty" = "直播间名称不能为空"; -"LiveLinkMicDemoOld.RoomNew.liveroomnamelengthexceedslimit" = "直播间名称长度超过限制"; - -"LiveLinkMicDemoOld.RoomPlayer.entertextcontent" = "输入文字内容"; -"LiveLinkMicDemoOld.RoomPlayer.send" = "发送"; -"LiveLinkMicDemoOld.RoomPlayer.connectionsuccessful" = "连接成功"; -"LiveLinkMicDemoOld.RoomPlayer.enterliveroomfailed" = "进入直播间失败"; -"LiveLinkMicDemoOld.RoomPlayer.messagecannotbeempty" = "消息不能为空"; -"LiveLinkMicDemoOld.RoomPlayer.liveroomhasbeendisbanded" = "直播间已被解散"; -"LiveLinkMicDemoOld.RoomPlayer.playxx" = "播放: userID[xxx] userName[yyy] accelerateURL[zzz]"; - -"LiveLinkMicDemoOld.RoomPusher.selecttheanchor" = "请选择主播"; -"LiveLinkMicDemoOld.RoomPusher.nicknamexx" = "昵称: xxx"; -"LiveLinkMicDemoOld.RoomPusher.pkrequestsentwaiting" = "PK请求已发出,等待对方的接受..."; -"LiveLinkMicDemoOld.RoomPusher.yourrequestacceptedstartpk" = "对方接受了您的请求,开始PK"; -"LiveLinkMicDemoOld.RoomPusher.imaudioandvideochatrooms" = "您当前使用的云通讯账号未开通音视频聊天室功能,创建聊天室数量超过限额,请前往腾讯云官网开通【IM音视频聊天室】"; -"LiveLinkMicDemoOld.RoomPusher.toopen" = "去开通"; -"LiveLinkMicDemoOld.RoomPusher.confirm" = "确认"; -"LiveLinkMicDemoOld.RoomPusher.failedtocreatealivebooth" = "创建直播间失败"; -"LiveLinkMicDemoOld.RoomPusher.pleasewaithostisbusy" = "请稍后,主播正忙"; -"LiveLinkMicDemoOld.RoomPusher.xxrequestwheat" = "[xxx]请求连麦"; -"LiveLinkMicDemoOld.RoomPusher.refusedto" = "拒绝"; -"LiveLinkMicDemoOld.RoomPusher.anchordoesnotyourpk" = "主播不同意您的PK"; -"LiveLinkMicDemoOld.RoomPusher.accept" = "接受"; -"LiveLinkMicDemoOld.RoomPusher.theendpk" = "对方结束PK"; -"LiveLinkMicDemoOld.RoomPusher.anchordoesnotyourconnection" = "主播不同意您的连麦"; -"LiveLinkMicDemoOld.RoomPusher.xxrequestpk" = "[xxx]请求PK"; - -"LiveLinkMicDemoOld.RoomTableCell.liveroomid" = "直播间ID:"; -"LiveLinkMicDemoOld.RoomTableCell.onlinenumber" = "在线人数:"; -"LiveLinkMicDemoOld.RoomTableCell.xxxpeople" = "xxx人"; - -"LiveLinkMicDemoOld.MLVBLiveRoom.initIMSDKxxyyzz" = "初始化IMSDK: appID[xxx] userID[yyy] timestamp[zzz]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.imloginbackxxyy" = "IM登录返回: errCode[xxx] errMsg[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.loginsuccess" = "登录成功"; -"LiveLinkMicDemoOld.MLVBLiveRoom.loginfailed" = "登录失败"; -"LiveLinkMicDemoOld.MLVBLiveRoom.initliveroomfailedxxyy" = "初始化LiveRoom失败: errorCode[xxx] errorMsg[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.imforcedoffline" = "IM 被强制下线"; -"LiveLinkMicDemoOld.MLVBLiveRoom.requestgetliveroom" = "发起获取房间列表请求: index[xxx] cnt[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.joinimfinishxxyy" = "加入IMGroup完成: errCode[xxx] errMsg[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.enterroomfailed" = "进房失败\n获取房间信息失败"; -"LiveLinkMicDemoOld.MLVBLiveRoom.invalidplaybackaddress" = "播放地址无效或者当前没有数据"; -"LiveLinkMicDemoOld.MLVBLiveRoom.joinroomfailedxx" = "进房失败\nIM:xxx"; -"LiveLinkMicDemoOld.MLVBLiveRoom.leaveimfinishxxyy" = "离开IM Group完成: errCode[xxx] errMsg[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.notjoinroom" = "未进入房间"; -"LiveLinkMicDemoOld.MLVBLiveRoom.donothavepking" = "没有正在进行的PK"; -"LiveLinkMicDemoOld.MLVBLiveRoom.liveroomloginxx" = "LiveRoom登录, userID[xxx]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.liveroomloginfailedxx" = "LiveRoom登录失败: error[xxx]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.networktimeout" = "网络请求超时,请检查网络设置"; -"LiveLinkMicDemoOld.MLVBLiveRoom.anchordidnotprocessconnectionrequest" = "主播未处理您的连麦请求"; -"LiveLinkMicDemoOld.MLVBLiveRoom.anchordidnotprocesspk" = "主播未处理您的PK请求或者超时"; -"LiveLinkMicDemoOld.MLVBLiveRoom.joinroomxxyyzz" = "加入房间: userID[xxx] userName[yyy] playUrl[zzz]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.leaveroomxxyy" = "离开房间: userID[xxx] userName[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.pushstreamdisconnected" = "推流断开,请检查网络设置"; -"LiveLinkMicDemoOld.MLVBLiveRoom.failedtogetcamerapermission" = "获取摄像头权限失败,请前往隐私-相机设置里面打开应用权限"; -"LiveLinkMicDemoOld.MLVBLiveRoom.failedtogetmicrophonepermission" = "获取麦克风权限失败,请前往隐私-麦克风设置里面打开应用权限"; -"LiveLinkMicDemoOld.MLVBLiveRoom.groupisusedxx" = "群组 xxx 已被使用,并且操作者为群主,可以直接使用"; -"LiveLinkMicDemoOld.MLVBLiveRoom.thecloudcommunicationaccountyou" = "您当前使用的云通讯账号未开通音视频聊天室功能,创建聊天室数量超过限额,请前往腾讯云官网开通【IM音视频聊天室】 https://buy.cloud.tencent.com/avc"; -"LiveLinkMicDemoOld.MLVBLiveRoom.startrequestxxyy" = "开始请求 xxx, yyy"; -"LiveLinkMicDemoOld.MLVBLiveRoom.requestxxyybackzz" = "请求 xxx yyy, 返回 zzz"; -"LiveLinkMicDemoOld.MLVBLiveRoom.success" = "成功"; -"LiveLinkMicDemoOld.MLVBLiveRoom.failed" = "失败"; -"LiveLinkMicDemoOld.MLVBLiveRoom.requestxxerroryy" = "请求 xxx 失败: error[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.networktimeoutchecknetworksettingxx" = "[MLVBLiveRoom] 网络请求超时,请检查网络设置, xxx"; -"LiveLinkMicDemoOld.MLVBLiveRoom.isdestruction" = "[MLVBLiveRoom] MLVBLiveRoom 已经被销毁"; -"LiveLinkMicDemoOld.MLVBLiveRoom.startpushfailedxx" = "[MLVBLiveRoom] 启动推流失败, xxx"; -"LiveLinkMicDemoOld.MLVBLiveRoom.requestfailedxx" = "merge_video_stream请求失败: error[xxx]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.appsvrmsgrequestxxyyzzmmnn" = "AppSvr回复merge_video_stream请求: errCode[xxx] errMsg[yyy] description[code = zzz message = mmm timestamp = nnn]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.roomxxxwasdisbanded" = "房间[xxx]被解散"; -"LiveLinkMicDemoOld.MLVBLiveRoom.rogerthehostxxyy" = "收到小主播[xxx-yyy]连麦请求"; -"LiveLinkMicDemoOld.MLVBLiveRoom.receivethebiganchortorespondxxyy" = "收到大主播回应连麦请求:result[xxx] message[yyy]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.receiveanchorkickoutthenewsofevenwheat" = "收到被大主播踢出连麦的消息"; -"LiveLinkMicDemoOld.MLVBLiveRoom.receiveroomanchorpkrequestxxyy" = "收到房间[xxx]主播[yyy]的PK请求"; -"LiveLinkMicDemoOld.MLVBLiveRoom.pushstreamdisconnectedxxyyzzmm" = "收到房间[xxx]主播[yyy]回应PK请求:result[zzz] message[mmm]"; -"LiveLinkMicDemoOld.MLVBLiveRoom.receiveroomanchorpkendmsgxxyy" = "收到房间[xxx]主播[yyy]的结束PK消息"; - -"LivePlayerDemo.PlayViewController.pleaseenterorscantheqrcode" = "请输入或扫二维码获取播放地址"; -"LivePlayerDemo.PlayViewController.livestreamingplayer" = "直播播放器"; -"LivePlayerDemo.PlayViewController.delayadjustment" = "延迟调整"; -"LivePlayerDemo.PlayViewController.speed" = "极速"; -"LivePlayerDemo.PlayViewController.smooth" = "流畅"; -"LivePlayerDemo.PlayViewController.auto" = "自动"; -"LivePlayerDemo.PlayViewController.iosversionbelow" = "iOS 版本低于8.0,不支持硬件加速."; -"LivePlayerDemo.PlayViewController.switchtoharddecoding" = "切换为硬解码. 重启播放流程"; -"LivePlayerDemo.PlayViewController.switchtosoftdecoding" = "切换为软解码. 重启播放流程"; -"LivePlayerDemo.PlayViewController.lowdelayplayback" = "低延时播放"; -"LivePlayerDemo.PlayViewController.lowdelaypullstreamaddress" = "低延时拉流地址需要防盗链签名,详情参考 https://cloud.tencent.com/document/product/454/7880#RealTimePlay"; -"LivePlayerDemo.PlayViewController.playaddressisnotlegal" = "播放地址不合法,直播目前仅支持rtmp,flv播放方式!"; -"LivePlayerDemo.PlayViewController.playerstartfailed" = "播放器启动失败"; -"LivePlayerDemo.PlayViewController.changewifitosee" = "您要切换到Wifi再观看吗?"; -"LivePlayerDemo.PlayViewController.yes" = "是"; -"LivePlayerDemo.PlayViewController.no" = "否"; -"LivePlayerDemo.PlayViewController.failedtogetlowdelayplaybackaddress" = "获取低延时播放地址失败"; -"LivePlayerDemo.PlayViewController.testaddressfromonline" = "测试地址的影像来自在线UTC时间的录屏推流,推流工具采用移动直播 Windows SDK + VCam"; - -"LivePusherDemo.CameraPush.pleaseinputthepushstream" = "请输入推流地址或者扫二维码进行输入"; -"LivePusherDemo.CameraPush.rtmppullstream" = "RTMP推流"; -"LivePusherDemo.CameraPush.iosemulatordoesnotsupport" = "iOS模拟器不支持推流和播放,请使用真机体验"; -"LivePusherDemo.CameraPush.pushstreamaddressisnotvalid" = "推流地址不合法,目前只支持rtmp推流!"; -"LivePusherDemo.CameraPush.thethrusterfailedtostart" = "推流器启动失败"; -"LivePusherDemo.CameraPush.off" = "关闭"; -"LivePusherDemo.CameraPush.addressacquisitioninprocess" = "地址获取中"; -"LivePusherDemo.CameraPush.failedtogetpushstreamaddress" = "获取推流地址失败"; -"LivePusherDemo.CameraPush.lowlatency" = "低延时"; -"LivePusherDemo.CameraPush.lebUrl" = "快直播"; -"LivePusherDemo.CameraPush.rtmpaddressxxflvaddressyyhlsaddresszz" = "rtmp播放地址:xxx\n\nflv播放地址:yyy\n\nhls播放地址:zzz\n\n低延时播放地址:mmm"; -"LivePusherDemo.CameraPush.getaddresssuccess" = "获取地址成功"; -"LivePusherDemo.CameraPush.playbackaddresshasbeencopiedtotheclipboard" = "播放地址已复制到剪贴板"; -"LivePusherDemo.CameraPush.changetowifipushstream" = "您要切换到WiFi再推流吗?"; -"LivePusherDemo.CameraPush.currentnetworkenvironmentisnotgood" = "您当前的网络环境不佳,请尽快更换网络保证正常直播"; -"LivePusherDemo.CameraPush.startloadingassets" = "开始加载资源"; -"LivePusherDemo.CameraPush.loadingxx" = "正在加载资源xxx %"; -"LivePusherDemo.CameraPush.assetsloadsuccess" = "资源加载成功"; -"LivePusherDemo.CameraPush.assetsloadfailed" = "资源加载失败"; - -"LivePusherDemo.MoreSetting.screenshots" = "截图"; -"LivePusherDemo.MoreSetting.enableprivacymode" = "开启隐私模式"; -"LivePusherDemo.MoreSetting.turnonmutemode" = "开启静音模式"; -"LivePusherDemo.MoreSetting.turnonviewmirror" = "开启观看端镜像"; -"LivePusherDemo.MoreSetting.turnontherearflash" = "开启后置闪光灯"; -"LivePusherDemo.MoreSetting.turnonhorizontalpushflow" = "开启横屏推流"; -"LivePusherDemo.MoreSetting.openingdebuglog" = "开启调试日志"; -"LivePusherDemo.MoreSetting.addwatermark" = "添加图像水印"; -"LivePusherDemo.MoreSetting.delaymeasurementbar" = "延迟测定工具条"; -"LivePusherDemo.MoreSetting.manuallyclickexposureandfocus" = "手动点击曝光对焦"; -"LivePusherDemo.MoreSetting.gesturetozoominonthepreview" = "手势放大预览画面"; -"LivePusherDemo.MoreSetting.enableaudiopushstream" = "开启纯音频推流"; -"LivePusherDemo.MoreSetting.localscreenshots" = "本地截图"; -"LivePusherDemo.MoreSetting.sendmessage" = "发送消息"; - -"LivePusherDemo.PushSetting.setting" = "设置"; -"LivePusherDemo.PushSetting.bluray" = "蓝光"; -"LivePusherDemo.PushSetting.superclear" = "超清"; -"LivePusherDemo.PushSetting.hd" = "高清"; -"LivePusherDemo.PushSetting.standarddefinition" = "标清"; -"LivePusherDemo.PushSetting.lianmaibighost" = "连麦大主播"; -"LivePusherDemo.PushSetting.lianmaismallhost" = "连麦小主播"; -"LivePusherDemo.PushSetting.realtimeaudioandvideo" = "实时音视频"; -"LivePusherDemo.PushSetting.voice" = "语音"; -"LivePusherDemo.PushSetting.standard" = "标准"; -"LivePusherDemo.PushSetting.music" = "音乐"; -"LivePusherDemo.PushSetting.back" = "返回"; -"LivePusherDemo.PushSetting.imagequality" = "画质"; -"LivePusherDemo.PushSetting.cancel" = "取消"; -"LivePusherDemo.PushSetting.thesoundquality" = "音质"; -"LivePusherDemo.PushSetting.openbandwidthadaptation" = "开启带宽适应"; -"LivePusherDemo.PushSetting.enablehardwareacceleration" = "开启硬件加速"; -"LivePusherDemo.PushSetting.opentheearsback" = "开启耳返"; -"LivePusherDemo.PushSetting.qualitypreference" = "画质偏好"; -"LivePusherDemo.PushSetting.thesoundqualitychoice" = "音质选择"; - -"LivePusherDemo.PushLogView.videobitrate" = "视频码率:"; -"LivePusherDemo.PushLogView.audiobitrate" = "音频码率:"; -"LivePusherDemo.PushLogView.uploadspeed" = "上传网速:"; -"LivePusherDemo.PushLogView.stepcheckaddresslegitimacy" = "阶段一:检查地址合法性"; -"LivePusherDemo.PushLogView.connecttothecloudserver" = "阶段二:连接到云服务器"; -"LivePusherDemo.PushLogView.cameraissuccessfullyopened" = "阶段三:摄像头打开成功"; -"LivePusherDemo.PushLogView.encoderstartsnormally" = "阶段四:编码器正常启动"; -"LivePusherDemo.PushLogView.begintopushflow" = "阶段五:开始进入推流中"; - -"LivePusherDemo.PushBgm.numberofcycles" = "循环次数:"; -"LivePusherDemo.PushBgm.onlinemusic" = "在线音乐?"; -"LivePusherDemo.PushBgm.micvolume" = "MIC音量:"; -"LivePusherDemo.PushBgm.bgmvolume" = "BGM音量:"; -"LivePusherDemo.PushBgm.bgmtone" = "BGM音调:"; -"LivePusherDemo.PushBgm.start" = "开始"; -"LivePusherDemo.PushBgm.pause" = "暂停"; -"LivePusherDemo.PushBgm.end" = "结束"; -"LivePusherDemo.PushBgm.restore" = "恢复"; - -"LivePusherDemo.ScreenPush.recordthelivescreen" = "录屏直播"; -"LivePusherDemo.ScreenPush.scantheqrcodeorclick" = "请扫描二维码或点New生成地址"; -"LivePusherDemo.ScreenPush.verticalscreen" = "竖屏"; -"LivePusherDemo.ScreenPush.landscape" = "横屏"; -"LivePusherDemo.ScreenPush.startpushstream" = "开始推流"; -"LivePusherDemo.ScreenPush.instructionsforscreenrecording" = "屏幕录制操作说明:"; -"LivePusherDemo.ScreenPush.gotothecontrolcenterandlongpressthestartscreen" = "请先到控制中心长按启动屏幕录制(若无此项请从设置中的控制中心里添加)->选择视频云工具包启动后再回到此界面开始推流:"; -"LivePusherDemo.ScreenPush.addressinprocess" = "地址获取中"; -"LivePusherDemo.ScreenPush.failedtogetpushstreamaddress" = "获取推流地址失败"; -"LivePusherDemo.ScreenPush.tencentcloudpushstream" = "腾讯云录屏推流"; -"LivePusherDemo.ScreenPush.systempleaseupgrade" = "录屏只支持iOS11以上系统,请升级!"; -"LivePusherDemo.ScreenPush.enterpushaddress" = "请输入推流地址"; -"LivePusherDemo.ScreenPush.gotothecontrolcenter" = "请先到控制中心->长按启动屏幕录制"; -"LivePusherDemo.ScreenPush.turnonscreenrecordingpushstreams" = "确定要开启屏幕录制推流?"; -"LivePusherDemo.ScreenPush.flvplayaddress" = "flv播放地址"; -"LivePusherDemo.ScreenPush.pushoverflow" = "结束推流"; -"LivePusherDemo.ScreenPush.closescreenpushstream" = "确定要关闭录屏推流?"; - -"SuperPlayerDemo.UGCUploadList.errorcodexxerrormsgyy" = "错误码:xxx 错误信息:yyy"; - -"SuperPlayerDemo.DownloadView.deletetask" = "删除任务"; -"SuperPlayerDemo.DownloadView.stoptask" = "停止任务"; -"SuperPlayerDemo.DownloadView.progressxxspeedyy" = "进度 xxx, 速度 yyy"; - -"SuperPlayerDemo.CFDanmaku.usebarrage" = "如果要使用中间弹幕 必须先设置中间弹幕的时间及最大行数"; -"SuperPlayerDemo.CFDanmaku.toomanycomments" = "同一时间评论太多--排不开了--------------------------"; -"SuperPlayerDemo.CFDanmaku.mustsettingbarrage" = "必须先设置弹幕的时间\\最大行数\\弹幕行高"; - -"SuperPlayerDemo.MoviePlayer.xxtherelease" = "xxx释放了"; -"SuperPlayerDemo.MoviePlayer.uploadvideo" = "上传视频"; -"SuperPlayerDemo.MoviePlayer.ondemandlist" = "点播列表"; -"SuperPlayerDemo.MoviePlayer.livelist" = "直播列表"; -"SuperPlayerDemo.MoviePlayer.getvideoerrorxx" = "获取视频失败:xxx"; -"SuperPlayerDemo.MoviePlayer.getlivelisterror" = "直播列表请求失败"; -"SuperPlayerDemo.MoviePlayer.video" = "视频"; -"SuperPlayerDemo.MoviePlayer.fileidrequesterror" = "fileid请求失败"; -"SuperPlayerDemo.MoviePlayer.lackofparameterxxyyzz" = "缺少参数:appId=xxx,fileId=yyy,psign=zzz"; -"SuperPlayerDemo.MoviePlayer.changetoweibostyle" = "已切换微博风格"; -"SuperPlayerDemo.MoviePlayer.changetonormalstyle" = "已切换默认风格"; -"SuperPlayerDemo.MoviePlayer.newplayvideo" = "这是新播放的视频"; -"SuperPlayerDemo.MoviePlayer.addvideo" = "添加视频"; -"SuperPlayerDemo.MoviePlayer.enterappid" = "请输入appid"; -"SuperPlayerDemo.MoviePlayer.enterfileid" = "请输入fileid"; -"SuperPlayerDemo.MoviePlayer.enterliveurl" = "请输入直播url"; -"SuperPlayerDemo.MoviePlayer.enterplayeraddress" = "请输入正确的播放地址"; - -"SuperPlayerDemo.TXMoviePlayerNetApi.parametererror" = "参数错误"; -"SuperPlayerDemo.TXMoviePlayerNetApi.requesterror" = "请求失败"; -"SuperPlayerDemo.TXMoviePlayerNetApi.contentisnil" = "内容为空"; -"SuperPlayerDemo.TXMoviePlayerNetApi.invalidformat" = "格式错误"; - -"SuperPlayerDemo.SuperPlayerGuideView.slideupanddowntoadjust" = "上下滑动调节屏幕明暗"; -"SuperPlayerDemo.SuperPlayerGuideView.slideupanddowntovolume" = "上下滑动调节音量大小"; -"SuperPlayerDemo.SuperPlayerGuideView.slideleftandrighttofastforward" = "左右滑动快进/倒退"; -"SuperPlayerDemo.SuperPlayerGuideView.leftwatchlivecontent" = "向左拖动可观看先前直播内容"; -"MLVB.MainMenu.pushscreen" = "推流演示(录屏推流)"; - - diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LoginNetworkLocalized/English.lproj/LoginNetworkLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LoginNetworkLocalized/English.lproj/LoginNetworkLocalized.strings deleted file mode 100644 index 3341401a..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LoginNetworkLocalized/English.lproj/LoginNetworkLocalized.strings +++ /dev/null @@ -1,7 +0,0 @@ -/* - LoginNetworkLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/22. - Copyright © 2021 Tencent. All rights reserved. -*/ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LoginNetworkLocalized/en.lproj/LoginNetworkLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LoginNetworkLocalized/en.lproj/LoginNetworkLocalized.strings deleted file mode 100644 index fe16110a..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LoginNetworkLocalized/en.lproj/LoginNetworkLocalized.strings +++ /dev/null @@ -1,18 +0,0 @@ -/* - LoginNetworkLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/22. - Copyright © 2021 Tencent. All rights reserved. -*/ - -"LoginNetwork.AppUtils.warmprompt" = "Note"; -"LoginNetwork.AppUtils.tomeettheregulatory" = "In accordance with relevant regulations, the app forbids pornographic, abusive, violent, terrorist, and politically sensitive content. All audio/video calls and live streams are recorded and archived."; -"LoginNetwork.AppUtils.determine" = "OK"; - -"LoginNetwork.ProfileManager.sendfailed" = "Send failed. Please try again later."; -"LoginNetwork.ProfileManager.loginfailed" = "Login failed. Please try again later."; -"LoginNetwork.ProfileManager.registerfailed" = "Registration failed. Please try again later"; -"LoginNetwork.ProfileManager.queryfailed" = "Query failed. Please try again later."; - -"Demo.TRTC.Login.countrycode" = "Country Code"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LoginNetworkLocalized/zh-Hans.lproj/LoginNetworkLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LoginNetworkLocalized/zh-Hans.lproj/LoginNetworkLocalized.strings deleted file mode 100644 index 12a674c3..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/LoginNetworkLocalized/zh-Hans.lproj/LoginNetworkLocalized.strings +++ /dev/null @@ -1,18 +0,0 @@ -/* - LoginNetworkLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/22. - Copyright © 2021 Tencent. All rights reserved. -*/ - -"LoginNetwork.AppUtils.warmprompt" = "温馨提示"; -"LoginNetwork.AppUtils.tomeettheregulatory" = "为配合相关部门监管要求,本App内音视频互动全程均有录音录像存档,严禁色情、辱骂、暴恐、涉政等违规内容。"; -"LoginNetwork.AppUtils.determine" = "确定"; - -"LoginNetwork.ProfileManager.sendfailed" = "发送失败,请稍后重试"; -"LoginNetwork.ProfileManager.loginfailed" = "登录失败,请稍后重试"; -"LoginNetwork.ProfileManager.registerfailed" = "注册失败,请稍后重试"; -"LoginNetwork.ProfileManager.queryfailed" = "查询失败,请稍候重试"; - -"Demo.TRTC.Login.countrycode" = "国际电话区号"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/TRTCLocalized/English.lproj/TRTCDemoLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/TRTCLocalized/English.lproj/TRTCDemoLocalized.strings deleted file mode 100644 index 8820b82f..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/TRTCLocalized/English.lproj/TRTCDemoLocalized.strings +++ /dev/null @@ -1,326 +0,0 @@ -/* - TRTCDemoLocalized.strings - TXLiteAVDemo - - Created by gg on 2021/3/11. - Copyright © 2021 Tencent. All rights reserved. -*/ - -"Demo.TRTC.calling.muteon" = "Muted"; -"Demo.TRTC.calling.muteoff" = "Unmuted"; -"Demo.TRTC.calling.handsfreeon" = "Speaker on"; -"Demo.TRTC.calling.handsfreeoff" = "Speaker off"; -"Demo.TRTC.calling.invitetovideocall" = "invites you to a video call"; -"Demo.TRTC.calling.yourphonenumber" = "Your mobile number"; -"Demo.TRTC.calling.searchphonenumber" = "Mobile number"; -"Demo.TRTC.calling.searching" = "Search"; -"Demo.TRTC.calling.searchandcall" = "Search for a registered user\n to start a call"; -"Demo.TRTC.calling.callingbegan" = "Joined call"; -"Demo.TRTC.calling.callingcancel" = "Call cancelled"; -"Demo.TRTC.calling.callingtimeout" = "Call timed out"; -"Demo.TRTC.calling.callingrefuse" = "declined the call"; -"Demo.TRTC.calling.callingleave" = "left the call"; -"Demo.TRTC.calling.callingnoresponse" = "didn’t answer"; -"Demo.TRTC.calling.callingbusy" = "is busy"; -"Demo.TRTC.calling.searchingfailed" = "Search failed"; -"Demo.TRTC.calling.cantinviteself" = "You cannot invite yourself."; -"Demo.TRTC.calling.useriderror" = "Incorrect username or user signature."; -"Demo.TRTC.calling.callingrequest" = "You have a call invitation."; -"Demo.TRTC.calling.syserror"= "System error"; -"Demo.TRTC.calling.xxmode" = "xxx mode"; -"Demo.TRTC.LiveRoom.pullrefresh" = "Pull down to refresh"; -"Demo.TRTC.LiveRoom.refreshing" = "Refreshing"; -"Demo.TRTC.LiveRoom.videointeraction" = "Interactive Live Video Streaming"; -"Demo.TRTC.LiveRoom.switchto" = "Do you want to switch to the xxx mode?"; -"Demo.TRTC.LiveRoom.cancel" = "Cancel"; -"Demo.TRTC.LiveRoom.confirm" = "OK"; -"Demo.TRTC.LiveRoom.restarttotakeeffect" = "Restart the app for the setting to take effect."; -"Demo.TRTC.LiveRoom.roominfofailed" = "Failed to get room information. Please try again later."; -"Demo.TRTC.LiveRoom.roomexceedlimit" = "You cannot enter the room as the number of users has reached the maximum."; -"Demo.TRTC.LiveRoom.invite" = "Invite"; -"Demo.TRTC.LiveRoom.invitepk" = "Invite to Compete"; -"Demo.TRTC.LiveRoom.loading" = "Loading..."; -"Demo.TRTC.LiveRoom.noanchor" = "No anchor at the moment"; -"Demo.TRTC.LiveRoom.notice" = ""; -"Demo.TRTC.LiveRoom.originalsound" = "Original"; -"Demo.TRTC.LiveRoom.ktv" = "Karaoke"; -"Demo.TRTC.LiveRoom.room" = "Room"; -"Demo.TRTC.LiveRoom.hall" = "Hall"; -"Demo.TRTC.LiveRoom.muffled" = "Low and deep"; -"Demo.TRTC.LiveRoom.sonorous" = "Resonant"; -"Demo.TRTC.LiveRoom.metal" = "Metallic"; -"Demo.TRTC.LiveRoom.magnetic" = "Husky"; -"Demo.TRTC.LiveRoom.badboy" = "Child"; -"Demo.TRTC.LiveRoom.loli" = "Little girl"; -"Demo.TRTC.LiveRoom.uncle" = "Middle-aged man"; -"Demo.TRTC.LiveRoom.heavymetal" = "Heavy metal"; -"Demo.TRTC.LiveRoom.catarrh" = "Nasal"; -"Demo.TRTC.LiveRoom.foreigner" = "Punk"; -"Demo.TRTC.LiveRoom.sleepybeast" = "Trapped beast"; -"Demo.TRTC.LiveRoom.fattydead" = "Otaku"; -"Demo.TRTC.LiveRoom.strongcurrent" = "Electronic"; -"Demo.TRTC.LiveRoom.heavymachinery" = "Robot"; -"Demo.TRTC.LiveRoom.ethereal" = "Ethereal"; -"Demo.TRTC.LiveRoom.stop" = "End"; -"Demo.TRTC.LiveRoom.send" = "Send"; -"Demo.TRTC.LiveRoom.saysomething" = "Send a message"; -"Demo.TRTC.LiveRoom.accompaniment" = "Background Music"; -"Demo.TRTC.LiveRoom.end" = "End"; -"Demo.TRTC.LiveRoom.endpk" = "End Competition"; -"Demo.TRTC.LiveRoom.accompanimentvolume" = "Music Volume"; -"Demo.TRTC.LiveRoom.vocalvolume" = "Voice Volume"; -"Demo.TRTC.LiveRoom.accompanimentfastforward" = "Fast Forward Music"; -"Demo.TRTC.LiveRoom.interactioninprogress" = "Are you sure you want to exit the live stream?"; -"Demo.TRTC.LiveRoom.joininteraction" = "joined the live stream"; -"Demo.TRTC.LiveRoom.exitinteraction" = "exited the live stream"; -"Demo.TRTC.LiveRoom.clicklike" = "gave a like"; -"Demo.TRTC.LiveRoom.messagecantbeempty" = "You cannot send an empty message."; -"Demo.TRTC.LiveRoom.me" = "Me"; -"Demo.TRTC.LiveRoom.interactionitsover" = "Live Stream Ended"; -"Demo.TRTC.LiveRoom.interactionduration" = "Duration"; -"Demo.TRTC.LiveRoom.viewers" = "Viewers"; -"Demo.TRTC.LiveRoom.numberoflikes" = "Likes"; -"Demo.TRTC.LiveRoom.back" = "Back"; -"Demo.TRTC.LiveRoom.alerttoexperienceandshowlongestduration" = "This is a tryout app and should not be used commercially. Each room can have 10 users and last for 10 minutes at most."; -"Demo.TRTC.LiveRoom.start" = "Start"; -"Demo.TRTC.LiveRoom.titlefuncanattractpopularity" = "Enter an intriguing name"; -"Demo.TRTC.LiveRoom.soundquality" = "Sound Quality"; -"Demo.TRTC.LiveRoom.standard" = "Standard"; -"Demo.TRTC.LiveRoom.music" = "Music"; -"Demo.TRTC.LiveRoom.roomnamecantbeempty" = "Enter a room name"; -"Demo.TRTC.LiveRoom.createroomfailed" = "Failed to create the room."; -"Demo.TRTC.LiveRoom.alerttoexperienceandupperlimit" = "This is a tryout app. The session was ended as its length has reached the upper limit of 10 minutes."; -"Demo.TRTC.LiveRoom.micconnectionrefusedandanchorpeopleexceedsmaxlimit" = "Your request to co-anchor was declined as the number of co-anchors has reached the maximum."; -"Demo.TRTC.LiveRoom.anchorpeopleexceedsmaxlimit" = "The number of co-anchors has reached the maximum."; -"Demo.TRTC.LiveRoom.micconnectionrefusedandanchordealotherreq" = "Your request to co-anchor was declined as the anchor is handling another co-anchoring request."; -"Demo.TRTC.LiveRoom.waitforhandleotherreq" = "The anchor is handling another co-anchoring request. Please wait."; -"Demo.TRTC.LiveRoom.micconnectionrefusedandinpk" = "Your request to co-anchor was declined as the anchor is in a competition."; -// TODO: 文档第 90 行字符未使用,需要确认 -"Demo.TRTC.LiveRoom.prompt" = "Information"; -"Demo.TRTC.LiveRoom.xxinitiateamicconnectionreq" = "xxx requested to co-anchor"; -"Demo.TRTC.LiveRoom.accept" = "Accept"; -"Demo.TRTC.LiveRoom.refuse" = "Decline"; -"Demo.TRTC.LiveRoom.refusemicconnectionreq" = "The anchor declined your request to co-anchor."; -"Demo.TRTC.LiveRoom.xxmicconnectiontimeout" = "Co-anchoring by xxx timed out."; -"Demo.TRTC.LiveRoom.dealmicconnectionreqtimeout" = "Co-anchoring request handling timed out."; -"Demo.TRTC.LiveRoom.xxinitiatepk" = "xxx requested to compete"; -"Demo.TRTC.LiveRoom.anchorrefuse" = "Request declined by anchor"; -"Demo.TRTC.LiveRoom.dealxxpktimeout" = "Competition request handling timed out."; -"Demo.TRTC.LiveRoom.micconnectingandwaitforpk" = "You are co-anchoring. Please initiate a competition later."; -"Demo.TRTC.LiveRoom.xxacceptpkreq" = "xxx accepted your request to compete."; -"Demo.TRTC.LiveRoom.xxrefusepkreq" = "xxx declined your request to compete."; -"Demo.TRTC.LiveRoom.opponentanchorendpd" = "The other anchor ended the competition."; -"Demo.TRTC.LiveRoom.anchornotonline" = "The anchor is not online."; -"Demo.TRTC.LiveRoom.enterroomfailed" = "Failed to enter the room."; -"Demo.TRTC.LiveRoom.waitforanchoraccept" = "Waiting for anchor to accept"; -"Demo.TRTC.LiveRoom.anchoracceptreqandbegan" = "The anchor accepted your request. Co-anchoring starts."; -"Demo.TRTC.LiveRoom.micconnecttimeoutandanchornoresponse" = "No response from the anchor. The co-anchoring request timed out."; -"Demo.TRTC.LiveRoom.anchorcloseinteraction" = "Live stream ended"; -"Demo.TRTC.LiveRoom.anchorcloseinteractionroom" = "Room closed"; -"Demo.TRTC.LiveRoom.sorryforkicked" = "The anchor declined your request."; -"Demo.TRTC.LiveRoom.addressillegalandsupportrfhm" = "Invalid playback address. Only RTMP, FLV, HLS, and MP4 are supported currently."; -"Demo.TRTC.LiveRoom.addressillegalandsupportrf" = "Invalid playback address. Only RTMP and FLV are supported for live streaming currently."; -"Demo.TRTC.LiveRoom.addressillegalandsupportfhm" = "Invalid playback address. Only FLV, HLS, and MP4 are supported for VOD currently."; -"Demo.TRTC.LiveRoom.endedinteractive" = "Live stream ended"; -"Demo.TRTC.LiveRoom.micauthorityfailed" = "Failed to get mic permission. Please go to Privacy > Microphone to grant the permission."; -"Demo.TRTC.LiveRoom.cameraauthorityfailed" = "Failed to get camera permission. Please go to Privacy > Camera to grant the permission."; -"Demo.TRTC.LiveRoom.notsupporthardencodeandstartmicconnectfailed" = "Failed to start co-anchoring as hardware encoding is not supported."; -"Demo.TRTC.LiveRoom.nocontentnow~" = "No content now"; -"Demo.TRTC.LiveRoom.getroomlistfailed" = "Failed to get the room list"; -"Demo.TRTC.LiveRoom.initializefailed" = "Initialization failed"; -"Demo.TRTC.LiveRoom.enterroomtimeout" = "The request to enter room timed out."; -"Demo.TRTC.LiveRoom.onlyordinarymembercanexit" = "Only viewers can leave a room."; -"Demo.TRTC.LiveRoom.notenterroom" = "You haven’t entered a room."; -"Demo.TRTC.LiveRoom.notfoundanchor" = "Anchor not found"; -"Demo.TRTC.LiveRoom.notlogin" = "You haven’t logged in yet."; -"Demo.TRTC.LiveRoom.ismicconnectednow" = "You are already co-anchoring."; -"Demo.TRTC.LiveRoom.anchorisinpk" = "The anchor is in a competition."; -"Demo.TRTC.LiveRoom.userwaitingresponseformicconnect" = "The user has requested to co-anchor and is waiting for reply."; -"Demo.TRTC.LiveRoom.smtwrongandretry" = "Error. Please try again later."; -"Demo.TRTC.LiveRoom.anchornotresponsethereq" = "The anchor did not respond to the co-anchoring request."; -"Demo.TRTC.LiveRoom.usernotmicconnect" = "The user is not co-anchoring."; -"Demo.TRTC.LiveRoom.onlypushstreamcanoperate" = "You can perform this operation only after stream pushing."; -"Demo.TRTC.LiveRoom.anchorisconnectingandunablepk" = "The anchor is co-anchoring and cannot join a competition."; -"Demo.TRTC.LiveRoom.useriswaitingforpkrep" = "The user has requested to compete and is waiting for reply."; -"Demo.TRTC.LiveRoom.anchornotresponsepkbetweenroom" = "The anchor did not respond to the cross-room competition request."; -"Demo.TRTC.LiveRoom.isnotpkstate" = "You are not in a competition currently."; -"Demo.TRTC.LiveRoom.receiveothermessage" = "Received other messages"; -"Demo.TRTC.LiveRoom.anchorispkbetweenroom" = "The anchor is in a cross-room competition."; -"Demo.TRTC.LiveRoom.anchordealothermicconnect" = "The anchor is handling another co-anchoring request."; -"Demo.TRTC.LiveRoom.timeouttonorespond" = "Timed out"; -"Demo.TRTC.LiveRoom.anchorismicconnecting" = "The anchor is co-anchoring."; -"Demo.TRTC.LiveRoom.anchorispking" = "The anchor is in a competition."; -"Demo.TRTC.LiveRoom.timeouttonoresponse" = "Timed out"; -"Demo.TRTC.LiveRoom.hasnotenterroom" = "You haven’t entered a room."; -"Demo.TRTC.LiveRoom.isinroomnow" = "You are in the room."; -"Demo.TRTC.LiveRoom.onlyanchorcanoperation" = "Only an anchor can perform this operation."; -"Demo.TRTC.LiveRoom.donotreplaypls" = "Do not play repeatedly."; -"Demo.TRTC.LiveRoom.timeouttonotplay" = "Playback timed out."; -"Demo.TRTC.LiveRoom.stopplaying" = "Stop playback"; -"Demo.TRTC.LiveRoom.playingfailed" = "Playback failed"; -"Demo.TRTC.LiveRoom.cannotgetroominfo" = "Cannot get room information."; -"Demo.TRTC.LiveRoom.getroominfofailed" = "Failed to get room information."; -"Demo.TRTC.LiveRoom.anchorlistisnull" = "The anchor list is empty."; -"Demo.TRTC.LiveRoom.xxinroom" = "xxx entered the room"; -"Demo.TRTC.Buy.chatroom" = "The number of chat rooms created has reached the maximum. Please go to the Tencent Cloud website (xxx) to enable **IM Audio-Video Chat Room** for your account."; -"Demo.TRTC.Buy.grouplimit" = "The number of groups a user is allowed to create and join has exceeded the limit. Please purchase a package. For pricing details, see xxx."; -"Demo.TRTC.Buy.groupmemberlimit" = "The number of group members has exceeded the limit. Please purchase a package. For pricing details, see xxx."; -"Demo.TRTC.Salon.userisspeaker" = "The user’s mic is already on."; -"Demo.TRTC.VoiceRoom.islocked" = "Blocked"; -"Demo.TRTC.VoiceRoom.invitehandsup" = "Invite"; -"Demo.TRTC.VoiceRoom.presshandsup" = "Tap to Speak"; -"Demo.TRTC.VoiceRoom.saysomething" = "Send a message"; -"Demo.TRTC.Salon.close" = "Hide"; -"Demo.TRTC.VoiceRoom.exit" = "Exit"; -"Demo.TRTC.VoiceRoom.isvoicingandsuretoexit" = "Are you sure you want to exit the live stream?"; -"Demo.TRTC.Salon.roomid" = "Room ID"; -"Demo.TRTC.Salon.seatmuted" = "Muted by room owner"; -"Demo.TRTC.Salon.seatunmuted" = "Unmuted by room owner"; -"Demo.TRTC.Salon.pleaseselect" = "Please Select"; -"Demo.TRTC.VoiceRoom.onseatmuted" = "Muted by room owner"; -"Demo.TRTC.Salon.micmuted" = "Mic off"; -"Demo.TRTC.Salon.micunmuted" = "Mic on"; -"Demo.TRTC.VoiceRoom.ismuted" = "Muted"; -"Demo.TRTC.VoiceRoom.isunmuted" = "Unmuted"; -"Demo.TRTC.Salon.seatlistnotinit" = "The seat list has not been initialized."; -"Demo.TRTC.Salon.enterroomsuccess" = "Entered room successfully"; -"Demo.TRTC.Salon.enterroomfailed" = "Failed to enter room"; -"Demo.TRTC.VoiceRoom.sendsuccess" = "Sent successfully"; -"Demo.TRTC.VoiceRoom.sendfailedxx" = "Failed to send: xxx"; -"Demo.TRTC.Salon.hostoccupyseatsuccess" = "Seat taken successfully"; -"Demo.TRTC.Salon.hostoccupyseatfailed" = "Failed to take a seat"; -"Demo.TRTC.VoiceRoom.onlyanchorcanoperation" = "Only an anchor can perform this operation."; -"Demo.TRTC.VoiceRoom.seatislockedandcanthandup" = "Cannot take the seat as it is blocked."; -"Demo.TRTC.Salon.audience" = "Mic Off"; -"Demo.TRTC.VoiceRoom.otheranchor" = "Other Anchors"; -"Demo.TRTC.VoiceRoom.isinxxseat" = "You are already in seat xxx."; -"Demo.TRTC.VoiceRoom.seatisnotinittocanthandsup" = "Cannot take the seat as the seat information has not been initialized"; -"Demo.TRTC.Salon.handsup" = "Mic On"; -"Demo.TRTC.VoiceRoom.totaxx" = "xxx"; -"Demo.TRTC.VoiceRoom.unmuteone" = "unblocked"; -"Demo.TRTC.VoiceRoom.muteone" = "Mute"; -"Demo.TRTC.VoiceRoom.makeoneaudience" = "Mic Off"; -"Demo.TRTC.VoiceRoom.invitehandsup" = "Mic On"; -"Demo.TRTC.VoiceRoom.banseat" = "Block Seat"; -"Demo.TRTC.VoiceRoom.liftbanseat" = "Unblock Seat"; -"Demo.TRTC.VoiceRoom.seatisbusy" = "The seat is taken."; -"Demo.TRTC.VoiceRoom.sendinvitesuccess" = "Invitation sent"; -"Demo.TRTC.Salon.reqisexpired" = "Request expired"; -"Demo.TRTC.Salon.acceptreqfailed" = "Failed to accept the request."; -"Demo.TRTC.Salon.audiencesuccess" = "Mic turned off successfully"; -"Demo.TRTC.Salon.audiencefailedxx" = "Failed to turn mic off: xxx"; -"Demo.TRTC.Salon.isbeingarchon" = "Mic already on"; -"Demo.TRTC.Salon.roomnotready" = "Room not ready"; -"Demo.TRTC.VoiceRoom.reqsentandwaitforarchondeal" = "Your request has been sent. Please wait for reply from the anchor."; -"Demo.TRTC.VoiceRoom.reqsendfailedxx" = "Failed to send request: xxx"; -"Demo.TRTC.Salon.successbecomespaker" = "Mic turned on successfully"; -"Demo.TRTC.Salon.failedbecomespaker" = "Failed to turn mic on"; -"Demo.TRTC.VoiceRoom.anchorinvitexxseat" = "The anchor invited you to take seat xxx."; -"Demo.TRTC.VoiceRoom.refusehandsupreq" = "You declined the mic-on request."; -"Demo.TRTC.VoiceRoom.applyforxxseat" = "requested to take seat xxx"; -"Demo.TRTC.Salon.archonclosedroom" = "Room closed"; -"Demo.TRTC.VoiceRoom.seatlistwentwrong" = "Seat list data error"; -"Demo.TRTC.VoiceRoom.xxbeyyseat" = "xxx took seat yyy"; -"Demo.TRTC.VoiceRoom.xxaudienceyyseat" = "xxx left seat yyy"; -"Demo.TRTC.VoiceRoom.xxisbemuted" = "Muted seat xxx"; -"Demo.TRTC.VoiceRoom.xxisbeunmuted" = "Unmuted seat xxx"; -"Demo.TRTC.VoiceRoom.ownerxxyyseat" = "The room owner xxx seat yyy."; -"Demo.TRTC.VoiceRoom.ban" = "blocked"; -"Demo.TRTC.VoiceRoom.xxexitroom" = "xxx left the room"; -"Demo.TRTC.VoiceRoom.hugxxhandsupsuccess" = "Placed xxx in the seat"; -"Demo.TRTC.VoiceRoom.refusebespeaker" = "xxx declined the mic-on request"; -"Demo.TRTC.VoiceRoom.xxonline" = "xxx is online"; -"Demo.TRTC.VoiceRoom.voicechatroom" = "Audio Chat Room"; -"Demo.TRTC.Salon.invalidappid" = "Incorrect app ID"; -"Demo.TRTC.VoiceRoom.nocontentnow" = "No content now"; -"Demo.TRTC.Salon.getlistfailed" = "Failed to get the list."; -"Demo.TRTC.VoiceRoom.createvoicechatroom" = "Create Audio Chat Room"; -"Demo.TRTC.Salon.topic" = "Subject"; -"Demo.TRTC.VoiceRoom.entertopic" = "Enter a room subject"; -"Demo.TRTC.VoiceRoom.nickname" = "Nickname"; -"Demo.TRTC.VoiceRoom.enternickname" = "Enter a nickname"; -"Demo.TRTC.VoiceRoom.bespeakershouldagreebyowner" = "Require Your Consent to Speak"; -"Demo.TRTC.VoiceRoom.soundqualityselect" = "Sound Quality"; -"Demo.TRTC.VoiceRoom.voice" = "Voice"; -"Demo.TRTC.VoiceRoom.createchatroom" = "Create"; -//"Demo.TRTC.VoiceRoom.nullroomidwillautocreateandjoinroom" = "若房间号不存在将自动创建并加入该房间"; -"Demo.TRTC.Salon.nicknameorusernameisempty" = "Nickname or username is empty."; -"Demo.TRTC.Meeting.secondarystream" = "Substream"; -"Demo.TRTC.Meeting.resolution" = "Resolution"; -"Demo.TRTC.Meeting.framerate" = "Frame Rate"; -"Demo.TRTC.Meeting.bitrate" = "Bitrate"; -"Demo.TRTC.Meeting.localmirror" = "Local Mirror"; -"Demo.TRTC.Meeting.resolutionselected" = "Resolution selected"; -"Demo.TRTC.Meeting.framerateselected" = "Frame rate selected"; -"Demo.TRTC.Meeting.capturevolume" = "Collection Volume"; -"Demo.TRTC.Meeting.playingvolume" = "Playback Volume"; -"Demo.TRTC.Meeting.volumeprompt" = "Volume Reminder"; -"Demo.TRTC.Meeting.audiorecording" = "Audio Recording"; -"Demo.TRTC.Meeting.volumepromptswitch" = "Volume Reminder:"; -"Demo.TRTC.Meeting.startrecording" = "Start"; -"Demo.TRTC.Meeting.endrecording" = "End"; -"Demo.TRTC.Meeting.recordingsavepath" = "Recording file save path:"; -"Demo.TRTC.Meeting.share" = "Share"; -"Demo.TRTC.Meeting.multivideoconference" = "Video Conferencing"; -"Demo.TRTC.Meeting.meetingnum" = "Conference ID"; -"Demo.TRTC.Salon.userid" = "Username"; -"Demo.TRTC.Meeting.entermeetingnum" = "Enter a conference ID"; -"Demo.TRTC.Meeting.enterusername" = "Enter a username"; -"Demo.TRTC.Meeting.opencamera" = "Camera"; -"Demo.TRTC.Meeting.openmic" = "Mic"; -"Demo.TRTC.Meeting.picqualityselect" = "Image Quality"; -"Demo.TRTC.Meeting.smooth" = "Smooth"; -"Demo.TRTC.Meeting.clear" = "High definition"; -"Demo.TRTC.Meeting.entermeeting" = "Join"; -"Demo.TRTC.Meeting.enterlegitmeetingnum" = "Enter a valid conference ID"; -"Demo.TRTC.Meeting.meetingcreatsuccess" = "Conference created"; -"Demo.TRTC.Meeting.meetingentersuccess" = "Joined conference"; -"Demo.TRTC.Meeting.meetingenterfailed" = "Failed to join conference: "; -"Demo.TRTC.Meeting.startrecordingfailed" = "Failed to start screen recording"; -"Demo.TRTC.Meeting.wentwrongxxyy" = "Error [xxx]: yyy"; -"Demo.TRTC.Meeting.creatorendmeeting" = "Conference ended by initiator"; -"Demo.TRTC.Meeting.screensharingbegan" = "Screen sharing started"; -"Demo.TRTC.Meeting.screensharingpause" = "Screen sharing paused"; -"Demo.TRTC.Meeting.screensharingresume" = "Screen sharing resumed"; -"Demo.TRTC.Meeting.exitmeeting" = "Leave"; -"Demo.TRTC.Meeting.suretoexitmeeting" = "Are you sure you want to leave the conference?"; -"Demo.TRTC.Meeting.versiontoolow" = "Your system version is below 12.0. Please update."; -"Demo.TRTC.Meeting.memberlist" = "Members"; -"Demo.TRTC.Meeting.mutedall" = "Mute All"; -"Demo.TRTC.Meeting.unmutedall" = "Unmute All"; -"Demo.TRTC.Meeting.forbidallpic" = "Stop Videos"; -"Demo.TRTC.Meeting.video" = "Video"; -"Demo.TRTC.Meeting.audio" = "Audio"; -"Demo.TRTC.Meeting.setting" = "Settings"; -"Demo.TRTC.Salon.xxsroom" = "'s salon room"; -"Demo.TRTC.Salon.createsalonroom" = "create a chat salon room"; -"Demo.TRTC.Salon.defaultroomtopic" = "default room topic"; -"Demo.TRTC.Salon.defaultuserid" = "default user ID"; -"Demo.TRTC.Salon.letsgo" = "Let’s go"; -"Demo.TRTC.Salon.raisedhands" = "Raised hands"; -"Demo.TRTC.Salon.welcome" = "Welcome"; -"Demo.TRTC.Salon.dismiss" = "Dismiss"; -"Demo.TRTC.Salon.appliestobecomeaspeaker" = "applies to become a speaker"; -"Demo.TRTC.Salon.raisedhandandwaitmanageraccept" = "You raised your hand! We'll let the speakers know you want to talk~"; -"Demo.TRTC.Salon.surewanttoleaveroom" = "You want to leave the room?"; -"Demo.TRTC.Salon.audienceconfirm" = "Confirm"; -"Demo.TRTC.Salon.waitabit" = "Wait a bit"; -"Demo.TRTC.Salon.waitinghostconsent" = "waiting for host's consent"; -"Demo.TRTC.Salon.failedsenthandupmessage" = "failed to sent the hand-up message"; -"Demo.TRTC.Salon.movetotheaudience" = "move to the audience"; -"Demo.TRTC.Salon.failedaudience" = "failed to become an audience"; -"Demo.TRTC.Salon.anchor" = "speakers"; -"Demo.TRTC.Salon.audiences" = "audiences"; -"Demo.TRTC.Salon.leavequietly" = "Leave quietly"; -"Demo.TRTC.Salon.wanttoendroom" = "you want to end the room?"; -"Demo.TRTC.Salon.chatsalon" = "chat salon"; -"Demo.TRTC.Salon.online" = "online"; -"Demo.TRTC.Home.appusetoshowfunc" = "This app demonstrates the features of Tencent Video Cloud terminal products."; -"Demo.TRTC.Home.newversionpublic" = "A new version is available"; -"Demo.TRTC.Home.updatenow" = "Update Now"; -"Demo.TRTC.Home.later" = "Later"; -"Demo.TRTC.Streaming.tips" = "Tips"; -"Demo.TRTC.Streaming.claim" = "In accordance with relevant regulations, the app forbids pornographic, abusive, violent, terrorist, and politically sensitive content. All audio/video calls and live streams are recorded and archived."; -"Demo.TRTC.Streaming.call" = "Call"; -"Demo.TRTC.Home.loginimsuccess" = "Logged in to IM"; -"Demo.TRTC.Home.loginimfailed" = "Failed to log in to IM"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/TRTCLocalized/en.lproj/TRTCDemoLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/TRTCLocalized/en.lproj/TRTCDemoLocalized.strings deleted file mode 100644 index 0a26af93..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/TRTCLocalized/en.lproj/TRTCDemoLocalized.strings +++ /dev/null @@ -1,457 +0,0 @@ -/* - TRTCDemoLocalized.strings - TXLiteAVDemo - - Created by gg on 2021/3/11. - Copyright © 2021 Tencent. All rights reserved. -*/ - -"Demo.TRTC.calling.muteon" = "Muted"; -"Demo.TRTC.calling.muteoff" = "Unmuted"; -"Demo.TRTC.calling.handsfreeon" = "Speaker on"; -"Demo.TRTC.calling.handsfreeoff" = "Speaker off"; -"Demo.TRTC.calling.invitetovideocall" = "invites you to a video call"; -"Demo.TRTC.calling.yourphonenumber" = "Your mobile number"; -"Demo.TRTC.calling.searchphonenumber" = "Mobile number"; -"Demo.TRTC.calling.searching" = "Search"; -"Demo.TRTC.calling.searchandcall" = "Search for a registered user\n to start a call"; -"Demo.TRTC.calling.callingbegan" = "Joined call"; -"Demo.TRTC.calling.callingcancel" = "Call cancelled"; -"Demo.TRTC.calling.callingtimeout" = "Call timed out"; -"Demo.TRTC.calling.callingrefuse" = "declined the call"; -"Demo.TRTC.calling.callingleave" = "left the call"; -"Demo.TRTC.calling.callingnoresponse" = "didn’t answer"; -"Demo.TRTC.calling.callingbusy" = "is busy"; -"Demo.TRTC.calling.searchingfailed" = "Search failed"; -"Demo.TRTC.calling.cantinviteself" = "You cannot invite yourself."; -"Demo.TRTC.calling.useriderror" = "Incorrect username or user signature."; -"Demo.TRTC.calling.callingrequest" = "You have a call invitation."; -"Demo.TRTC.calling.syserror"= "System error"; -"Demo.TRTC.calling.xxmode" = "xxx mode"; -"Demo.TRTC.LiveRoom.pullrefresh" = "Pull down to refresh"; -"Demo.TRTC.LiveRoom.refreshing" = "Refreshing"; -"Demo.TRTC.LiveRoom.videointeraction" = "Interactive Live Video Streaming"; -"Demo.TRTC.LiveRoom.switchto" = "Do you want to switch to the xxx mode?"; -"Demo.TRTC.LiveRoom.cancel" = "Cancel"; -"Demo.TRTC.LiveRoom.confirm" = "OK"; -"Demo.TRTC.LiveRoom.restarttotakeeffect" = "Restart the app for the setting to take effect."; -"Demo.TRTC.LiveRoom.roominfofailed" = "Failed to get room information. Please try again later."; -"Demo.TRTC.LiveRoom.roomexceedlimit" = "You cannot enter the room as the number of users has reached the maximum."; -"Demo.TRTC.LiveRoom.invite" = "Invite"; -"Demo.TRTC.LiveRoom.invitepk" = "Invite to Compete"; -"Demo.TRTC.LiveRoom.loading" = "Loading..."; -"Demo.TRTC.LiveRoom.noanchor" = "No anchor at the moment"; -"Demo.TRTC.LiveRoom.notice" = ""; -"Demo.TRTC.LiveRoom.originalsound" = "Original"; -"Demo.TRTC.LiveRoom.ktv" = "Karaoke"; -"Demo.TRTC.LiveRoom.room" = "Room"; -"Demo.TRTC.LiveRoom.hall" = "Hall"; -"Demo.TRTC.LiveRoom.muffled" = "Low and deep"; -"Demo.TRTC.LiveRoom.sonorous" = "Resonant"; -"Demo.TRTC.LiveRoom.metal" = "Metallic"; -"Demo.TRTC.LiveRoom.magnetic" = "Husky"; -"Demo.TRTC.LiveRoom.badboy" = "Child"; -"Demo.TRTC.LiveRoom.loli" = "Little girl"; -"Demo.TRTC.LiveRoom.uncle" = "Middle-aged man"; -"Demo.TRTC.LiveRoom.heavymetal" = "Heavy metal"; -"Demo.TRTC.LiveRoom.catarrh" = "Nasal"; -"Demo.TRTC.LiveRoom.foreigner" = "Punk"; -"Demo.TRTC.LiveRoom.sleepybeast" = "Trapped beast"; -"Demo.TRTC.LiveRoom.fattydead" = "Otaku"; -"Demo.TRTC.LiveRoom.strongcurrent" = "Electronic"; -"Demo.TRTC.LiveRoom.heavymachinery" = "Robot"; -"Demo.TRTC.LiveRoom.ethereal" = "Ethereal"; -"Demo.TRTC.LiveRoom.stop" = "End"; -"Demo.TRTC.LiveRoom.send" = "Send"; -"Demo.TRTC.LiveRoom.saysomething" = "Send a message"; -"Demo.TRTC.LiveRoom.accompaniment" = "Background Music"; -"Demo.TRTC.LiveRoom.end" = "End"; -"Demo.TRTC.LiveRoom.endpk" = "End Competition"; -"Demo.TRTC.LiveRoom.accompanimentvolume" = "Music Volume"; -"Demo.TRTC.LiveRoom.vocalvolume" = "Voice Volume"; -"Demo.TRTC.LiveRoom.accompanimentfastforward" = "Fast Forward Music"; -"Demo.TRTC.LiveRoom.interactioninprogress" = "Are you sure you want to exit the live stream?"; -"Demo.TRTC.LiveRoom.joininteraction" = "joined the live stream"; -"Demo.TRTC.LiveRoom.exitinteraction" = "exited the live stream"; -"Demo.TRTC.LiveRoom.clicklike" = "gave a like"; -"Demo.TRTC.LiveRoom.messagecantbeempty" = "You cannot send an empty message."; -"Demo.TRTC.LiveRoom.me" = "Me"; -"Demo.TRTC.LiveRoom.interactionitsover" = "Live Stream Ended"; -"Demo.TRTC.LiveRoom.interactionduration" = "Duration"; -"Demo.TRTC.LiveRoom.viewers" = "Viewers"; -"Demo.TRTC.LiveRoom.numberoflikes" = "Likes"; -"Demo.TRTC.LiveRoom.back" = "Back"; -"Demo.TRTC.LiveRoom.alerttoexperienceandshowlongestduration" = "This is a tryout app and should not be used commercially. Each room can have 10 users and last for 10 minutes at most."; -"Demo.TRTC.LiveRoom.start" = "Start"; -"Demo.TRTC.LiveRoom.titlefuncanattractpopularity" = "Enter an intriguing name"; -"Demo.TRTC.LiveRoom.soundquality" = "Sound Quality"; -"Demo.TRTC.LiveRoom.standard" = "Standard"; -"Demo.TRTC.LiveRoom.music" = "Music"; -"Demo.TRTC.LiveRoom.roomnamecantbeempty" = "Enter a room name"; -"Demo.TRTC.LiveRoom.createroomfailed" = "Failed to create the room."; -"Demo.TRTC.LiveRoom.alerttoexperienceandupperlimit" = "This is a tryout app. The session was ended as its length has reached the upper limit of 10 minutes."; -"Demo.TRTC.LiveRoom.micconnectionrefusedandanchorpeopleexceedsmaxlimit" = "Your request to co-anchor was declined as the number of co-anchors has reached the maximum."; -"Demo.TRTC.LiveRoom.anchorpeopleexceedsmaxlimit" = "The number of co-anchors has reached the maximum."; -"Demo.TRTC.LiveRoom.micconnectionrefusedandanchordealotherreq" = "Your request to co-anchor was declined as the anchor is handling another co-anchoring request."; -"Demo.TRTC.LiveRoom.waitforhandleotherreq" = "The anchor is handling another co-anchoring request. Please wait."; -"Demo.TRTC.LiveRoom.micconnectionrefusedandinpk" = "Your request to co-anchor was declined as the anchor is in a competition."; -// TODO: 文档第 90 行字符未使用,需要确认 -"Demo.TRTC.LiveRoom.prompt" = "Information"; -"Demo.TRTC.LiveRoom.xxinitiateamicconnectionreq" = "xxx requested to co-anchor"; -"Demo.TRTC.LiveRoom.accept" = "Accept"; -"Demo.TRTC.LiveRoom.refuse" = "Decline"; -"Demo.TRTC.LiveRoom.refusemicconnectionreq" = "The anchor declined your request to co-anchor."; -"Demo.TRTC.LiveRoom.xxmicconnectiontimeout" = "Co-anchoring by xxx timed out."; -"Demo.TRTC.LiveRoom.dealmicconnectionreqtimeout" = "Co-anchoring request handling timed out."; -"Demo.TRTC.LiveRoom.xxinitiatepk" = "xxx requested to compete"; -"Demo.TRTC.LiveRoom.anchorrefuse" = "Request declined by anchor"; -"Demo.TRTC.LiveRoom.dealxxpktimeout" = "Competition request handling timed out."; -"Demo.TRTC.LiveRoom.micconnectingandwaitforpk" = "You are co-anchoring. Please initiate a competition later."; -"Demo.TRTC.LiveRoom.xxacceptpkreq" = "xxx accepted your request to compete."; -"Demo.TRTC.LiveRoom.xxrefusepkreq" = "xxx declined your request to compete."; -"Demo.TRTC.LiveRoom.opponentanchorendpd" = "The other anchor ended the competition."; -"Demo.TRTC.LiveRoom.anchornotonline" = "The anchor is not online."; -"Demo.TRTC.LiveRoom.enterroomfailed" = "Failed to enter the room."; -"Demo.TRTC.LiveRoom.waitforanchoraccept" = "Waiting for anchor to accept"; -"Demo.TRTC.LiveRoom.anchoracceptreqandbegan" = "The anchor accepted your request. Co-anchoring starts."; -"Demo.TRTC.LiveRoom.micconnecttimeoutandanchornoresponse" = "No response from the anchor. The co-anchoring request timed out."; -"Demo.TRTC.LiveRoom.anchorcloseinteraction" = "Live stream ended"; -"Demo.TRTC.LiveRoom.anchorcloseinteractionroom" = "Room closed"; -"Demo.TRTC.LiveRoom.sorryforkicked" = "The anchor declined your request."; -"Demo.TRTC.LiveRoom.addressillegalandsupportrfhm" = "Invalid playback address. Only RTMP, FLV, HLS, and MP4 are supported currently."; -"Demo.TRTC.LiveRoom.addressillegalandsupportrf" = "Invalid playback address. Only RTMP and FLV are supported for live streaming currently."; -"Demo.TRTC.LiveRoom.addressillegalandsupportfhm" = "Invalid playback address. Only FLV, HLS, and MP4 are supported for VOD currently."; -"Demo.TRTC.LiveRoom.endedinteractive" = "Live stream ended"; -"Demo.TRTC.LiveRoom.micauthorityfailed" = "Failed to get mic permission. Please go to Privacy > Microphone to grant the permission."; -"Demo.TRTC.LiveRoom.cameraauthorityfailed" = "Failed to get camera permission. Please go to Privacy > Camera to grant the permission."; -"Demo.TRTC.LiveRoom.notsupporthardencodeandstartmicconnectfailed" = "Failed to start co-anchoring as hardware encoding is not supported."; -"Demo.TRTC.LiveRoom.nocontentnow~" = "No content now"; -"Demo.TRTC.LiveRoom.getroomlistfailed" = "Failed to get the room list"; -"Demo.TRTC.LiveRoom.initializefailed" = "Initialization failed"; -"Demo.TRTC.LiveRoom.enterroomtimeout" = "The request to enter room timed out."; -"Demo.TRTC.LiveRoom.onlyordinarymembercanexit" = "Only viewers can leave a room."; -"Demo.TRTC.LiveRoom.notenterroom" = "You haven’t entered a room."; -"Demo.TRTC.LiveRoom.notfoundanchor" = "Anchor not found"; -"Demo.TRTC.LiveRoom.notlogin" = "You haven’t logged in yet."; -"Demo.TRTC.LiveRoom.ismicconnectednow" = "You are already co-anchoring."; -"Demo.TRTC.LiveRoom.anchorisinpk" = "The anchor is in a competition."; -"Demo.TRTC.LiveRoom.userwaitingresponseformicconnect" = "The user has requested to co-anchor and is waiting for reply."; -"Demo.TRTC.LiveRoom.smtwrongandretry" = "Error. Please try again later."; -"Demo.TRTC.LiveRoom.anchornotresponsethereq" = "The anchor did not respond to the co-anchoring request."; -"Demo.TRTC.LiveRoom.usernotmicconnect" = "The user is not co-anchoring."; -"Demo.TRTC.LiveRoom.onlypushstreamcanoperate" = "You can perform this operation only after stream pushing."; -"Demo.TRTC.LiveRoom.anchorisconnectingandunablepk" = "The anchor is co-anchoring and cannot join a competition."; -"Demo.TRTC.LiveRoom.useriswaitingforpkrep" = "The user has requested to compete and is waiting for reply."; -"Demo.TRTC.LiveRoom.anchornotresponsepkbetweenroom" = "The anchor did not respond to the cross-room competition request."; -"Demo.TRTC.LiveRoom.isnotpkstate" = "You are not in a competition currently."; -"Demo.TRTC.LiveRoom.receiveothermessage" = "Received other messages"; -"Demo.TRTC.LiveRoom.anchorispkbetweenroom" = "The anchor is in a cross-room competition."; -"Demo.TRTC.LiveRoom.anchordealothermicconnect" = "The anchor is handling another co-anchoring request."; -"Demo.TRTC.LiveRoom.timeouttonorespond" = "Timed out"; -"Demo.TRTC.LiveRoom.anchorismicconnecting" = "The anchor is co-anchoring."; -"Demo.TRTC.LiveRoom.anchorispking" = "The anchor is in a competition."; -"Demo.TRTC.LiveRoom.timeouttonoresponse" = "Timed out"; -"Demo.TRTC.LiveRoom.hasnotenterroom" = "You haven’t entered a room."; -"Demo.TRTC.LiveRoom.isinroomnow" = "You are in the room."; -"Demo.TRTC.LiveRoom.onlyanchorcanoperation" = "Only an anchor can perform this operation."; -"Demo.TRTC.LiveRoom.donotreplaypls" = "Do not play repeatedly."; -"Demo.TRTC.LiveRoom.timeouttonotplay" = "Playback timed out."; -"Demo.TRTC.LiveRoom.stopplaying" = "Stop playback"; -"Demo.TRTC.LiveRoom.playingfailed" = "Playback failed"; -"Demo.TRTC.LiveRoom.cannotgetroominfo" = "Cannot get room information."; -"Demo.TRTC.LiveRoom.getroominfofailed" = "Failed to get room information."; -"Demo.TRTC.LiveRoom.anchorlistisnull" = "The anchor list is empty."; -"Demo.TRTC.LiveRoom.xxinroom" = "xxx entered the room"; -"Demo.TRTC.Buy.chatroom" = "The number of chat rooms created has reached the maximum. Please go to the Tencent Cloud website (xxx) to enable **IM Audio-Video Chat Room** for your account."; -"Demo.TRTC.Buy.grouplimit" = "The number of groups a user is allowed to create and join has exceeded the limit. Please purchase a package. For pricing details, see xxx."; -"Demo.TRTC.Buy.groupmemberlimit" = "The number of group members has exceeded the limit. Please purchase a package. For pricing details, see xxx."; -"Demo.TRTC.Salon.userisspeaker" = "The user’s mic is already on."; -"Demo.TRTC.VoiceRoom.islocked" = "Blocked"; -"Demo.TRTC.VoiceRoom.invitehandsup" = "Invite"; -"Demo.TRTC.VoiceRoom.presshandsup" = "Tap to Speak"; -"Demo.TRTC.VoiceRoom.saysomething" = "Send a message"; -"Demo.TRTC.Salon.close" = "Hide"; -"Demo.TRTC.VoiceRoom.exit" = "Exit"; -"Demo.TRTC.VoiceRoom.isvoicingandsuretoexit" = "Are you sure you want to exit the live stream?"; -"Demo.TRTC.Salon.roomid" = "Room ID"; -"Demo.TRTC.Salon.seatmuted" = "Muted by room owner"; -"Demo.TRTC.Salon.seatunmuted" = "Unmuted by room owner"; -"Demo.TRTC.Salon.pleaseselect" = "Please Select"; -"Demo.TRTC.VoiceRoom.onseatmuted" = "Muted by room owner"; -"Demo.TRTC.Salon.micmuted" = "Mic off"; -"Demo.TRTC.Salon.micunmuted" = "Mic on"; -"Demo.TRTC.VoiceRoom.ismuted" = "Muted"; -"Demo.TRTC.VoiceRoom.isunmuted" = "Unmuted"; -"Demo.TRTC.Salon.seatlistnotinit" = "The seat list has not been initialized."; -"Demo.TRTC.Salon.enterroomsuccess" = "Entered room successfully"; -"Demo.TRTC.Salon.enterroomfailed" = "Failed to enter room"; -"Demo.TRTC.VoiceRoom.sendsuccess" = "Sent successfully"; -"Demo.TRTC.VoiceRoom.sendfailedxx" = "Failed to send: xxx"; -"Demo.TRTC.Salon.hostoccupyseatsuccess" = "Seat taken successfully"; -"Demo.TRTC.Salon.hostoccupyseatfailed" = "Failed to take a seat"; -"Demo.TRTC.VoiceRoom.onlyanchorcanoperation" = "Only an anchor can perform this operation."; -"Demo.TRTC.VoiceRoom.seatislockedandcanthandup" = "Cannot take the seat as it is blocked."; -"Demo.TRTC.Salon.audience" = "Mic Off"; -"Demo.TRTC.VoiceRoom.otheranchor" = "Other Anchors"; -"Demo.TRTC.VoiceRoom.isinxxseat" = "You are already in seat xxx."; -"Demo.TRTC.VoiceRoom.seatisnotinittocanthandsup" = "Cannot take the seat as the seat information has not been initialized"; -"Demo.TRTC.Salon.handsup" = "Mic On"; -"Demo.TRTC.VoiceRoom.totaxx" = "xxx"; -"Demo.TRTC.VoiceRoom.unmuteone" = "unblocked"; -"Demo.TRTC.VoiceRoom.muteone" = "Mute"; -"Demo.TRTC.VoiceRoom.makeoneaudience" = "Mic Off"; -"Demo.TRTC.VoiceRoom.invitehandsup" = "Mic On"; -"Demo.TRTC.VoiceRoom.banseat" = "Block Seat"; -"Demo.TRTC.VoiceRoom.liftbanseat" = "Unblock Seat"; -"Demo.TRTC.VoiceRoom.seatisbusy" = "The seat is taken."; -"Demo.TRTC.VoiceRoom.sendinvitesuccess" = "Invitation sent"; -"Demo.TRTC.Salon.reqisexpired" = "Request expired"; -"Demo.TRTC.Salon.acceptreqfailed" = "Failed to accept the request."; -"Demo.TRTC.Salon.audiencesuccess" = "Mic turned off successfully"; -"Demo.TRTC.Salon.audiencefailedxx" = "Failed to turn mic off: xxx"; -"Demo.TRTC.Salon.isbeingarchon" = "Mic already on"; -"Demo.TRTC.Salon.roomnotready" = "Room not ready"; -"Demo.TRTC.VoiceRoom.reqsentandwaitforarchondeal" = "Your request has been sent. Please wait for reply from the anchor."; -"Demo.TRTC.VoiceRoom.reqsendfailedxx" = "Failed to send request: xxx"; -"Demo.TRTC.Salon.successbecomespaker" = "Mic turned on successfully"; -"Demo.TRTC.Salon.failedbecomespaker" = "Failed to turn mic on"; -"Demo.TRTC.VoiceRoom.anchorinvitexxseat" = "The anchor invited you to take seat xxx."; -"Demo.TRTC.VoiceRoom.refusehandsupreq" = "You declined the mic-on request."; -"Demo.TRTC.VoiceRoom.applyforxxseat" = "requested to take seat xxx"; -"Demo.TRTC.Salon.archonclosedroom" = "Room closed"; -"Demo.TRTC.VoiceRoom.seatlistwentwrong" = "Seat list data error"; -"Demo.TRTC.VoiceRoom.xxbeyyseat" = "xxx took seat yyy"; -"Demo.TRTC.VoiceRoom.xxaudienceyyseat" = "xxx left seat yyy"; -"Demo.TRTC.VoiceRoom.xxisbemuted" = "Muted seat xxx"; -"Demo.TRTC.VoiceRoom.xxisbeunmuted" = "Unmuted seat xxx"; -"Demo.TRTC.VoiceRoom.ownerxxyyseat" = "The room owner xxx seat yyy."; -"Demo.TRTC.VoiceRoom.ban" = "blocked"; -"Demo.TRTC.VoiceRoom.xxexitroom" = "xxx left the room"; -"Demo.TRTC.VoiceRoom.hugxxhandsupsuccess" = "Placed xxx in the seat"; -"Demo.TRTC.VoiceRoom.refusebespeaker" = "xxx declined the mic-on request"; -"Demo.TRTC.VoiceRoom.xxonline" = "xxx is online"; -"Demo.TRTC.VoiceRoom.voicechatroom" = "Audio Chat Room"; -"Demo.TRTC.Salon.invalidappid" = "Incorrect app ID"; -"Demo.TRTC.VoiceRoom.nocontentnow" = "No content now"; -"Demo.TRTC.Salon.getlistfailed" = "Failed to get the list."; -"Demo.TRTC.VoiceRoom.createvoicechatroom" = "Create Audio Chat Room"; -"Demo.TRTC.Salon.topic" = "Subject"; -"Demo.TRTC.VoiceRoom.entertopic" = "Enter a room subject"; -"Demo.TRTC.VoiceRoom.nickname" = "Nickname"; -"Demo.TRTC.VoiceRoom.enternickname" = "Enter a nickname"; -"Demo.TRTC.VoiceRoom.bespeakershouldagreebyowner" = "Require Your Consent to Speak"; -"Demo.TRTC.VoiceRoom.soundqualityselect" = "Sound Quality"; -"Demo.TRTC.VoiceRoom.voice" = "Voice"; -"Demo.TRTC.VoiceRoom.createchatroom" = "Create"; -//"Demo.TRTC.VoiceRoom.nullroomidwillautocreateandjoinroom" = "若房间号不存在将自动创建并加入该房间"; -"Demo.TRTC.Salon.nicknameorusernameisempty" = "Nickname or username is empty."; -"Demo.TRTC.Meeting.secondarystream" = "Substream"; -"Demo.TRTC.Meeting.resolution" = "Resolution"; -"Demo.TRTC.Meeting.framerate" = "Frame Rate"; -"Demo.TRTC.Meeting.bitrate" = "Bitrate"; -"Demo.TRTC.Meeting.localmirror" = "Local Mirror"; -"Demo.TRTC.Meeting.resolutionselected" = "Resolution selected"; -"Demo.TRTC.Meeting.framerateselected" = "Frame rate selected"; -"Demo.TRTC.Meeting.capturevolume" = "Collection Volume"; -"Demo.TRTC.Meeting.playingvolume" = "Playback Volume"; -"Demo.TRTC.Meeting.volumeprompt" = "Volume Reminder"; -"Demo.TRTC.Meeting.audiorecording" = "Audio Recording"; -"Demo.TRTC.Meeting.volumepromptswitch" = "Volume Reminder:"; -"Demo.TRTC.Meeting.startrecording" = "Start"; -"Demo.TRTC.Meeting.endrecording" = "End"; -"Demo.TRTC.Meeting.recordingsavepath" = "Recording file save path:"; -"Demo.TRTC.Meeting.share" = "Share"; -"Demo.TRTC.Meeting.multivideoconference" = "Video Conferencing"; -"Demo.TRTC.Meeting.meetingnum" = "Conference ID"; -"Demo.TRTC.Salon.userid" = "Username"; -"Demo.TRTC.Meeting.entermeetingnum" = "Enter a conference ID"; -"Demo.TRTC.Meeting.enterusername" = "Enter a username"; -"Demo.TRTC.Meeting.opencamera" = "Camera"; -"Demo.TRTC.Meeting.openmic" = "Mic"; -"Demo.TRTC.Meeting.picqualityselect" = "Image Quality"; -"Demo.TRTC.Meeting.smooth" = "Smooth"; -"Demo.TRTC.Meeting.clear" = "High definition"; -"Demo.TRTC.Meeting.entermeeting" = "Join"; -"Demo.TRTC.Meeting.enterlegitmeetingnum" = "Enter a valid conference ID"; -"Demo.TRTC.Meeting.meetingcreatsuccess" = "Conference created"; -"Demo.TRTC.Meeting.meetingentersuccess" = "Joined conference"; -"Demo.TRTC.Meeting.meetingenterfailed" = "Failed to join conference: "; -"Demo.TRTC.Meeting.startrecordingfailed" = "Failed to start screen recording"; -"Demo.TRTC.Meeting.wentwrongxxyy" = "Error [xxx]: yyy"; -"Demo.TRTC.Meeting.creatorendmeeting" = "Conference ended by initiator"; -"Demo.TRTC.Meeting.screensharingbegan" = "Screen sharing started"; -"Demo.TRTC.Meeting.screensharingpause" = "Screen sharing paused"; -"Demo.TRTC.Meeting.screensharingresume" = "Screen sharing resumed"; -"Demo.TRTC.Meeting.exitmeeting" = "Leave"; -"Demo.TRTC.Meeting.suretoexitmeeting" = "Are you sure you want to leave the conference?"; -"Demo.TRTC.Meeting.versiontoolow" = "Your system version is below 12.0. Please update."; -"Demo.TRTC.Meeting.memberlist" = "Members"; -"Demo.TRTC.Meeting.mutedall" = "Mute All"; -"Demo.TRTC.Meeting.unmutedall" = "Unmute All"; -"Demo.TRTC.Meeting.forbidallpic" = "Stop Videos"; -"Demo.TRTC.Meeting.video" = "Video"; -"Demo.TRTC.Meeting.audio" = "Audio"; -"Demo.TRTC.Meeting.setting" = "Settings"; -"Demo.TRTC.Salon.xxsroom" = "'s salon room"; -"Demo.TRTC.Salon.createsalonroom" = "create a chat salon room"; -"Demo.TRTC.Salon.defaultroomtopic" = "default room topic"; -"Demo.TRTC.Salon.defaultuserid" = "default user ID"; -"Demo.TRTC.Salon.letsgo" = "Let’s go"; -"Demo.TRTC.Salon.raisedhands" = "Raised hands"; -"Demo.TRTC.Salon.welcome" = "Welcome"; -"Demo.TRTC.Salon.dismiss" = "Dismiss"; -"Demo.TRTC.Salon.appliestobecomeaspeaker" = "applies to become a speaker"; -"Demo.TRTC.Salon.raisedhandandwaitmanageraccept" = "You raised your hand! We'll let the speakers know you want to talk~"; -"Demo.TRTC.Salon.surewanttoleaveroom" = "You want to leave the room?"; -"Demo.TRTC.Salon.audienceconfirm" = "Confirm"; -"Demo.TRTC.Salon.waitabit" = "Wait a bit"; -"Demo.TRTC.Salon.waitinghostconsent" = "waiting for host's consent"; -"Demo.TRTC.Salon.failedsenthandupmessage" = "failed to sent the hand-up message"; -"Demo.TRTC.Salon.movetotheaudience" = "move to the audience"; -"Demo.TRTC.Salon.failedaudience" = "failed to become an audience"; -"Demo.TRTC.Salon.anchor" = "speakers"; -"Demo.TRTC.Salon.audiences" = "audiences"; -"Demo.TRTC.Salon.leavequietly" = "Leave quietly"; -"Demo.TRTC.Salon.wanttoendroom" = "you want to end the room?"; -"Demo.TRTC.Salon.chatsalon" = "chat salon"; -"Demo.TRTC.Salon.online" = "online"; -"Demo.TRTC.Home.appusetoshowfunc" = "This app demonstrates the features of Tencent Video Cloud terminal products."; -"Demo.TRTC.Home.newversionpublic" = "A new version is available"; -"Demo.TRTC.Home.updatenow" = "Update Now"; -"Demo.TRTC.Home.later" = "Later"; -"Demo.TRTC.Streaming.tips" = "Tips"; -"Demo.TRTC.Streaming.claim" = "In accordance with relevant regulations, the app forbids pornographic, abusive, violent, terrorist, and politically sensitive content. All audio/video calls and live streams are recorded and archived."; -"Demo.TRTC.Streaming.call" = "Call"; -"Demo.TRTC.Home.loginimsuccess" = "Logged in to IM"; -"Demo.TRTC.Home.loginimfailed" = "Failed to log in to IM"; - -"Demo.TRTC.Login.setavatar" = "Change Profile Picture"; -"Demo.TRTC.Login.done" = "Done"; - -"Demo.TRTC.Live.trtcSpeedTest" = "Speed Test"; -"Demo.TRTC.Live.trtcLive" = "Interactive Live Video Streaming"; -"Demo.TRTC.Live.trtcCalling" = "Video Call"; - -"Demo.TRTC.Live.speedTest" = "Start Speed Test"; -"Demo.TRTC.Live.stopSpeedTest" = "Stop Speed Test"; -"Demo.TRTC.Live.enterRoom" = "Create and Join Room"; -"Demo.TRTC.Live.inputRoomId" = "Room ID:"; -"Demo.TRTC.Live.inputUserId" = "Username:"; - -"Demo.TRTC.Live.switchRole" = "Role"; -"Demo.TRTC.Live.anchor" = "Room Owner"; -"Demo.TRTC.Live.adudience" = "Audience"; - -"Demo.TRTC.Live.videoInput" = "Video Input"; -"Demo.TRTC.Live.camera" = "Camera"; -"Demo.TRTC.Live.mediaFile" = "Video File"; -"Demo.TRTC.Live.deviceCapture" = "Screen Recording"; -"Demo.TRTC.Live.none" = "No"; - -"Demo.TRTC.Live.autioInput" = "Audio Input"; -"Demo.TRTC.Live.sdkCapture" = "SDK Capturing"; -"Demo.TRTC.Live.customCapture" = "Custom Capturing"; - -"Demo.TRTC.Live.audioType" = "Volume Type"; -"Demo.TRTC.Live.audioTypeAuto" = "Auto"; -"Demo.TRTC.Live.audioTypeMedia" = "Media"; -"Demo.TRTC.Live.audioTypeCalling" = "Call"; - -"Demo.TRTC.Live.audioOutput" = "Audio Output"; -"Demo.TRTC.Live.speaker" = "Speaker"; -"Demo.TRTC.Live.earPhone" = "Receiver"; - -"Demo.TRTC.Live.audioQuality" = "Audio Quality"; -"Demo.TRTC.Live.talk" = "Speech"; -"Demo.TRTC.Live.default" = "Default"; -"Demo.TRTC.Live.music" = "Music"; - -"Demo.TRTC.Live.roomType" = "Room ID Type"; -"Demo.TRTC.Live.int" = "Number"; -"Demo.TRTC.Live.string" = "String"; - -"Demo.TRTC.Live.progress" = "Loading Progress"; -"Demo.TRTC.Live.enterRoomSuccess" = "Entered room"; -"Demo.TRTC.Live.enterRoomFail" = "Failed to enter room"; -"Demo.TRTC.Live.leaveRoom" = "Leave"; -"Demo.TRTC.Live.error" = "Error"; -"Demo.TRTC.Live.ok" = "OK"; - -"Demo.TRTC.Live.startScreenCapture" = "Start Screen Sharing"; -"Demo.TRTC.Live.stopScreenCapture" = "Stop Screen Sharing"; -"Demo.TRTC.Live.screenWait" = "📱Waiting for extension"; -"Demo.TRTC.Live.screenCapture" = "📱Sharing screen"; -"Demo.TRTC.Live.screenStop" = "📱Stopped"; -"Demo.TRTC.Live.screenPause" = "📱Paused"; - -"Demo.TRTC.Live.switchCdnPlay" = "Switch to CDN Streaming"; -"Demo.TRTC.Live.switchUdpPlay" = "Switch to UDP Streaming"; - -"Demo.TRTC.Live.video" = "Video"; -"Demo.TRTC.Live.setBitrate" = "Bitrate"; -"Demo.TRTC.Live.setResolution" = "Resolution"; -"Demo.TRTC.Live.setFps" = "Frame Rate"; -"Demo.TRTC.Live.setPicPreferen" = "Video Quality"; -"Demo.TRTC.Live.priorFlow" = "Smooth"; -"Demo.TRTC.Live.priorClear" = "Clear"; -"Demo.TRTC.Live.pictureDir" = "Orientation"; -"Demo.TRTC.Live.horMode" = "Landscape"; -"Demo.TRTC.Live.verMode" = "Portrait"; -"Demo.TRTC.Live.fillMode" = "Image Fill Mode"; -"Demo.TRTC.Live.fill" = "Scale to Fill"; -"Demo.TRTC.Live.fit" = "Aspect Fit"; -"Demo.TRTC.Live.previewRotation" = "Local Image Rotation"; -"Demo.TRTC.Live.encodeRotation" = "Encoded Image Rotation"; -"Demo.TRTC.Live.preMirror" = "Local Image Mirror"; -"Demo.TRTC.Live.autoMirror" = "Front Camera On"; -"Demo.TRTC.Live.enableMirror" = "Front & Rear Cameras On"; -"Demo.TRTC.Live.disableMirror" = "Front & Rear Cameras Off"; -"Demo.TRTC.Live.remoteMirror" = "Remote Image Mirror"; -"Demo.TRTC.Live.enableWaterMark" = "Watermark"; -"Demo.TRTC.Live.pauseCapture" = "Pause Video Capturing"; -"Demo.TRTC.Live.sharpnessEnhancement" = "Image Enhancement"; -"Demo.TRTC.Live.videoMuteImage" = "Set Pause Image"; -"Demo.TRTC.Live.videoTimestampWaterMark" = "Time Watermark"; -"Demo.TRTC.Live.localVideoSnapshot" = "Local Video Screenshot"; -"Demo.TRTC.Live.snapshot" = "Take"; -"Demo.TRTC.Live.noImage" = "No image"; - -"Demo.TRTC.Live.audio" = "Audio"; -"Demo.TRTC.Live.ans" = "Noise elimination"; -"Demo.TRTC.Live.aec" = "Echo Cancellation"; -"Demo.TRTC.Live.captureVolume" = "Capturing Volume"; -"Demo.TRTC.Live.playVolume" = "Playback Volume"; -"Demo.TRTC.Live.earMonitoring" = "In-ear Monitoring"; -"Demo.TRTC.Live.earPhoneMode" = "Receiver"; -"Demo.TRTC.Live.agc" = "AGC"; -"Demo.TRTC.Live.volumeEvaluation" = "Volume Reminder"; - -"Demo.TRTC.Live.stream" = "MixTranscoding"; -"Demo.TRTC.Live.streamUrl" = "Playback Address"; -"Demo.TRTC.Live.copy" = "Copy"; -"Demo.TRTC.Live.urlAlreadyCopy" = "Playback address copied to clipboard"; - -"Demo.TRTC.Live.remoteRoomId" = "Room ID of other anchor:"; -"Demo.TRTC.Live.remoteUserId" = "Username of other anchor:"; -"Demo.TRTC.Live.startPk" = "Start"; -"Demo.TRTC.Live.stopPk" = "Stop"; - -"Demo.TRTC.Live.other" = "Others"; -"Demo.TRTC.Live.gSensor" = "Gravity Sensor"; -"Demo.TRTC.Live.flashLight" = "Flashlight"; -"Demo.TRTC.Live.sendSEIMessage" = "Send SEI Message"; - -"Demo.TRTC.Live.userList" = "User List"; -"Demo.TRTC.Live.enableVideo" = "Video"; -"Demo.TRTC.Live.enableAudio" = "Audio"; -"Demo.TRTC.Live.enableMirror" = "Mirror"; -"Demo.TRTC.Live.picRotation" = "Rotation"; -"Demo.TRTC.Live.volumeNum" = "Volume"; - -"Demo.TRTC.speedTestUserId" = "Username:"; -"Demo.TRTC.startSpeedTest" = "Start Speed Test"; -"Demo.TRTC.speedTestResult" = "Test Result"; -"Demo.TRTC.completedTest" = "Speed test finished"; -"Demo.TRTC.enterRoom" = "Enter Room"; - -"Demo.TRTC.gSenorClose" = "Gravity has been turned off"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/TRTCLocalized/zh-Hans.lproj/TRTCDemoLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/TRTCLocalized/zh-Hans.lproj/TRTCDemoLocalized.strings deleted file mode 100644 index 3de42693..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/TRTCLocalized/zh-Hans.lproj/TRTCDemoLocalized.strings +++ /dev/null @@ -1,498 +0,0 @@ -/* - TRTCDemoLocalized.strings - TXLiteAVDemo - - Created by gg on 2021/3/11. - Copyright © 2021 Tencent. All rights reserved. -*/ - -"Demo.TRTC.calling.muteon" = "开启静音"; -"Demo.TRTC.calling.muteoff" = "关闭静音"; -"Demo.TRTC.calling.handsfreeon" = "开启免提"; -"Demo.TRTC.calling.handsfreeoff" = "关闭免提"; -"Demo.TRTC.calling.invitetovideocall" = "邀请你视频通话"; -"Demo.TRTC.calling.yourphonenumber" = "您的手机号"; -"Demo.TRTC.calling.searchphonenumber" = "搜索手机号"; -"Demo.TRTC.calling.searching" = "搜索"; -"Demo.TRTC.calling.searchandcall" = "搜索添加已注册用户\n以发起通话"; -"Demo.TRTC.calling.callingbegan" = "进入通话"; -"Demo.TRTC.calling.callingcancel" = "通话取消"; -"Demo.TRTC.calling.callingtimeout" = "通话超时"; -"Demo.TRTC.calling.callingrefuse" = "拒绝了通话"; -"Demo.TRTC.calling.callingleave" = "离开了通话"; -"Demo.TRTC.calling.callingnoresponse" = "未响应"; -"Demo.TRTC.calling.callingbusy" = "忙线"; -"Demo.TRTC.calling.searchingfailed" = "查询失败"; -"Demo.TRTC.calling.cantinviteself" = "不能邀请自己"; -"Demo.TRTC.calling.useriderror" = "用户名或用户签名设置有误"; -"Demo.TRTC.calling.callingrequest" = "您有一个通话请求"; -"Demo.TRTC.calling.syserror"= "系统错误"; -"Demo.TRTC.calling.xxmode" = "xxx模式"; -"Demo.TRTC.LiveRoom.pullrefresh" = "下拉刷新"; -"Demo.TRTC.LiveRoom.refreshing" = "刷新中"; -"Demo.TRTC.LiveRoom.videointeraction" = "视频互动"; -"Demo.TRTC.LiveRoom.switchto" = "是否需要切换到xxx模式"; -"Demo.TRTC.LiveRoom.cancel" = "取消"; -"Demo.TRTC.LiveRoom.confirm" = "确定"; -"Demo.TRTC.LiveRoom.restarttotakeeffect" = "重启app后生效"; -"Demo.TRTC.LiveRoom.roominfofailed" = "房间信息获取失败,请稍后再试。"; -"Demo.TRTC.LiveRoom.roomexceedlimit" = "当前房间人数超过限制,无法加入。"; -"Demo.TRTC.LiveRoom.invite" = "邀请"; -"Demo.TRTC.LiveRoom.invitepk" = "PK邀请"; -"Demo.TRTC.LiveRoom.loading" = "正在加载..."; -"Demo.TRTC.LiveRoom.noanchor" = "暂无主播"; -"Demo.TRTC.LiveRoom.notice" = "通知"; -"Demo.TRTC.LiveRoom.originalsound" = "原声"; -"Demo.TRTC.LiveRoom.ktv" = "KTV"; -"Demo.TRTC.LiveRoom.room" = "房间"; -"Demo.TRTC.LiveRoom.hall" = "会堂"; -"Demo.TRTC.LiveRoom.muffled" = "低沉"; -"Demo.TRTC.LiveRoom.sonorous" = "洪亮"; -"Demo.TRTC.LiveRoom.metal" = "金属"; -"Demo.TRTC.LiveRoom.magnetic" = "磁性"; -"Demo.TRTC.LiveRoom.badboy" = "熊孩子"; -"Demo.TRTC.LiveRoom.loli" = "萝莉"; -"Demo.TRTC.LiveRoom.uncle" = "大叔"; -"Demo.TRTC.LiveRoom.heavymetal" = "重金属"; -"Demo.TRTC.LiveRoom.catarrh" = "感冒"; -"Demo.TRTC.LiveRoom.foreigner" = "外国人"; -"Demo.TRTC.LiveRoom.sleepybeast" = "困兽"; -"Demo.TRTC.LiveRoom.fattydead" = "死肥仔"; -"Demo.TRTC.LiveRoom.strongcurrent" = "强电流"; -"Demo.TRTC.LiveRoom.heavymachinery" = "重机械"; -"Demo.TRTC.LiveRoom.ethereal" = "空灵"; -"Demo.TRTC.LiveRoom.stop" = "停止"; -"Demo.TRTC.LiveRoom.send" = "发送"; -"Demo.TRTC.LiveRoom.saysomething" = "和大家说点什么吧"; -"Demo.TRTC.LiveRoom.accompaniment" = "伴奏"; -"Demo.TRTC.LiveRoom.end" = "结束"; -"Demo.TRTC.LiveRoom.endpk" = "结束PK"; -"Demo.TRTC.LiveRoom.accompanimentvolume" = "伴奏音量"; -"Demo.TRTC.LiveRoom.vocalvolume" = "人声音量"; -"Demo.TRTC.LiveRoom.accompanimentfastforward" = "伴奏快进"; -"Demo.TRTC.LiveRoom.interactioninprogress" = "视频互动进行中,确定要退出吗?"; -"Demo.TRTC.LiveRoom.joininteraction" = "加入视频互动"; -"Demo.TRTC.LiveRoom.exitinteraction" = "退出视频互动"; -"Demo.TRTC.LiveRoom.clicklike" = "点了个赞"; -"Demo.TRTC.LiveRoom.messagecantbeempty" = "消息不能为空"; -"Demo.TRTC.LiveRoom.me" = "我"; -"Demo.TRTC.LiveRoom.interactionitsover" = "视频互动结束啦!"; -"Demo.TRTC.LiveRoom.interactionduration" = "视频互动时长"; -"Demo.TRTC.LiveRoom.viewers" = "观看人数"; -"Demo.TRTC.LiveRoom.numberoflikes" = "获赞数量"; -"Demo.TRTC.LiveRoom.back" = "返回"; -"Demo.TRTC.LiveRoom.alerttoexperienceandshowlongestduration" = "本App仅用于功能体验,请勿商用。每个房间最多10人,持续时间最长10分钟。"; -"Demo.TRTC.LiveRoom.start" = "开始"; -"Demo.TRTC.LiveRoom.titlefuncanattractpopularity" = "标题有趣能吸引人气"; -"Demo.TRTC.LiveRoom.soundquality" = "音质"; -"Demo.TRTC.LiveRoom.standard" = "标准"; -"Demo.TRTC.LiveRoom.music" = "音乐"; -"Demo.TRTC.LiveRoom.roomnamecantbeempty" = "房间名不能为空"; -"Demo.TRTC.LiveRoom.createroomfailed" = "创建房间失败"; -"Demo.TRTC.LiveRoom.alerttoexperienceandupperlimit" = "本App仅用于功能体验,当前持续时间已达到10分钟上限,已自动解散房间。"; -"Demo.TRTC.LiveRoom.micconnectionrefusedandanchorpeopleexceedsmaxlimit" = "连麦请求拒绝,主播端连麦人数超过最大限制"; -"Demo.TRTC.LiveRoom.anchorpeopleexceedsmaxlimit" = "主播端连麦人数超过最大限制"; -"Demo.TRTC.LiveRoom.micconnectionrefusedandanchordealotherreq" = "连麦请求拒绝,主播正在处理其它人的连麦请求"; -"Demo.TRTC.LiveRoom.waitforhandleotherreq" = "请稍后,主播正在处理其它人的连麦请求"; -"Demo.TRTC.LiveRoom.micconnectionrefusedandinpk" = "连麦请求拒绝,正在进行PK操作"; -"Demo.TRTC.LiveRoom.prompt" = "提示"; -"Demo.TRTC.LiveRoom.xxinitiateamicconnectionreq" = "xxx向您发起连麦请求"; -"Demo.TRTC.LiveRoom.accept" = "接受"; -"Demo.TRTC.LiveRoom.refuse" = "拒绝"; -"Demo.TRTC.LiveRoom.refusemicconnectionreq" = "主播拒绝了您的连麦请求"; -"Demo.TRTC.LiveRoom.xxmicconnectiontimeout" = "xxx连麦超时"; -"Demo.TRTC.LiveRoom.dealmicconnectionreqtimeout" = "处理连麦请求超时"; -"Demo.TRTC.LiveRoom.xxinitiatepk" = "xxx发起了PK请求"; -"Demo.TRTC.LiveRoom.anchorrefuse" = "主播拒绝"; -"Demo.TRTC.LiveRoom.dealxxpktimeout" = "处理xxxPK超时"; -"Demo.TRTC.LiveRoom.micconnectingandwaitforpk" = "正在连麦中,请稍候尝试PK操作"; -"Demo.TRTC.LiveRoom.xxacceptpkreq" = "xxx已接受您的PK请求"; -"Demo.TRTC.LiveRoom.xxrefusepkreq" = "xxx拒绝了您的PK请求"; -"Demo.TRTC.LiveRoom.opponentanchorendpd" = "对方主播已结束PK"; -"Demo.TRTC.LiveRoom.anchornotonline" = "主播暂时不在线..."; -"Demo.TRTC.LiveRoom.enterroomfailed" = "进入房间失败"; -"Demo.TRTC.LiveRoom.waitforanchoraccept" = "等待主播接受"; -"Demo.TRTC.LiveRoom.anchoracceptreqandbegan" = "主播接受了您的连麦请求,开始连麦"; -"Demo.TRTC.LiveRoom.micconnecttimeoutandanchornoresponse" = "连麦请求超时,主播没有做出回应"; -"Demo.TRTC.LiveRoom.anchorcloseinteraction" = "大主播关闭视频互动"; -"Demo.TRTC.LiveRoom.anchorcloseinteractionroom" = "大主播关闭视频互动间"; -"Demo.TRTC.LiveRoom.sorryforkicked" = "不好意思,您被房主踢开"; -"Demo.TRTC.LiveRoom.addressillegalandsupportrfhm" = "播放地址不合法,目前仅支持rtmp,flv,hls,mp4播放方式!"; -"Demo.TRTC.LiveRoom.addressillegalandsupportrf" = "播放地址不合法,直播目前仅支持rtmp,flv播放方式!"; -"Demo.TRTC.LiveRoom.addressillegalandsupportfhm" = "播放地址不合法,点播目前仅支持flv,hls,mp4播放方式!"; -"Demo.TRTC.LiveRoom.endedinteractive" = "已结束互动"; -"Demo.TRTC.LiveRoom.micauthorityfailed" = "获取麦克风权限失败,请前往隐私-麦克风设置里面打开应用权限"; -"Demo.TRTC.LiveRoom.cameraauthorityfailed" = "获取摄像头权限失败,请前往隐私-相机设置里面打开应用权限"; -"Demo.TRTC.LiveRoom.notsupporthardencodeandstartmicconnectfailed" = "系统不支持硬编码, 启动连麦失败"; -"Demo.TRTC.LiveRoom.nocontentnow~" = "当前暂无内容哦~"; -"Demo.TRTC.LiveRoom.getroomlistfailed" = "获取房间列表失败"; -"Demo.TRTC.LiveRoom.initializefailed" = "初始化失败"; -"Demo.TRTC.LiveRoom.enterroomtimeout" = "enterRoom 请求超时"; -"Demo.TRTC.LiveRoom.onlyordinarymembercanexit" = "只有普通成员才能退房"; -"Demo.TRTC.LiveRoom.notenterroom" = "没有进入房间"; -"Demo.TRTC.LiveRoom.notfoundanchor" = "未找到该主播"; -"Demo.TRTC.LiveRoom.notlogin" = "还未登录"; -"Demo.TRTC.LiveRoom.ismicconnectednow" = "当前已经是连麦状态"; -"Demo.TRTC.LiveRoom.anchorisinpk" = "当前主播正在PK"; -"Demo.TRTC.LiveRoom.userwaitingresponseformicconnect" = "当前用户正在等待连麦回复"; -"Demo.TRTC.LiveRoom.smtwrongandretry" = "出错请稍后尝试"; -"Demo.TRTC.LiveRoom.anchornotresponsethereq" = "主播未回应连麦请求"; -"Demo.TRTC.LiveRoom.usernotmicconnect" = "该用户尚未连麦"; -"Demo.TRTC.LiveRoom.onlypushstreamcanoperate" = "只有推流后才能操作"; -"Demo.TRTC.LiveRoom.anchorisconnectingandunablepk" = "当前主播正在连麦, 无法开启PK"; -"Demo.TRTC.LiveRoom.useriswaitingforpkrep" = "当前用户正在等待PK回复"; -"Demo.TRTC.LiveRoom.anchornotresponsepkbetweenroom" = "主播未回应跨房PK请求"; -"Demo.TRTC.LiveRoom.isnotpkstate" = "当前不是PK状态"; -"Demo.TRTC.LiveRoom.receiveothermessage" = "收到了其他消息"; -"Demo.TRTC.LiveRoom.anchorispkbetweenroom" = "主播正在跨房PK中"; -"Demo.TRTC.LiveRoom.anchordealothermicconnect" = "主播正在处理他人连麦中"; -"Demo.TRTC.LiveRoom.timeouttonorespond" = "超时未回应"; -"Demo.TRTC.LiveRoom.anchorismicconnecting" = "主播正在连麦中"; -"Demo.TRTC.LiveRoom.anchorispking" = "主播正在PK中"; -"Demo.TRTC.LiveRoom.timeouttonoresponse" = "超时未响应"; -"Demo.TRTC.LiveRoom.hasnotenterroom" = "还未进入房间"; -"Demo.TRTC.LiveRoom.isinroomnow" = "当前在房间中"; -"Demo.TRTC.LiveRoom.onlyanchorcanoperation" = "只有主播才能操作"; -"Demo.TRTC.LiveRoom.donotreplaypls" = "请勿重复播放"; -"Demo.TRTC.LiveRoom.timeouttonotplay" = "超时未播放"; -"Demo.TRTC.LiveRoom.stopplaying" = "停止播放"; -"Demo.TRTC.LiveRoom.playingfailed" = "播放失败"; -"Demo.TRTC.LiveRoom.cannotgetroominfo" = "无法获取房间信息"; -"Demo.TRTC.LiveRoom.getroominfofailed" = "获取房间信息失败"; -"Demo.TRTC.LiveRoom.anchorlistisnull" = "主播列表为空"; -"Demo.TRTC.LiveRoom.xxinroom" = "xxx进房"; -"Demo.TRTC.Buy.chatroom" = "您当前使用的云通讯账号未开通音视频聊天室功能,创建聊天室数量超过限额,请前往腾讯云官网开通【IM音视频聊天室】,地址:xxx"; -"Demo.TRTC.Buy.grouplimit" = "单个用户可创建和加入的群组数量超过了限制,请购买相关套餐,价格地址:xxx"; -"Demo.TRTC.Buy.groupmemberlimit" = "群成员数量超过限制,请参考,请购买相关套餐,价格地址:xxx"; -"Demo.TRTC.Salon.userisspeaker" = "该用户已经是上麦主播了"; -"Demo.TRTC.VoiceRoom.islocked" = "已锁定"; -"Demo.TRTC.VoiceRoom.invitehandsup" = "邀请上麦"; -"Demo.TRTC.VoiceRoom.presshandsup" = "点击上麦"; -"Demo.TRTC.VoiceRoom.saysomething" = "说点什么"; -"Demo.TRTC.Salon.close" = "关闭"; -"Demo.TRTC.VoiceRoom.exit" = "退出"; -"Demo.TRTC.VoiceRoom.isvoicingandsuretoexit" = "当前正在音频互动,是否退出"; -"Demo.TRTC.Salon.roomid" = "房间号"; -"Demo.TRTC.Salon.seatmuted" = "被房主禁言"; -"Demo.TRTC.Salon.seatunmuted" = "被房主解禁"; -"Demo.TRTC.Salon.pleaseselect" = "请选择"; -"Demo.TRTC.VoiceRoom.onseatmuted" = "已被房主禁言"; -"Demo.TRTC.Salon.micmuted" = "已关闭麦克风"; -"Demo.TRTC.Salon.micunmuted" = "已打开麦克风"; -"Demo.TRTC.VoiceRoom.ismuted" = "已静音"; -"Demo.TRTC.VoiceRoom.isunmuted" = "已取消静音"; -"Demo.TRTC.Salon.seatlistnotinit" = "麦位列表还未初始化哦!"; -"Demo.TRTC.Salon.enterroomsuccess" = "进房成功"; -"Demo.TRTC.Salon.enterroomfailed" = "进房失败"; -"Demo.TRTC.VoiceRoom.sendsuccess" = "发送成功"; -"Demo.TRTC.VoiceRoom.sendfailedxx" = "发送失败:xxx"; -"Demo.TRTC.Salon.hostoccupyseatsuccess" = "房主占座成功"; -"Demo.TRTC.Salon.hostoccupyseatfailed" = "房主占座失败"; -"Demo.TRTC.VoiceRoom.onlyanchorcanoperation" = "只有主播才能操作哦"; -"Demo.TRTC.VoiceRoom.seatislockedandcanthandup" = "麦位已被锁定,无法申请上麦"; -"Demo.TRTC.Salon.audience" = "下麦"; -"Demo.TRTC.VoiceRoom.otheranchor" = "其他主播"; -"Demo.TRTC.VoiceRoom.isinxxseat" = "您已经在xxx号麦位上了"; -"Demo.TRTC.VoiceRoom.seatisnotinittocanthandsup" = "麦位信息没有初始化,暂时无法申请上麦"; -"Demo.TRTC.Salon.handsup" = "上麦"; -"Demo.TRTC.VoiceRoom.totaxx" = "对Taxxx"; -"Demo.TRTC.VoiceRoom.unmuteone" = "解禁"; -"Demo.TRTC.VoiceRoom.muteone" = "禁言"; -"Demo.TRTC.VoiceRoom.makeoneaudience" = "请Ta下麦"; -"Demo.TRTC.VoiceRoom.invitehandsup" = "邀人上麦"; -"Demo.TRTC.VoiceRoom.banseat" = "封禁麦位"; -"Demo.TRTC.VoiceRoom.liftbanseat" = "解禁麦位"; -"Demo.TRTC.VoiceRoom.seatisbusy" = "这个座位已经有人了"; -"Demo.TRTC.VoiceRoom.sendinvitesuccess" = "发送邀请成功"; -"Demo.TRTC.Salon.reqisexpired" = "该请求已过期"; -"Demo.TRTC.Salon.acceptreqfailed" = "接受请求失败"; -"Demo.TRTC.Salon.audiencesuccess" = "下麦成功"; -"Demo.TRTC.Salon.audiencefailedxx" = "下麦失败:xxx"; -"Demo.TRTC.Salon.isbeingarchon" = "已经是上麦主播了"; -"Demo.TRTC.Salon.roomnotready" = "房间还没有准备好"; -"Demo.TRTC.VoiceRoom.reqsentandwaitforarchondeal" = "申请已发出,等待主播处理"; -"Demo.TRTC.VoiceRoom.reqsendfailedxx" = "申请发送失败:xxx"; -"Demo.TRTC.Salon.successbecomespaker" = "上麦成功"; -"Demo.TRTC.Salon.failedbecomespaker" = "上麦失败"; -"Demo.TRTC.VoiceRoom.anchorinvitexxseat" = "主播邀请你上xxx号麦"; -"Demo.TRTC.VoiceRoom.refusehandsupreq" = "您已经拒绝上麦申请"; -"Demo.TRTC.VoiceRoom.applyforxxseat" = "申请上xxx号麦"; -"Demo.TRTC.Salon.archonclosedroom" = "房主已解散房间"; -"Demo.TRTC.VoiceRoom.seatlistwentwrong" = "座位列表数据出问题了数据出问题了"; -"Demo.TRTC.VoiceRoom.xxbeyyseat" = "xxx上yyy号麦"; -"Demo.TRTC.VoiceRoom.xxaudienceyyseat" = "xxx下yyy号麦"; -"Demo.TRTC.VoiceRoom.xxisbemuted" = "xxx号位被禁言"; -"Demo.TRTC.VoiceRoom.xxisbeunmuted" = "xxx号位解除禁言"; -"Demo.TRTC.VoiceRoom.ownerxxyyseat" = "房主xxxyyy号位"; -"Demo.TRTC.VoiceRoom.ban" = "封禁"; -"Demo.TRTC.VoiceRoom.xxexitroom" = "xxx退房"; -"Demo.TRTC.VoiceRoom.hugxxhandsupsuccess" = "抱xxx上麦成功"; -"Demo.TRTC.VoiceRoom.refusebespeaker" = "xxx拒绝上麦"; -"Demo.TRTC.VoiceRoom.xxonline" = "xxx在线"; -"Demo.TRTC.VoiceRoom.voicechatroom" = "语音聊天室"; -"Demo.TRTC.Salon.invalidappid" = "APPID 不正确"; -"Demo.TRTC.VoiceRoom.nocontentnow" = "当前暂无内容哦"; -"Demo.TRTC.Salon.getlistfailed" = "获取列表失败"; -"Demo.TRTC.VoiceRoom.createvoicechatroom" = "创建语音聊天室"; -"Demo.TRTC.Salon.topic" = "主题"; -"Demo.TRTC.VoiceRoom.entertopic" = "请输入房间主题"; -"Demo.TRTC.VoiceRoom.nickname" = "昵称"; -"Demo.TRTC.VoiceRoom.enternickname" = "请输入昵称"; -"Demo.TRTC.VoiceRoom.bespeakershouldagreebyowner" = "上麦需要房主同意"; -"Demo.TRTC.VoiceRoom.soundqualityselect" = "音质选择"; -"Demo.TRTC.VoiceRoom.voice" = "语音"; -"Demo.TRTC.VoiceRoom.createchatroom" = "创建聊天室"; -//"Demo.TRTC.VoiceRoom.nullroomidwillautocreateandjoinroom" = "若房间号不存在将自动创建并加入该房间"; -"Demo.TRTC.Salon.nicknameorusernameisempty" = "昵称或用户名为空"; -"Demo.TRTC.Meeting.secondarystream" = "辅流"; -"Demo.TRTC.Meeting.resolution" = "分辨率"; -"Demo.TRTC.Meeting.framerate" = "帧率"; -"Demo.TRTC.Meeting.bitrate" = "码率"; -"Demo.TRTC.Meeting.localmirror" = "本地镜像"; -"Demo.TRTC.Meeting.resolutionselected" = "分辨率选择完毕"; -"Demo.TRTC.Meeting.framerateselected" = "帧率选择完毕"; -"Demo.TRTC.Meeting.capturevolume" = "采集音量"; -"Demo.TRTC.Meeting.playingvolume" = "播放音量"; -"Demo.TRTC.Meeting.volumeprompt" = "音量提示"; -"Demo.TRTC.Meeting.audiorecording" = "音频录制"; -"Demo.TRTC.Meeting.volumepromptswitch" = "音量提示切换:"; -"Demo.TRTC.Meeting.startrecording" = "开始录制"; -"Demo.TRTC.Meeting.endrecording" = "结束录制"; -"Demo.TRTC.Meeting.recordingsavepath" = "录音保存路径:"; -"Demo.TRTC.Meeting.share" = "分享"; -"Demo.TRTC.Meeting.multivideoconference" = "多人视频会议"; -"Demo.TRTC.Meeting.meetingnum" = "会议号"; -"Demo.TRTC.Salon.userid" = "用户名"; -"Demo.TRTC.Meeting.entermeetingnum" = "请输入会议号"; -"Demo.TRTC.Meeting.enterusername" = "请输入用户名"; -"Demo.TRTC.Meeting.opencamera" = "开启摄像头"; -"Demo.TRTC.Meeting.openmic" = "开启麦克风"; -"Demo.TRTC.Meeting.picqualityselect" = "画质选择"; -"Demo.TRTC.Meeting.smooth" = "流畅"; -"Demo.TRTC.Meeting.clear" = "清晰"; -"Demo.TRTC.Meeting.entermeeting" = "进入会议"; -"Demo.TRTC.Meeting.enterlegitmeetingnum" = "请输入合法的会议ID"; -"Demo.TRTC.Meeting.meetingcreatsuccess" = "会议创建成功"; -"Demo.TRTC.Meeting.meetingentersuccess" = "会议进入成功"; -"Demo.TRTC.Meeting.meetingenterfailed" = "会议进入失败:"; -"Demo.TRTC.Meeting.startrecordingfailed" = "启动录屏失败"; -"Demo.TRTC.Meeting.wentwrongxxyy" = "出现错误[xxx]:yyy"; -"Demo.TRTC.Meeting.creatorendmeeting" = "创建者已结束会议"; -"Demo.TRTC.Meeting.screensharingbegan" = "屏幕分享开始"; -"Demo.TRTC.Meeting.screensharingpause" = "屏幕分享暂停"; -"Demo.TRTC.Meeting.screensharingresume" = "屏幕分享恢复"; -"Demo.TRTC.Meeting.exitmeeting" = "退出会议"; -"Demo.TRTC.Meeting.suretoexitmeeting" = "确定退出会议?"; -"Demo.TRTC.Meeting.versiontoolow" = "系统版本低于12.0,请升级系统"; -"Demo.TRTC.Meeting.memberlist" = "成员列表"; -"Demo.TRTC.Meeting.mutedall" = "全体静音"; -"Demo.TRTC.Meeting.unmutedall" = "解除全体静音"; -"Demo.TRTC.Meeting.forbidallpic" = "全体禁画"; -"Demo.TRTC.Meeting.video" = "视频"; -"Demo.TRTC.Meeting.audio" = "音频"; -"Demo.TRTC.Meeting.setting" = "设置"; -"Demo.TRTC.Salon.xxsroom" = " 的沙龙"; -"Demo.TRTC.Salon.createsalonroom" = "创建语音沙龙"; -"Demo.TRTC.Salon.defaultroomtopic" = "默认房间名称"; -"Demo.TRTC.Salon.defaultuserid" = "默认用户名"; -"Demo.TRTC.Salon.letsgo" = "开始交谈"; -"Demo.TRTC.Salon.raisedhands" = "举手列表"; -"Demo.TRTC.Salon.welcome" = "欢迎"; -"Demo.TRTC.Salon.dismiss" = "忽略"; -"Demo.TRTC.Salon.appliestobecomeaspeaker" = "申请成为主播"; -"Demo.TRTC.Salon.raisedhandandwaitmanageraccept" = "举手成功!等待管理员通过~"; -"Demo.TRTC.Salon.surewanttoleaveroom" = "确认离开房间吗"; -"Demo.TRTC.Salon.audienceconfirm" = "确认"; -"Demo.TRTC.Salon.waitabit" = "再等等"; -"Demo.TRTC.Salon.waitinghostconsent" = "正在等待房主同意"; -"Demo.TRTC.Salon.failedsenthandupmessage" = "举手信息发送失败:"; -"Demo.TRTC.Salon.movetotheaudience" = "要求下麦"; -"Demo.TRTC.Salon.failedaudience" = "下麦失败:"; -"Demo.TRTC.Salon.anchor" = "主播"; -"Demo.TRTC.Salon.audiences" = "听众"; -"Demo.TRTC.Salon.leavequietly" = "安静离开~"; -"Demo.TRTC.Salon.wanttoendroom" = "离开会解散房间,确定离开吗?"; -"Demo.TRTC.Salon.chatsalon" = "语音沙龙"; -"Demo.TRTC.Salon.online" = "在线"; -"Demo.TRTC.Home.appusetoshowfunc" = "本APP用于展示腾讯视频云终端产品的各类功能"; -"Demo.TRTC.Home.newversionpublic" = "有新版本发布啦~"; -"Demo.TRTC.Home.updatenow" = "现在更新"; -"Demo.TRTC.Home.later" = "稍后再说"; -"Demo.TRTC.Streaming.tips" = "温馨提示"; -"Demo.TRTC.Streaming.claim" = "为配合相关部门监管要求,本App内音视频互动全程均有录音录像存档,严禁色情、辱骂、暴恐、涉政等违规内容。"; -"Demo.TRTC.Streaming.call" = "呼叫"; -"Demo.TRTC.Home.loginimsuccess" = "登录IM成功"; -"Demo.TRTC.Home.loginimfailed" = "登录IM失败"; - -// 未使用 -"Demo.TRTC." = "不能呼叫自己"; -"Demo.TRTC." = "播放地址不能为空"; -"Demo.TRTC." = "您是会议创建者,退出后会议将结束"; -"Demo.TRTC." = "需要打开悬浮窗权限"; -"Demo.TRTC." = "屏幕录制中"; -"Demo.TRTC." = "该房间是您创建,重新进入中..."; -"Demo.TRTC." = "请求网络失败"; -"Demo.TRTC." = "当前正在直播,是否退出直播"; -"Demo.TRTC." = "对 Ta 解禁"; -"Demo.TRTC." = "对 Ta 禁言"; -"Demo.TRTC." = "请 Ta 下麦"; -"Demo.TRTC." = "这个麦位已经有人了"; -"Demo.TRTC." = "退房成功"; -"Demo.TRTC." = "你拒绝上麦申请"; -"Demo.TRTC." = "您已开启麦克风"; -"Demo.TRTC." = "您已关闭麦克风"; -"Demo.TRTC." = "请输入内容"; -"Demo.TRTC." = "房主信息获取中"; -"Demo.TRTC." = "主播未上线"; -"Demo.TRTC." = "主播名还在查找"; -"Demo.TRTC." = "请输入手机号"; -"Demo.TRTC." = "请输入验证码"; -"Demo.TRTC." = "获取验证码"; -"Demo.TRTC." = "已同意 xxx 隐私政策"; -"Demo.TRTC." = "自动登录失败,请重新获取验证码登录"; -"Demo.TRTC." = "不要频繁获取验证码"; -"Demo.TRTC." = "用户协议"; -"Demo.TRTC." = "同意"; -"Demo.TRTC." = "不同意"; -"Demo.TRTC." = "登录成功"; -"Demo.TRTC." = "点击上方按钮发起呼叫"; -"Demo.TRTC." = "切换到TRTC模式"; -"Demo.TRTC." = "切换到CDN模式"; -"Demo.TRTC." = "切换成功,杀掉进程重启后生效"; -"Demo.TRTC." = "CDN模式"; -"Demo.TRTC." = "请先打开摄像头与麦克风权限"; -"Demo.TRTC." = "已经在连麦/PK中了"; -"Demo.TRTC." = "用户接受"; -"Demo.TRTC." = "用户拒绝"; -"Demo.TRTC." = "录音文件路径已复制"; - -"Demo.TRTC.Login.setavatar" = "设置头像"; -"Demo.TRTC.Login.done" = "确认"; - -"Demo.TRTC.Live.trtcSpeedTest" = "TRTC 网络测速"; -"Demo.TRTC.Live.trtcLive" = "TRTC 视频互动"; -"Demo.TRTC.Live.trtcCalling" = "TRTC 视频通话"; - -"Demo.TRTC.Live.speedTest" = "开始测速"; -"Demo.TRTC.Live.stopSpeedTest" = "停止测速"; -"Demo.TRTC.Live.enterRoom" = "创建并自动加入房间"; -"Demo.TRTC.Live.inputRoomId" = "请输入房间号:"; -"Demo.TRTC.Live.inputUserId" = "请输入用户名:"; - -"Demo.TRTC.Live.switchRole" = "角色选择"; -"Demo.TRTC.Live.anchor" = "房主"; -"Demo.TRTC.Live.adudience" = "观众"; - -"Demo.TRTC.Live.videoInput" = "视频输入"; -"Demo.TRTC.Live.camera" = "摄像头"; -"Demo.TRTC.Live.mediaFile" = "视频文件"; -"Demo.TRTC.Live.deviceCapture" = "录屏"; -"Demo.TRTC.Live.none" = "无"; - -"Demo.TRTC.Live.autioInput" = "音频输入"; -"Demo.TRTC.Live.sdkCapture" = "SDK采集"; -"Demo.TRTC.Live.customCapture" = "音频文件"; - -"Demo.TRTC.Live.audioType" = "音频类型"; -"Demo.TRTC.Live.audioTypeAuto" = "自动"; -"Demo.TRTC.Live.audioTypeMedia" = "媒体"; -"Demo.TRTC.Live.audioTypeCalling" = "通话"; - -"Demo.TRTC.Live.audioOutput" = "音频输出"; -"Demo.TRTC.Live.speaker" = "扬声器"; -"Demo.TRTC.Live.earPhone" = "听筒"; - -"Demo.TRTC.Live.audioQuality" = "音频质量"; -"Demo.TRTC.Live.talk" = "语音"; -"Demo.TRTC.Live.default" = "默认"; -"Demo.TRTC.Live.music" = "音乐"; - -"Demo.TRTC.Live.roomType" = "房间号类型"; -"Demo.TRTC.Live.int" = "数字"; -"Demo.TRTC.Live.string" = "字符串"; - -"Demo.TRTC.Live.progress" = "加载进度"; -"Demo.TRTC.Live.enterRoomSuccess" = "进房成功"; -"Demo.TRTC.Live.enterRoomFail" = "进房失败"; -"Demo.TRTC.Live.leaveRoom" = "离开房间"; -"Demo.TRTC.Live.error" = "发生错误"; -"Demo.TRTC.Live.ok" = "确定"; - -"Demo.TRTC.Live.startScreenCapture" = "开始屏幕分享"; -"Demo.TRTC.Live.stopScreenCapture" = "停止屏幕分享"; -"Demo.TRTC.Live.screenWait" = "📱屏幕分享(等待 Extension)"; -"Demo.TRTC.Live.screenCapture" = "📱屏幕分享(直播中)"; -"Demo.TRTC.Live.screenStop" = "📱屏幕分享(已停止)"; -"Demo.TRTC.Live.screenPause" = "📱屏幕分享(已暂停)"; - -"Demo.TRTC.Live.switchCdnPlay" = "切换到CDN播放"; -"Demo.TRTC.Live.switchUdpPlay" = "切换到UDP播放"; - -"Demo.TRTC.Live.video" = "视频"; -"Demo.TRTC.Live.setBitrate" = "码率设置"; -"Demo.TRTC.Live.setResolution" = "分辨率设置"; -"Demo.TRTC.Live.setFps" = "帧率设置"; -"Demo.TRTC.Live.setPicPreferen" = "画面偏好"; -"Demo.TRTC.Live.priorFlow" = "优先流畅"; -"Demo.TRTC.Live.priorClear" = "优先清晰"; -"Demo.TRTC.Live.pictureDir" = "画面方向"; -"Demo.TRTC.Live.horMode" = "横屏模式"; -"Demo.TRTC.Live.verMode" = "竖屏模式"; -"Demo.TRTC.Live.fillMode" = "画面填充"; -"Demo.TRTC.Live.fill" = "充满"; -"Demo.TRTC.Live.fit" = "自适应"; -"Demo.TRTC.Live.previewRotation" = "本地预览旋转角度"; -"Demo.TRTC.Live.encodeRotation" = "编码输出画面旋转"; -"Demo.TRTC.Live.preMirror" = "本地预览镜像"; -"Demo.TRTC.Live.autoMirror" = "前摄开启"; -"Demo.TRTC.Live.enableMirror" = "前后摄均开启"; -"Demo.TRTC.Live.disableMirror" = "前后摄均关闭"; -"Demo.TRTC.Live.remoteMirror" = "开启远程镜像"; -"Demo.TRTC.Live.enableWaterMark" = "开启视频水印"; -"Demo.TRTC.Live.pauseCapture" = "暂停视频采集"; -"Demo.TRTC.Live.sharpnessEnhancement" = "图像增强"; -"Demo.TRTC.Live.videoMuteImage" = "开启垫片"; -"Demo.TRTC.Live.videoTimestampWaterMark" = "开启时间水印"; -"Demo.TRTC.Live.localVideoSnapshot" = "本地视频截图"; -"Demo.TRTC.Live.snapshot" = "截图"; -"Demo.TRTC.Live.noImage" = "无图片"; - -"Demo.TRTC.Live.audio" = "音频"; -"Demo.TRTC.Live.ans" = "噪声消除"; -"Demo.TRTC.Live.aec" = "回声消除"; -"Demo.TRTC.Live.captureVolume" = "采集音量"; -"Demo.TRTC.Live.playVolume" = "播放音量"; -"Demo.TRTC.Live.earMonitoring" = "耳返"; -"Demo.TRTC.Live.earPhoneMode" = "听筒模式"; -"Demo.TRTC.Live.agc" = "自动增益"; -"Demo.TRTC.Live.volumeEvaluation" = "音量提示"; - -"Demo.TRTC.Live.stream" = "混流"; -"Demo.TRTC.Live.streamUrl" = "播放地址"; -"Demo.TRTC.Live.copy" = "复制"; -"Demo.TRTC.Live.urlAlreadyCopy" = "播放地址已复制到剪贴板"; - -"Demo.TRTC.Live.remoteRoomId" = "对方房间号:"; -"Demo.TRTC.Live.remoteUserId" = "对方用户名:"; -"Demo.TRTC.Live.startPk" = "开始PK"; -"Demo.TRTC.Live.stopPk" = "停止PK"; - -"Demo.TRTC.Live.other" = "其他"; -"Demo.TRTC.Live.gSensor" = "开启重力感应"; -"Demo.TRTC.Live.flashLight" = "开启闪光灯"; -"Demo.TRTC.Live.sendSEIMessage" = "发送SEI消息"; - -"Demo.TRTC.Live.userList" = "用户列表"; -"Demo.TRTC.Live.enableVideo" = "开启视频"; -"Demo.TRTC.Live.enableAudio" = "开启音频"; -"Demo.TRTC.Live.enableMirror" = "开启镜像"; -"Demo.TRTC.Live.picRotation" = "画面旋转"; -"Demo.TRTC.Live.volumeNum" = "音量大小"; - -"Demo.TRTC.speedTestUserId" = "请输入用户名(必填项)"; -"Demo.TRTC.startSpeedTest" = "开始测速"; -"Demo.TRTC.speedTestResult" = "测速结果"; -"Demo.TRTC.completedTest" = "完成测速"; -"Demo.TRTC.enterRoom" = "开始进房"; - -"Demo.TRTC.gSenorClose" = "重力感应已关闭"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/UGCLocalized/English.lproj/UGCLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/UGCLocalized/English.lproj/UGCLocalized.strings deleted file mode 100644 index fa4cca05..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/UGCLocalized/English.lproj/UGCLocalized.strings +++ /dev/null @@ -1,7 +0,0 @@ -/* - UGCLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/22. - Copyright © 2021 Tencent. All rights reserved. -*/ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/UGCLocalized/en.lproj/UGCLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/UGCLocalized/en.lproj/UGCLocalized.strings deleted file mode 100644 index 191f0550..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/UGCLocalized/en.lproj/UGCLocalized.strings +++ /dev/null @@ -1,72 +0,0 @@ -/* - UGCLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/22. - Copyright © 2021 Tencent. All rights reserved. -*/ - -"UGCKit.Preview.videoplayback" = "Replay"; - -"UGCKit.UGCKitWrapper.determine" = "OK"; -"UGCKit.UGCKitWrapper.prompt" = "Information"; -"UGCKit.UGCKitWrapper.cancel" = "Cancel"; -"UGCKit.UGCKitWrapper.normalmodel" = "Normal"; -"UGCKit.UGCKitWrapper.qualityofoptimization" = "Prioritize Quality"; -"UGCKit.UGCKitWrapper.convertgif" = "Convert to GIF"; -"UGCKit.UGCKitWrapper.selectzipmodel" = "Select Compression Method"; -"UGCKit.UGCKitWrapper.videofileerror" = "Video file error. Please try again."; -"UGCKit.UGCKitWrapper.generatefailure" = "Failed to generate video"; -"UGCKit.UGCKitWrapper.gifinit" = "Generating GIF"; -"UGCKit.UGCKitWrapper.gifinitsuccess" = "Converted to GIF and saved. View in your photo library."; -"UGCKit.UGCKitWrapper.gifsavefailed" = "Failed to save GIF"; -"UGCKit.UGCKitWrapper.operationfailure" = "Operation failed"; -"UGCKit.UGCKitWrapper.videoupload" = "Upload Video"; - -"UGCKit.PhotoUtil.notwritephoto" = "No permission to write to photo library"; - -"UGCVideoRecordDemo.VideoRecordConfig.openechocancellation" = "After enabling AEC, you can record voice, background music, as well as voice with background music. Note: if AEC is enabled, during shooting, music is played under the call mode, and you cannot mute the system, but during preview, media volume is used. This causes the music playback volume during shooting and preview to differ even if system volume is the same."; -"UGCVideoRecordDemo.VideoRecordConfig.closeechocancellation" = "After disabling AEC, you can record voice, BGM and, if earphone is plugged in, voice with background. When the speaker is on, AEC is enabled by default and cannot be disabled."; -"UGCVideoRecordDemo.VideoRecordConfig.warmreminder" = "Note"; -"UGCVideoRecordDemo.VideoRecordConfig.knowed" = "OK"; - -"UGCVideoJoinDemo.VideoPreview.cycle" = "Loop"; -"UGCVideoJoinDemo.VideoPreview.fadein" = "Fade in"; -"UGCVideoJoinDemo.VideoPreview.fadeout" = "Fade out"; - -"UGCVideoJoinDemo.TCVideoEditPrev.back" = "Back"; -"UGCVideoJoinDemo.TCVideoEditPrev.videopreview" = "Preview"; -"UGCVideoJoinDemo.TCVideoEditPrev.videocompositing" = "Splicing videos"; -"UGCVideoJoinDemo.TCVideoEditPrev.getvideoerror" = "Failed to get video"; -"UGCVideoJoinDemo.TCVideoEditPrev.videolistnothave" = "The list includes video(s) not supported"; -"UGCVideoJoinDemo.TCVideoEditPrev.videocompositingerror" = "Failed to splice videos"; -"UGCVideoJoinDemo.TCVideoEditPrev.backgrounderror" = "Because you switched the app to the background. Please try again."; -"UGCVideoJoinDemo.TCVideoEditPrev.errorcodexxerrormsgyy" = "Error code: xxx; error message: yyy"; - -"UGCVideoJoinDemo.VideoJoiner.videostitching" = "Splice Videos"; -"UGCVideoJoinDemo.VideoJoiner.videoshouldlist" = "The videos are spliced by their order in the list. You can long press and drag to reorder them."; -"UGCVideoJoinDemo.VideoJoiner.mustselectmorethantwovideofiles" = "You must select at least two videos"; - -"UGCVideoUploadDemo.ImageUpload.uploadimage" = "Upload Image"; -"UGCVideoUploadDemo.ImageUpload.uploadimageerror" = "Failed to upload image"; -"UGCVideoUploadDemo.ImageUpload.errorcodexx" = "Error code: xxx"; -"UGCVideoUploadDemo.ImageUpload.uploadimagesuccess" = "Image uploaded"; - -"UGCVideoUploadDemo.VideoCompress.thereisno" = "Original"; -"UGCVideoUploadDemo.VideoCompress.kbps" = "Bitrate (kbps)"; -"UGCVideoUploadDemo.VideoCompress.videogeneration" = "Generating video"; -"UGCVideoUploadDemo.VideoCompress.videogenerationerror" = "Failed to generate video"; -"UGCVideoUploadDemo.VideoCompress.videogenerationstop" = "Video generation interrupted"; -"UGCVideoUploadDemo.VideoCompress.zipingshouldinfront" = "You must keep the app in the foreground when videos are being compressed"; - -"UGCVideoUploadDemo.VideoCompressPreview.preview" = "Preview"; -"UGCVideoUploadDemo.VideoCompressPreview.title" = "Title:"; -"UGCVideoUploadDemo.VideoCompressPreview.settingtitle" = "Enter a title"; -"UGCVideoUploadDemo.VideoCompressPreview.cover" = "Thumbnail:"; -"UGCVideoUploadDemo.VideoCompressPreview.release" = "Publish"; -"UGCVideoUploadDemo.VideoCompressPreview.uploadvideo" = "Uploading video"; -"UGCVideoUploadDemo.VideoCompressPreview.uploadvideoerror" = "Failed to upload video"; -"UGCVideoUploadDemo.VideoCompressPreview.errormsgxx" = "Error message: xxx"; - -"UGCVideoUploadDemo.TXUGCPublishOptCenter.unknow" = "Unknown"; -"UGCVideoUploadDemo.TXUGCPublishOptCenter.notnetwork" = "No network"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/UGCLocalized/zh-Hans.lproj/UGCLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/UGCLocalized/zh-Hans.lproj/UGCLocalized.strings deleted file mode 100644 index aa90d538..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/UGCLocalized/zh-Hans.lproj/UGCLocalized.strings +++ /dev/null @@ -1,72 +0,0 @@ -/* - UGCLocalized.strings - TXLiteAVDemo - - Created by adams on 2021/3/22. - Copyright © 2021 Tencent. All rights reserved. -*/ - -"UGCKit.Preview.videoplayback" = "视频回放"; - -"UGCKit.UGCKitWrapper.determine" = "确定"; -"UGCKit.UGCKitWrapper.prompt" = "提示"; -"UGCKit.UGCKitWrapper.cancel" = "取消"; -"UGCKit.UGCKitWrapper.normalmodel" = "普通模式"; -"UGCKit.UGCKitWrapper.qualityofoptimization" = "质量优化模式"; -"UGCKit.UGCKitWrapper.convertgif" = "转换为 GIF"; -"UGCKit.UGCKitWrapper.selectzipmodel" = "请选择压缩模式"; -"UGCKit.UGCKitWrapper.videofileerror" = "视频资源文件有误,请重试"; -"UGCKit.UGCKitWrapper.generatefailure" = "生成失败"; -"UGCKit.UGCKitWrapper.gifinit" = "GIF 生成中"; -"UGCKit.UGCKitWrapper.gifinitsuccess" = "GIF 生成成功,已经保存到系统相册,请前往系统相册查看"; -"UGCKit.UGCKitWrapper.gifsavefailed" = "GIF 保存失败"; -"UGCKit.UGCKitWrapper.operationfailure" = "操作失败"; -"UGCKit.UGCKitWrapper.videoupload" = "视频上传"; - -"UGCKit.PhotoUtil.notwritephoto" = "无相册写入权限"; - -"UGCVideoRecordDemo.VideoRecordConfig.openechocancellation" = "开启回声消除,可以录制人声,BGM,人声+BGM (注意:录制中开启回声消除,BGM的播放模式是手机通话模式,这个模式下系统静音会失效,而视频播放预览走的是媒体播放模式,播放模式的不同会导致录制和预览在相同系统音量下播放声音大小有一定区别)"; -"UGCVideoRecordDemo.VideoRecordConfig.closeechocancellation" = "关闭回声消除,可以录制人声、BGM,耳机模式下可以录制人声 + BGM 。外放模式下为保证正常录制,系统默认开启回声消除,不可关闭"; -"UGCVideoRecordDemo.VideoRecordConfig.warmreminder" = "温馨提示"; -"UGCVideoRecordDemo.VideoRecordConfig.knowed" = "知道了"; - -"UGCVideoJoinDemo.VideoPreview.cycle" = "循环"; -"UGCVideoJoinDemo.VideoPreview.fadein" = "淡入"; -"UGCVideoJoinDemo.VideoPreview.fadeout" = "淡出"; - -"UGCVideoJoinDemo.TCVideoEditPrev.back" = "返回"; -"UGCVideoJoinDemo.TCVideoEditPrev.videopreview" = "视频预览"; -"UGCVideoJoinDemo.TCVideoEditPrev.videocompositing" = "视频合成中"; -"UGCVideoJoinDemo.TCVideoEditPrev.getvideoerror" = "获取视频失败!"; -"UGCVideoJoinDemo.TCVideoEditPrev.videolistnothave" = "视频列表里面有视频不支持预览合成"; -"UGCVideoJoinDemo.TCVideoEditPrev.videocompositingerror" = "视频合成失败"; -"UGCVideoJoinDemo.TCVideoEditPrev.backgrounderror" = "中途切后台导致,请重新合成"; -"UGCVideoJoinDemo.TCVideoEditPrev.errorcodexxerrormsgyy" = "错误码:xxx 错误信息:yyy"; - -"UGCVideoJoinDemo.VideoJoiner.videostitching" = "视频拼接"; -"UGCVideoJoinDemo.VideoJoiner.videoshouldlist" = "视频将按照列表顺序进行合成,您可以拖动进行片段顺序调整。"; -"UGCVideoJoinDemo.VideoJoiner.mustselectmorethantwovideofiles" = "必须选择两个以上视频文件"; - -"UGCVideoUploadDemo.ImageUpload.uploadimage" = "图片上传"; -"UGCVideoUploadDemo.ImageUpload.uploadimageerror" = "图片上传失败"; -"UGCVideoUploadDemo.ImageUpload.errorcodexx" = "错误码:xxx"; -"UGCVideoUploadDemo.ImageUpload.uploadimagesuccess" = "图片上传成功"; - -"UGCVideoUploadDemo.VideoCompress.thereisno" = "无"; -"UGCVideoUploadDemo.VideoCompress.kbps" = "码率(kbps)"; -"UGCVideoUploadDemo.VideoCompress.videogeneration" = "视频生成中"; -"UGCVideoUploadDemo.VideoCompress.videogenerationerror" = "视频生成失败"; -"UGCVideoUploadDemo.VideoCompress.videogenerationstop" = "视频生成被打断"; -"UGCVideoUploadDemo.VideoCompress.zipingshouldinfront" = "压缩过程中需要App保持在前台运行"; - -"UGCVideoUploadDemo.VideoCompressPreview.preview" = "预览"; -"UGCVideoUploadDemo.VideoCompressPreview.title" = "标题:"; -"UGCVideoUploadDemo.VideoCompressPreview.settingtitle" = "设置标题..."; -"UGCVideoUploadDemo.VideoCompressPreview.cover" = "封面:"; -"UGCVideoUploadDemo.VideoCompressPreview.release" = "发布"; -"UGCVideoUploadDemo.VideoCompressPreview.uploadvideo" = "视频上传中"; -"UGCVideoUploadDemo.VideoCompressPreview.uploadvideoerror" = "视频上传失败"; -"UGCVideoUploadDemo.VideoCompressPreview.errormsgxx" = "错误信息:xxx"; - -"UGCVideoUploadDemo.TXUGCPublishOptCenter.unknow" = "未知"; -"UGCVideoUploadDemo.TXUGCPublishOptCenter.notnetwork" = "没有网络"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/V2Localized/English.lproj/V2LiveLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/V2Localized/English.lproj/V2LiveLocalized.strings deleted file mode 100644 index 736a18dc..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/V2Localized/English.lproj/V2LiveLocalized.strings +++ /dev/null @@ -1,168 +0,0 @@ -/* - V2LiveLocalized.strings - TXLiteAVDemo - - Created by gg on 2021/3/17. - Copyright © 2021 Tencent. All rights reserved. -*/ - - -"V2.Live.LinkMicNew.loginTitle" = "Tencent Cloud Toolkit"; -"V2.Live.LinkMicNew.title" = "Mobile Live Video Broadcasting"; -"V2.Live.LinkMicNew.video" = "Video"; -"V2.Live.LinkMicNew.resolution" = "Resolution"; -"V2.Live.LinkMicNew.enable" = "On"; -"V2.Live.LinkMicNew.disable" = "Off"; -"V2.Live.LinkMicNew.close" = "Close"; -"V2.Live.LinkMicNew.audio" = "Audio"; -"V2.Live.LinkMicNew.capturevolume" = "Collection Volume"; -"V2.Live.LinkMicNew.volumeprompt" = "Volume Reminder"; -"V2.Live.LinkMicNew.getsnapshotfailed" = "Failed to get screenshot"; -"V2.Live.LinkMicNew.setting" = "Setting"; -"V2.Live.LinkMicNew.playingvolume" = "Playback Volume"; -"V2.Live.LinkMicNew.cancel" = "Cancel"; -"V2.Live.LinkMicNew.autogenerated" = "Auto-generate"; -"V2.Live.LinkMicNew.enterroomid" = "Enter a room ID"; -"V2.Live.LinkMicNew.enteruserid" = "Enter a user ID"; -"V2.Live.LinkMicNew.enterremoteuserid" = "Enter a remote user ID"; -"V2.Live.LinkMicNew.startstreampull" = "Start to pull"; -"V2.Live.LinkMicNew.havepullstreamaddress" = "I have a pull address"; -"V2.Live.LinkMicNew.scancodetoenterpullstreamaddress" = "Scan QR code or enter an address"; -"V2.Live.LinkMicNew.createpushstreamaddfailed" = "Failed to create push address"; -"V2.Live.LinkMicNew.enterlegitcdnadd" = "Enter a valid CDN address"; -"V2.Live.LinkMicNew.enterroomidandremoteuserid" = "Enter room ID and remote user ID"; -"V2.Live.LinkMicNew.notsupportthefunc" = "This feature is currently not supported"; -"V2.Live.LinkMicNew.urladdrinvalid" = "URL address is invalid"; -"V2.Live.LinkMicNew.streamidhasaplayer" = "There is already a player or pusher for the stream ID"; -"V2.Live.LinkMicNew.haveonepushstream" = "There is already a push"; -"V2.Live.LinkMicNew.playingurlnotfound" = "Play URL does not exist"; -"V2.Live.LinkMicNew.scancodetocndpushstream" = "CDN push streaming by scanning the code will not generate a playback URL. If you need to play a URL, please use the automatically generated push URL."; -"V2.Live.LinkMicNew.enterroomtimeout" = "Overtime entering the room"; -"V2.Live.LinkMicNew.checknetworkandtry" = "Please check the network status and try again"; -"V2.Live.LinkMicNew.disconnected" = "Disconnected"; -"V2.Live.LinkMicNew.v2pullstream" = "V2 Pull"; -"V2.Live.LinkMicNew.getvideoframetimeout" = "Get video frame timeout"; -"V2.Live.LinkMicNew.loading" = "Loading..."; -"V2.Live.LinkMicNew.pleasewait" = "Please wait"; - -"V2.Live.LinkMicNew.calling" = "Call"; -"V2.Live.LinkMicNew.fillingdirection" = "Image Fill Mode"; -"V2.Live.LinkMicNew.adaptive" = "Scale to Fill"; -"V2.Live.LinkMicNew.paved" = "Aspect Fill"; -"V2.Live.LinkMicNew.directionofrotation" = "Rotation Angle"; -"V2.Live.LinkMicNew.videosnapshot" = "Screenshot"; -"V2.Live.LinkMicNew.snapshot" = "Take"; -"V2.Live.LinkMicNew.volumetype" = "Volume Type"; -"V2.Live.LinkMicNew.auto" = "Auto"; -"V2.Live.LinkMicNew.media" = "Media"; -"V2.Live.LinkMicNew.earbackon" = "Enable In-ear Monitor"; -"V2.Live.LinkMicNew.localpreviewmirror" = "Local Preview Mirror"; -"V2.Live.LinkMicNew.openremotemirror" = "Enable Remote Mirror"; -"V2.Live.LinkMicNew.openwatermark" = "Enable Watermarking"; -"V2.Live.LinkMicNew.addtopastboard" = "Copied to clipboard"; -"V2.Live.LinkMicNew.needtwophonetotest" = "Test with two phones"; -"V2.Live.LinkMicNew.phoneamakeaddressforrecording" = "1. On phone A, generate a push address and start streaming."; -"V2.Live.LinkMicNew.phonebenteraddresspullstreamtoplay" = "2. On phone B, enter the address or scan the QR code to pull streams for playback."; -"V2.Live.LinkMicNew.automakestreamaddress" = "Auto-generate"; -"V2.Live.LinkMicNew.havestreamaddress" = "I have a push address"; -"V2.Live.LinkMicNew.startstreaming" = "Start Push"; -"V2.Live.LinkMicNew.scancodeorenterstreamaddress" = "Scan QR code or enter an address"; -"V2.Live.LinkMicNew.enterstreamid" = "Enter a stream ID"; -"V2.Live.LinkMicNew.pushstreamfailed" = "Push failed"; -"V2.Live.LinkMicNew.pushstreamfailedtouseonedevice" = "Push failed: you cannot use the same stream ID for push and pull on the same device."; -"V2.Live.LinkMicNew.pullstreamfailedtouseonedevice" = "Pull failed: you cannot use the same stream ID for push and pull on the same device."; -"V2.Live.LinkMicNew.v2pushstream" = "V2 Push"; -"V2.Live.LinkMicNew.enteruserid" = "Enter a user ID"; -"V2.Live.LinkMicNew.enterstreamid" = "Enter a stream ID"; -"V2.Live.LinkMicNew.beautysetting" = "Beauty Filter"; -"V2.Live.LinkMicNew.rosy" = "Rosy Skin"; -"V2.Live.LinkMicNew.whitening" = "Skin Brightening"; -"V2.Live.LinkMicNew.beauty" = "Retouch"; -"V2.Live.LinkMicNew.parerr" = "Parameter error"; -"V2.Live.LinkMicNew.playaddressgenerated" = "Playback address generated"; -"V2.Live.LinkMicNew.cpyaddr" = "Copy Address"; -"V2.Live.LinkMicNew.useotherphonescancode" = "Use the other phone to scan the QR code or copy the address for playback testing"; -"V2.Live.LinkMicNew.txtoolpkg" = "Tencent Cloud Toolkit"; -"V2.Live.LinkMicNew.cancel" = "Cancel"; -"V2.Live.LinkMicNew.confirm" = "Confirm"; -"V2.Live.LinkMicNew.mlvb" = "MLVB"; -"V2.Live.LinkMicNew.coanchornew" = "Co-anchoring (New)"; -"V2.Live.LinkMicNew.txvideoremote" = "Tencent Video Cloud"; -"V2.Live.LinkMicNew.appusetoshowfunc" = "This app demonstrates the features of Tencent Video Cloud terminal products."; -"V2.Live.LinkMicNew.snapshotsavetoalbum" = "The screenshot has been saved to the album"; -"V2.Live.LinkMicNew.snapshotsavefailed" = "Failed to save screenshot"; -"V2.Live.LinkMicNew.suretologout" = "Are you sure you want to log out?"; -"V2.Live.LinkMicNew.enterphonenumber" = "Enter a mobile number"; -"V2.Live.LinkMicNew.enterverificationcode" = "Enter a verification code"; -"V2.Live.LinkMicNew.entertruephonenum" = "Enter a valid mobile number"; -"V2.Live.LinkMicNew.verificationcodesent" = "Sent"; -"V2.Live.LinkMicNew.getverificationcode" = "Get"; -"V2.Live.LinkMicNew.loginsuccess" = "Logged in"; -"V2.Live.LinkMicNew.termsandconditions" = "Terms and Conditions"; -"V2.Live.LinkMicNew.agree" = "Agree"; -"V2.Live.LinkMicNew.disagree" = "Disagree"; -"V2.Live.LoginMock.tencentcloudtrtc" = "Tencent Cloud TRTC"; -"V2.Live.LoginMock.login" = "Log In"; -"V2.Live.LoginMock.avatar" = "Avatar"; -"V2.Live.LoginMock.setusername" = "Enter a username"; -"V2.Live.LoginMock.regist" = "Register"; -"V2.Live.LoginMock.adduserinformationforfirstlogin" = "This is your first login. Please complete your profile."; -"V2.Live.LoginMock.enterusername" = "Enter a username"; -"V2.Live.LoginMock.registsuccess" = "Registration successful"; -"V2.Live.LoginMock.mobilenumber" = "Mobile Number"; -"V2.Live.LoginMock.verificationcode" = "Verification Code"; -"V2.Live.LoginMock.sendtheverificatcode" = "Please send the verification code"; - -"ASKit.Common.Close" = "Close"; -// 主菜单 -"ASKit.MainMenu.Title" = "Sound effect settings"; -"ASKit.MainMenu.BGM" = "Background music"; -"ASKit.MainMenu.SelectMusic" = "Select song"; -"ASKit.MainMenu.MusicVolum" = "Music volume level"; -"ASKit.MainMenu.PersonVolum" = "Voice volume level"; -"ASKit.MainMenu.PersonPitch" = "Music tone"; - -"ASKit.MainMenu.VoiceChangeTitle" = "Voice changing"; -"ASKit.MainMenu.Reverberation" = "Reverb"; - -"ASKit.MusicSelectMenu.Title" = "Background music"; - -"ASKit.MenuItem.Surround sound test 1" = "Surround sound test 1"; -"ASKit.MenuItem.Surround sound test 2" = "Surround sound test 2"; -"ASKit.MenuItem.Surround sound test 3" = "Surround sound test 3"; -"ASKit.MenuItem.Unknown" = "Unknown"; -"ASKit.MenuItem.Reverb" = "Reverb"; -"ASKit.MenuItem.Original" = "Original"; -"ASKit.MenuItem.Naughty boy" = "Naughty boy"; -"ASKit.MenuItem.Little girl" = "Little girl"; -"ASKit.MenuItem.Middle-aged man" = "Middle-aged man"; -"ASKit.MenuItem.Heavy metal" = "Heavy metal"; -"ASKit.MenuItem.Being cold" = "Being cold"; -"ASKit.MenuItem.Non-native speaker" = "Non-native speaker"; -"ASKit.MenuItem.Furious animal" = "Furious animal"; -"ASKit.MenuItem.Fat otaku" = "Fat otaku"; -"ASKit.MenuItem.Strong electric current" = "Strong electric current"; -"ASKit.MenuItem.Robot" = "Robot"; -"ASKit.MenuItem.Ethereal voice" = "Ethereal voice"; -"ASKit.MenuItem.No effect" = "No effect"; -"ASKit.MenuItem.Karaoke room" = "Karaoke room"; -"ASKit.MenuItem.Small room" = "Small room"; -"ASKit.MenuItem.Big hall" = "Big hall"; -"ASKit.MenuItem.Deep" = "Deep"; -"ASKit.MenuItem.Resonant" = "Resonant"; -"ASKit.MenuItem.Metallic" = "Metallic"; -"ASKit.MenuItem.Husky" = "Husky"; - -//MLVB -"MLVB.MainMenu.pushcamera" = "Push (Camera)"; -"MLVB.MainMenu.pushscreen" = "推流演示(录屏推流)"; -"MLVB.MainMenu.pull" = "Pull"; -"MLVB.MainMenu.coanchoringold" = "Co-anchoring (Old)"; - -//TRTC -"TRTC.MainMenu.trtc" = "TRTC"; -"TRTC.MainMenu.videoconferencing" = "Video Conferencing"; -"TRTC.MainMenu.audiochatroom" = "Audio Chat Room"; -"TRTC.MainMenu.interactivelivevideostreaming" = "Interactive Live Video Streaming"; -"TRTC.MainMenu.audiocall" = "Audio Call"; -"TRTC.MainMenu.videocall" = "Video Call"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/V2Localized/en.lproj/V2LiveLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/V2Localized/en.lproj/V2LiveLocalized.strings deleted file mode 100644 index d28d4d53..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/V2Localized/en.lproj/V2LiveLocalized.strings +++ /dev/null @@ -1,185 +0,0 @@ -/* - V2LiveLocalized.strings - TXLiteAVDemo - - Created by gg on 2021/3/17. - Copyright © 2021 Tencent. All rights reserved. -*/ - - -"V2.Live.LinkMicNew.loginTitle" = "Tencent Cloud Toolkit"; -"V2.Live.LinkMicNew.title" = "Mobile Live Video Broadcasting"; -"V2.Live.LinkMicNew.video" = "Video"; -"V2.Live.LinkMicNew.resolution" = "Resolution"; -"V2.Live.LinkMicNew.enable" = "On"; -"V2.Live.LinkMicNew.disable" = "Off"; -"V2.Live.LinkMicNew.close" = "Close"; -"V2.Live.LinkMicNew.audio" = "Audio"; -"V2.Live.LinkMicNew.capturevolume" = "Collection Volume"; -"V2.Live.LinkMicNew.volumeprompt" = "Volume Reminder"; -"V2.Live.LinkMicNew.getsnapshotfailed" = "Failed to get screenshot"; -"V2.Live.LinkMicNew.setting" = "Setting"; -"V2.Live.LinkMicNew.playingvolume" = "Playback Volume"; -"V2.Live.LinkMicNew.cancel" = "Cancel"; -"V2.Live.LinkMicNew.autogenerated" = "Auto-generate"; -"V2.Live.LinkMicNew.enterroomid" = "Enter a room ID"; -"V2.Live.LinkMicNew.enteruserid" = "Enter a user ID"; -"V2.Live.LinkMicNew.enterremoteuserid" = "Enter a remote user ID"; -"V2.Live.LinkMicNew.startstreampull" = "Start Playback"; -"V2.Live.LinkMicNew.havepullstreamaddress" = "I have a pull address"; -"V2.Live.LinkMicNew.scancodetoenterpullstreamaddress" = "Scan QR code or enter an address"; -"V2.Live.LinkMicNew.createpushstreamaddfailed" = "Failed to create push address"; -"V2.Live.LinkMicNew.enterlegitcdnadd" = "Enter a valid CDN address"; -"V2.Live.LinkMicNew.enterroomidandremoteuserid" = "Enter room ID and remote user ID"; -"V2.Live.LinkMicNew.notsupportthefunc" = "This feature is currently not supported"; -"V2.Live.LinkMicNew.urladdrinvalid" = "URL address is invalid"; -"V2.Live.LinkMicNew.streamidhasaplayer" = "There is already a player or pusher for the stream ID"; -"V2.Live.LinkMicNew.haveonepushstream" = "There is already a push"; -"V2.Live.LinkMicNew.playingurlnotfound" = "Play URL does not exist"; -"V2.Live.LinkMicNew.scancodetocndpushstream" = "CDN push streaming by scanning the code will not generate a playback URL. If you need to play a URL, please use the automatically generated push URL."; -"V2.Live.LinkMicNew.enterroomtimeout" = "Overtime entering the room"; -"V2.Live.LinkMicNew.checknetworkandtry" = "Please check the network status and try again"; -"V2.Live.LinkMicNew.disconnected" = "Disconnected"; -"V2.Live.LinkMicNew.v2pullstream" = "V2 Pull"; -"V2.Live.LinkMicNew.getvideoframetimeout" = "Get video frame timeout"; -"V2.Live.LinkMicNew.loading" = "Loading..."; -"V2.Live.LinkMicNew.pleasewait" = "Please wait"; - -"V2.Live.LinkMicNew.calling" = "Call"; -"V2.Live.LinkMicNew.fillingdirection" = "Image Fill Mode"; -"V2.Live.LinkMicNew.adaptive" = "Scale to Fill"; -"V2.Live.LinkMicNew.paved" = "Aspect Fill"; -"V2.Live.LinkMicNew.directionofrotation" = "Rotation Angle"; -"V2.Live.LinkMicNew.videosnapshot" = "Screenshot"; -"V2.Live.LinkMicNew.snapshot" = "Take"; -"V2.Live.LinkMicNew.volumetype" = "Volume Type"; -"V2.Live.LinkMicNew.auto" = "Auto"; -"V2.Live.LinkMicNew.media" = "Media"; -"V2.Live.LinkMicNew.earbackon" = "Enable In-ear Monitor"; -"V2.Live.LinkMicNew.localpreviewmirror" = "Local Preview Mirror"; -"V2.Live.LinkMicNew.openremotemirror" = "Enable Remote Mirror"; -"V2.Live.LinkMicNew.uploadvideo" = "Enable Push Video"; -"V2.Live.LinkMicNew.uploadaudio" = "Enable Push Audio"; -"V2.Live.LinkMicNew.startvirtualcamera" = "Enable Push Image"; -"V2.Live.LinkMicNew.openwatermark" = "Enable Watermarking"; -"V2.Live.LinkMicNew.addtopastboard" = "Copied to clipboard"; -"V2.Live.LinkMicNew.needtwophonetotest" = "Test with two phones"; -"V2.Live.LinkMicNew.phoneamakeaddressforrecording" = "1. On phone A, generate a push address and start streaming."; -"V2.Live.LinkMicNew.phonebenteraddresspullstreamtoplay" = "2. On phone B, enter the address or scan the QR code to pull streams for playback."; -"V2.Live.LinkMicNew.automakestreamaddress" = "Auto-generate"; -"V2.Live.LinkMicNew.havestreamaddress" = "I have a push address"; -"V2.Live.LinkMicNew.startstreaming" = "Start Push"; -"V2.Live.LinkMicNew.scancodeorenterstreamaddress" = "Scan QR code or enter an address"; -"V2.Live.LinkMicNew.enterstreamid" = "Enter a stream ID"; -"V2.Live.LinkMicNew.pushstreamfailed" = "Push failed"; -"V2.Live.LinkMicNew.pushstreamfailedtouseonedevice" = "Push failed: you cannot use the same stream ID for push and pull on the same device."; -"V2.Live.LinkMicNew.pullstreamfailedtouseonedevice" = "Pull failed: you cannot use the same stream ID for push and pull on the same device."; -"V2.Live.LinkMicNew.v2pushstream" = "V2 Push"; -"V2.Live.LinkMicNew.enteruserid" = "Enter a user ID"; -"V2.Live.LinkMicNew.enterstreamid" = "Enter a stream ID"; -"V2.Live.LinkMicNew.beautysetting" = "Beauty Filter"; -"V2.Live.LinkMicNew.rosy" = "Rosy Skin"; -"V2.Live.LinkMicNew.whitening" = "Skin Brightening"; -"V2.Live.LinkMicNew.beauty" = "Retouch"; -"V2.Live.LinkMicNew.parerr" = "Parameter error"; -"V2.Live.LinkMicNew.playaddressgenerated" = "Playback address generated"; -"V2.Live.LinkMicNew.cpyaddr" = "Copy Address"; -"V2.Live.LinkMicNew.useotherphonescancode" = "Use the other phone to scan the QR code or copy the address for playback testing"; -"V2.Live.LinkMicNew.txtoolpkg" = "Tencent Cloud Toolkit"; -"V2.Live.LinkMicNew.cancel" = "Cancel"; -"V2.Live.LinkMicNew.confirm" = "Confirm"; -"V2.Live.LinkMicNew.mlvb" = "MLVB"; -"V2.Live.LinkMicNew.coanchornew" = "Co-anchoring (New)"; -"V2.Live.LinkMicNew.txvideoremote" = "Tencent Video Cloud"; -"V2.Live.LinkMicNew.appusetoshowfunc" = "This app demonstrates the features of Tencent Video Cloud terminal products."; -"V2.Live.LinkMicNew.snapshotsavetoalbum" = "The screenshot has been saved to the album"; -"V2.Live.LinkMicNew.snapshotsavefailed" = "Failed to save screenshot"; -"V2.Live.LinkMicNew.suretologout" = "Are you sure you want to log out?"; -"V2.Live.LinkMicNew.enterphonenumber" = "Enter a mobile number"; -"V2.Live.LinkMicNew.enterverificationcode" = "Enter a verification code"; -"V2.Live.LinkMicNew.entertruephonenum" = "Enter a valid mobile number"; -"V2.Live.LinkMicNew.verificationcodesent" = "Sent"; -"V2.Live.LinkMicNew.getverificationcode" = "Get"; -"V2.Live.LinkMicNew.loginsuccess" = "Logged in"; -"V2.Live.LinkMicNew.termsandconditions" = "Terms and Conditions"; -"V2.Live.LinkMicNew.agree" = "Agree"; -"V2.Live.LinkMicNew.disagree" = "Disagree"; -"V2.Live.LoginMock.tencentcloudtrtc" = "Tencent Cloud TRTC"; -"V2.Live.LoginMock.login" = "Log In"; -"V2.Live.LoginMock.avatar" = "Avatar"; -"V2.Live.LoginMock.setusername" = "Enter a username"; -"V2.Live.LoginMock.regist" = "Register"; -"V2.Live.LoginMock.adduserinformationforfirstlogin" = "This is your first login. Please complete your profile."; -"V2.Live.LoginMock.enterusername" = "Enter a username"; -"V2.Live.LoginMock.registsuccess" = "Registration successful"; -"V2.Live.LoginMock.mobilenumber" = "Mobile Number"; -"V2.Live.LoginMock.verificationcode" = "Verification Code"; -"V2.Live.LoginMock.sendtheverificatcode" = "Please send the verification code"; - -"ASKit.Common.Close" = "Close"; -// 主菜单 -"ASKit.MainMenu.Title" = "Sound effect settings"; -"ASKit.MainMenu.BGM" = "Background music"; -"ASKit.MainMenu.SelectMusic" = "Select song"; -"ASKit.MainMenu.MusicVolum" = "Music volume level"; -"ASKit.MainMenu.PersonVolum" = "Voice volume level"; -"ASKit.MainMenu.PersonPitch" = "Music tone"; - -"ASKit.MainMenu.VoiceChangeTitle" = "Voice changing"; -"ASKit.MainMenu.Reverberation" = "Reverb"; - -"ASKit.MusicSelectMenu.Title" = "Background music"; - -"ASKit.MenuItem.Surround sound test 1" = "Surround sound test 1"; -"ASKit.MenuItem.Surround sound test 2" = "Surround sound test 2"; -"ASKit.MenuItem.Surround sound test 3" = "Surround sound test 3"; -"ASKit.MenuItem.Unknown" = "Unknown"; -"ASKit.MenuItem.Reverb" = "Reverb"; -"ASKit.MenuItem.Original" = "Original"; -"ASKit.MenuItem.Naughty boy" = "Naughty boy"; -"ASKit.MenuItem.Little girl" = "Little girl"; -"ASKit.MenuItem.Middle-aged man" = "Middle-aged man"; -"ASKit.MenuItem.Heavy metal" = "Heavy metal"; -"ASKit.MenuItem.Being cold" = "Being cold"; -"ASKit.MenuItem.Non-native speaker" = "Non-native speaker"; -"ASKit.MenuItem.Furious animal" = "Furious animal"; -"ASKit.MenuItem.Fat otaku" = "Fat otaku"; -"ASKit.MenuItem.Strong electric current" = "Strong electric current"; -"ASKit.MenuItem.Robot" = "Robot"; -"ASKit.MenuItem.Ethereal voice" = "Ethereal voice"; -"ASKit.MenuItem.No effect" = "No effect"; -"ASKit.MenuItem.Karaoke room" = "Karaoke room"; -"ASKit.MenuItem.Small room" = "Small room"; -"ASKit.MenuItem.Big hall" = "Big hall"; -"ASKit.MenuItem.Deep" = "Deep"; -"ASKit.MenuItem.Resonant" = "Resonant"; -"ASKit.MenuItem.Metallic" = "Metallic"; -"ASKit.MenuItem.Husky" = "Husky"; - -//MLVB -"MLVB.MainMenu.pushcamera" = "Push (Camera)"; -"MLVB.MainMenu.pushscreen" = "Push (Screen Recording)"; -"MLVB.MainMenu.pull" = "Pull"; -"MLVB.MainMenu.coanchoringold" = "Co-anchoring (Old)"; - -//TRTC -"TRTC.MainMenu.trtc" = "TRTC"; -"TRTC.MainMenu.videoconferencing" = "Video Conferencing"; -"TRTC.MainMenu.audiochatroom" = "Audio Chat Room"; -"TRTC.MainMenu.interactivelivevideostreaming" = "Interactive Live Video Streaming"; -"TRTC.MainMenu.audiocall" = "Audio Call"; -"TRTC.MainMenu.videocall" = "Video Call"; - -//Leb Player -"MLVB.lebLauncher.title" = "LEB Player"; -"MLVB.lebLauncher.inputUrl" = "Enter a playback address"; -"MLVB.lebLauncher.inputLebUrl" = "Enter a playback address started with webrtc://"; -"MLVB.lebLauncher.enterplayeraddress" = "Enter a valid playback address"; - - -"Demo.TRTC.Portal.privateandagreement" = "I have read and agree to the xxx and yyy, and I authorize Tencent Cloud to manage the data (nickname, profile photo, phone number) of this account ."; -"Demo.TRTC.Portal.agreeprivatefirst" = "You must agree to the Privacy Policy and Terms of Use first."; -"Demo.TRTC.Portal." = "Privacy Policy"; -"Demo.TRTC.Portal." = "Terms of Use"; -"Demo.TRTC.Portal.private" = "Privacy Policy"; -"Demo.TRTC.Portal.agreement" = "Terms of Use"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/V2Localized/zh-Hans.lproj/V2LiveLocalized.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/V2Localized/zh-Hans.lproj/V2LiveLocalized.strings deleted file mode 100644 index 885f1a7d..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Localized/V2Localized/zh-Hans.lproj/V2LiveLocalized.strings +++ /dev/null @@ -1,184 +0,0 @@ -/* - V2LiveLocalized.strings - TXLiteAVDemo - - Created by gg on 2021/3/17. - Copyright © 2021 Tencent. All rights reserved. -*/ - -"V2.Live.LinkMicNew.loginTitle" = "腾讯云工具包"; -"V2.Live.LinkMicNew.title" = "移动直播 MLVB"; -"V2.Live.LinkMicNew.video" = "视频"; -"V2.Live.LinkMicNew.resolution" = "分辨率"; -"V2.Live.LinkMicNew.enable" = "开启"; -"V2.Live.LinkMicNew.disable" = "关闭"; -"V2.Live.LinkMicNew.close" = "关闭"; -"V2.Live.LinkMicNew.audio" = "音频"; -"V2.Live.LinkMicNew.capturevolume" = "采集音量"; -"V2.Live.LinkMicNew.volumeprompt" = "音量提示"; -"V2.Live.LinkMicNew.getsnapshotfailed" = "获取截图失败"; -"V2.Live.LinkMicNew.setting" = "设置"; -"V2.Live.LinkMicNew.playingvolume" = "播放音量"; -"V2.Live.LinkMicNew.cancel" = "取消"; -"V2.Live.LinkMicNew.autogenerated" = "自动生成"; -"V2.Live.LinkMicNew.enterroomid" = "请输入房间号"; -"V2.Live.LinkMicNew.enteruserid" = "请输入用户Id"; -"V2.Live.LinkMicNew.enterremoteuserid" = "请输入远端用户Id"; -"V2.Live.LinkMicNew.startstreampull" = "开始播放"; -"V2.Live.LinkMicNew.havepullstreamaddress" = "我有拉流地址"; -"V2.Live.LinkMicNew.scancodetoenterpullstreamaddress" = "请扫码输入拉流地址"; -"V2.Live.LinkMicNew.createpushstreamaddfailed" = "创建推流地址失败"; -"V2.Live.LinkMicNew.enterlegitcdnadd" = "请输入合法的 CDN 地址"; -"V2.Live.LinkMicNew.enterroomidandremoteuserid" = "请输入 roomId 和 remoteUserId"; -"V2.Live.LinkMicNew.notsupportthefunc" = "当前不支持该功能"; -"V2.Live.LinkMicNew.urladdrinvalid" = "URL 地址无效"; -"V2.Live.LinkMicNew.streamidhasaplayer" = "该 streamId 已经存在一个播放器或推流器"; -"V2.Live.LinkMicNew.haveonepushstream" = "已存在一个推流"; -"V2.Live.LinkMicNew.playingurlnotfound" = "播放URL不存在"; -"V2.Live.LinkMicNew.scancodetocndpushstream" = "通过扫码进行CDN推流,不会生成播放URL,如果需要播放URL,请使用自动生成推流地址。"; -"V2.Live.LinkMicNew.enterroomtimeout" = "进房超时"; -"V2.Live.LinkMicNew.checknetworkandtry" = "请检查网络状态,然后重试"; -"V2.Live.LinkMicNew.disconnected" = "连接已断开"; -"V2.Live.LinkMicNew.v2pullstream" = "V2拉流"; -"V2.Live.LinkMicNew.getvideoframetimeout" = "获取视频帧超时"; -"V2.Live.LinkMicNew.enterroomtimeout" = "进房超时"; -"V2.Live.LinkMicNew.loading" = "加载中..."; -"V2.Live.LinkMicNew.pleasewait" = "请等待"; -"V2.Live.LinkMicNew.calling" = "通话"; -"V2.Live.LinkMicNew.fillingdirection" = "画面填充方向"; -"V2.Live.LinkMicNew.adaptive" = "自适应"; -"V2.Live.LinkMicNew.paved" = "铺满"; -"V2.Live.LinkMicNew.directionofrotation" = "旋转方向"; -"V2.Live.LinkMicNew.videosnapshot" = "视频截图"; -"V2.Live.LinkMicNew.uploadvideo" = "开启视频上行"; -"V2.Live.LinkMicNew.uploadaudio" = "开启音频上行"; -"V2.Live.LinkMicNew.startvirtualcamera" = "开启垫片推流"; -"V2.Live.LinkMicNew.snapshot" = "截图"; -"V2.Live.LinkMicNew.volumetype" = "音量类型"; -"V2.Live.LinkMicNew.auto" = "自动"; -"V2.Live.LinkMicNew.media" = "媒体"; -"V2.Live.LinkMicNew.earbackon" = "开启耳返"; -"V2.Live.LinkMicNew.localpreviewmirror" = "本地预览镜像"; -"V2.Live.LinkMicNew.openremotemirror" = "开启远程镜像"; -"V2.Live.LinkMicNew.openwatermark" = "开启视频水印"; -"V2.Live.LinkMicNew.addtopastboard" = "已添加至剪切板"; -"V2.Live.LinkMicNew.needtwophonetotest" = "你需要a,b两台手机进行测试"; -"V2.Live.LinkMicNew.phoneamakeaddressforrecording" = "①a手机生成推流地址录制"; -"V2.Live.LinkMicNew.phonebenteraddresspullstreamtoplay" = "②b手机输入推流地址或扫码拉流并播放测试"; -"V2.Live.LinkMicNew.automakestreamaddress" = "自动生成推流地址"; -"V2.Live.LinkMicNew.havestreamaddress" = "我有推流地址"; -"V2.Live.LinkMicNew.startstreaming" = "开始推流"; -"V2.Live.LinkMicNew.scancodeorenterstreamaddress" = "请扫码输入推流地址"; -"V2.Live.LinkMicNew.enterstreamid" = "请输入一个streamId"; -"V2.Live.LinkMicNew.pushstreamfailed" = "推流失败"; -"V2.Live.LinkMicNew.pushstreamfailedtouseonedevice" = "推流失败:抱歉,RTC暂不支持同一台设备使用相同streamid同时推拉流"; -"V2.Live.LinkMicNew.pullstreamfailedtouseonedevice" = "拉流失败:抱歉,RTC暂不支持同一台设备使用相同streamid同时推拉流"; -"V2.Live.LinkMicNew.v2pushstream" = "V2推流"; -"V2.Live.LinkMicNew.enteruserid" = "请输入用户Id"; -"V2.Live.LinkMicNew.enterstreamid" = "请输入streamId"; -"V2.Live.LinkMicNew.beautysetting" = "美颜设置"; -"V2.Live.LinkMicNew.rosy" = "红润"; -"V2.Live.LinkMicNew.whitening" = "美白"; -"V2.Live.LinkMicNew.beauty" = "美颜"; -"V2.Live.LinkMicNew.parerr" = "参数错误"; -"V2.Live.LinkMicNew.playaddressgenerated" = "播放地址生成成功"; -"V2.Live.LinkMicNew.cpyaddr" = "复制直播地址"; -"V2.Live.LinkMicNew.useotherphonescancode" = "用另外一台手机扫码或复制地址进行播放测试"; -"V2.Live.LinkMicNew.txtoolpkg" = "腾讯云工具包"; -"V2.Live.LinkMicNew.cancel" = "取消"; -"V2.Live.LinkMicNew.confirm" = "确定"; -"V2.Live.LinkMicNew.mlvb" = "MLVB"; -"V2.Live.LinkMicNew.coanchornew" = "连麦演示(新方案)"; -"V2.Live.LinkMicNew.txvideoremote" = "腾讯视频云"; -"V2.Live.LinkMicNew.appusetoshowfunc" = "本APP用于展示腾讯视频云终端产品的各类功能"; -"V2.Live.LinkMicNew.snapshotsavetoalbum" = "截图已保存到相册"; -"V2.Live.LinkMicNew.snapshotsavefailed" = "截图保存失败"; -"V2.Live.LinkMicNew.suretologout" = "确定要退出登录吗?"; -"V2.Live.LinkMicNew.enterphonenumber" = "请输入手机号"; -"V2.Live.LinkMicNew.enterverificationcode" = "请输入验证码"; -"V2.Live.LinkMicNew.entertruephonenum" = "请输入正确的手机号"; -"V2.Live.LinkMicNew.verificationcodesent" = "验证码已发送"; -"V2.Live.LinkMicNew.getverificationcode" = "获取验证码"; -"V2.Live.LinkMicNew.loginsuccess" = "登录成功"; -"V2.Live.LinkMicNew.termsandconditions" = "用户协议"; -"V2.Live.LinkMicNew.agree" = "同意"; -"V2.Live.LinkMicNew.disagree" = "不同意"; -"V2.Live.LoginMock.tencentcloudtrtc" = "腾讯云 TRTC"; -"V2.Live.LoginMock.login" = "登录"; -"V2.Live.LoginMock.avatar" = "头像"; -"V2.Live.LoginMock.setusername" = "请输入用户名"; -"V2.Live.LoginMock.regist" = "注册"; -"V2.Live.LoginMock.adduserinformationforfirstlogin" = "首次登录请补充用户信息"; -"V2.Live.LoginMock.enterusername" = "请输入用户名"; -"V2.Live.LoginMock.registsuccess" = "注册成功"; -"V2.Live.LoginMock.mobilenumber" = "手机号"; -"V2.Live.LoginMock.verificationcode" = "验证码"; -"V2.Live.LoginMock.sendtheverificatcode" = "请发送验证码"; - -"ASKit.Common.Close" = "关闭"; -// 主菜单 -"ASKit.MainMenu.Title" = "音效设置"; -"ASKit.MainMenu.BGM" = "背景音乐"; -"ASKit.MainMenu.SelectMusic" = "选择歌曲"; -"ASKit.MainMenu.MusicVolum" = "音乐音量"; -"ASKit.MainMenu.PersonVolum" = "人声音量"; -"ASKit.MainMenu.PersonPitch" = "音乐升降调"; - -"ASKit.MainMenu.VoiceChangeTitle" = "变声"; -"ASKit.MainMenu.Reverberation" = "混响"; - -"ASKit.MusicSelectMenu.Title" = "背景音乐"; - -"ASKit.MenuItem.Surround sound test 1" = "环绕声测试1"; -"ASKit.MenuItem.Surround sound test 2" = "环绕声测试2"; -"ASKit.MenuItem.Surround sound test 3" = "环绕声测试3"; -"ASKit.MenuItem.Unknown" = "佚名"; -"ASKit.MenuItem.Reverb" = "混响"; -"ASKit.MenuItem.Original" = "原声"; -"ASKit.MenuItem.Naughty boy" = "熊孩子"; -"ASKit.MenuItem.Little girl" = "萝莉"; -"ASKit.MenuItem.Middle-aged man" = "大叔"; -"ASKit.MenuItem.Heavy metal" = "重金属"; -"ASKit.MenuItem.Being cold" = "感冒"; -"ASKit.MenuItem.Non-native speaker" = "外国人"; -"ASKit.MenuItem.Furious animal" = "困兽"; -"ASKit.MenuItem.Fat otaku" = "死肥宅"; -"ASKit.MenuItem.Strong electric current" = "强电流"; -"ASKit.MenuItem.Robot" = "重机械"; -"ASKit.MenuItem.Ethereal voice" = "空灵"; -"ASKit.MenuItem.No effect" = "无效果"; -"ASKit.MenuItem.Karaoke room" = "KTV"; -"ASKit.MenuItem.Small room" = "小房间"; -"ASKit.MenuItem.Big hall" = "大会堂"; -"ASKit.MenuItem.Deep" = "低沉"; -"ASKit.MenuItem.Resonant" = "洪亮"; -"ASKit.MenuItem.Metallic" = "金属声"; -"ASKit.MenuItem.Husky" = "磁性"; - -//MLVB -"MLVB.MainMenu.pushcamera" = "推流演示(摄像头推流)"; -"MLVB.MainMenu.pushscreen" = "推流演示(录屏推流)"; -"MLVB.MainMenu.pull" = "拉流演示"; -"MLVB.MainMenu.coanchoringold" = "连麦演示(旧方案)"; - -//TRTC -"TRTC.MainMenu.trtc" = "实时音视频 TRTC"; -"TRTC.MainMenu.videoconferencing" = "多人视频会议"; -"TRTC.MainMenu.audiochatroom" = "语音聊天室"; -"TRTC.MainMenu.interactivelivevideostreaming" = "视频互动"; -"TRTC.MainMenu.audiocall" = "语音通话"; -"TRTC.MainMenu.videocall" = "视频通话"; - -// Leb Player -"MLVB.lebLauncher.title" = "快直播播放"; -"MLVB.lebLauncher.inputUrl" = "请输入播放地址"; -"MLVB.lebLauncher.inputLebUrl" = "请输入以 webtrc:// 开头的播放地址"; -"MLVB.lebLauncher.enterplayeraddress" = "请输入正确的播放地址"; - - -"Demo.TRTC.Portal.privateandagreement" = "我已阅读并同意xxx和yyy,并授权腾讯云使用该账号(昵称、头像、电话号码)进行统一管理"; -"Demo.TRTC.Portal.agreeprivatefirst" = "请先同意隐私条款条款和用户协议。"; -"Demo.TRTC.Portal." = "《隐私条例》"; -"Demo.TRTC.Portal." = "《用户协议》"; -"Demo.TRTC.Portal.private" = "隐私条例"; -"Demo.TRTC.Portal.agreement" = "用户协议"; diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Settings.bundle/Root.plist b/iOS/Demo/TXLiteAVDemo/App/Resource/Settings.bundle/Root.plist deleted file mode 100644 index 2e30ce11..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/Settings.bundle/Root.plist +++ /dev/null @@ -1,21 +0,0 @@ - - - - - StringsTable - Root - PreferenceSpecifiers - - - Type - PSToggleSwitchSpecifier - Title - 下次打开时清除缓存 - Key - remove_cache_preference - DefaultValue - - - - - diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Settings.bundle/en.lproj/Root.strings b/iOS/Demo/TXLiteAVDemo/App/Resource/Settings.bundle/en.lproj/Root.strings deleted file mode 100644 index 8cd87b9d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/Settings.bundle/en.lproj/Root.strings and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/bgm_demo.mp3 b/iOS/Demo/TXLiteAVDemo/App/Resource/bgm_demo.mp3 deleted file mode 100644 index eb7db077..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/App/Resource/bgm_demo.mp3 and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/en.lproj/UserProtocol.html b/iOS/Demo/TXLiteAVDemo/App/Resource/en.lproj/UserProtocol.html deleted file mode 100644 index 12bb1875..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/en.lproj/UserProtocol.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - Terms and Conditions - - - -

Terms and Conditions

-

Please read carefully the content below. If you have any objections, you can choose not to use this app. By using this app, you agree to all terms in this agreement.

-

Law Compliance

-

You agree to abide by the Law of the People's Republic of China on Guarding State Secrets, Regulations on Confidentiality Protection for the International Networking of Computer Information Networks, Regulations of the People's Republic of China on Protecting the Safety of Computer Information Systems, Measures for Security Protection Administration of the International Networking of Computer Information Networks, Provisional Regulations of the People's Republic of China on the Management of the International Networking of Computer Information Networks, as well as their implementation rules. You assume all responsibility with respect to your use of the app and the consequences.

-

Terms of Use

-

You must not use this app to create, upload, copy, publish or spread any content that is forbidden by laws, regulations or government policies, including:

-

1. Content that violates the Constitution of the People's Republic of China;

-

2. Content that endangers national security, leaks state secrets, subverts state power, or undermines national unity;

-

3. Content that harms national reputation or interests;

-

4. Content that incites ethnic enmity, propagates racial discrimination, or undermines ethnic unity;

-

5. Content that violates China’s policies on religion, or promotes cults or superstitions;

-

6. Content that spreads rumors, disturbs social order, or undermines social stability;

-

7. Obscene, pornographic, violent, gambling/murder/terrorism-related, or crime-abetting content;

-

8. Insulting or defaming content or content that infringes others’ legal rights;

-

9. Content that crosses any of the “Seven Baselines” of laws and regulations, the socialist system, national interests, citizens’ legal rights and interests, public order, morality, and information accuracy.

-

10. Other content forbidden by laws and regulations. -

-

You take responsibility for the consequences of having your permissions and access to the app revoked as a result of violating any of the above terms.

- - - - diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/zh-Hans.lproj/UserProtocol.html b/iOS/Demo/TXLiteAVDemo/App/Resource/zh-Hans.lproj/UserProtocol.html deleted file mode 100644 index 3dd52c71..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/Resource/zh-Hans.lproj/UserProtocol.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - 用户协议 - - - -

用户协议

-

尊敬的用户,请您仔细阅读以下条款,如果您对本协议的条款存在异议,您可以选择不使用本应用。使用则表示您同意本协议下的全部条款。

-

遵守法律及法律效力

-

会员同意遵守《中华人民共和国保密法》、《计算机信息系统国际联网保密管理规定》、《中华人民共和国计算机信息系统安全保护条例》、《计算机信息网络国际联网安全保护管理办法》、《中华人民共和国计算机信息网络国际联网管理暂行规定》及其实施办法等相关法律法规的任何及所有的规定,并对会员以任何方式使用服务的任何行为及其结果承担全部责任。

-

用户说明

-

用户不得利用本服务制作、上载、复制、发布、传播如下法律、法规和政策禁止的内容:

-

1. 反对宪法所确定的基本原则的;

-

2. 危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;

-

3. 损害国家荣誉和利益的;

-

4. 煽动民族仇恨、民族歧视,破坏民族团结的;

-

5. 破坏国家宗教政策,宣扬邪教和封建迷信的;

-

6. 散布谣言,扰乱社会秩序,破坏社会稳定的;

-

7. 散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;

-

8. 侮辱或者诽谤他人,侵害他人合法权益的;

-

9.不遵守法律法规底线、社会主义制度底线、国家利益底线、公民合法权益底线、社会公共秩序底线、道德风尚底线和信息真实性底线的“七条底线”要求的;

-

10.含有法律、行政法规禁止的其他内容的信息。 -

-

如果用户出现以上情况一种几种,将承担关闭全部权限,禁止使用的后果。

- - - - diff --git a/iOS/Demo/TXLiteAVDemo/App/TRTC-Appstore-Info.plist b/iOS/Demo/TXLiteAVDemo/App/TRTC-Appstore-Info.plist deleted file mode 100644 index d3cf5234..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/TRTC-Appstore-Info.plist +++ /dev/null @@ -1,78 +0,0 @@ - - - - - CFBundleDevelopmentRegion - zh_CN - CFBundleDisplayName - TRTC - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIconName - AppIcon - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - $(MARKETING_VERSION) - CFBundleSignature - BNDL - CFBundleURLTypes - - - CFBundleTypeRole - Editor - CFBundleURLName - com.tencent.liteav - CFBundleURLSchemes - - liteav - - - - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - IMSDKCrashReporterEnable - - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - NSAppleMusicUsageDescription - 视频云TRTC需要访问你的媒体库权限以获取音乐,不允许则无法添加音乐 - NSCameraUsageDescription - 视频云TRTC需要访问你的相机权限,开启后录制的视频才会有画面 - NSMicrophoneUsageDescription - 视频云TRTC需要访问你的麦克风权限,开启后录制的视频才会有声音 - NSPhotoLibraryAddUsageDescription - 视频云TRTC需要访问你的相册权限,开启后才能保存编辑的文件 - NSPhotoLibraryUsageDescription - 视频云工具包需要访问你的相册权限,开启后才能编辑视频文件 - UIBackgroundModes - - audio - - UIFileSharingEnabled - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/iOS/Demo/TXLiteAVDemo/App/TRTCInfoPlist/en.lproj/InfoPlist.strings b/iOS/Demo/TXLiteAVDemo/App/TRTCInfoPlist/en.lproj/InfoPlist.strings deleted file mode 100644 index 22bd5a3e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/TRTCInfoPlist/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,16 +0,0 @@ -/* - InfoPlist.strings - TXLiteAVDemo - - Created by adams on 2021/3/25. - Copyright © 2021 Tencent. All rights reserved. -*/ - -CFBundleDisplayName = "TRTC"; -NSAppleMusicUsageDescription = "TRTC needs access to your media library to acquire music"; -NSCameraUsageDescription = "TRTC needs access to your camera to capture video"; -NSMicrophoneUsageDescription = "TRTC needs access to your mic to capture audio"; -NSPhotoLibraryAddUsageDescription = "TRTC needs access your photo library to save edited files"; -NSPhotoLibraryUsageDescription = "TRTC needs access to your photo library to edit videos"; -"UILaunchStoryboardName" = "LaunchScreen_en"; - diff --git a/iOS/Demo/TXLiteAVDemo/App/TRTCInfoPlist/zh-Hans.lproj/InfoPlist.strings b/iOS/Demo/TXLiteAVDemo/App/TRTCInfoPlist/zh-Hans.lproj/InfoPlist.strings deleted file mode 100644 index 5fce8122..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/TRTCInfoPlist/zh-Hans.lproj/InfoPlist.strings +++ /dev/null @@ -1,15 +0,0 @@ -/* - InfoPlist.strings - TXLiteAVDemo - - Created by adams on 2021/3/25. - Copyright © 2021 Tencent. All rights reserved. -*/ - -CFBundleDisplayName = "TRTC"; -NSAppleMusicUsageDescription = "视频云TRTC需要访问你的媒体库权限以获取音乐,不允许则无法添加音乐"; -NSCameraUsageDescription = "视频云TRTC需要访问你的相机权限,开启后录制的视频才会有画面"; -NSMicrophoneUsageDescription = "视频云TRTC需要访问你的麦克风权限,开启后录制的视频才会有声音"; -NSPhotoLibraryAddUsageDescription = "视频云TRTC需要访问你的相册权限,开启后才能保存编辑的文件"; -NSPhotoLibraryUsageDescription = "视频云工具包需要访问你的相册权限,开启后才能编辑视频文件"; -"UILaunchStoryboardName" = "LaunchScreen"; diff --git a/iOS/Demo/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h b/iOS/Demo/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h deleted file mode 100644 index a57bf506..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/TXLiteAVDemo-Bridging-Header.h +++ /dev/null @@ -1,71 +0,0 @@ -// -// TXLiteAVDemo-Bridging-Header.h -// TXLiteAVDemo_TRTC_Scene -// -// Created by abyyxwang on 2020/4/15. -// Copyright © 2020 Tencent. All rights reserved. -// - - - -/* TXLiteAVDemo_Bridging_Header_h */ - -// localized string usage -#import "AppLocalized.h" - -#ifdef ENABLE_INTERNATIONAL -#import "TXLiveBase.h" -#endif - -#ifdef ENABLE_TRTC - -//#import "TCAnchorViewController.h" -//#import "TCAudienceViewController.h" -//#import "TRTCMeeting.h" -// VocieRoom -//#import "TRTCVoiceRoomDef.h" -//#import "TRTCVoiceRoom.h" -// ChatSalon -//#import "TRTCChatSalon.h" -//#import "TRTCChatSalonDef.h" - -//#import "TRTCLiveRoom.h" -//#import "TRTCCalling.h" -#endif - -#import "AppDelegate.h" -#import -#import - -#if !defined(UGC) && !defined(PLAYER) -#import -#import "GenerateTestUserSig.h" -#endif - -#ifdef ENTERPRISE -@import TXLiteAVSDK_Smart; -#endif - -#ifdef PROFESSIONAL -@import TXLiteAVSDK_Professional; -#endif - -#ifdef SMART -@import TXLiteAVSDK_Smart; -#endif - -#ifdef PLAYER -@import TXLiteAVSDK_Player; -#endif - -#ifdef UGC -@import TXLiteAVSDK_UGC; -#endif - -#if defined(TRTC) -@import TXLiteAVSDK_TRTC; -#endif - -#ifdef LIVE -@import TXLiteAVSDK_Live; -#endif diff --git a/iOS/Demo/TXLiteAVDemo/App/UIViewController+APM.m b/iOS/Demo/TXLiteAVDemo/App/UIViewController+APM.m deleted file mode 100644 index 420f1d9c..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/UIViewController+APM.m +++ /dev/null @@ -1,29 +0,0 @@ -// -// UIViewController+APM.m -// TXLiteAVDemo_Enterprise -// -// Created by sherlock on 2018/7/4. -// Copyright © 2018 Tencent. All rights reserved. -// - -#import "UIViewController+APM.h" -#import -#import - -@implementation UIViewController (APM) - - -+(void)load{ - Method fromMethed = class_getInstanceMethod([self class], @selector(viewDidDisappear:)); - Method toMethed = class_getInstanceMethod([self class], @selector(swizzingViewDidDisappear:)); - if(!class_addMethod([UIViewController class], @selector(viewDidDisappear:), method_getImplementation(toMethed), method_getTypeEncoding(toMethed))){ - method_exchangeImplementations(fromMethed, toMethed); - } -} - --(void)swizzingViewDidDisappear:(BOOL)animated{ - //[QAPMPerformanceProfile beginScene:nil withMode:QAPMMoniterTypeMemoryLeak]; - [self swizzingViewDidDisappear:animated]; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/App/en.lproj/InfoPlist.strings b/iOS/Demo/TXLiteAVDemo/App/en.lproj/InfoPlist.strings deleted file mode 100644 index 6759013d..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,15 +0,0 @@ -/* - InfoPlist.strings - TXLiteAVDemo - - Created by adams on 2021/3/24. - Copyright © 2021 Tencent. All rights reserved. -*/ - -CFBundleDisplayName = "TCToolkit"; -NSAppleMusicUsageDescription = "The toolkit needs access to your media library to acquire music"; -NSCameraUsageDescription = "The toolkit needs access to your camera to capture video"; -NSMicrophoneUsageDescription = "The toolkit needs access to your mic to capture audio"; -NSPhotoLibraryAddUsageDescription = "The toolkit needs access your photo library to save edited files."; -NSPhotoLibraryUsageDescription = "The toolkit needs access to your photo library to edit videos"; -"UILaunchStoryboardName" = "LaunchScreen_en"; diff --git a/iOS/Demo/TXLiteAVDemo/App/main.m b/iOS/Demo/TXLiteAVDemo/App/main.m deleted file mode 100644 index d7ff320d..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// TXLiteAVDemo -// -// Created by alderzhang on 2017/6/8. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/iOS/Demo/TXLiteAVDemo/App/zh-Hans.lproj/InfoPlist.strings b/iOS/Demo/TXLiteAVDemo/App/zh-Hans.lproj/InfoPlist.strings deleted file mode 100644 index 8fffac9e..00000000 --- a/iOS/Demo/TXLiteAVDemo/App/zh-Hans.lproj/InfoPlist.strings +++ /dev/null @@ -1,15 +0,0 @@ -/* - InfoPlist.strings - TXLiteAVDemo - - Created by adams on 2021/3/24. - Copyright © 2021 Tencent. All rights reserved. -*/ - -CFBundleDisplayName = "腾讯云工具包"; -NSAppleMusicUsageDescription = "视频云工具包需要访问你的媒体库权限以获取音乐,不允许则无法添加音乐"; -NSCameraUsageDescription = "视频云工具包需要访问你的相机权限,开启后录制的视频才会有画面"; -NSMicrophoneUsageDescription = "视频云工具包需要访问你的麦克风权限,开启后录制的视频才会有声音"; -NSPhotoLibraryAddUsageDescription = "视频云工具包需要访问你的相册权限,开启后才能保存编辑的文件"; -NSPhotoLibraryUsageDescription = "视频云工具包需要访问你的相册权限,开启后才能编辑视频文件"; -UILaunchStoryboardName = "LaunchScreen"; diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioEffectSettingKit.xcodeproj/project.pbxproj b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioEffectSettingKit.xcodeproj/project.pbxproj deleted file mode 100644 index 6496d709..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioEffectSettingKit.xcodeproj/project.pbxproj +++ /dev/null @@ -1,795 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 52; - objects = { - -/* Begin PBXBuildFile section */ - 401A9A42247FACAF00C0763B /* TCAudioSettingManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 401A9A40247FACAF00C0763B /* TCAudioSettingManager.h */; }; - 401A9A43247FACAF00C0763B /* TCAudioSettingManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 401A9A41247FACAF00C0763B /* TCAudioSettingManager.m */; }; - 40AF719F247D036200EBB371 /* AudioEffectSettingKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 40AF719D247D036200EBB371 /* AudioEffectSettingKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 40AF71D4247D09DB00EBB371 /* AudioEffectSettingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 40AF71D2247D09DB00EBB371 /* AudioEffectSettingView.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 40AF71D5247D09DB00EBB371 /* AudioEffectSettingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 40AF71D3247D09DB00EBB371 /* AudioEffectSettingView.m */; }; - 40AF7210247D154C00EBB371 /* TCASKitTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = 40AF720E247D154C00EBB371 /* TCASKitTheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 40AF7211247D154C00EBB371 /* TCASKitTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 40AF720F247D154C00EBB371 /* TCASKitTheme.m */; }; - 40AF7214247D157400EBB371 /* AudioSettingPanelLocalizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 40AF7216247D157400EBB371 /* AudioSettingPanelLocalizable.strings */; platformFilter = ios; }; - 40AF7222247DFE9800EBB371 /* TCCommonTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 40AF7221247DFDEB00EBB371 /* TCCommonTool.h */; }; - 40AF7230247E068300EBB371 /* TCMusicSelectItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = 40AF722D247E039C00EBB371 /* TCMusicSelectItemView.m */; }; - 40AF7233247E0CE500EBB371 /* TCSlideItemView.h in Headers */ = {isa = PBXBuildFile; fileRef = 40AF7231247E0CE400EBB371 /* TCSlideItemView.h */; }; - 40AF7234247E0CE500EBB371 /* TCSlideItemView.m in Sources */ = {isa = PBXBuildFile; fileRef = 40AF7232247E0CE400EBB371 /* TCSlideItemView.m */; }; - 40AF7237247E19C200EBB371 /* TCAudioScrollMenuView.h in Headers */ = {isa = PBXBuildFile; fileRef = 40AF7235247E19C200EBB371 /* TCAudioScrollMenuView.h */; }; - 40AF7238247E19C200EBB371 /* TCAudioScrollMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 40AF7236247E19C200EBB371 /* TCAudioScrollMenuView.m */; }; - 40AF723B247E216100EBB371 /* TCAudioScrollerMenuCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 40AF7239247E216100EBB371 /* TCAudioScrollerMenuCell.h */; }; - 40AF723C247E216100EBB371 /* TCAudioScrollerMenuCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40AF723A247E216100EBB371 /* TCAudioScrollerMenuCell.m */; }; - 40AF7240247E241D00EBB371 /* TCAudioScrollMenuCellModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 40AF723E247E241D00EBB371 /* TCAudioScrollMenuCellModel.h */; }; - 40AF7241247E241D00EBB371 /* TCAudioScrollMenuCellModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 40AF723F247E241D00EBB371 /* TCAudioScrollMenuCellModel.m */; }; - 40AF7246247E3BF300EBB371 /* AudioEffectSettingViewModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 40AF7244247E3BF300EBB371 /* AudioEffectSettingViewModel.h */; }; - 40AF7247247E3BF300EBB371 /* AudioEffectSettingViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 40AF7245247E3BF300EBB371 /* AudioEffectSettingViewModel.m */; }; - 40AF7249247E40EE00EBB371 /* TCAudioSettingKit.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40AF7248247E40EE00EBB371 /* TCAudioSettingKit.xcassets */; }; - 40AF724D247E501500EBB371 /* TCMusicSelectView.m in Sources */ = {isa = PBXBuildFile; fileRef = 40AF724B247E501000EBB371 /* TCMusicSelectView.m */; }; - 40AF725D247F4D0C00EBB371 /* TCMusicSelectedModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 40AF725B247F4D0C00EBB371 /* TCMusicSelectedModel.h */; }; - 40AF725E247F4D0C00EBB371 /* TCMusicSelectedModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 40AF725C247F4D0C00EBB371 /* TCMusicSelectedModel.m */; }; - 40AF7261247F4F7A00EBB371 /* TCMusicSelectCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 40AF725F247F4F7A00EBB371 /* TCMusicSelectCell.h */; }; - 40AF7262247F4F7A00EBB371 /* TCMusicSelectCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 40AF7260247F4F7A00EBB371 /* TCMusicSelectCell.m */; }; - 40D08705249C9CF20055F9A6 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40D08703249C9C130055F9A6 /* Accelerate.framework */; }; - 40D08707249C9D460055F9A6 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40D08706249C9D460055F9A6 /* AssetsLibrary.framework */; }; - 40E25F9E248029F8005EB543 /* ASMASLayoutConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 40E25F85248029F5005EB543 /* ASMASLayoutConstraint.m */; }; - 40E25F9F248029F8005EB543 /* ASMasonry.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F86248029F5005EB543 /* ASMasonry.h */; }; - 40E25FA0248029F8005EB543 /* ASMASConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F87248029F6005EB543 /* ASMASConstraint.h */; }; - 40E25FA1248029F8005EB543 /* ASView+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 40E25F88248029F6005EB543 /* ASView+MASAdditions.m */; }; - 40E25FA2248029F8005EB543 /* ASNSArray+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F89248029F6005EB543 /* ASNSArray+MASShorthandAdditions.h */; }; - 40E25FA3248029F8005EB543 /* ASMASViewAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F8A248029F6005EB543 /* ASMASViewAttribute.h */; }; - 40E25FA4248029F8005EB543 /* ASMASViewAttribute.m in Sources */ = {isa = PBXBuildFile; fileRef = 40E25F8B248029F6005EB543 /* ASMASViewAttribute.m */; }; - 40E25FA5248029F8005EB543 /* ASMASConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 40E25F8C248029F6005EB543 /* ASMASConstraint.m */; }; - 40E25FA6248029F8005EB543 /* ASMASCompositeConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F8D248029F6005EB543 /* ASMASCompositeConstraint.h */; }; - 40E25FA7248029F8005EB543 /* ASMASConstraintMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F8E248029F6005EB543 /* ASMASConstraintMaker.h */; }; - 40E25FA8248029F8005EB543 /* ASView+MASShorthandAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F8F248029F6005EB543 /* ASView+MASShorthandAdditions.h */; }; - 40E25FA9248029F8005EB543 /* ASMASUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F90248029F6005EB543 /* ASMASUtilities.h */; }; - 40E25FAA248029F8005EB543 /* ASNSArray+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F91248029F6005EB543 /* ASNSArray+MASAdditions.h */; }; - 40E25FAB248029F8005EB543 /* ASViewController+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 40E25F92248029F7005EB543 /* ASViewController+MASAdditions.m */; }; - 40E25FAC248029F8005EB543 /* ASMASViewConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 40E25F93248029F7005EB543 /* ASMASViewConstraint.m */; }; - 40E25FAD248029F8005EB543 /* ASMASCompositeConstraint.m in Sources */ = {isa = PBXBuildFile; fileRef = 40E25F94248029F7005EB543 /* ASMASCompositeConstraint.m */; }; - 40E25FAE248029F8005EB543 /* ASMASViewConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F95248029F7005EB543 /* ASMASViewConstraint.h */; }; - 40E25FAF248029F8005EB543 /* ASNSArray+MASAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 40E25F96248029F7005EB543 /* ASNSArray+MASAdditions.m */; }; - 40E25FB0248029F8005EB543 /* ASMASConstraintMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 40E25F97248029F7005EB543 /* ASMASConstraintMaker.m */; }; - 40E25FB1248029F8005EB543 /* ASView+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F98248029F7005EB543 /* ASView+MASAdditions.h */; }; - 40E25FB2248029F8005EB543 /* ASMASConstraint+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F99248029F8005EB543 /* ASMASConstraint+Private.h */; }; - 40E25FB3248029F8005EB543 /* ASNSLayoutConstraint+MASDebugAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F9A248029F8005EB543 /* ASNSLayoutConstraint+MASDebugAdditions.h */; }; - 40E25FB4248029F8005EB543 /* ASMASLayoutConstraint.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F9B248029F8005EB543 /* ASMASLayoutConstraint.h */; }; - 40E25FB5248029F8005EB543 /* ASViewController+MASAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 40E25F9C248029F8005EB543 /* ASViewController+MASAdditions.h */; }; - 40E25FB6248029F8005EB543 /* ASNSLayoutConstraint+MASDebugAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 40E25F9D248029F8005EB543 /* ASNSLayoutConstraint+MASDebugAdditions.m */; }; - 40E25FB924803F68005EB543 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 401A9A47247FB78F00C0763B /* libc++.tbd */; }; - 40E25FBE24804490005EB543 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 4BAFBCD5882082D741C37562 /* TXLiteAVSDK_Smart.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7908879631347848C0A99B5 /* TXLiteAVSDK_Smart.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 401A9A40247FACAF00C0763B /* TCAudioSettingManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCAudioSettingManager.h; sourceTree = ""; }; - 401A9A41247FACAF00C0763B /* TCAudioSettingManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TCAudioSettingManager.m; sourceTree = ""; }; - 401A9A47247FB78F00C0763B /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; - 40AF719A247D036200EBB371 /* AudioEffectSettingKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AudioEffectSettingKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 40AF719D247D036200EBB371 /* AudioEffectSettingKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AudioEffectSettingKit.h; sourceTree = ""; }; - 40AF719E247D036200EBB371 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 40AF71C4247D07E900EBB371 /* AudioEffectSettingKit.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = AudioEffectSettingKit.modulemap; sourceTree = ""; }; - 40AF71C9247D08F700EBB371 /* AudioEffectSettingKitResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AudioEffectSettingKitResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 40AF71CB247D08F700EBB371 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 40AF71D2247D09DB00EBB371 /* AudioEffectSettingView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AudioEffectSettingView.h; sourceTree = ""; }; - 40AF71D3247D09DB00EBB371 /* AudioEffectSettingView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AudioEffectSettingView.m; sourceTree = ""; }; - 40AF71F2247D0E5B00EBB371 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 40AF720E247D154C00EBB371 /* TCASKitTheme.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCASKitTheme.h; sourceTree = ""; }; - 40AF720F247D154C00EBB371 /* TCASKitTheme.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TCASKitTheme.m; sourceTree = ""; }; - 40AF7215247D157400EBB371 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/AudioSettingPanelLocalizable.strings; sourceTree = ""; }; - 40AF7217247D15B700EBB371 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/AudioSettingPanelLocalizable.strings"; sourceTree = ""; }; - 40AF7221247DFDEB00EBB371 /* TCCommonTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCCommonTool.h; sourceTree = ""; }; - 40AF722C247E039C00EBB371 /* TCMusicSelectItemView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCMusicSelectItemView.h; sourceTree = ""; }; - 40AF722D247E039C00EBB371 /* TCMusicSelectItemView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TCMusicSelectItemView.m; sourceTree = ""; }; - 40AF722F247E054900EBB371 /* TCAudioSettingPrefixHeader.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCAudioSettingPrefixHeader.pch; sourceTree = ""; }; - 40AF7231247E0CE400EBB371 /* TCSlideItemView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCSlideItemView.h; sourceTree = ""; }; - 40AF7232247E0CE400EBB371 /* TCSlideItemView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TCSlideItemView.m; sourceTree = ""; }; - 40AF7235247E19C200EBB371 /* TCAudioScrollMenuView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCAudioScrollMenuView.h; sourceTree = ""; }; - 40AF7236247E19C200EBB371 /* TCAudioScrollMenuView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TCAudioScrollMenuView.m; sourceTree = ""; }; - 40AF7239247E216100EBB371 /* TCAudioScrollerMenuCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCAudioScrollerMenuCell.h; sourceTree = ""; }; - 40AF723A247E216100EBB371 /* TCAudioScrollerMenuCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TCAudioScrollerMenuCell.m; sourceTree = ""; }; - 40AF723E247E241D00EBB371 /* TCAudioScrollMenuCellModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCAudioScrollMenuCellModel.h; sourceTree = ""; }; - 40AF723F247E241D00EBB371 /* TCAudioScrollMenuCellModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TCAudioScrollMenuCellModel.m; sourceTree = ""; }; - 40AF7244247E3BF300EBB371 /* AudioEffectSettingViewModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AudioEffectSettingViewModel.h; sourceTree = ""; }; - 40AF7245247E3BF300EBB371 /* AudioEffectSettingViewModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AudioEffectSettingViewModel.m; sourceTree = ""; }; - 40AF7248247E40EE00EBB371 /* TCAudioSettingKit.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = TCAudioSettingKit.xcassets; sourceTree = ""; }; - 40AF724A247E501000EBB371 /* TCMusicSelectView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCMusicSelectView.h; sourceTree = ""; }; - 40AF724B247E501000EBB371 /* TCMusicSelectView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TCMusicSelectView.m; sourceTree = ""; }; - 40AF725B247F4D0C00EBB371 /* TCMusicSelectedModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCMusicSelectedModel.h; sourceTree = ""; }; - 40AF725C247F4D0C00EBB371 /* TCMusicSelectedModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TCMusicSelectedModel.m; sourceTree = ""; }; - 40AF725F247F4F7A00EBB371 /* TCMusicSelectCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCMusicSelectCell.h; sourceTree = ""; }; - 40AF7260247F4F7A00EBB371 /* TCMusicSelectCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TCMusicSelectCell.m; sourceTree = ""; }; - 40D08703249C9C130055F9A6 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; - 40D08706249C9D460055F9A6 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; - 40E25F85248029F5005EB543 /* ASMASLayoutConstraint.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASMASLayoutConstraint.m; sourceTree = ""; }; - 40E25F86248029F5005EB543 /* ASMasonry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASMasonry.h; sourceTree = ""; }; - 40E25F87248029F6005EB543 /* ASMASConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASMASConstraint.h; sourceTree = ""; }; - 40E25F88248029F6005EB543 /* ASView+MASAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ASView+MASAdditions.m"; sourceTree = ""; }; - 40E25F89248029F6005EB543 /* ASNSArray+MASShorthandAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ASNSArray+MASShorthandAdditions.h"; sourceTree = ""; }; - 40E25F8A248029F6005EB543 /* ASMASViewAttribute.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASMASViewAttribute.h; sourceTree = ""; }; - 40E25F8B248029F6005EB543 /* ASMASViewAttribute.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASMASViewAttribute.m; sourceTree = ""; }; - 40E25F8C248029F6005EB543 /* ASMASConstraint.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASMASConstraint.m; sourceTree = ""; }; - 40E25F8D248029F6005EB543 /* ASMASCompositeConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASMASCompositeConstraint.h; sourceTree = ""; }; - 40E25F8E248029F6005EB543 /* ASMASConstraintMaker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASMASConstraintMaker.h; sourceTree = ""; }; - 40E25F8F248029F6005EB543 /* ASView+MASShorthandAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ASView+MASShorthandAdditions.h"; sourceTree = ""; }; - 40E25F90248029F6005EB543 /* ASMASUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASMASUtilities.h; sourceTree = ""; }; - 40E25F91248029F6005EB543 /* ASNSArray+MASAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ASNSArray+MASAdditions.h"; sourceTree = ""; }; - 40E25F92248029F7005EB543 /* ASViewController+MASAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ASViewController+MASAdditions.m"; sourceTree = ""; }; - 40E25F93248029F7005EB543 /* ASMASViewConstraint.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASMASViewConstraint.m; sourceTree = ""; }; - 40E25F94248029F7005EB543 /* ASMASCompositeConstraint.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASMASCompositeConstraint.m; sourceTree = ""; }; - 40E25F95248029F7005EB543 /* ASMASViewConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASMASViewConstraint.h; sourceTree = ""; }; - 40E25F96248029F7005EB543 /* ASNSArray+MASAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ASNSArray+MASAdditions.m"; sourceTree = ""; }; - 40E25F97248029F7005EB543 /* ASMASConstraintMaker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASMASConstraintMaker.m; sourceTree = ""; }; - 40E25F98248029F7005EB543 /* ASView+MASAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ASView+MASAdditions.h"; sourceTree = ""; }; - 40E25F99248029F8005EB543 /* ASMASConstraint+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ASMASConstraint+Private.h"; sourceTree = ""; }; - 40E25F9A248029F8005EB543 /* ASNSLayoutConstraint+MASDebugAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ASNSLayoutConstraint+MASDebugAdditions.h"; sourceTree = ""; }; - 40E25F9B248029F8005EB543 /* ASMASLayoutConstraint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASMASLayoutConstraint.h; sourceTree = ""; }; - 40E25F9C248029F8005EB543 /* ASViewController+MASAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ASViewController+MASAdditions.h"; sourceTree = ""; }; - 40E25F9D248029F8005EB543 /* ASNSLayoutConstraint+MASDebugAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ASNSLayoutConstraint+MASDebugAdditions.m"; sourceTree = ""; }; - E7908879631347848C0A99B5 /* TXLiteAVSDK_Smart.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TXLiteAVSDK_Smart.framework; path = ../../../SDK/TXLiteAVSDK_Smart.framework; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 40AF7197247D036200EBB371 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 40D08705249C9CF20055F9A6 /* Accelerate.framework in Frameworks */, - 40E25FBE24804490005EB543 /* BuildFile in Frameworks */, - 40E25FB924803F68005EB543 /* libc++.tbd in Frameworks */, - 40D08707249C9D460055F9A6 /* AssetsLibrary.framework in Frameworks */, - 4BAFBCD5882082D741C37562 /* TXLiteAVSDK_Smart.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 40AF7190247D036200EBB371 = { - isa = PBXGroup; - children = ( - 40AF719C247D036200EBB371 /* AudioSettingKit */, - 40AF71BE247D040200EBB371 /* Frameworks */, - 40AF719B247D036200EBB371 /* Products */, - 40AF71A5247D03B500EBB371 /* Resource */, - 40AF71CA247D08F700EBB371 /* TCAudioSettingKitResources */, - ); - sourceTree = ""; - }; - 40AF719B247D036200EBB371 /* Products */ = { - isa = PBXGroup; - children = ( - 40AF719A247D036200EBB371 /* AudioEffectSettingKit.framework */, - 40AF71C9247D08F700EBB371 /* AudioEffectSettingKitResources.bundle */, - ); - name = Products; - sourceTree = ""; - }; - 40AF719C247D036200EBB371 /* AudioSettingKit */ = { - isa = PBXGroup; - children = ( - 40AF719D247D036200EBB371 /* AudioEffectSettingKit.h */, - 40AF719E247D036200EBB371 /* Info.plist */, - 40AF71C4247D07E900EBB371 /* AudioEffectSettingKit.modulemap */, - 40AF7220247DFDCE00EBB371 /* Tool */, - 40AF71D7247D0E3700EBB371 /* Dependencies */, - 40AF71D1247D096200EBB371 /* View */, - 40AF71D0247D095800EBB371 /* Model */, - 40AF71CF247D094E00EBB371 /* Interfaces */, - ); - path = AudioSettingKit; - sourceTree = ""; - }; - 40AF71A5247D03B500EBB371 /* Resource */ = { - isa = PBXGroup; - children = ( - 40AF7216247D157400EBB371 /* AudioSettingPanelLocalizable.strings */, - 40AF7248247E40EE00EBB371 /* TCAudioSettingKit.xcassets */, - ); - path = Resource; - sourceTree = ""; - }; - 40AF71BE247D040200EBB371 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 40D08706249C9D460055F9A6 /* AssetsLibrary.framework */, - 40D08703249C9C130055F9A6 /* Accelerate.framework */, - 401A9A47247FB78F00C0763B /* libc++.tbd */, - E7908879631347848C0A99B5 /* TXLiteAVSDK_Smart.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 40AF71CA247D08F700EBB371 /* TCAudioSettingKitResources */ = { - isa = PBXGroup; - children = ( - 40AF71CB247D08F700EBB371 /* Info.plist */, - ); - path = TCAudioSettingKitResources; - sourceTree = ""; - }; - 40AF71CF247D094E00EBB371 /* Interfaces */ = { - isa = PBXGroup; - children = ( - ); - path = Interfaces; - sourceTree = ""; - }; - 40AF71D0247D095800EBB371 /* Model */ = { - isa = PBXGroup; - children = ( - 40AF723D247E23F600EBB371 /* ViewModel */, - 40AF720D247D150500EBB371 /* Theme */, - 401A9A40247FACAF00C0763B /* TCAudioSettingManager.h */, - 401A9A41247FACAF00C0763B /* TCAudioSettingManager.m */, - ); - path = Model; - sourceTree = ""; - }; - 40AF71D1247D096200EBB371 /* View */ = { - isa = PBXGroup; - children = ( - 40AF71D6247D0A1C00EBB371 /* CommonView */, - 40AF71D2247D09DB00EBB371 /* AudioEffectSettingView.h */, - 40AF71D3247D09DB00EBB371 /* AudioEffectSettingView.m */, - ); - path = View; - sourceTree = ""; - }; - 40AF71D6247D0A1C00EBB371 /* CommonView */ = { - isa = PBXGroup; - children = ( - 40AF722C247E039C00EBB371 /* TCMusicSelectItemView.h */, - 40AF722D247E039C00EBB371 /* TCMusicSelectItemView.m */, - 40AF7231247E0CE400EBB371 /* TCSlideItemView.h */, - 40AF7232247E0CE400EBB371 /* TCSlideItemView.m */, - 40AF7235247E19C200EBB371 /* TCAudioScrollMenuView.h */, - 40AF7236247E19C200EBB371 /* TCAudioScrollMenuView.m */, - 40AF7239247E216100EBB371 /* TCAudioScrollerMenuCell.h */, - 40AF723A247E216100EBB371 /* TCAudioScrollerMenuCell.m */, - 40AF724A247E501000EBB371 /* TCMusicSelectView.h */, - 40AF724B247E501000EBB371 /* TCMusicSelectView.m */, - 40AF725F247F4F7A00EBB371 /* TCMusicSelectCell.h */, - 40AF7260247F4F7A00EBB371 /* TCMusicSelectCell.m */, - ); - path = CommonView; - sourceTree = ""; - }; - 40AF71D7247D0E3700EBB371 /* Dependencies */ = { - isa = PBXGroup; - children = ( - 40AF71D8247D0E5B00EBB371 /* Masonry */, - ); - path = Dependencies; - sourceTree = ""; - }; - 40AF71D8247D0E5B00EBB371 /* Masonry */ = { - isa = PBXGroup; - children = ( - 40E25F8D248029F6005EB543 /* ASMASCompositeConstraint.h */, - 40E25F94248029F7005EB543 /* ASMASCompositeConstraint.m */, - 40E25F87248029F6005EB543 /* ASMASConstraint.h */, - 40E25F8C248029F6005EB543 /* ASMASConstraint.m */, - 40E25F99248029F8005EB543 /* ASMASConstraint+Private.h */, - 40E25F8E248029F6005EB543 /* ASMASConstraintMaker.h */, - 40E25F97248029F7005EB543 /* ASMASConstraintMaker.m */, - 40E25F9B248029F8005EB543 /* ASMASLayoutConstraint.h */, - 40E25F85248029F5005EB543 /* ASMASLayoutConstraint.m */, - 40E25F86248029F5005EB543 /* ASMasonry.h */, - 40E25F90248029F6005EB543 /* ASMASUtilities.h */, - 40E25F8A248029F6005EB543 /* ASMASViewAttribute.h */, - 40E25F8B248029F6005EB543 /* ASMASViewAttribute.m */, - 40E25F95248029F7005EB543 /* ASMASViewConstraint.h */, - 40E25F93248029F7005EB543 /* ASMASViewConstraint.m */, - 40E25F91248029F6005EB543 /* ASNSArray+MASAdditions.h */, - 40E25F96248029F7005EB543 /* ASNSArray+MASAdditions.m */, - 40E25F89248029F6005EB543 /* ASNSArray+MASShorthandAdditions.h */, - 40E25F9A248029F8005EB543 /* ASNSLayoutConstraint+MASDebugAdditions.h */, - 40E25F9D248029F8005EB543 /* ASNSLayoutConstraint+MASDebugAdditions.m */, - 40E25F98248029F7005EB543 /* ASView+MASAdditions.h */, - 40E25F88248029F6005EB543 /* ASView+MASAdditions.m */, - 40E25F8F248029F6005EB543 /* ASView+MASShorthandAdditions.h */, - 40E25F9C248029F8005EB543 /* ASViewController+MASAdditions.h */, - 40E25F92248029F7005EB543 /* ASViewController+MASAdditions.m */, - 40AF71F2247D0E5B00EBB371 /* Info.plist */, - ); - path = Masonry; - sourceTree = ""; - }; - 40AF720D247D150500EBB371 /* Theme */ = { - isa = PBXGroup; - children = ( - 40AF720E247D154C00EBB371 /* TCASKitTheme.h */, - 40AF720F247D154C00EBB371 /* TCASKitTheme.m */, - ); - path = Theme; - sourceTree = ""; - }; - 40AF7220247DFDCE00EBB371 /* Tool */ = { - isa = PBXGroup; - children = ( - 40AF7221247DFDEB00EBB371 /* TCCommonTool.h */, - 40AF722F247E054900EBB371 /* TCAudioSettingPrefixHeader.pch */, - ); - path = Tool; - sourceTree = ""; - }; - 40AF723D247E23F600EBB371 /* ViewModel */ = { - isa = PBXGroup; - children = ( - 40AF723E247E241D00EBB371 /* TCAudioScrollMenuCellModel.h */, - 40AF723F247E241D00EBB371 /* TCAudioScrollMenuCellModel.m */, - 40AF7244247E3BF300EBB371 /* AudioEffectSettingViewModel.h */, - 40AF7245247E3BF300EBB371 /* AudioEffectSettingViewModel.m */, - 40AF725B247F4D0C00EBB371 /* TCMusicSelectedModel.h */, - 40AF725C247F4D0C00EBB371 /* TCMusicSelectedModel.m */, - ); - path = ViewModel; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 40AF7195247D036200EBB371 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 40AF7233247E0CE500EBB371 /* TCSlideItemView.h in Headers */, - 40E25FA0248029F8005EB543 /* ASMASConstraint.h in Headers */, - 40AF7210247D154C00EBB371 /* TCASKitTheme.h in Headers */, - 40E25FB3248029F8005EB543 /* ASNSLayoutConstraint+MASDebugAdditions.h in Headers */, - 40AF725D247F4D0C00EBB371 /* TCMusicSelectedModel.h in Headers */, - 40AF723B247E216100EBB371 /* TCAudioScrollerMenuCell.h in Headers */, - 40AF7261247F4F7A00EBB371 /* TCMusicSelectCell.h in Headers */, - 40AF7246247E3BF300EBB371 /* AudioEffectSettingViewModel.h in Headers */, - 40AF7240247E241D00EBB371 /* TCAudioScrollMenuCellModel.h in Headers */, - 40E25FA7248029F8005EB543 /* ASMASConstraintMaker.h in Headers */, - 40E25FB1248029F8005EB543 /* ASView+MASAdditions.h in Headers */, - 401A9A42247FACAF00C0763B /* TCAudioSettingManager.h in Headers */, - 40AF71D4247D09DB00EBB371 /* AudioEffectSettingView.h in Headers */, - 40E25FB5248029F8005EB543 /* ASViewController+MASAdditions.h in Headers */, - 40E25FA6248029F8005EB543 /* ASMASCompositeConstraint.h in Headers */, - 40AF719F247D036200EBB371 /* AudioEffectSettingKit.h in Headers */, - 40E25FA8248029F8005EB543 /* ASView+MASShorthandAdditions.h in Headers */, - 40E25FB2248029F8005EB543 /* ASMASConstraint+Private.h in Headers */, - 40E25FAA248029F8005EB543 /* ASNSArray+MASAdditions.h in Headers */, - 40E25FA2248029F8005EB543 /* ASNSArray+MASShorthandAdditions.h in Headers */, - 40E25FAE248029F8005EB543 /* ASMASViewConstraint.h in Headers */, - 40AF7237247E19C200EBB371 /* TCAudioScrollMenuView.h in Headers */, - 40E25FB4248029F8005EB543 /* ASMASLayoutConstraint.h in Headers */, - 40E25F9F248029F8005EB543 /* ASMasonry.h in Headers */, - 40E25FA3248029F8005EB543 /* ASMASViewAttribute.h in Headers */, - 40AF7222247DFE9800EBB371 /* TCCommonTool.h in Headers */, - 40E25FA9248029F8005EB543 /* ASMASUtilities.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 40AF7199247D036200EBB371 /* AudioEffectSettingKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = 40AF71A2247D036200EBB371 /* Build configuration list for PBXNativeTarget "AudioEffectSettingKit" */; - buildPhases = ( - 40AF7195247D036200EBB371 /* Headers */, - 40AF7196247D036200EBB371 /* Sources */, - 40AF7197247D036200EBB371 /* Frameworks */, - 40AF7198247D036200EBB371 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = AudioEffectSettingKit; - productName = AudioSettingKit; - productReference = 40AF719A247D036200EBB371 /* AudioEffectSettingKit.framework */; - productType = "com.apple.product-type.framework"; - }; - 40AF71C8247D08F700EBB371 /* AudioEffectSettingKitResources */ = { - isa = PBXNativeTarget; - buildConfigurationList = 40AF71CC247D08F700EBB371 /* Build configuration list for PBXNativeTarget "AudioEffectSettingKitResources" */; - buildPhases = ( - 40AF71C7247D08F700EBB371 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = AudioEffectSettingKitResources; - productName = TCAudioSettingKitResources; - productReference = 40AF71C9247D08F700EBB371 /* AudioEffectSettingKitResources.bundle */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 40AF7191247D036200EBB371 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1140; - LastUpgradeCheck = 1140; - ORGANIZATIONNAME = tencent; - TargetAttributes = { - 40AF7199247D036200EBB371 = { - CreatedOnToolsVersion = 11.4.1; - }; - 40AF71C8247D08F700EBB371 = { - CreatedOnToolsVersion = 11.4.1; - }; - }; - }; - buildConfigurationList = 40AF7194247D036200EBB371 /* Build configuration list for PBXProject "AudioEffectSettingKit" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - "zh-Hans", - ); - mainGroup = 40AF7190247D036200EBB371; - productRefGroup = 40AF719B247D036200EBB371 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 40AF7199247D036200EBB371 /* AudioEffectSettingKit */, - 40AF71C8247D08F700EBB371 /* AudioEffectSettingKitResources */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 40AF7198247D036200EBB371 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 40AF71C7247D08F700EBB371 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 40AF7214247D157400EBB371 /* AudioSettingPanelLocalizable.strings in Resources */, - 40AF7249247E40EE00EBB371 /* TCAudioSettingKit.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 40AF7196247D036200EBB371 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 40AF7234247E0CE500EBB371 /* TCSlideItemView.m in Sources */, - 40AF725E247F4D0C00EBB371 /* TCMusicSelectedModel.m in Sources */, - 40E25FA1248029F8005EB543 /* ASView+MASAdditions.m in Sources */, - 40E25FB0248029F8005EB543 /* ASMASConstraintMaker.m in Sources */, - 401A9A43247FACAF00C0763B /* TCAudioSettingManager.m in Sources */, - 40AF7241247E241D00EBB371 /* TCAudioScrollMenuCellModel.m in Sources */, - 40AF7262247F4F7A00EBB371 /* TCMusicSelectCell.m in Sources */, - 40E25FA5248029F8005EB543 /* ASMASConstraint.m in Sources */, - 40AF7247247E3BF300EBB371 /* AudioEffectSettingViewModel.m in Sources */, - 40E25FAB248029F8005EB543 /* ASViewController+MASAdditions.m in Sources */, - 40AF71D5247D09DB00EBB371 /* AudioEffectSettingView.m in Sources */, - 40E25FAF248029F8005EB543 /* ASNSArray+MASAdditions.m in Sources */, - 40AF723C247E216100EBB371 /* TCAudioScrollerMenuCell.m in Sources */, - 40E25FAD248029F8005EB543 /* ASMASCompositeConstraint.m in Sources */, - 40AF7230247E068300EBB371 /* TCMusicSelectItemView.m in Sources */, - 40E25FB6248029F8005EB543 /* ASNSLayoutConstraint+MASDebugAdditions.m in Sources */, - 40E25F9E248029F8005EB543 /* ASMASLayoutConstraint.m in Sources */, - 40AF7238247E19C200EBB371 /* TCAudioScrollMenuView.m in Sources */, - 40E25FA4248029F8005EB543 /* ASMASViewAttribute.m in Sources */, - 40AF724D247E501500EBB371 /* TCMusicSelectView.m in Sources */, - 40AF7211247D154C00EBB371 /* TCASKitTheme.m in Sources */, - 40E25FAC248029F8005EB543 /* ASMASViewConstraint.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 40AF7216247D157400EBB371 /* AudioSettingPanelLocalizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 40AF7215247D157400EBB371 /* en */, - 40AF7217247D15B700EBB371 /* zh-Hans */, - ); - name = AudioSettingPanelLocalizable.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 40AF71A0247D036200EBB371 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 40AF71A1247D036200EBB371 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 40AF71A3247D036200EBB371 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = "${SRCROOT}/../../../SDK/"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "${SRCROOT}/AudioSettingKit/Tool/TCAudioSettingPrefixHeader.pch"; - HEADER_SEARCH_PATHS = ( - "${SRCROOT}/../../../SDK/TXLiteAVSDK_Enterprise.framework/Headers/", - "${SRCROOT}/../XiaoZhiBoApp/Framework/TXLiteAVSDK_Professional.framework/Headers/", - "${SRCROOT}/../../../SDK/TXLiteAVSDK_Professional.framework/Headers/", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Professional.framework/Headers/", - "${SRCROOT}/../../../SDK/TXLiteAVSDK_International.framework/Headers/", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_International.framework/Headers/", - "${SRCROOT}/../../../SDK/TXLiteAVSDK_Live.framework/Headers/", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Live.framework/Headers/", - "$(SRCROOT)/../../../SDK/TXLiteAVSDK_Smart.framework/Headers", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Smart.framework/Headers", - ); - INFOPLIST_FILE = AudioSettingKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "${SRCROOT}/AudioSettingKit/AudioEffectSettingKit.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.AudioSettingKit; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SUPPORTS_MACCATALYST = NO; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 40AF71A4247D036200EBB371 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = "${SRCROOT}/../../../SDK/"; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "${SRCROOT}/AudioSettingKit/Tool/TCAudioSettingPrefixHeader.pch"; - HEADER_SEARCH_PATHS = ( - "${SRCROOT}/../XiaoZhiBoApp/Framework/TXLiteAVSDK_Professional.framework/Headers/", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Professional.framework/Headers/", - "${SRCROOT}/../../../SDK/TXLiteAVSDK_Professional.framework/Headers/", - "${SRCROOT}/../../../SDK/TXLiteAVSDK_International.framework/Headers/", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_International.framework/Headers/", - "${SRCROOT}/../../../SDK/TXLiteAVSDK_Live.framework/Headers/", - "$(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Live.framework/Headers/", - "$(SRCROOT)/../../../SDK/TXLiteAVSDK_Smart.framework/Headers", - "(CONFIGURATION_BUILD_DIR)/TXLiteAVSDK_Smart.framework/Headers", - ); - INFOPLIST_FILE = AudioSettingKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "${SRCROOT}/AudioSettingKit/AudioEffectSettingKit.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.AudioSettingKit; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SUPPORTS_MACCATALYST = NO; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; - 40AF71CD247D08F700EBB371 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = ""; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = TCAudioSettingKitResources/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MACOSX_DEPLOYMENT_TARGET = 10.15; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.TCAudioSettingKitResources; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 40AF71CE247D08F700EBB371 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = ""; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = TCAudioSettingKitResources/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MACOSX_DEPLOYMENT_TARGET = 10.15; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.TCAudioSettingKitResources; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 40AF7194247D036200EBB371 /* Build configuration list for PBXProject "AudioEffectSettingKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 40AF71A0247D036200EBB371 /* Debug */, - 40AF71A1247D036200EBB371 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 40AF71A2247D036200EBB371 /* Build configuration list for PBXNativeTarget "AudioEffectSettingKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 40AF71A3247D036200EBB371 /* Debug */, - 40AF71A4247D036200EBB371 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 40AF71CC247D08F700EBB371 /* Build configuration list for PBXNativeTarget "AudioEffectSettingKitResources" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 40AF71CD247D08F700EBB371 /* Debug */, - 40AF71CE247D08F700EBB371 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 40AF7191247D036200EBB371 /* Project object */; -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioEffectSettingKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioEffectSettingKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 14a4d776..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioEffectSettingKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioEffectSettingKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioEffectSettingKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioEffectSettingKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioEffectSettingKit.xcodeproj/xcshareddata/xcschemes/AudioEffectSettingKit.xcscheme b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioEffectSettingKit.xcodeproj/xcshareddata/xcschemes/AudioEffectSettingKit.xcscheme deleted file mode 100644 index ce59b2e6..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioEffectSettingKit.xcodeproj/xcshareddata/xcschemes/AudioEffectSettingKit.xcscheme +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/AudioEffectSettingKit.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/AudioEffectSettingKit.h deleted file mode 100644 index 8e8384fc..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/AudioEffectSettingKit.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// AudioSettingKit.h -// AudioSettingKit -// -// Created by abyyxwang on 2020/5/26. -// Copyright © 2020 tencent. All rights reserved. -// - -#import - -//! Project version number for AudioSettingKit. -FOUNDATION_EXPORT double AudioSettingKitVersionNumber; - -//! Project version string for AudioSettingKit. -FOUNDATION_EXPORT const unsigned char AudioSettingKitVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - -#import -#import diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/AudioEffectSettingKit.modulemap b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/AudioEffectSettingKit.modulemap deleted file mode 100644 index 1328ffc1..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/AudioEffectSettingKit.modulemap +++ /dev/null @@ -1,4 +0,0 @@ -module AudioEffectSettingKit { - umbrella header "Headers/AudioEffectSettingKit.h" - export * -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASCompositeConstraint.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASCompositeConstraint.h deleted file mode 100644 index beebe64f..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASCompositeConstraint.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// ASMASCompositeConstraint.h -// Masonry -// -// Created by Jonas Budelmann on 21/07/13. -// Copyright (c) 2013 cloudling. All rights reserved. -// - -#import "ASMASConstraint.h" -#import "ASMASUtilities.h" - -/** - * A group of ASMASConstraint objects - */ -@interface ASMASCompositeConstraint : ASMASConstraint - -/** - * Creates a composite with a predefined array of children - * - * @param children child ASMASConstraints - * - * @return a composite constraint - */ -- (id)initWithChildren:(NSArray *)children; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASCompositeConstraint.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASCompositeConstraint.m deleted file mode 100644 index bfb60a7b..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASCompositeConstraint.m +++ /dev/null @@ -1,183 +0,0 @@ -// -// ASMASCompositeConstraint.m -// Masonry -// -// Created by Jonas Budelmann on 21/07/13. -// Copyright (c) 2013 cloudling. All rights reserved. -// - -#import "ASMASCompositeConstraint.h" -#import "ASMASConstraint+Private.h" - -@interface ASMASCompositeConstraint () - -@property (nonatomic, strong) id mas_key; -@property (nonatomic, strong) NSMutableArray *childConstraints; - -@end - -@implementation ASMASCompositeConstraint - -- (id)initWithChildren:(NSArray *)children { - self = [super init]; - if (!self) return nil; - - _childConstraints = [children mutableCopy]; - for (ASMASConstraint *constraint in _childConstraints) { - constraint.delegate = self; - } - - return self; -} - -#pragma mark - ASMASConstraintDelegate - -- (void)constraint:(ASMASConstraint *)constraint shouldBeReplacedWithConstraint:(ASMASConstraint *)replacementConstraint { - NSUInteger index = [self.childConstraints indexOfObject:constraint]; - NSAssert(index != NSNotFound, @"Could not find constraint %@", constraint); - [self.childConstraints replaceObjectAtIndex:index withObject:replacementConstraint]; -} - -- (ASMASConstraint *)constraint:(ASMASConstraint __unused *)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute { - id strongDelegate = self.delegate; - ASMASConstraint *newConstraint = [strongDelegate constraint:self addConstraintWithLayoutAttribute:layoutAttribute]; - newConstraint.delegate = self; - [self.childConstraints addObject:newConstraint]; - return newConstraint; -} - -#pragma mark - NSLayoutConstraint multiplier proxies - -- (ASMASConstraint * (^)(CGFloat))multipliedBy { - return ^id(CGFloat multiplier) { - for (ASMASConstraint *constraint in self.childConstraints) { - constraint.multipliedBy(multiplier); - } - return self; - }; -} - -- (ASMASConstraint * (^)(CGFloat))dividedBy { - return ^id(CGFloat divider) { - for (ASMASConstraint *constraint in self.childConstraints) { - constraint.dividedBy(divider); - } - return self; - }; -} - -#pragma mark - ASMASLayoutPriority proxy - -- (ASMASConstraint * (^)(ASMASLayoutPriority))priority { - return ^id(ASMASLayoutPriority priority) { - for (ASMASConstraint *constraint in self.childConstraints) { - constraint.priority(priority); - } - return self; - }; -} - -#pragma mark - NSLayoutRelation proxy - -- (ASMASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation { - return ^id(id attr, NSLayoutRelation relation) { - for (ASMASConstraint *constraint in self.childConstraints.copy) { - constraint.equalToWithRelation(attr, relation); - } - return self; - }; -} - -#pragma mark - attribute chaining - -- (ASMASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute { - [self constraint:self addConstraintWithLayoutAttribute:layoutAttribute]; - return self; -} - -#pragma mark - Animator proxy - -#if TARGET_OS_MAC && !(TARGET_OS_IPHONE || TARGET_OS_TV) - -- (ASMASConstraint *)animator { - for (ASMASConstraint *constraint in self.childConstraints) { - [constraint animator]; - } - return self; -} - -#endif - -#pragma mark - debug helpers - -- (ASMASConstraint * (^)(id))key { - return ^id(id key) { - self.mas_key = key; - int i = 0; - for (ASMASConstraint *constraint in self.childConstraints) { - constraint.key([NSString stringWithFormat:@"%@[%d]", key, i++]); - } - return self; - }; -} - -#pragma mark - NSLayoutConstraint constant setters - -- (void)setInsets:(ASMASEdgeInsets)insets { - for (ASMASConstraint *constraint in self.childConstraints) { - constraint.insets = insets; - } -} - -- (void)setInset:(CGFloat)inset { - for (ASMASConstraint *constraint in self.childConstraints) { - constraint.inset = inset; - } -} - -- (void)setOffset:(CGFloat)offset { - for (ASMASConstraint *constraint in self.childConstraints) { - constraint.offset = offset; - } -} - -- (void)setSizeOffset:(CGSize)sizeOffset { - for (ASMASConstraint *constraint in self.childConstraints) { - constraint.sizeOffset = sizeOffset; - } -} - -- (void)setCenterOffset:(CGPoint)centerOffset { - for (ASMASConstraint *constraint in self.childConstraints) { - constraint.centerOffset = centerOffset; - } -} - -#pragma mark - ASMASConstraint - -- (void)activate { - for (ASMASConstraint *constraint in self.childConstraints) { - [constraint activate]; - } -} - -- (void)deactivate { - for (ASMASConstraint *constraint in self.childConstraints) { - [constraint deactivate]; - } -} - -- (void)install { - for (ASMASConstraint *constraint in self.childConstraints) { - constraint.updateExisting = self.updateExisting; - [constraint install]; - } -} - -- (void)uninstall { - for (ASMASConstraint *constraint in self.childConstraints) { - [constraint uninstall]; - } -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraint+Private.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraint+Private.h deleted file mode 100644 index cd99c6c1..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraint+Private.h +++ /dev/null @@ -1,66 +0,0 @@ -// -// ASMASConstraint+Private.h -// Masonry -// -// Created by Nick Tymchenko on 29/04/14. -// Copyright (c) 2014 cloudling. All rights reserved. -// - -#import "ASMASConstraint.h" - -@protocol ASMASConstraintDelegate; - - -@interface ASMASConstraint () - -/** - * Whether or not to check for an existing constraint instead of adding constraint - */ -@property (nonatomic, assign) BOOL updateExisting; - -/** - * Usually ASMASConstraintMaker but could be a parent ASMASConstraint - */ -@property (nonatomic, weak) id delegate; - -/** - * Based on a provided value type, is equal to calling: - * NSNumber - setOffset: - * NSValue with CGPoint - setPointOffset: - * NSValue with CGSize - setSizeOffset: - * NSValue with ASMASEdgeInsets - setInsets: - */ -- (void)setLayoutConstantWithValue:(NSValue *)value; - -@end - - -@interface ASMASConstraint (Abstract) - -/** - * Sets the constraint relation to given NSLayoutRelation - * returns a block which accepts one of the following: - * ASMASViewAttribute, UIView, NSValue, NSArray - * see readme for more details. - */ -- (ASMASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation; - -/** - * Override to set a custom chaining behaviour - */ -- (ASMASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute; - -@end - - -@protocol ASMASConstraintDelegate - -/** - * Notifies the delegate when the constraint needs to be replaced with another constraint. For example - * A ASMASViewConstraint may turn into a ASMASCompositeConstraint when an array is passed to one of the equality blocks - */ -- (void)constraint:(ASMASConstraint *)constraint shouldBeReplacedWithConstraint:(ASMASConstraint *)replacementConstraint; - -- (ASMASConstraint *)constraint:(ASMASConstraint *)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraint.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraint.h deleted file mode 100644 index 8e1c64de..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraint.h +++ /dev/null @@ -1,272 +0,0 @@ -// -// ASMASConstraint.h -// Masonry -// -// Created by Jonas Budelmann on 22/07/13. -// Copyright (c) 2013 cloudling. All rights reserved. -// - -#import "ASMASUtilities.h" - -/** - * Enables Constraints to be created with chainable syntax - * Constraint can represent single NSLayoutConstraint (ASMASViewConstraint) - * or a group of NSLayoutConstraints (ASMASComposisteConstraint) - */ -@interface ASMASConstraint : NSObject - -// Chaining Support - -/** - * Modifies the NSLayoutConstraint constant, - * only affects ASMASConstraints in which the first item's NSLayoutAttribute is one of the following - * NSLayoutAttributeTop, NSLayoutAttributeLeft, NSLayoutAttributeBottom, NSLayoutAttributeRight - */ -- (ASMASConstraint * (^)(ASMASEdgeInsets insets))insets; - -/** - * Modifies the NSLayoutConstraint constant, - * only affects ASMASConstraints in which the first item's NSLayoutAttribute is one of the following - * NSLayoutAttributeTop, NSLayoutAttributeLeft, NSLayoutAttributeBottom, NSLayoutAttributeRight - */ -- (ASMASConstraint * (^)(CGFloat inset))inset; - -/** - * Modifies the NSLayoutConstraint constant, - * only affects ASMASConstraints in which the first item's NSLayoutAttribute is one of the following - * NSLayoutAttributeWidth, NSLayoutAttributeHeight - */ -- (ASMASConstraint * (^)(CGSize offset))sizeOffset; - -/** - * Modifies the NSLayoutConstraint constant, - * only affects ASMASConstraints in which the first item's NSLayoutAttribute is one of the following - * NSLayoutAttributeCenterX, NSLayoutAttributeCenterY - */ -- (ASMASConstraint * (^)(CGPoint offset))centerOffset; - -/** - * Modifies the NSLayoutConstraint constant - */ -- (ASMASConstraint * (^)(CGFloat offset))offset; - -/** - * Modifies the NSLayoutConstraint constant based on a value type - */ -- (ASMASConstraint * (^)(NSValue *value))valueOffset; - -/** - * Sets the NSLayoutConstraint multiplier property - */ -- (ASMASConstraint * (^)(CGFloat multiplier))multipliedBy; - -/** - * Sets the NSLayoutConstraint multiplier to 1.0/dividedBy - */ -- (ASMASConstraint * (^)(CGFloat divider))dividedBy; - -/** - * Sets the NSLayoutConstraint priority to a float or ASMASLayoutPriority - */ -- (ASMASConstraint * (^)(ASMASLayoutPriority priority))priority; - -/** - * Sets the NSLayoutConstraint priority to ASMASLayoutPriorityLow - */ -- (ASMASConstraint * (^)(void))priorityLow; - -/** - * Sets the NSLayoutConstraint priority to ASMASLayoutPriorityMedium - */ -- (ASMASConstraint * (^)(void))priorityMedium; - -/** - * Sets the NSLayoutConstraint priority to ASMASLayoutPriorityHigh - */ -- (ASMASConstraint * (^)(void))priorityHigh; - -/** - * Sets the constraint relation to NSLayoutRelationEqual - * returns a block which accepts one of the following: - * ASMASViewAttribute, UIView, NSValue, NSArray - * see readme for more details. - */ -- (ASMASConstraint * (^)(id attr))equalTo; - -/** - * Sets the constraint relation to NSLayoutRelationGreaterThanOrEqual - * returns a block which accepts one of the following: - * ASMASViewAttribute, UIView, NSValue, NSArray - * see readme for more details. - */ -- (ASMASConstraint * (^)(id attr))greaterThanOrEqualTo; - -/** - * Sets the constraint relation to NSLayoutRelationLessThanOrEqual - * returns a block which accepts one of the following: - * ASMASViewAttribute, UIView, NSValue, NSArray - * see readme for more details. - */ -- (ASMASConstraint * (^)(id attr))lessThanOrEqualTo; - -/** - * Optional semantic property which has no effect but improves the readability of constraint - */ -- (ASMASConstraint *)with; - -/** - * Optional semantic property which has no effect but improves the readability of constraint - */ -- (ASMASConstraint *)and; - -/** - * Creates a new ASMASCompositeConstraint with the called attribute and reciever - */ -- (ASMASConstraint *)left; -- (ASMASConstraint *)top; -- (ASMASConstraint *)right; -- (ASMASConstraint *)bottom; -- (ASMASConstraint *)leading; -- (ASMASConstraint *)trailing; -- (ASMASConstraint *)width; -- (ASMASConstraint *)height; -- (ASMASConstraint *)centerX; -- (ASMASConstraint *)centerY; -- (ASMASConstraint *)baseline; - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) - -- (ASMASConstraint *)firstBaseline; -- (ASMASConstraint *)lastBaseline; - -#endif - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) - -- (ASMASConstraint *)leftMargin; -- (ASMASConstraint *)rightMargin; -- (ASMASConstraint *)topMargin; -- (ASMASConstraint *)bottomMargin; -- (ASMASConstraint *)leadingMargin; -- (ASMASConstraint *)trailingMargin; -- (ASMASConstraint *)centerXWithinMargins; -- (ASMASConstraint *)centerYWithinMargins; - -#endif - - -/** - * Sets the constraint debug name - */ -- (ASMASConstraint * (^)(id key))key; - -// NSLayoutConstraint constant Setters -// for use outside of mas_updateConstraints/mas_makeConstraints blocks - -/** - * Modifies the NSLayoutConstraint constant, - * only affects ASMASConstraints in which the first item's NSLayoutAttribute is one of the following - * NSLayoutAttributeTop, NSLayoutAttributeLeft, NSLayoutAttributeBottom, NSLayoutAttributeRight - */ -- (void)setInsets:(ASMASEdgeInsets)insets; - -/** - * Modifies the NSLayoutConstraint constant, - * only affects ASMASConstraints in which the first item's NSLayoutAttribute is one of the following - * NSLayoutAttributeTop, NSLayoutAttributeLeft, NSLayoutAttributeBottom, NSLayoutAttributeRight - */ -- (void)setInset:(CGFloat)inset; - -/** - * Modifies the NSLayoutConstraint constant, - * only affects ASMASConstraints in which the first item's NSLayoutAttribute is one of the following - * NSLayoutAttributeWidth, NSLayoutAttributeHeight - */ -- (void)setSizeOffset:(CGSize)sizeOffset; - -/** - * Modifies the NSLayoutConstraint constant, - * only affects ASMASConstraints in which the first item's NSLayoutAttribute is one of the following - * NSLayoutAttributeCenterX, NSLayoutAttributeCenterY - */ -- (void)setCenterOffset:(CGPoint)centerOffset; - -/** - * Modifies the NSLayoutConstraint constant - */ -- (void)setOffset:(CGFloat)offset; - - -// NSLayoutConstraint Installation support - -#if TARGET_OS_MAC && !(TARGET_OS_IPHONE || TARGET_OS_TV) -/** - * Whether or not to go through the animator proxy when modifying the constraint - */ -@property (nonatomic, copy, readonly) ASMASConstraint *animator; -#endif - -/** - * Activates an NSLayoutConstraint if it's supported by an OS. - * Invokes install otherwise. - */ -- (void)activate; - -/** - * Deactivates previously installed/activated NSLayoutConstraint. - */ -- (void)deactivate; - -/** - * Creates a NSLayoutConstraint and adds it to the appropriate view. - */ -- (void)install; - -/** - * Removes previously installed NSLayoutConstraint - */ -- (void)uninstall; - -@end - - -/** - * Convenience auto-boxing macros for ASMASConstraint methods. - * - * Defining ASMAS_SHORTHAND_GLOBALS will turn on auto-boxing for default syntax. - * A potential drawback of this is that the unprefixed macros will appear in global scope. - */ -#define mas_equalTo(...) equalTo(ASMASBoxValue((__VA_ARGS__))) -#define mas_greaterThanOrEqualTo(...) greaterThanOrEqualTo(ASMASBoxValue((__VA_ARGS__))) -#define mas_lessThanOrEqualTo(...) lessThanOrEqualTo(ASMASBoxValue((__VA_ARGS__))) - -#define mas_offset(...) valueOffset(ASMASBoxValue((__VA_ARGS__))) - - -#ifdef ASMAS_SHORTHAND_GLOBALS - -#define equalTo(...) mas_equalTo(__VA_ARGS__) -#define greaterThanOrEqualTo(...) mas_greaterThanOrEqualTo(__VA_ARGS__) -#define lessThanOrEqualTo(...) mas_lessThanOrEqualTo(__VA_ARGS__) - -#define offset(...) mas_offset(__VA_ARGS__) - -#endif - - -@interface ASMASConstraint (AutoboxingSupport) - -/** - * Aliases to corresponding relation methods (for shorthand macros) - * Also needed to aid autocompletion - */ -- (ASMASConstraint * (^)(id attr))mas_equalTo; -- (ASMASConstraint * (^)(id attr))mas_greaterThanOrEqualTo; -- (ASMASConstraint * (^)(id attr))mas_lessThanOrEqualTo; - -/** - * A dummy method to aid autocompletion - */ -- (ASMASConstraint * (^)(id offset))mas_offset; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraint.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraint.m deleted file mode 100644 index 89f38deb..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraint.m +++ /dev/null @@ -1,301 +0,0 @@ -// -// ASMASConstraint.m -// Masonry -// -// Created by Nick Tymchenko on 1/20/14. -// - -#import "ASMASConstraint.h" -#import "ASMASConstraint+Private.h" - -#define ASMASMethodNotImplemented() \ - @throw [NSException exceptionWithName:NSInternalInconsistencyException \ - reason:[NSString stringWithFormat:@"You must override %@ in a subclass.", NSStringFromSelector(_cmd)] \ - userInfo:nil] - -@implementation ASMASConstraint - -#pragma mark - Init - -- (id)init { - NSAssert(![self isMemberOfClass:[ASMASConstraint class]], @"ASMASConstraint is an abstract class, you should not instantiate it directly."); - return [super init]; -} - -#pragma mark - NSLayoutRelation proxies - -- (ASMASConstraint * (^)(id))equalTo { - return ^id(id attribute) { - return self.equalToWithRelation(attribute, NSLayoutRelationEqual); - }; -} - -- (ASMASConstraint * (^)(id))mas_equalTo { - return ^id(id attribute) { - return self.equalToWithRelation(attribute, NSLayoutRelationEqual); - }; -} - -- (ASMASConstraint * (^)(id))greaterThanOrEqualTo { - return ^id(id attribute) { - return self.equalToWithRelation(attribute, NSLayoutRelationGreaterThanOrEqual); - }; -} - -- (ASMASConstraint * (^)(id))mas_greaterThanOrEqualTo { - return ^id(id attribute) { - return self.equalToWithRelation(attribute, NSLayoutRelationGreaterThanOrEqual); - }; -} - -- (ASMASConstraint * (^)(id))lessThanOrEqualTo { - return ^id(id attribute) { - return self.equalToWithRelation(attribute, NSLayoutRelationLessThanOrEqual); - }; -} - -- (ASMASConstraint * (^)(id))mas_lessThanOrEqualTo { - return ^id(id attribute) { - return self.equalToWithRelation(attribute, NSLayoutRelationLessThanOrEqual); - }; -} - -#pragma mark - ASMASLayoutPriority proxies - -- (ASMASConstraint * (^)(void))priorityLow { - return ^id{ - self.priority(ASMASLayoutPriorityDefaultLow); - return self; - }; -} - -- (ASMASConstraint * (^)(void))priorityMedium { - return ^id{ - self.priority(ASMASLayoutPriorityDefaultMedium); - return self; - }; -} - -- (ASMASConstraint * (^)(void))priorityHigh { - return ^id{ - self.priority(ASMASLayoutPriorityDefaultHigh); - return self; - }; -} - -#pragma mark - NSLayoutConstraint constant proxies - -- (ASMASConstraint * (^)(ASMASEdgeInsets))insets { - return ^id(ASMASEdgeInsets insets){ - self.insets = insets; - return self; - }; -} - -- (ASMASConstraint * (^)(CGFloat))inset { - return ^id(CGFloat inset){ - self.inset = inset; - return self; - }; -} - -- (ASMASConstraint * (^)(CGSize))sizeOffset { - return ^id(CGSize offset) { - self.sizeOffset = offset; - return self; - }; -} - -- (ASMASConstraint * (^)(CGPoint))centerOffset { - return ^id(CGPoint offset) { - self.centerOffset = offset; - return self; - }; -} - -- (ASMASConstraint * (^)(CGFloat))offset { - return ^id(CGFloat offset){ - self.offset = offset; - return self; - }; -} - -- (ASMASConstraint * (^)(NSValue *value))valueOffset { - return ^id(NSValue *offset) { - NSAssert([offset isKindOfClass:NSValue.class], @"expected an NSValue offset, got: %@", offset); - [self setLayoutConstantWithValue:offset]; - return self; - }; -} - -- (ASMASConstraint * (^)(id offset))mas_offset { - // Will never be called due to macro - return nil; -} - -#pragma mark - NSLayoutConstraint constant setter - -- (void)setLayoutConstantWithValue:(NSValue *)value { - if ([value isKindOfClass:NSNumber.class]) { - self.offset = [(NSNumber *)value doubleValue]; - } else if (strcmp(value.objCType, @encode(CGPoint)) == 0) { - CGPoint point; - [value getValue:&point]; - self.centerOffset = point; - } else if (strcmp(value.objCType, @encode(CGSize)) == 0) { - CGSize size; - [value getValue:&size]; - self.sizeOffset = size; - } else if (strcmp(value.objCType, @encode(ASMASEdgeInsets)) == 0) { - ASMASEdgeInsets insets; - [value getValue:&insets]; - self.insets = insets; - } else { - NSAssert(NO, @"attempting to set layout constant with unsupported value: %@", value); - } -} - -#pragma mark - Semantic properties - -- (ASMASConstraint *)with { - return self; -} - -- (ASMASConstraint *)and { - return self; -} - -#pragma mark - Chaining - -- (ASMASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute __unused)layoutAttribute { - ASMASMethodNotImplemented(); -} - -- (ASMASConstraint *)left { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeft]; -} - -- (ASMASConstraint *)top { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTop]; -} - -- (ASMASConstraint *)right { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeRight]; -} - -- (ASMASConstraint *)bottom { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBottom]; -} - -- (ASMASConstraint *)leading { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeading]; -} - -- (ASMASConstraint *)trailing { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTrailing]; -} - -- (ASMASConstraint *)width { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeWidth]; -} - -- (ASMASConstraint *)height { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeHeight]; -} - -- (ASMASConstraint *)centerX { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterX]; -} - -- (ASMASConstraint *)centerY { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterY]; -} - -- (ASMASConstraint *)baseline { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBaseline]; -} - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) - -- (ASMASConstraint *)firstBaseline { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeFirstBaseline]; -} -- (ASMASConstraint *)lastBaseline { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLastBaseline]; -} - -#endif - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) - -- (ASMASConstraint *)leftMargin { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeftMargin]; -} - -- (ASMASConstraint *)rightMargin { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeRightMargin]; -} - -- (ASMASConstraint *)topMargin { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTopMargin]; -} - -- (ASMASConstraint *)bottomMargin { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBottomMargin]; -} - -- (ASMASConstraint *)leadingMargin { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeadingMargin]; -} - -- (ASMASConstraint *)trailingMargin { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTrailingMargin]; -} - -- (ASMASConstraint *)centerXWithinMargins { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterXWithinMargins]; -} - -- (ASMASConstraint *)centerYWithinMargins { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterYWithinMargins]; -} - -#endif - -#pragma mark - Abstract - -- (ASMASConstraint * (^)(CGFloat multiplier))multipliedBy { ASMASMethodNotImplemented(); } - -- (ASMASConstraint * (^)(CGFloat divider))dividedBy { ASMASMethodNotImplemented(); } - -- (ASMASConstraint * (^)(ASMASLayoutPriority priority))priority { ASMASMethodNotImplemented(); } - -- (ASMASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation { ASMASMethodNotImplemented(); } - -- (ASMASConstraint * (^)(id key))key { ASMASMethodNotImplemented(); } - -- (void)setInsets:(ASMASEdgeInsets __unused)insets { ASMASMethodNotImplemented(); } - -- (void)setInset:(CGFloat __unused)inset { ASMASMethodNotImplemented(); } - -- (void)setSizeOffset:(CGSize __unused)sizeOffset { ASMASMethodNotImplemented(); } - -- (void)setCenterOffset:(CGPoint __unused)centerOffset { ASMASMethodNotImplemented(); } - -- (void)setOffset:(CGFloat __unused)offset { ASMASMethodNotImplemented(); } - -#if TARGET_OS_MAC && !(TARGET_OS_IPHONE || TARGET_OS_TV) - -- (ASMASConstraint *)animator { ASMASMethodNotImplemented(); } - -#endif - -- (void)activate { ASMASMethodNotImplemented(); } - -- (void)deactivate { ASMASMethodNotImplemented(); } - -- (void)install { ASMASMethodNotImplemented(); } - -- (void)uninstall { ASMASMethodNotImplemented(); } - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraintMaker.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraintMaker.h deleted file mode 100644 index 99fa10eb..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraintMaker.h +++ /dev/null @@ -1,146 +0,0 @@ -// -// ASMASConstraintMaker.h -// Masonry -// -// Created by Jonas Budelmann on 20/07/13. -// Copyright (c) 2013 cloudling. All rights reserved. -// - -#import "ASMASConstraint.h" -#import "ASMASUtilities.h" - -typedef NS_OPTIONS(NSInteger, ASMASAttribute) { - ASMASAttributeLeft = 1 << NSLayoutAttributeLeft, - ASMASAttributeRight = 1 << NSLayoutAttributeRight, - ASMASAttributeTop = 1 << NSLayoutAttributeTop, - ASMASAttributeBottom = 1 << NSLayoutAttributeBottom, - ASMASAttributeLeading = 1 << NSLayoutAttributeLeading, - ASMASAttributeTrailing = 1 << NSLayoutAttributeTrailing, - ASMASAttributeWidth = 1 << NSLayoutAttributeWidth, - ASMASAttributeHeight = 1 << NSLayoutAttributeHeight, - ASMASAttributeCenterX = 1 << NSLayoutAttributeCenterX, - ASMASAttributeCenterY = 1 << NSLayoutAttributeCenterY, - ASMASAttributeBaseline = 1 << NSLayoutAttributeBaseline, - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) - - ASMASAttributeFirstBaseline = 1 << NSLayoutAttributeFirstBaseline, - ASMASAttributeLastBaseline = 1 << NSLayoutAttributeLastBaseline, - -#endif - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) - - ASMASAttributeLeftMargin = 1 << NSLayoutAttributeLeftMargin, - ASMASAttributeRightMargin = 1 << NSLayoutAttributeRightMargin, - ASMASAttributeTopMargin = 1 << NSLayoutAttributeTopMargin, - ASMASAttributeBottomMargin = 1 << NSLayoutAttributeBottomMargin, - ASMASAttributeLeadingMargin = 1 << NSLayoutAttributeLeadingMargin, - ASMASAttributeTrailingMargin = 1 << NSLayoutAttributeTrailingMargin, - ASMASAttributeCenterXWithinMargins = 1 << NSLayoutAttributeCenterXWithinMargins, - ASMASAttributeCenterYWithinMargins = 1 << NSLayoutAttributeCenterYWithinMargins, - -#endif - -}; - -/** - * Provides factory methods for creating ASMASConstraints. - * Constraints are collected until they are ready to be installed - * - */ -@interface ASMASConstraintMaker : NSObject - -/** - * The following properties return a new ASMASViewConstraint - * with the first item set to the makers associated view and the appropriate ASMASViewAttribute - */ -@property (nonatomic, strong, readonly) ASMASConstraint *left; -@property (nonatomic, strong, readonly) ASMASConstraint *top; -@property (nonatomic, strong, readonly) ASMASConstraint *right; -@property (nonatomic, strong, readonly) ASMASConstraint *bottom; -@property (nonatomic, strong, readonly) ASMASConstraint *leading; -@property (nonatomic, strong, readonly) ASMASConstraint *trailing; -@property (nonatomic, strong, readonly) ASMASConstraint *width; -@property (nonatomic, strong, readonly) ASMASConstraint *height; -@property (nonatomic, strong, readonly) ASMASConstraint *centerX; -@property (nonatomic, strong, readonly) ASMASConstraint *centerY; -@property (nonatomic, strong, readonly) ASMASConstraint *baseline; - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) - -@property (nonatomic, strong, readonly) ASMASConstraint *firstBaseline; -@property (nonatomic, strong, readonly) ASMASConstraint *lastBaseline; - -#endif - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) - -@property (nonatomic, strong, readonly) ASMASConstraint *leftMargin; -@property (nonatomic, strong, readonly) ASMASConstraint *rightMargin; -@property (nonatomic, strong, readonly) ASMASConstraint *topMargin; -@property (nonatomic, strong, readonly) ASMASConstraint *bottomMargin; -@property (nonatomic, strong, readonly) ASMASConstraint *leadingMargin; -@property (nonatomic, strong, readonly) ASMASConstraint *trailingMargin; -@property (nonatomic, strong, readonly) ASMASConstraint *centerXWithinMargins; -@property (nonatomic, strong, readonly) ASMASConstraint *centerYWithinMargins; - -#endif - -/** - * Returns a block which creates a new ASMASCompositeConstraint with the first item set - * to the makers associated view and children corresponding to the set bits in the - * ASMASAttribute parameter. Combine multiple attributes via binary-or. - */ -@property (nonatomic, strong, readonly) ASMASConstraint *(^attributes)(ASMASAttribute attrs); - -/** - * Creates a ASMASCompositeConstraint with type ASMASCompositeConstraintTypeEdges - * which generates the appropriate ASMASViewConstraint children (top, left, bottom, right) - * with the first item set to the makers associated view - */ -@property (nonatomic, strong, readonly) ASMASConstraint *edges; - -/** - * Creates a ASMASCompositeConstraint with type ASMASCompositeConstraintTypeSize - * which generates the appropriate ASMASViewConstraint children (width, height) - * with the first item set to the makers associated view - */ -@property (nonatomic, strong, readonly) ASMASConstraint *size; - -/** - * Creates a ASMASCompositeConstraint with type ASMASCompositeConstraintTypeCenter - * which generates the appropriate ASMASViewConstraint children (centerX, centerY) - * with the first item set to the makers associated view - */ -@property (nonatomic, strong, readonly) ASMASConstraint *center; - -/** - * Whether or not to check for an existing constraint instead of adding constraint - */ -@property (nonatomic, assign) BOOL updateExisting; - -/** - * Whether or not to remove existing constraints prior to installing - */ -@property (nonatomic, assign) BOOL removeExisting; - -/** - * initialises the maker with a default view - * - * @param view any ASMASConstraint are created with this view as the first item - * - * @return a new ASMASConstraintMaker - */ -- (id)initWithView:(ASMAS_VIEW *)view; - -/** - * Calls install method on any ASMASConstraints which have been created by this maker - * - * @return an array of all the installed ASMASConstraints - */ -- (NSArray *)install; - -- (ASMASConstraint * (^)(dispatch_block_t))group; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraintMaker.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraintMaker.m deleted file mode 100644 index 29784478..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASConstraintMaker.m +++ /dev/null @@ -1,273 +0,0 @@ -// -// ASMASConstraintMaker.m -// Masonry -// -// Created by Jonas Budelmann on 20/07/13. -// Copyright (c) 2013 cloudling. All rights reserved. -// - -#import "ASMASConstraintMaker.h" -#import "ASMASViewConstraint.h" -#import "ASMASCompositeConstraint.h" -#import "ASMASConstraint+Private.h" -#import "ASMASViewAttribute.h" -#import "ASView+MASAdditions.h" - -@interface ASMASConstraintMaker () - -@property (nonatomic, weak) ASMAS_VIEW *view; -@property (nonatomic, strong) NSMutableArray *constraints; - -@end - -@implementation ASMASConstraintMaker - -- (id)initWithView:(ASMAS_VIEW *)view { - self = [super init]; - if (!self) return nil; - - self.view = view; - self.constraints = NSMutableArray.new; - - return self; -} - -- (NSArray *)install { - if (self.removeExisting) { - NSArray *installedConstraints = [ASMASViewConstraint installedConstraintsForView:self.view]; - for (ASMASConstraint *constraint in installedConstraints) { - [constraint uninstall]; - } - } - NSArray *constraints = self.constraints.copy; - for (ASMASConstraint *constraint in constraints) { - constraint.updateExisting = self.updateExisting; - [constraint install]; - } - [self.constraints removeAllObjects]; - return constraints; -} - -#pragma mark - ASMASConstraintDelegate - -- (void)constraint:(ASMASConstraint *)constraint shouldBeReplacedWithConstraint:(ASMASConstraint *)replacementConstraint { - NSUInteger index = [self.constraints indexOfObject:constraint]; - NSAssert(index != NSNotFound, @"Could not find constraint %@", constraint); - [self.constraints replaceObjectAtIndex:index withObject:replacementConstraint]; -} - -- (ASMASConstraint *)constraint:(ASMASConstraint *)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute { - ASMASViewAttribute *viewAttribute = [[ASMASViewAttribute alloc] initWithView:self.view layoutAttribute:layoutAttribute]; - ASMASViewConstraint *newConstraint = [[ASMASViewConstraint alloc] initWithFirstViewAttribute:viewAttribute]; - if ([constraint isKindOfClass:ASMASViewConstraint.class]) { - //replace with composite constraint - NSArray *children = @[constraint, newConstraint]; - ASMASCompositeConstraint *compositeConstraint = [[ASMASCompositeConstraint alloc] initWithChildren:children]; - compositeConstraint.delegate = self; - [self constraint:constraint shouldBeReplacedWithConstraint:compositeConstraint]; - return compositeConstraint; - } - if (!constraint) { - newConstraint.delegate = self; - [self.constraints addObject:newConstraint]; - } - return newConstraint; -} - -- (ASMASConstraint *)addConstraintWithAttributes:(ASMASAttribute)attrs { - __unused ASMASAttribute anyAttribute = (ASMASAttributeLeft | ASMASAttributeRight | ASMASAttributeTop | ASMASAttributeBottom | ASMASAttributeLeading - | ASMASAttributeTrailing | ASMASAttributeWidth | ASMASAttributeHeight | ASMASAttributeCenterX - | ASMASAttributeCenterY | ASMASAttributeBaseline -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) - | ASMASAttributeFirstBaseline | ASMASAttributeLastBaseline -#endif -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) - | ASMASAttributeLeftMargin | ASMASAttributeRightMargin | ASMASAttributeTopMargin | ASMASAttributeBottomMargin - | ASMASAttributeLeadingMargin | ASMASAttributeTrailingMargin | ASMASAttributeCenterXWithinMargins - | ASMASAttributeCenterYWithinMargins -#endif - ); - - NSAssert((attrs & anyAttribute) != 0, @"You didn't pass any attribute to make.attributes(...)"); - - NSMutableArray *attributes = [NSMutableArray array]; - - if (attrs & ASMASAttributeLeft) [attributes addObject:self.view.mas_left]; - if (attrs & ASMASAttributeRight) [attributes addObject:self.view.mas_right]; - if (attrs & ASMASAttributeTop) [attributes addObject:self.view.mas_top]; - if (attrs & ASMASAttributeBottom) [attributes addObject:self.view.mas_bottom]; - if (attrs & ASMASAttributeLeading) [attributes addObject:self.view.mas_leading]; - if (attrs & ASMASAttributeTrailing) [attributes addObject:self.view.mas_trailing]; - if (attrs & ASMASAttributeWidth) [attributes addObject:self.view.mas_width]; - if (attrs & ASMASAttributeHeight) [attributes addObject:self.view.mas_height]; - if (attrs & ASMASAttributeCenterX) [attributes addObject:self.view.mas_centerX]; - if (attrs & ASMASAttributeCenterY) [attributes addObject:self.view.mas_centerY]; - if (attrs & ASMASAttributeBaseline) [attributes addObject:self.view.mas_baseline]; - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) - - if (attrs & ASMASAttributeFirstBaseline) [attributes addObject:self.view.mas_firstBaseline]; - if (attrs & ASMASAttributeLastBaseline) [attributes addObject:self.view.mas_lastBaseline]; - -#endif - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) - - if (attrs & ASMASAttributeLeftMargin) [attributes addObject:self.view.mas_leftMargin]; - if (attrs & ASMASAttributeRightMargin) [attributes addObject:self.view.mas_rightMargin]; - if (attrs & ASMASAttributeTopMargin) [attributes addObject:self.view.mas_topMargin]; - if (attrs & ASMASAttributeBottomMargin) [attributes addObject:self.view.mas_bottomMargin]; - if (attrs & ASMASAttributeLeadingMargin) [attributes addObject:self.view.mas_leadingMargin]; - if (attrs & ASMASAttributeTrailingMargin) [attributes addObject:self.view.mas_trailingMargin]; - if (attrs & ASMASAttributeCenterXWithinMargins) [attributes addObject:self.view.mas_centerXWithinMargins]; - if (attrs & ASMASAttributeCenterYWithinMargins) [attributes addObject:self.view.mas_centerYWithinMargins]; - -#endif - - NSMutableArray *children = [NSMutableArray arrayWithCapacity:attributes.count]; - - for (ASMASViewAttribute *a in attributes) { - [children addObject:[[ASMASViewConstraint alloc] initWithFirstViewAttribute:a]]; - } - - ASMASCompositeConstraint *constraint = [[ASMASCompositeConstraint alloc] initWithChildren:children]; - constraint.delegate = self; - [self.constraints addObject:constraint]; - return constraint; -} - -#pragma mark - standard Attributes - -- (ASMASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute { - return [self constraint:nil addConstraintWithLayoutAttribute:layoutAttribute]; -} - -- (ASMASConstraint *)left { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeft]; -} - -- (ASMASConstraint *)top { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTop]; -} - -- (ASMASConstraint *)right { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeRight]; -} - -- (ASMASConstraint *)bottom { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBottom]; -} - -- (ASMASConstraint *)leading { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeading]; -} - -- (ASMASConstraint *)trailing { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTrailing]; -} - -- (ASMASConstraint *)width { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeWidth]; -} - -- (ASMASConstraint *)height { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeHeight]; -} - -- (ASMASConstraint *)centerX { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterX]; -} - -- (ASMASConstraint *)centerY { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterY]; -} - -- (ASMASConstraint *)baseline { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBaseline]; -} - -- (ASMASConstraint *(^)(ASMASAttribute))attributes { - return ^(ASMASAttribute attrs){ - return [self addConstraintWithAttributes:attrs]; - }; -} - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) - -- (ASMASConstraint *)firstBaseline { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeFirstBaseline]; -} - -- (ASMASConstraint *)lastBaseline { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLastBaseline]; -} - -#endif - - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) - -- (ASMASConstraint *)leftMargin { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeftMargin]; -} - -- (ASMASConstraint *)rightMargin { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeRightMargin]; -} - -- (ASMASConstraint *)topMargin { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTopMargin]; -} - -- (ASMASConstraint *)bottomMargin { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBottomMargin]; -} - -- (ASMASConstraint *)leadingMargin { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeLeadingMargin]; -} - -- (ASMASConstraint *)trailingMargin { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeTrailingMargin]; -} - -- (ASMASConstraint *)centerXWithinMargins { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterXWithinMargins]; -} - -- (ASMASConstraint *)centerYWithinMargins { - return [self addConstraintWithLayoutAttribute:NSLayoutAttributeCenterYWithinMargins]; -} - -#endif - - -#pragma mark - composite Attributes - -- (ASMASConstraint *)edges { - return [self addConstraintWithAttributes:ASMASAttributeTop | ASMASAttributeLeft | ASMASAttributeRight | ASMASAttributeBottom]; -} - -- (ASMASConstraint *)size { - return [self addConstraintWithAttributes:ASMASAttributeWidth | ASMASAttributeHeight]; -} - -- (ASMASConstraint *)center { - return [self addConstraintWithAttributes:ASMASAttributeCenterX | ASMASAttributeCenterY]; -} - -#pragma mark - grouping - -- (ASMASConstraint *(^)(dispatch_block_t group))group { - return ^id(dispatch_block_t group) { - NSInteger previousCount = self.constraints.count; - group(); - - NSArray *children = [self.constraints subarrayWithRange:NSMakeRange(previousCount, self.constraints.count - previousCount)]; - ASMASCompositeConstraint *constraint = [[ASMASCompositeConstraint alloc] initWithChildren:children]; - constraint.delegate = self; - return constraint; - }; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASLayoutConstraint.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASLayoutConstraint.h deleted file mode 100644 index 4d643c4d..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASLayoutConstraint.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// ASMASLayoutConstraint.h -// Masonry -// -// Created by Jonas Budelmann on 3/08/13. -// Copyright (c) 2013 Jonas Budelmann. All rights reserved. -// - -#import "ASMASUtilities.h" - -/** - * When you are debugging or printing the constraints attached to a view this subclass - * makes it easier to identify which constraints have been created via Masonry - */ -@interface ASMASLayoutConstraint : NSLayoutConstraint - -/** - * a key to associate with this constraint - */ -@property (nonatomic, strong) id mas_key; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASLayoutConstraint.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASLayoutConstraint.m deleted file mode 100644 index 3bb45d73..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASLayoutConstraint.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// ASMASLayoutConstraint.m -// Masonry -// -// Created by Jonas Budelmann on 3/08/13. -// Copyright (c) 2013 Jonas Budelmann. All rights reserved. -// - -#import "ASMASLayoutConstraint.h" - -@implementation ASMASLayoutConstraint - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASUtilities.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASUtilities.h deleted file mode 100644 index e5da535d..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASUtilities.h +++ /dev/null @@ -1,136 +0,0 @@ -// -// ASMASUtilities.h -// Masonry -// -// Created by Jonas Budelmann on 19/08/13. -// Copyright (c) 2013 Jonas Budelmann. All rights reserved. -// - -#import - - - -#if TARGET_OS_IPHONE || TARGET_OS_TV - - #import - #define ASMAS_VIEW UIView - #define ASMAS_VIEW_CONTROLLER UIViewController - #define ASMASEdgeInsets UIEdgeInsets - - typedef UILayoutPriority ASMASLayoutPriority; - static const ASMASLayoutPriority ASMASLayoutPriorityRequired = UILayoutPriorityRequired; - static const ASMASLayoutPriority ASMASLayoutPriorityDefaultHigh = UILayoutPriorityDefaultHigh; - static const ASMASLayoutPriority ASMASLayoutPriorityDefaultMedium = 500; - static const ASMASLayoutPriority ASMASLayoutPriorityDefaultLow = UILayoutPriorityDefaultLow; - static const ASMASLayoutPriority ASMASLayoutPriorityFittingSizeLevel = UILayoutPriorityFittingSizeLevel; - -#elif TARGET_OS_MAC - - #import - #define ASMAS_VIEW NSView - #define ASMASEdgeInsets NSEdgeInsets - - typedef NSLayoutPriority ASMASLayoutPriority; - static const ASMASLayoutPriority ASMASLayoutPriorityRequired = NSLayoutPriorityRequired; - static const ASMASLayoutPriority ASMASLayoutPriorityDefaultHigh = NSLayoutPriorityDefaultHigh; - static const ASMASLayoutPriority ASMASLayoutPriorityDragThatCanResizeWindow = NSLayoutPriorityDragThatCanResizeWindow; - static const ASMASLayoutPriority ASMASLayoutPriorityDefaultMedium = 501; - static const ASMASLayoutPriority ASMASLayoutPriorityWindowSizeStayPut = NSLayoutPriorityWindowSizeStayPut; - static const ASMASLayoutPriority ASMASLayoutPriorityDragThatCannotResizeWindow = NSLayoutPriorityDragThatCannotResizeWindow; - static const ASMASLayoutPriority ASMASLayoutPriorityDefaultLow = NSLayoutPriorityDefaultLow; - static const ASMASLayoutPriority ASMASLayoutPriorityFittingSizeCompression = NSLayoutPriorityFittingSizeCompression; - -#endif - -/** - * Allows you to attach keys to objects matching the variable names passed. - * - * view1.mas_key = @"view1", view2.mas_key = @"view2"; - * - * is equivalent to: - * - * ASMASAttachKeys(view1, view2); - */ -#define ASMASAttachKeys(...) \ - { \ - NSDictionary *keyPairs = NSDictionaryOfVariableBindings(__VA_ARGS__); \ - for (id key in keyPairs.allKeys) { \ - id obj = keyPairs[key]; \ - NSAssert([obj respondsToSelector:@selector(setMas_key:)], \ - @"Cannot attach mas_key to %@", obj); \ - [obj setMas_key:key]; \ - } \ - } - -/** - * Used to create object hashes - * Based on http://www.mikeash.com/pyblog/friday-qa-2010-06-18-implementing-equality-and-hashing.html - */ -#define ASMAS_NSUINT_BIT (CHAR_BIT * sizeof(NSUInteger)) -#define ASMAS_NSUINTROTATE(val, howmuch) ((((NSUInteger)val) << howmuch) | (((NSUInteger)val) >> (ASMAS_NSUINT_BIT - howmuch))) - -/** - * Given a scalar or struct value, wraps it in NSValue - * Based on EXPObjectify: https://github.com/specta/expecta - */ -static inline id _ASMASBoxValue(const char *type, ...) { - va_list v; - va_start(v, type); - id obj = nil; - if (strcmp(type, @encode(id)) == 0) { - id actual = va_arg(v, id); - obj = actual; - } else if (strcmp(type, @encode(CGPoint)) == 0) { - CGPoint actual = (CGPoint)va_arg(v, CGPoint); - obj = [NSValue value:&actual withObjCType:type]; - } else if (strcmp(type, @encode(CGSize)) == 0) { - CGSize actual = (CGSize)va_arg(v, CGSize); - obj = [NSValue value:&actual withObjCType:type]; - } else if (strcmp(type, @encode(ASMASEdgeInsets)) == 0) { - ASMASEdgeInsets actual = (ASMASEdgeInsets)va_arg(v, ASMASEdgeInsets); - obj = [NSValue value:&actual withObjCType:type]; - } else if (strcmp(type, @encode(double)) == 0) { - double actual = (double)va_arg(v, double); - obj = [NSNumber numberWithDouble:actual]; - } else if (strcmp(type, @encode(float)) == 0) { - float actual = (float)va_arg(v, double); - obj = [NSNumber numberWithFloat:actual]; - } else if (strcmp(type, @encode(int)) == 0) { - int actual = (int)va_arg(v, int); - obj = [NSNumber numberWithInt:actual]; - } else if (strcmp(type, @encode(long)) == 0) { - long actual = (long)va_arg(v, long); - obj = [NSNumber numberWithLong:actual]; - } else if (strcmp(type, @encode(long long)) == 0) { - long long actual = (long long)va_arg(v, long long); - obj = [NSNumber numberWithLongLong:actual]; - } else if (strcmp(type, @encode(short)) == 0) { - short actual = (short)va_arg(v, int); - obj = [NSNumber numberWithShort:actual]; - } else if (strcmp(type, @encode(char)) == 0) { - char actual = (char)va_arg(v, int); - obj = [NSNumber numberWithChar:actual]; - } else if (strcmp(type, @encode(bool)) == 0) { - bool actual = (bool)va_arg(v, int); - obj = [NSNumber numberWithBool:actual]; - } else if (strcmp(type, @encode(unsigned char)) == 0) { - unsigned char actual = (unsigned char)va_arg(v, unsigned int); - obj = [NSNumber numberWithUnsignedChar:actual]; - } else if (strcmp(type, @encode(unsigned int)) == 0) { - unsigned int actual = (unsigned int)va_arg(v, unsigned int); - obj = [NSNumber numberWithUnsignedInt:actual]; - } else if (strcmp(type, @encode(unsigned long)) == 0) { - unsigned long actual = (unsigned long)va_arg(v, unsigned long); - obj = [NSNumber numberWithUnsignedLong:actual]; - } else if (strcmp(type, @encode(unsigned long long)) == 0) { - unsigned long long actual = (unsigned long long)va_arg(v, unsigned long long); - obj = [NSNumber numberWithUnsignedLongLong:actual]; - } else if (strcmp(type, @encode(unsigned short)) == 0) { - unsigned short actual = (unsigned short)va_arg(v, unsigned int); - obj = [NSNumber numberWithUnsignedShort:actual]; - } - va_end(v); - return obj; -} - -#define ASMASBoxValue(value) _ASMASBoxValue(@encode(__typeof__((value))), (value)) diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASViewAttribute.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASViewAttribute.h deleted file mode 100644 index 3d23c4c1..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASViewAttribute.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// ASMASViewAttribute.h -// Masonry -// -// Created by Jonas Budelmann on 21/07/13. -// Copyright (c) 2013 cloudling. All rights reserved. -// - -#import "ASMASUtilities.h" - -/** - * An immutable tuple which stores the view and the related NSLayoutAttribute. - * Describes part of either the left or right hand side of a constraint equation - */ -@interface ASMASViewAttribute : NSObject - -/** - * The view which the reciever relates to. Can be nil if item is not a view. - */ -@property (nonatomic, weak, readonly) ASMAS_VIEW *view; - -/** - * The item which the reciever relates to. - */ -@property (nonatomic, weak, readonly) id item; - -/** - * The attribute which the reciever relates to - */ -@property (nonatomic, assign, readonly) NSLayoutAttribute layoutAttribute; - -/** - * Convenience initializer. - */ -- (id)initWithView:(ASMAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute; - -/** - * The designated initializer. - */ -- (id)initWithView:(ASMAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute; - -/** - * Determine whether the layoutAttribute is a size attribute - * - * @return YES if layoutAttribute is equal to NSLayoutAttributeWidth or NSLayoutAttributeHeight - */ -- (BOOL)isSizeAttribute; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASViewAttribute.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASViewAttribute.m deleted file mode 100644 index 43ec01d9..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASViewAttribute.m +++ /dev/null @@ -1,46 +0,0 @@ -// -// ASMASViewAttribute.m -// Masonry -// -// Created by Jonas Budelmann on 21/07/13. -// Copyright (c) 2013 cloudling. All rights reserved. -// - -#import "ASMASViewAttribute.h" - -@implementation ASMASViewAttribute - -- (id)initWithView:(ASMAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute { - self = [self initWithView:view item:view layoutAttribute:layoutAttribute]; - return self; -} - -- (id)initWithView:(ASMAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute { - self = [super init]; - if (!self) return nil; - - _view = view; - _item = item; - _layoutAttribute = layoutAttribute; - - return self; -} - -- (BOOL)isSizeAttribute { - return self.layoutAttribute == NSLayoutAttributeWidth - || self.layoutAttribute == NSLayoutAttributeHeight; -} - -- (BOOL)isEqual:(ASMASViewAttribute *)viewAttribute { - if ([viewAttribute isKindOfClass:self.class]) { - return self.view == viewAttribute.view - && self.layoutAttribute == viewAttribute.layoutAttribute; - } - return [super isEqual:viewAttribute]; -} - -- (NSUInteger)hash { - return ASMAS_NSUINTROTATE([self.view hash], ASMAS_NSUINT_BIT / 2) ^ self.layoutAttribute; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASViewConstraint.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASViewConstraint.h deleted file mode 100644 index 1ae01804..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASViewConstraint.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// ASMASViewConstraint.h -// Masonry -// -// Created by Jonas Budelmann on 20/07/13. -// Copyright (c) 2013 cloudling. All rights reserved. -// - -#import "ASMASViewAttribute.h" -#import "ASMASConstraint.h" -#import "ASMASLayoutConstraint.h" -#import "ASMASUtilities.h" - -/** - * A single constraint. - * Contains the attributes neccessary for creating a NSLayoutConstraint and adding it to the appropriate view - */ -@interface ASMASViewConstraint : ASMASConstraint - -/** - * First item/view and first attribute of the NSLayoutConstraint - */ -@property (nonatomic, strong, readonly) ASMASViewAttribute *firstViewAttribute; - -/** - * Second item/view and second attribute of the NSLayoutConstraint - */ -@property (nonatomic, strong, readonly) ASMASViewAttribute *secondViewAttribute; - -/** - * initialises the ASMASViewConstraint with the first part of the equation - * - * @param firstViewAttribute view.mas_left, view.mas_width etc. - * - * @return a new view constraint - */ -- (id)initWithFirstViewAttribute:(ASMASViewAttribute *)firstViewAttribute; - -/** - * Returns all ASMASViewConstraints installed with this view as a first item. - * - * @param view A view to retrieve constraints for. - * - * @return An array of ASMASViewConstraints. - */ -+ (NSArray *)installedConstraintsForView:(ASMAS_VIEW *)view; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASViewConstraint.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASViewConstraint.m deleted file mode 100644 index 1db5b897..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMASViewConstraint.m +++ /dev/null @@ -1,401 +0,0 @@ -// -// ASMASViewConstraint.m -// Masonry -// -// Created by Jonas Budelmann on 20/07/13. -// Copyright (c) 2013 cloudling. All rights reserved. -// - -#import "ASMASViewConstraint.h" -#import "ASMASConstraint+Private.h" -#import "ASMASCompositeConstraint.h" -#import "ASMASLayoutConstraint.h" -#import "ASView+MASAdditions.h" -#import - -@interface ASMAS_VIEW (ASMASConstraints) - -@property (nonatomic, readonly) NSMutableSet *mas_installedConstraints; - -@end - -@implementation ASMAS_VIEW (ASMASConstraints) - -static char kInstalledConstraintsKey; - -- (NSMutableSet *)mas_installedConstraints { - NSMutableSet *constraints = objc_getAssociatedObject(self, &kInstalledConstraintsKey); - if (!constraints) { - constraints = [NSMutableSet set]; - objc_setAssociatedObject(self, &kInstalledConstraintsKey, constraints, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - } - return constraints; -} - -@end - - -@interface ASMASViewConstraint () - -@property (nonatomic, strong, readwrite) ASMASViewAttribute *secondViewAttribute; -@property (nonatomic, weak) ASMAS_VIEW *installedView; -@property (nonatomic, weak) ASMASLayoutConstraint *layoutConstraint; -@property (nonatomic, assign) NSLayoutRelation layoutRelation; -@property (nonatomic, assign) ASMASLayoutPriority layoutPriority; -@property (nonatomic, assign) CGFloat layoutMultiplier; -@property (nonatomic, assign) CGFloat layoutConstant; -@property (nonatomic, assign) BOOL hasLayoutRelation; -@property (nonatomic, strong) id mas_key; -@property (nonatomic, assign) BOOL useAnimator; - -@end - -@implementation ASMASViewConstraint - -- (id)initWithFirstViewAttribute:(ASMASViewAttribute *)firstViewAttribute { - self = [super init]; - if (!self) return nil; - - _firstViewAttribute = firstViewAttribute; - self.layoutPriority = ASMASLayoutPriorityRequired; - self.layoutMultiplier = 1; - - return self; -} - -#pragma mark - NSCoping - -- (id)copyWithZone:(NSZone __unused *)zone { - ASMASViewConstraint *constraint = [[ASMASViewConstraint alloc] initWithFirstViewAttribute:self.firstViewAttribute]; - constraint.layoutConstant = self.layoutConstant; - constraint.layoutRelation = self.layoutRelation; - constraint.layoutPriority = self.layoutPriority; - constraint.layoutMultiplier = self.layoutMultiplier; - constraint.delegate = self.delegate; - return constraint; -} - -#pragma mark - Public - -+ (NSArray *)installedConstraintsForView:(ASMAS_VIEW *)view { - return [view.mas_installedConstraints allObjects]; -} - -#pragma mark - Private - -- (void)setLayoutConstant:(CGFloat)layoutConstant { - _layoutConstant = layoutConstant; - -#if TARGET_OS_MAC && !(TARGET_OS_IPHONE || TARGET_OS_TV) - if (self.useAnimator) { - [self.layoutConstraint.animator setConstant:layoutConstant]; - } else { - self.layoutConstraint.constant = layoutConstant; - } -#else - self.layoutConstraint.constant = layoutConstant; -#endif -} - -- (void)setLayoutRelation:(NSLayoutRelation)layoutRelation { - _layoutRelation = layoutRelation; - self.hasLayoutRelation = YES; -} - -- (BOOL)supportsActiveProperty { - return [self.layoutConstraint respondsToSelector:@selector(isActive)]; -} - -- (BOOL)isActive { - BOOL active = YES; - if ([self supportsActiveProperty]) { - active = [self.layoutConstraint isActive]; - } - - return active; -} - -- (BOOL)hasBeenInstalled { - return (self.layoutConstraint != nil) && [self isActive]; -} - -- (void)setSecondViewAttribute:(id)secondViewAttribute { - if ([secondViewAttribute isKindOfClass:NSValue.class]) { - [self setLayoutConstantWithValue:secondViewAttribute]; - } else if ([secondViewAttribute isKindOfClass:ASMAS_VIEW.class]) { - _secondViewAttribute = [[ASMASViewAttribute alloc] initWithView:secondViewAttribute layoutAttribute:self.firstViewAttribute.layoutAttribute]; - } else if ([secondViewAttribute isKindOfClass:ASMASViewAttribute.class]) { - _secondViewAttribute = secondViewAttribute; - } else { - NSAssert(NO, @"attempting to add unsupported attribute: %@", secondViewAttribute); - } -} - -#pragma mark - NSLayoutConstraint multiplier proxies - -- (ASMASConstraint * (^)(CGFloat))multipliedBy { - return ^id(CGFloat multiplier) { - NSAssert(!self.hasBeenInstalled, - @"Cannot modify constraint multiplier after it has been installed"); - - self.layoutMultiplier = multiplier; - return self; - }; -} - - -- (ASMASConstraint * (^)(CGFloat))dividedBy { - return ^id(CGFloat divider) { - NSAssert(!self.hasBeenInstalled, - @"Cannot modify constraint multiplier after it has been installed"); - - self.layoutMultiplier = 1.0/divider; - return self; - }; -} - -#pragma mark - ASMASLayoutPriority proxy - -- (ASMASConstraint * (^)(ASMASLayoutPriority))priority { - return ^id(ASMASLayoutPriority priority) { - NSAssert(!self.hasBeenInstalled, - @"Cannot modify constraint priority after it has been installed"); - - self.layoutPriority = priority; - return self; - }; -} - -#pragma mark - NSLayoutRelation proxy - -- (ASMASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation { - return ^id(id attribute, NSLayoutRelation relation) { - if ([attribute isKindOfClass:NSArray.class]) { - NSAssert(!self.hasLayoutRelation, @"Redefinition of constraint relation"); - NSMutableArray *children = NSMutableArray.new; - for (id attr in attribute) { - ASMASViewConstraint *viewConstraint = [self copy]; - viewConstraint.layoutRelation = relation; - viewConstraint.secondViewAttribute = attr; - [children addObject:viewConstraint]; - } - ASMASCompositeConstraint *compositeConstraint = [[ASMASCompositeConstraint alloc] initWithChildren:children]; - compositeConstraint.delegate = self.delegate; - [self.delegate constraint:self shouldBeReplacedWithConstraint:compositeConstraint]; - return compositeConstraint; - } else { - NSAssert(!self.hasLayoutRelation || self.layoutRelation == relation && [attribute isKindOfClass:NSValue.class], @"Redefinition of constraint relation"); - self.layoutRelation = relation; - self.secondViewAttribute = attribute; - return self; - } - }; -} - -#pragma mark - Semantic properties - -- (ASMASConstraint *)with { - return self; -} - -- (ASMASConstraint *)and { - return self; -} - -#pragma mark - attribute chaining - -- (ASMASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute { - NSAssert(!self.hasLayoutRelation, @"Attributes should be chained before defining the constraint relation"); - - return [self.delegate constraint:self addConstraintWithLayoutAttribute:layoutAttribute]; -} - -#pragma mark - Animator proxy - -#if TARGET_OS_MAC && !(TARGET_OS_IPHONE || TARGET_OS_TV) - -- (ASMASConstraint *)animator { - self.useAnimator = YES; - return self; -} - -#endif - -#pragma mark - debug helpers - -- (ASMASConstraint * (^)(id))key { - return ^id(id key) { - self.mas_key = key; - return self; - }; -} - -#pragma mark - NSLayoutConstraint constant setters - -- (void)setInsets:(ASMASEdgeInsets)insets { - NSLayoutAttribute layoutAttribute = self.firstViewAttribute.layoutAttribute; - switch (layoutAttribute) { - case NSLayoutAttributeLeft: - case NSLayoutAttributeLeading: - self.layoutConstant = insets.left; - break; - case NSLayoutAttributeTop: - self.layoutConstant = insets.top; - break; - case NSLayoutAttributeBottom: - self.layoutConstant = -insets.bottom; - break; - case NSLayoutAttributeRight: - case NSLayoutAttributeTrailing: - self.layoutConstant = -insets.right; - break; - default: - break; - } -} - -- (void)setInset:(CGFloat)inset { - [self setInsets:(ASMASEdgeInsets){.top = inset, .left = inset, .bottom = inset, .right = inset}]; -} - -- (void)setOffset:(CGFloat)offset { - self.layoutConstant = offset; -} - -- (void)setSizeOffset:(CGSize)sizeOffset { - NSLayoutAttribute layoutAttribute = self.firstViewAttribute.layoutAttribute; - switch (layoutAttribute) { - case NSLayoutAttributeWidth: - self.layoutConstant = sizeOffset.width; - break; - case NSLayoutAttributeHeight: - self.layoutConstant = sizeOffset.height; - break; - default: - break; - } -} - -- (void)setCenterOffset:(CGPoint)centerOffset { - NSLayoutAttribute layoutAttribute = self.firstViewAttribute.layoutAttribute; - switch (layoutAttribute) { - case NSLayoutAttributeCenterX: - self.layoutConstant = centerOffset.x; - break; - case NSLayoutAttributeCenterY: - self.layoutConstant = centerOffset.y; - break; - default: - break; - } -} - -#pragma mark - ASMASConstraint - -- (void)activate { - [self install]; -} - -- (void)deactivate { - [self uninstall]; -} - -- (void)install { - if (self.hasBeenInstalled) { - return; - } - - if ([self supportsActiveProperty] && self.layoutConstraint) { - self.layoutConstraint.active = YES; - [self.firstViewAttribute.view.mas_installedConstraints addObject:self]; - return; - } - - ASMAS_VIEW *firstLayoutItem = self.firstViewAttribute.item; - NSLayoutAttribute firstLayoutAttribute = self.firstViewAttribute.layoutAttribute; - ASMAS_VIEW *secondLayoutItem = self.secondViewAttribute.item; - NSLayoutAttribute secondLayoutAttribute = self.secondViewAttribute.layoutAttribute; - - // alignment attributes must have a secondViewAttribute - // therefore we assume that is refering to superview - // eg make.left.equalTo(@10) - if (!self.firstViewAttribute.isSizeAttribute && !self.secondViewAttribute) { - secondLayoutItem = self.firstViewAttribute.view.superview; - secondLayoutAttribute = firstLayoutAttribute; - } - - ASMASLayoutConstraint *layoutConstraint - = [ASMASLayoutConstraint constraintWithItem:firstLayoutItem - attribute:firstLayoutAttribute - relatedBy:self.layoutRelation - toItem:secondLayoutItem - attribute:secondLayoutAttribute - multiplier:self.layoutMultiplier - constant:self.layoutConstant]; - - layoutConstraint.priority = self.layoutPriority; - layoutConstraint.mas_key = self.mas_key; - - if (self.secondViewAttribute.view) { - ASMAS_VIEW *closestCommonSuperview = [self.firstViewAttribute.view mas_closestCommonSuperview:self.secondViewAttribute.view]; - NSAssert(closestCommonSuperview, - @"couldn't find a common superview for %@ and %@", - self.firstViewAttribute.view, self.secondViewAttribute.view); - self.installedView = closestCommonSuperview; - } else if (self.firstViewAttribute.isSizeAttribute) { - self.installedView = self.firstViewAttribute.view; - } else { - self.installedView = self.firstViewAttribute.view.superview; - } - - - ASMASLayoutConstraint *existingConstraint = nil; - if (self.updateExisting) { - existingConstraint = [self layoutConstraintSimilarTo:layoutConstraint]; - } - if (existingConstraint) { - // just update the constant - existingConstraint.constant = layoutConstraint.constant; - self.layoutConstraint = existingConstraint; - } else { - [self.installedView addConstraint:layoutConstraint]; - self.layoutConstraint = layoutConstraint; - [firstLayoutItem.mas_installedConstraints addObject:self]; - } -} - -- (ASMASLayoutConstraint *)layoutConstraintSimilarTo:(ASMASLayoutConstraint *)layoutConstraint { - // check if any constraints are the same apart from the only mutable property constant - - // go through constraints in reverse as we do not want to match auto-resizing or interface builder constraints - // and they are likely to be added first. - for (NSLayoutConstraint *existingConstraint in self.installedView.constraints.reverseObjectEnumerator) { - if (![existingConstraint isKindOfClass:ASMASLayoutConstraint.class]) continue; - if (existingConstraint.firstItem != layoutConstraint.firstItem) continue; - if (existingConstraint.secondItem != layoutConstraint.secondItem) continue; - if (existingConstraint.firstAttribute != layoutConstraint.firstAttribute) continue; - if (existingConstraint.secondAttribute != layoutConstraint.secondAttribute) continue; - if (existingConstraint.relation != layoutConstraint.relation) continue; - if (existingConstraint.multiplier != layoutConstraint.multiplier) continue; - if (existingConstraint.priority != layoutConstraint.priority) continue; - - return (id)existingConstraint; - } - return nil; -} - -- (void)uninstall { - if ([self supportsActiveProperty]) { - self.layoutConstraint.active = NO; - [self.firstViewAttribute.view.mas_installedConstraints removeObject:self]; - return; - } - - [self.installedView removeConstraint:self.layoutConstraint]; - self.layoutConstraint = nil; - self.installedView = nil; - - [self.firstViewAttribute.view.mas_installedConstraints removeObject:self]; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMasonry.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMasonry.h deleted file mode 100644 index 842078f8..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASMasonry.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// Masonry.h -// Masonry -// -// Created by Jonas Budelmann on 20/07/13. -// Copyright (c) 2013 cloudling. All rights reserved. -// - -#import - -//! Project version number for Masonry. -FOUNDATION_EXPORT double MasonryVersionNumber; - -//! Project version string for Masonry. -FOUNDATION_EXPORT const unsigned char MasonryVersionString[]; - -#import "ASMASUtilities.h" -#import "ASView+MASAdditions.h" -#import "ASView+MASShorthandAdditions.h" -#import "ASViewController+MASAdditions.h" -#import "ASNSArray+MASAdditions.h" -#import "ASNSArray+MASShorthandAdditions.h" -#import "ASMASConstraint.h" -#import "ASMASCompositeConstraint.h" -#import "ASMASViewAttribute.h" -#import "ASMASViewConstraint.h" -#import "ASMASConstraintMaker.h" -#import "ASMASLayoutConstraint.h" -#import "ASNSLayoutConstraint+MASDebugAdditions.h" diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSArray+MASAdditions.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSArray+MASAdditions.h deleted file mode 100644 index c407da5b..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSArray+MASAdditions.h +++ /dev/null @@ -1,72 +0,0 @@ -// -// ASNSArray+MASAdditions.h -// -// -// Created by Daniel Hammond on 11/26/13. -// -// - -#import "ASMASUtilities.h" -#import "ASMASConstraintMaker.h" -#import "ASMASViewAttribute.h" - -typedef NS_ENUM(NSUInteger, ASMASAxisType) { - ASMASAxisTypeHorizontal, - ASMASAxisTypeVertical -}; - -@interface NSArray (ASMASAdditions) - -/** - * Creates a ASMASConstraintMaker with each view in the callee. - * Any constraints defined are added to the view or the appropriate superview once the block has finished executing on each view - * - * @param block scope within which you can build up the constraints which you wish to apply to each view. - * - * @return Array of created ASMASConstraints - */ -- (NSArray *)mas_makeConstraints:(void (NS_NOESCAPE ^)(ASMASConstraintMaker *make))block; - -/** - * Creates a ASMASConstraintMaker with each view in the callee. - * Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view. - * If an existing constraint exists then it will be updated instead. - * - * @param block scope within which you can build up the constraints which you wish to apply to each view. - * - * @return Array of created/updated ASMASConstraints - */ -- (NSArray *)mas_updateConstraints:(void (NS_NOESCAPE ^)(ASMASConstraintMaker *make))block; - -/** - * Creates a ASMASConstraintMaker with each view in the callee. - * Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view. - * All constraints previously installed for the views will be removed. - * - * @param block scope within which you can build up the constraints which you wish to apply to each view. - * - * @return Array of created/updated ASMASConstraints - */ -- (NSArray *)mas_remakeConstraints:(void (NS_NOESCAPE ^)(ASMASConstraintMaker *make))block; - -/** - * distribute with fixed spacing - * - * @param axisType which axis to distribute items along - * @param fixedSpacing the spacing between each item - * @param leadSpacing the spacing before the first item and the container - * @param tailSpacing the spacing after the last item and the container - */ -- (void)mas_distributeViewsAlongAxis:(ASMASAxisType)axisType withFixedSpacing:(CGFloat)fixedSpacing leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing; - -/** - * distribute with fixed item size - * - * @param axisType which axis to distribute items along - * @param fixedItemLength the fixed length of each item - * @param leadSpacing the spacing before the first item and the container - * @param tailSpacing the spacing after the last item and the container - */ -- (void)mas_distributeViewsAlongAxis:(ASMASAxisType)axisType withFixedItemLength:(CGFloat)fixedItemLength leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSArray+MASAdditions.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSArray+MASAdditions.m deleted file mode 100644 index 99d86416..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSArray+MASAdditions.m +++ /dev/null @@ -1,162 +0,0 @@ -// -// ASNSArray+MASAdditions.m -// -// -// Created by Daniel Hammond on 11/26/13. -// -// - -#import "ASNSArray+MASAdditions.h" -#import "ASView+MASAdditions.h" - -@implementation NSArray (ASMASAdditions) - -- (NSArray *)mas_makeConstraints:(void(^)(ASMASConstraintMaker *make))block { - NSMutableArray *constraints = [NSMutableArray array]; - for (ASMAS_VIEW *view in self) { - NSAssert([view isKindOfClass:[ASMAS_VIEW class]], @"All objects in the array must be views"); - [constraints addObjectsFromArray:[view mas_makeConstraints:block]]; - } - return constraints; -} - -- (NSArray *)mas_updateConstraints:(void(^)(ASMASConstraintMaker *make))block { - NSMutableArray *constraints = [NSMutableArray array]; - for (ASMAS_VIEW *view in self) { - NSAssert([view isKindOfClass:[ASMAS_VIEW class]], @"All objects in the array must be views"); - [constraints addObjectsFromArray:[view mas_updateConstraints:block]]; - } - return constraints; -} - -- (NSArray *)mas_remakeConstraints:(void(^)(ASMASConstraintMaker *make))block { - NSMutableArray *constraints = [NSMutableArray array]; - for (ASMAS_VIEW *view in self) { - NSAssert([view isKindOfClass:[ASMAS_VIEW class]], @"All objects in the array must be views"); - [constraints addObjectsFromArray:[view mas_remakeConstraints:block]]; - } - return constraints; -} - -- (void)mas_distributeViewsAlongAxis:(ASMASAxisType)axisType withFixedSpacing:(CGFloat)fixedSpacing leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing { - if (self.count < 2) { - NSAssert(self.count>1,@"views to distribute need to bigger than one"); - return; - } - - ASMAS_VIEW *tempSuperView = [self mas_commonSuperviewOfViews]; - if (axisType == ASMASAxisTypeHorizontal) { - ASMAS_VIEW *prev; - for (int i = 0; i < self.count; i++) { - ASMAS_VIEW *v = self[i]; - [v mas_makeConstraints:^(ASMASConstraintMaker *make) { - if (prev) { - make.width.equalTo(prev); - make.left.equalTo(prev.mas_right).offset(fixedSpacing); - if (i == self.count - 1) {//last one - make.right.equalTo(tempSuperView).offset(-tailSpacing); - } - } - else {//first one - make.left.equalTo(tempSuperView).offset(leadSpacing); - } - - }]; - prev = v; - } - } - else { - ASMAS_VIEW *prev; - for (int i = 0; i < self.count; i++) { - ASMAS_VIEW *v = self[i]; - [v mas_makeConstraints:^(ASMASConstraintMaker *make) { - if (prev) { - make.height.equalTo(prev); - make.top.equalTo(prev.mas_bottom).offset(fixedSpacing); - if (i == self.count - 1) {//last one - make.bottom.equalTo(tempSuperView).offset(-tailSpacing); - } - } - else {//first one - make.top.equalTo(tempSuperView).offset(leadSpacing); - } - - }]; - prev = v; - } - } -} - -- (void)mas_distributeViewsAlongAxis:(ASMASAxisType)axisType withFixedItemLength:(CGFloat)fixedItemLength leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing { - if (self.count < 2) { - NSAssert(self.count>1,@"views to distribute need to bigger than one"); - return; - } - - ASMAS_VIEW *tempSuperView = [self mas_commonSuperviewOfViews]; - if (axisType == ASMASAxisTypeHorizontal) { - ASMAS_VIEW *prev; - for (int i = 0; i < self.count; i++) { - ASMAS_VIEW *v = self[i]; - [v mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.width.equalTo(@(fixedItemLength)); - if (prev) { - if (i == self.count - 1) {//last one - make.right.equalTo(tempSuperView).offset(-tailSpacing); - } - else { - CGFloat offset = (1-(i/((CGFloat)self.count-1)))*(fixedItemLength+leadSpacing)-i*tailSpacing/(((CGFloat)self.count-1)); - make.right.equalTo(tempSuperView).multipliedBy(i/((CGFloat)self.count-1)).with.offset(offset); - } - } - else {//first one - make.left.equalTo(tempSuperView).offset(leadSpacing); - } - }]; - prev = v; - } - } - else { - ASMAS_VIEW *prev; - for (int i = 0; i < self.count; i++) { - ASMAS_VIEW *v = self[i]; - [v mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.height.equalTo(@(fixedItemLength)); - if (prev) { - if (i == self.count - 1) {//last one - make.bottom.equalTo(tempSuperView).offset(-tailSpacing); - } - else { - CGFloat offset = (1-(i/((CGFloat)self.count-1)))*(fixedItemLength+leadSpacing)-i*tailSpacing/(((CGFloat)self.count-1)); - make.bottom.equalTo(tempSuperView).multipliedBy(i/((CGFloat)self.count-1)).with.offset(offset); - } - } - else {//first one - make.top.equalTo(tempSuperView).offset(leadSpacing); - } - }]; - prev = v; - } - } -} - -- (ASMAS_VIEW *)mas_commonSuperviewOfViews -{ - ASMAS_VIEW *commonSuperview = nil; - ASMAS_VIEW *previousView = nil; - for (id object in self) { - if ([object isKindOfClass:[ASMAS_VIEW class]]) { - ASMAS_VIEW *view = (ASMAS_VIEW *)object; - if (previousView) { - commonSuperview = [view mas_closestCommonSuperview:commonSuperview]; - } else { - commonSuperview = view; - } - previousView = view; - } - } - NSAssert(commonSuperview, @"Can't constrain views that do not share a common superview. Make sure that all the views in this array have been added into the same view hierarchy."); - return commonSuperview; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSArray+MASShorthandAdditions.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSArray+MASShorthandAdditions.h deleted file mode 100644 index ca74ca53..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSArray+MASShorthandAdditions.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// ASNSArray+MASShorthandAdditions.h -// Masonry -// -// Created by Jonas Budelmann on 22/07/13. -// Copyright (c) 2013 Jonas Budelmann. All rights reserved. -// - -#import "ASNSArray+MASAdditions.h" - -#ifdef ASMAS_SHORTHAND - -/** - * Shorthand array additions without the 'mas_' prefixes, - * only enabled if ASMAS_SHORTHAND is defined - */ -@interface NSArray (ASMASShorthandAdditions) - -- (NSArray *)makeConstraints:(void(^)(ASMASConstraintMaker *make))block; -- (NSArray *)updateConstraints:(void(^)(ASMASConstraintMaker *make))block; -- (NSArray *)remakeConstraints:(void(^)(ASMASConstraintMaker *make))block; - -@end - -@implementation NSArray (ASMASShorthandAdditions) - -- (NSArray *)makeConstraints:(void(^)(ASMASConstraintMaker *))block { - return [self mas_makeConstraints:block]; -} - -- (NSArray *)updateConstraints:(void(^)(ASMASConstraintMaker *))block { - return [self mas_updateConstraints:block]; -} - -- (NSArray *)remakeConstraints:(void(^)(ASMASConstraintMaker *))block { - return [self mas_remakeConstraints:block]; -} - -@end - -#endif diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSLayoutConstraint+MASDebugAdditions.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSLayoutConstraint+MASDebugAdditions.h deleted file mode 100644 index 280c3731..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSLayoutConstraint+MASDebugAdditions.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// ASNSLayoutConstraint+MASDebugAdditions.h -// Masonry -// -// Created by Jonas Budelmann on 3/08/13. -// Copyright (c) 2013 Jonas Budelmann. All rights reserved. -// - -#import "ASMASUtilities.h" - -/** - * makes debug and log output of NSLayoutConstraints more readable - */ -@interface NSLayoutConstraint (ASMASDebugAdditions) - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSLayoutConstraint+MASDebugAdditions.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSLayoutConstraint+MASDebugAdditions.m deleted file mode 100644 index d1d2b28a..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASNSLayoutConstraint+MASDebugAdditions.m +++ /dev/null @@ -1,146 +0,0 @@ -// -// ASNSLayoutConstraint+MASDebugAdditions.m -// Masonry -// -// Created by Jonas Budelmann on 3/08/13. -// Copyright (c) 2013 Jonas Budelmann. All rights reserved. -// - -#import "ASNSLayoutConstraint+MASDebugAdditions.h" -#import "ASMASConstraint.h" -#import "ASMASLayoutConstraint.h" - -@implementation NSLayoutConstraint (ASMASDebugAdditions) - -#pragma mark - description maps - -+ (NSDictionary *)layoutRelationDescriptionsByValue { - static dispatch_once_t once; - static NSDictionary *descriptionMap; - dispatch_once(&once, ^{ - descriptionMap = @{ - @(NSLayoutRelationEqual) : @"==", - @(NSLayoutRelationGreaterThanOrEqual) : @">=", - @(NSLayoutRelationLessThanOrEqual) : @"<=", - }; - }); - return descriptionMap; -} - -+ (NSDictionary *)layoutAttributeDescriptionsByValue { - static dispatch_once_t once; - static NSDictionary *descriptionMap; - dispatch_once(&once, ^{ - descriptionMap = @{ - @(NSLayoutAttributeTop) : @"top", - @(NSLayoutAttributeLeft) : @"left", - @(NSLayoutAttributeBottom) : @"bottom", - @(NSLayoutAttributeRight) : @"right", - @(NSLayoutAttributeLeading) : @"leading", - @(NSLayoutAttributeTrailing) : @"trailing", - @(NSLayoutAttributeWidth) : @"width", - @(NSLayoutAttributeHeight) : @"height", - @(NSLayoutAttributeCenterX) : @"centerX", - @(NSLayoutAttributeCenterY) : @"centerY", - @(NSLayoutAttributeBaseline) : @"baseline", - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) - @(NSLayoutAttributeFirstBaseline) : @"firstBaseline", - @(NSLayoutAttributeLastBaseline) : @"lastBaseline", -#endif - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) - @(NSLayoutAttributeLeftMargin) : @"leftMargin", - @(NSLayoutAttributeRightMargin) : @"rightMargin", - @(NSLayoutAttributeTopMargin) : @"topMargin", - @(NSLayoutAttributeBottomMargin) : @"bottomMargin", - @(NSLayoutAttributeLeadingMargin) : @"leadingMargin", - @(NSLayoutAttributeTrailingMargin) : @"trailingMargin", - @(NSLayoutAttributeCenterXWithinMargins) : @"centerXWithinMargins", - @(NSLayoutAttributeCenterYWithinMargins) : @"centerYWithinMargins", -#endif - - }; - - }); - return descriptionMap; -} - - -+ (NSDictionary *)layoutPriorityDescriptionsByValue { - static dispatch_once_t once; - static NSDictionary *descriptionMap; - dispatch_once(&once, ^{ -#if TARGET_OS_IPHONE || TARGET_OS_TV - descriptionMap = @{ - @(ASMASLayoutPriorityDefaultHigh) : @"high", - @(ASMASLayoutPriorityDefaultLow) : @"low", - @(ASMASLayoutPriorityDefaultMedium) : @"medium", - @(ASMASLayoutPriorityRequired) : @"required", - @(ASMASLayoutPriorityFittingSizeLevel) : @"fitting size", - }; -#elif TARGET_OS_MAC - descriptionMap = @{ - @(ASMASLayoutPriorityDefaultHigh) : @"high", - @(ASMASLayoutPriorityDragThatCanResizeWindow) : @"drag can resize window", - @(ASMASLayoutPriorityDefaultMedium) : @"medium", - @(ASMASLayoutPriorityWindowSizeStayPut) : @"window size stay put", - @(ASMASLayoutPriorityDragThatCannotResizeWindow) : @"drag cannot resize window", - @(ASMASLayoutPriorityDefaultLow) : @"low", - @(ASMASLayoutPriorityFittingSizeCompression) : @"fitting size", - @(ASMASLayoutPriorityRequired) : @"required", - }; -#endif - }); - return descriptionMap; -} - -#pragma mark - description override - -+ (NSString *)descriptionForObject:(id)obj { - if ([obj respondsToSelector:@selector(mas_key)] && [obj mas_key]) { - return [NSString stringWithFormat:@"%@:%@", [obj class], [obj mas_key]]; - } - return [NSString stringWithFormat:@"%@:%p", [obj class], obj]; -} - -- (NSString *)description { - NSMutableString *description = [[NSMutableString alloc] initWithString:@"<"]; - - [description appendString:[self.class descriptionForObject:self]]; - - [description appendFormat:@" %@", [self.class descriptionForObject:self.firstItem]]; - if (self.firstAttribute != NSLayoutAttributeNotAnAttribute) { - [description appendFormat:@".%@", self.class.layoutAttributeDescriptionsByValue[@(self.firstAttribute)]]; - } - - [description appendFormat:@" %@", self.class.layoutRelationDescriptionsByValue[@(self.relation)]]; - - if (self.secondItem) { - [description appendFormat:@" %@", [self.class descriptionForObject:self.secondItem]]; - } - if (self.secondAttribute != NSLayoutAttributeNotAnAttribute) { - [description appendFormat:@".%@", self.class.layoutAttributeDescriptionsByValue[@(self.secondAttribute)]]; - } - - if (self.multiplier != 1) { - [description appendFormat:@" * %g", self.multiplier]; - } - - if (self.secondAttribute == NSLayoutAttributeNotAnAttribute) { - [description appendFormat:@" %g", self.constant]; - } else { - if (self.constant) { - [description appendFormat:@" %@ %g", (self.constant < 0 ? @"-" : @"+"), ABS(self.constant)]; - } - } - - if (self.priority != ASMASLayoutPriorityRequired) { - [description appendFormat:@" ^%@", self.class.layoutPriorityDescriptionsByValue[@(self.priority)] ?: [NSNumber numberWithDouble:self.priority]]; - } - - [description appendString:@">"]; - return description; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASView+MASAdditions.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASView+MASAdditions.h deleted file mode 100644 index 293708a8..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASView+MASAdditions.h +++ /dev/null @@ -1,111 +0,0 @@ -// -// UIASView+MASAdditions.h -// Masonry -// -// Created by Jonas Budelmann on 20/07/13. -// Copyright (c) 2013 cloudling. All rights reserved. -// - -#import "ASMASUtilities.h" -#import "ASMASConstraintMaker.h" -#import "ASMASViewAttribute.h" - -/** - * Provides constraint maker block - * and convience methods for creating ASMASViewAttribute which are view + NSLayoutAttribute pairs - */ -@interface ASMAS_VIEW (ASMASAdditions) - -/** - * following properties return a new ASMASViewAttribute with current view and appropriate NSLayoutAttribute - */ -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_left; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_top; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_right; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_bottom; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_leading; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_trailing; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_width; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_height; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_centerX; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_centerY; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_baseline; -@property (nonatomic, strong, readonly) ASMASViewAttribute *(^mas_attribute)(NSLayoutAttribute attr); - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) - -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_firstBaseline; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_lastBaseline; - -#endif - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) - -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_leftMargin; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_rightMargin; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_topMargin; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_bottomMargin; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_leadingMargin; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_trailingMargin; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_centerXWithinMargins; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_centerYWithinMargins; - -#endif - -#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 110000) || (__TV_OS_VERSION_MAX_ALLOWED >= 110000) - -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_safeAreaLayoutGuide API_AVAILABLE(ios(11.0),tvos(11.0)); -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_safeAreaLayoutGuideTop API_AVAILABLE(ios(11.0),tvos(11.0)); -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_safeAreaLayoutGuideBottom API_AVAILABLE(ios(11.0),tvos(11.0)); -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_safeAreaLayoutGuideLeft API_AVAILABLE(ios(11.0),tvos(11.0)); -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_safeAreaLayoutGuideRight API_AVAILABLE(ios(11.0),tvos(11.0)); - -#endif - -/** - * a key to associate with this view - */ -@property (nonatomic, strong) id mas_key; - -/** - * Finds the closest common superview between this view and another view - * - * @param view other view - * - * @return returns nil if common superview could not be found - */ -- (instancetype)mas_closestCommonSuperview:(ASMAS_VIEW *)view; - -/** - * Creates a ASMASConstraintMaker with the callee view. - * Any constraints defined are added to the view or the appropriate superview once the block has finished executing - * - * @param block scope within which you can build up the constraints which you wish to apply to the view. - * - * @return Array of created ASMASConstraints - */ -- (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(ASMASConstraintMaker *make))block; - -/** - * Creates a ASMASConstraintMaker with the callee view. - * Any constraints defined are added to the view or the appropriate superview once the block has finished executing. - * If an existing constraint exists then it will be updated instead. - * - * @param block scope within which you can build up the constraints which you wish to apply to the view. - * - * @return Array of created/updated ASMASConstraints - */ -- (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(ASMASConstraintMaker *make))block; - -/** - * Creates a ASMASConstraintMaker with the callee view. - * Any constraints defined are added to the view or the appropriate superview once the block has finished executing. - * All constraints previously installed for the view will be removed. - * - * @param block scope within which you can build up the constraints which you wish to apply to the view. - * - * @return Array of created/updated ASMASConstraints - */ -- (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(ASMASConstraintMaker *make))block; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASView+MASAdditions.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASView+MASAdditions.m deleted file mode 100644 index 5c8166dd..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASView+MASAdditions.m +++ /dev/null @@ -1,186 +0,0 @@ -// -// UIASView+MASAdditions.m -// Masonry -// -// Created by Jonas Budelmann on 20/07/13. -// Copyright (c) 2013 cloudling. All rights reserved. -// - -#import "ASView+MASAdditions.h" -#import - -@implementation ASMAS_VIEW (ASMASAdditions) - -- (NSArray *)mas_makeConstraints:(void(^)(ASMASConstraintMaker *))block { - self.translatesAutoresizingMaskIntoConstraints = NO; - ASMASConstraintMaker *constraintMaker = [[ASMASConstraintMaker alloc] initWithView:self]; - block(constraintMaker); - return [constraintMaker install]; -} - -- (NSArray *)mas_updateConstraints:(void(^)(ASMASConstraintMaker *))block { - self.translatesAutoresizingMaskIntoConstraints = NO; - ASMASConstraintMaker *constraintMaker = [[ASMASConstraintMaker alloc] initWithView:self]; - constraintMaker.updateExisting = YES; - block(constraintMaker); - return [constraintMaker install]; -} - -- (NSArray *)mas_remakeConstraints:(void(^)(ASMASConstraintMaker *make))block { - self.translatesAutoresizingMaskIntoConstraints = NO; - ASMASConstraintMaker *constraintMaker = [[ASMASConstraintMaker alloc] initWithView:self]; - constraintMaker.removeExisting = YES; - block(constraintMaker); - return [constraintMaker install]; -} - -#pragma mark - NSLayoutAttribute properties - -- (ASMASViewAttribute *)mas_left { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLeft]; -} - -- (ASMASViewAttribute *)mas_top { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeTop]; -} - -- (ASMASViewAttribute *)mas_right { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeRight]; -} - -- (ASMASViewAttribute *)mas_bottom { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeBottom]; -} - -- (ASMASViewAttribute *)mas_leading { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLeading]; -} - -- (ASMASViewAttribute *)mas_trailing { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeTrailing]; -} - -- (ASMASViewAttribute *)mas_width { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeWidth]; -} - -- (ASMASViewAttribute *)mas_height { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeHeight]; -} - -- (ASMASViewAttribute *)mas_centerX { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeCenterX]; -} - -- (ASMASViewAttribute *)mas_centerY { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeCenterY]; -} - -- (ASMASViewAttribute *)mas_baseline { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeBaseline]; -} - -- (ASMASViewAttribute *(^)(NSLayoutAttribute))mas_attribute -{ - return ^(NSLayoutAttribute attr) { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:attr]; - }; -} - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) - -- (ASMASViewAttribute *)mas_firstBaseline { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeFirstBaseline]; -} -- (ASMASViewAttribute *)mas_lastBaseline { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLastBaseline]; -} - -#endif - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) - -- (ASMASViewAttribute *)mas_leftMargin { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLeftMargin]; -} - -- (ASMASViewAttribute *)mas_rightMargin { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeRightMargin]; -} - -- (ASMASViewAttribute *)mas_topMargin { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeTopMargin]; -} - -- (ASMASViewAttribute *)mas_bottomMargin { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeBottomMargin]; -} - -- (ASMASViewAttribute *)mas_leadingMargin { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeLeadingMargin]; -} - -- (ASMASViewAttribute *)mas_trailingMargin { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeTrailingMargin]; -} - -- (ASMASViewAttribute *)mas_centerXWithinMargins { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeCenterXWithinMargins]; -} - -- (ASMASViewAttribute *)mas_centerYWithinMargins { - return [[ASMASViewAttribute alloc] initWithView:self layoutAttribute:NSLayoutAttributeCenterYWithinMargins]; -} - -#endif - -#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 110000) || (__TV_OS_VERSION_MAX_ALLOWED >= 110000) - -- (ASMASViewAttribute *)mas_safeAreaLayoutGuide { - return [[ASMASViewAttribute alloc] initWithView:self item:self.safeAreaLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; -} -- (ASMASViewAttribute *)mas_safeAreaLayoutGuideTop { - return [[ASMASViewAttribute alloc] initWithView:self item:self.safeAreaLayoutGuide layoutAttribute:NSLayoutAttributeTop]; -} -- (ASMASViewAttribute *)mas_safeAreaLayoutGuideBottom { - return [[ASMASViewAttribute alloc] initWithView:self item:self.safeAreaLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; -} -- (ASMASViewAttribute *)mas_safeAreaLayoutGuideLeft { - return [[ASMASViewAttribute alloc] initWithView:self item:self.safeAreaLayoutGuide layoutAttribute:NSLayoutAttributeLeft]; -} -- (ASMASViewAttribute *)mas_safeAreaLayoutGuideRight { - return [[ASMASViewAttribute alloc] initWithView:self item:self.safeAreaLayoutGuide layoutAttribute:NSLayoutAttributeRight]; -} - -#endif - -#pragma mark - associated properties - -- (id)mas_key { - return objc_getAssociatedObject(self, @selector(mas_key)); -} - -- (void)setMas_key:(id)key { - objc_setAssociatedObject(self, @selector(mas_key), key, OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -#pragma mark - heirachy - -- (instancetype)mas_closestCommonSuperview:(ASMAS_VIEW *)view { - ASMAS_VIEW *closestCommonSuperview = nil; - - ASMAS_VIEW *secondViewSuperview = view; - while (!closestCommonSuperview && secondViewSuperview) { - ASMAS_VIEW *firstViewSuperview = self; - while (!closestCommonSuperview && firstViewSuperview) { - if (secondViewSuperview == firstViewSuperview) { - closestCommonSuperview = secondViewSuperview; - } - firstViewSuperview = firstViewSuperview.superview; - } - secondViewSuperview = secondViewSuperview.superview; - } - return closestCommonSuperview; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASView+MASShorthandAdditions.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASView+MASShorthandAdditions.h deleted file mode 100644 index e5cf4804..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASView+MASShorthandAdditions.h +++ /dev/null @@ -1,133 +0,0 @@ -// -// UIView+ASMASShorthandAdditions.h -// Masonry -// -// Created by Jonas Budelmann on 22/07/13. -// Copyright (c) 2013 Jonas Budelmann. All rights reserved. -// - -#import "ASView+MASAdditions.h" - -#ifdef ASMAS_SHORTHAND - -/** - * Shorthand view additions without the 'mas_' prefixes, - * only enabled if ASMAS_SHORTHAND is defined - */ -@interface ASMAS_VIEW (ASMASShorthandAdditions) - -@property (nonatomic, strong, readonly) ASMASViewAttribute *left; -@property (nonatomic, strong, readonly) ASMASViewAttribute *top; -@property (nonatomic, strong, readonly) ASMASViewAttribute *right; -@property (nonatomic, strong, readonly) ASMASViewAttribute *bottom; -@property (nonatomic, strong, readonly) ASMASViewAttribute *leading; -@property (nonatomic, strong, readonly) ASMASViewAttribute *trailing; -@property (nonatomic, strong, readonly) ASMASViewAttribute *width; -@property (nonatomic, strong, readonly) ASMASViewAttribute *height; -@property (nonatomic, strong, readonly) ASMASViewAttribute *centerX; -@property (nonatomic, strong, readonly) ASMASViewAttribute *centerY; -@property (nonatomic, strong, readonly) ASMASViewAttribute *baseline; -@property (nonatomic, strong, readonly) ASMASViewAttribute *(^attribute)(NSLayoutAttribute attr); - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) - -@property (nonatomic, strong, readonly) ASMASViewAttribute *firstBaseline; -@property (nonatomic, strong, readonly) ASMASViewAttribute *lastBaseline; - -#endif - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) - -@property (nonatomic, strong, readonly) ASMASViewAttribute *leftMargin; -@property (nonatomic, strong, readonly) ASMASViewAttribute *rightMargin; -@property (nonatomic, strong, readonly) ASMASViewAttribute *topMargin; -@property (nonatomic, strong, readonly) ASMASViewAttribute *bottomMargin; -@property (nonatomic, strong, readonly) ASMASViewAttribute *leadingMargin; -@property (nonatomic, strong, readonly) ASMASViewAttribute *trailingMargin; -@property (nonatomic, strong, readonly) ASMASViewAttribute *centerXWithinMargins; -@property (nonatomic, strong, readonly) ASMASViewAttribute *centerYWithinMargins; - -#endif - -#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 110000) || (__TV_OS_VERSION_MAX_ALLOWED >= 110000) - -@property (nonatomic, strong, readonly) ASMASViewAttribute *safeAreaLayoutGuideTop API_AVAILABLE(ios(11.0),tvos(11.0)); -@property (nonatomic, strong, readonly) ASMASViewAttribute *safeAreaLayoutGuideBottom API_AVAILABLE(ios(11.0),tvos(11.0)); -@property (nonatomic, strong, readonly) ASMASViewAttribute *safeAreaLayoutGuideLeft API_AVAILABLE(ios(11.0),tvos(11.0)); -@property (nonatomic, strong, readonly) ASMASViewAttribute *safeAreaLayoutGuideRight API_AVAILABLE(ios(11.0),tvos(11.0)); - -#endif - -- (NSArray *)makeConstraints:(void(^)(ASMASConstraintMaker *make))block; -- (NSArray *)updateConstraints:(void(^)(ASMASConstraintMaker *make))block; -- (NSArray *)remakeConstraints:(void(^)(ASMASConstraintMaker *make))block; - -@end - -#define ASMAS_ATTR_FORWARD(attr) \ -- (ASMASViewAttribute *)attr { \ - return [self mas_##attr]; \ -} - -@implementation ASMAS_VIEW (ASMASShorthandAdditions) - -ASMAS_ATTR_FORWARD(top); -ASMAS_ATTR_FORWARD(left); -ASMAS_ATTR_FORWARD(bottom); -ASMAS_ATTR_FORWARD(right); -ASMAS_ATTR_FORWARD(leading); -ASMAS_ATTR_FORWARD(trailing); -ASMAS_ATTR_FORWARD(width); -ASMAS_ATTR_FORWARD(height); -ASMAS_ATTR_FORWARD(centerX); -ASMAS_ATTR_FORWARD(centerY); -ASMAS_ATTR_FORWARD(baseline); - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100) - -ASMAS_ATTR_FORWARD(firstBaseline); -ASMAS_ATTR_FORWARD(lastBaseline); - -#endif - -#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) - -ASMAS_ATTR_FORWARD(leftMargin); -ASMAS_ATTR_FORWARD(rightMargin); -ASMAS_ATTR_FORWARD(topMargin); -ASMAS_ATTR_FORWARD(bottomMargin); -ASMAS_ATTR_FORWARD(leadingMargin); -ASMAS_ATTR_FORWARD(trailingMargin); -ASMAS_ATTR_FORWARD(centerXWithinMargins); -ASMAS_ATTR_FORWARD(centerYWithinMargins); - -#endif - -#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 110000) || (__TV_OS_VERSION_MAX_ALLOWED >= 110000) - -ASMAS_ATTR_FORWARD(safeAreaLayoutGuideTop); -ASMAS_ATTR_FORWARD(safeAreaLayoutGuideBottom); -ASMAS_ATTR_FORWARD(safeAreaLayoutGuideLeft); -ASMAS_ATTR_FORWARD(safeAreaLayoutGuideRight); - -#endif - -- (ASMASViewAttribute *(^)(NSLayoutAttribute))attribute { - return [self mas_attribute]; -} - -- (NSArray *)makeConstraints:(void(NS_NOESCAPE ^)(ASMASConstraintMaker *))block { - return [self mas_makeConstraints:block]; -} - -- (NSArray *)updateConstraints:(void(NS_NOESCAPE ^)(ASMASConstraintMaker *))block { - return [self mas_updateConstraints:block]; -} - -- (NSArray *)remakeConstraints:(void(NS_NOESCAPE ^)(ASMASConstraintMaker *))block { - return [self mas_remakeConstraints:block]; -} - -@end - -#endif diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASViewController+MASAdditions.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASViewController+MASAdditions.h deleted file mode 100644 index f8628586..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASViewController+MASAdditions.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// UIASViewController+MASAdditions.h -// Masonry -// -// Created by Craig Siemens on 2015-06-23. -// -// - -#import "ASMASUtilities.h" -#import "ASMASConstraintMaker.h" -#import "ASMASViewAttribute.h" - -#ifdef ASMAS_VIEW_CONTROLLER - -@interface ASMAS_VIEW_CONTROLLER (ASMASAdditions) - -/** - * following properties return a new ASMASViewAttribute with appropriate UILayoutGuide and NSLayoutAttribute - */ -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_topLayoutGuide; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_bottomLayoutGuide; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_topLayoutGuideTop; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_topLayoutGuideBottom; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_bottomLayoutGuideTop; -@property (nonatomic, strong, readonly) ASMASViewAttribute *mas_bottomLayoutGuideBottom; - - -@end - -#endif diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASViewController+MASAdditions.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASViewController+MASAdditions.m deleted file mode 100644 index ade1dc86..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/ASViewController+MASAdditions.m +++ /dev/null @@ -1,39 +0,0 @@ -// -// UIASViewController+MASAdditions.m -// Masonry -// -// Created by Craig Siemens on 2015-06-23. -// -// - -#import "ASViewController+MASAdditions.h" - -#ifdef ASMAS_VIEW_CONTROLLER - -@implementation ASMAS_VIEW_CONTROLLER (ASMASAdditions) - -- (ASMASViewAttribute *)mas_topLayoutGuide { - return [[ASMASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; -} -- (ASMASViewAttribute *)mas_topLayoutGuideTop { - return [[ASMASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeTop]; -} -- (ASMASViewAttribute *)mas_topLayoutGuideBottom { - return [[ASMASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; -} - -- (ASMASViewAttribute *)mas_bottomLayoutGuide { - return [[ASMASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop]; -} -- (ASMASViewAttribute *)mas_bottomLayoutGuideTop { - return [[ASMASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop]; -} -- (ASMASViewAttribute *)mas_bottomLayoutGuideBottom { - return [[ASMASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; -} - - - -@end - -#endif diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/Info.plist b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/Info.plist deleted file mode 100644 index d3de8eef..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Dependencies/Masonry/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Info.plist b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Info.plist deleted file mode 100644 index 9bcb2444..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - - diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/TCAudioSettingManager.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/TCAudioSettingManager.h deleted file mode 100644 index e5fc0a43..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/TCAudioSettingManager.h +++ /dev/null @@ -1,65 +0,0 @@ -// -// TCAudioSettingManager.h -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/28. -// Copyright © 2020 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN -@class TXAudioEffectManager; -@protocol TCAudioMusicPlayStatusDelegate - -- (void)onStartPlayMusic; -- (void)onStopPlayerMusic; -- (void)onCompletePlayMusic; -- (void)onPlayingWithCurrent:(NSInteger)currentSec total:(NSInteger)totalSec; - - -@end - -@interface TCAudioSettingManager : NSObject - -@property(nonatomic, weak)id delegate; - -- (NSInteger)getcurrentMusicTatolDurationInMs; - -- (void)setAudioEffectManager:(TXAudioEffectManager *)manager; - -/// 恢复初始状态 -- (void)clearStates; - -/// 设置变声效果 -/// @param value 变声效果 -- (void)setVoiceChangerTypeWithValue:(NSInteger)value; - -/// 设置混响效果 -/// @param value 混响效果 -- (void)setReverbTypeWithValue:(NSInteger)value; - -/// 设置人声音量 -/// @param volume 音量 0-100 -- (void)setVoiceVolume:(NSInteger)volume; - -/// 设置音乐音量 -/// @param volume 音量 0-100 -- (void)setBGMVolume:(NSInteger)volume; - -- (void)setBGMPitch:(CGFloat)value; - -/// 播放音乐 -/// @param path 音乐路径 -/// @param bgmID 音乐ID -- (void)playMusicWithPath:(NSString *)path bgmID:(NSInteger)bgmID; - -- (void)stopPlay; - -- (void)pausePlay; - -- (void)resumePlay; - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/TCAudioSettingManager.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/TCAudioSettingManager.m deleted file mode 100644 index f5243794..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/TCAudioSettingManager.m +++ /dev/null @@ -1,141 +0,0 @@ -// -// TCAudioSettingManager.m -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/28. -// Copyright © 2020 tencent. All rights reserved. -// - -#import "TCAudioSettingManager.h" -#import "TXAudioEffectManager.h" - -@interface TCAudioSettingManager (){ - uint32_t _bgmID; // 当前播放的bgmID -} - -@property (nonatomic, strong)TXAudioEffectManager *manager; -@property (nonatomic, strong)NSString *currentMusicPath; - -@end - -@implementation TCAudioSettingManager - -- (NSInteger)getcurrentMusicTatolDurationInMs{ - if (self.currentMusicPath == nil) { - return 0; - } - return [self.manager getMusicDurationInMS:self.currentMusicPath]; -} - -- (void)setAudioEffectManager:(TXAudioEffectManager *)manager { - self.manager = manager; -} - -/// 设置变声效果 -/// @param value 变声效果 -- (void)setVoiceChangerTypeWithValue:(NSInteger)value { - [self.manager setVoiceChangerType:value]; -} - -/// 设置混响效果 -/// @param value 设置混响效果 -- (void)setReverbTypeWithValue:(NSInteger)value { - [self.manager setVoiceReverbType:value]; -} - -- (void)setBGMVolume:(NSInteger)volume { - if (_bgmID != 0) { - [self.manager setMusicPlayoutVolume:_bgmID volume:volume]; - [self.manager setMusicPublishVolume:_bgmID volume:volume]; - } -} - -- (void)setVoiceVolume:(NSInteger)volume { - [self.manager setVoiceVolume:volume]; -} - -- (void)setBGMPitch:(CGFloat)value { - if (_bgmID != 0) { - [self.manager setMusicPitch:_bgmID pitch:value]; - } -} - -- (void)playMusicWithPath:(NSString *)path bgmID:(NSInteger)bgmID { - if (_bgmID == bgmID) { - [self resumePlay]; - return; - } else { - [self.manager stopPlayMusic:_bgmID]; - _bgmID = bgmID; - } - self.currentMusicPath = path; - TXAudioMusicParam *params = [[TXAudioMusicParam alloc] init]; - params.ID = _bgmID; - params.path = path; - params.loopCount == 0; - __weak typeof(self) weakSelf = self; - [self.manager startPlayMusic:params onStart:^(NSInteger errCode) { - // 开始 - dispatch_async(dispatch_get_main_queue(), ^{ - if (weakSelf.delegate && [weakSelf.delegate respondsToSelector:@selector(onStartPlayMusic)]) { - [weakSelf.delegate onStartPlayMusic]; - } - }); - - } onProgress:^(NSInteger progressMs, NSInteger durationMs) { - dispatch_async(dispatch_get_main_queue(), ^{ - // 进度 - if (weakSelf.delegate && [self.delegate respondsToSelector:@selector(onPlayingWithCurrent:total:)]) { - [weakSelf.delegate onPlayingWithCurrent:progressMs / 1000 total: durationMs / 1000]; - } - }); - } onComplete:^(NSInteger errCode) { - dispatch_async(dispatch_get_main_queue(), ^{ - // 播完了,清空bgmID - __strong typeof(weakSelf) strongSelf = weakSelf; - strongSelf->_bgmID = 0; - if (weakSelf.delegate && [self.delegate respondsToSelector:@selector(onCompletePlayMusic)]) { - [weakSelf.delegate onCompletePlayMusic]; - } - }); - }]; -} - -- (void)stopPlay { - if (_bgmID != 0) { - [self.manager stopPlayMusic:_bgmID]; - _bgmID = 0; - self.currentMusicPath = nil; - if (self.delegate && [self.delegate respondsToSelector:@selector(onStopPlayerMusic)]) { - [self.delegate onStopPlayerMusic]; - } - } -} - -- (void)pausePlay { - if (_bgmID != 0) { - [self.manager pausePlayMusic:_bgmID]; - } -} - -- (void)resumePlay { - if (_bgmID != 0) { - [self.manager resumePlayMusic:_bgmID]; - } -} - -- (void)clearStates { - self.currentMusicPath = nil; - if (_bgmID != 0) { - [self setBGMPitch:0]; - [self stopPlay]; - _bgmID = 0; - } - [self setVoiceVolume:100]; - [self setBGMVolume:100]; - [self setVoiceChangerTypeWithValue:0]; - [self setReverbTypeWithValue:0]; - self.manager = nil; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/Theme/TCASKitTheme.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/Theme/TCASKitTheme.h deleted file mode 100644 index f5e8f519..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/Theme/TCASKitTheme.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// TCASKitTheme.h -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/26. -// Copyright © 2020 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface TCASKitTheme : NSObject - -#pragma mark - 颜色 - -/// 标题颜色 -@property (nonatomic, strong) UIColor *titleColor; -/// 背景色 -@property (nonatomic, strong) UIColor *backgroundColor; - -/// 通用字体颜色 -@property (nonatomic, strong) UIColor *normalFontColor; - -/// 滑杆配置 -@property (strong, nonatomic) UIColor *sliderMinColor; -@property (strong, nonatomic) UIColor *sliderMaxColor; -@property (strong, nonatomic) UIColor *sliderValueColor; - - -/// 资源包 -@property(nonatomic, strong)NSBundle *resourceBundle; - -- (UIFont *)themeFontWithSize:(CGFloat)size; -- (NSString *)localizedString:(NSString *)key __attribute__((annotate("returns_localized_nsstring"))); - -- (UIImage *)imageNamed:(NSString *)name; - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/Theme/TCASKitTheme.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/Theme/TCASKitTheme.m deleted file mode 100644 index c6f9a0c6..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/Theme/TCASKitTheme.m +++ /dev/null @@ -1,68 +0,0 @@ -// -// TCASKitTheme.m -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/26. -// Copyright © 2020 tencent. All rights reserved. -// - -#import "TCASKitTheme.h" - -#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \ -green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \ - blue:((float)(rgbValue & 0xFF))/255.0 \ -alpha:1.0] - -#define RGB(r,g,b) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:1] - -@interface TCASKitTheme () - - -@end - -@implementation TCASKitTheme - -#pragma mark - 初始化方法 -- (instancetype)init { - self = [super init]; - if (self) { - // 颜色初始化 - _titleColor = UIColorFromRGB(0xEBF4FF); - _backgroundColor = UIColorFromRGB(0x13233F); - _normalFontColor = UIColorFromRGB(0xEBF4FF); - _sliderMinColor = UIColorFromRGB(0x0062E3); - _sliderMaxColor = [UIColorFromRGB(0xEBF4FF) colorWithAlphaComponent:0.14]; - _sliderValueColor = UIColorFromRGB(0xEBF4FF); - - } - return self; -} - -#pragma mark - 属性懒加载 -/// 初始化资源包 -- (NSBundle *)resourceBundle { - if (!_resourceBundle) { - NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"AudioEffectSettingKitResources" ofType:@"bundle"]; - NSBundle* bundle = [NSBundle bundleWithPath:resourcePath]; - _resourceBundle = bundle ?:[NSBundle mainBundle]; - } - return _resourceBundle; -} - -- (NSString *)localizedString:(NSString *)key { - return [self.resourceBundle localizedStringForKey:key value:@"" table:@"AudioSettingPanelLocalizable"]; -} - -- (UIFont *)themeFontWithSize:(CGFloat)size { - return [UIFont fontWithName:@"PingFangSC-Regular" size:size]; -} - -- (UIImage *)imageNamed:(NSString *)name { - UIImage *image = [UIImage imageNamed:name - inBundle:self.resourceBundle - compatibleWithTraitCollection:nil]; - return image; -} - - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/AudioEffectSettingViewModel.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/AudioEffectSettingViewModel.h deleted file mode 100644 index 2779cd33..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/AudioEffectSettingViewModel.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// AudioEffectSettingViewModel.h -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@protocol TCMusicPlayStatusDelegate - -- (void)onStartPlayMusic; -- (void)onStopPlayerMusic; -- (void)onCompletePlayMusic; -- (void)onPlayingWithCurrent:(NSInteger)currentSec total:(NSInteger)totalSec; - -@end - -@class TCAudioScrollMenuCellModel; -@class TCMusicSelectedModel; -@class TXAudioEffectManager; -@interface AudioEffectSettingViewModel : NSObject - -@property (nonatomic, weak)id delegate; - -@property (nonatomic, strong) NSArray *voiceChangeSources; -@property (nonatomic, strong) NSArray *reverberationSources; - -@property (nonatomic, strong) NSArray *musicSources; - -- (NSInteger)getcurrentMusicTatolDurationInMs; - -- (void)setAudioEffectManager:(TXAudioEffectManager *)manager; - -- (void)setMusicVolum:(NSInteger)volum; - -- (void)setVoiceVolum:(NSInteger)volum; - -- (void)setPitchVolum:(CGFloat)volum; - -/// 播放音乐 -/// @param path 音乐路径 -/// @param bgmID 音乐ID -- (void)playMusicWithPath:(NSString *)path bgmID:(NSInteger)bgmID; - -- (void)stopPlay; - -- (void)pausePlay; - -- (void)resumePlay; - -- (void)resetStatus; - -- (void)recoveryVoiceSetting; // 恢复音效设置 - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/AudioEffectSettingViewModel.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/AudioEffectSettingViewModel.m deleted file mode 100644 index e07c4c72..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/AudioEffectSettingViewModel.m +++ /dev/null @@ -1,344 +0,0 @@ -// -// AudioEffectSettingViewModel.m -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import "AudioEffectSettingViewModel.h" -#import "TCAudioScrollMenuCellModel.h" -#import "TCMusicSelectedModel.h" -#import "TCAudioSettingManager.h" - -@interface AudioEffectSettingViewModel () - -@property (nonatomic, strong) TCASKitTheme *theme; -@property (nonatomic, strong) TCAudioSettingManager* manager; - -@property (nonatomic, assign) NSInteger currentReverb; -@property (nonatomic, assign) NSInteger currentChangerType; - -@property (nonatomic, assign) BOOL isPlaying; -@property (nonatomic, assign) BOOL isPlayComplete; - -@property (nonatomic, strong) NSString* currentMusicPath; -@property (nonatomic, assign) NSInteger bgmID; - -@property (nonatomic, assign) NSInteger currentMusicVolum; -@property (nonatomic, assign) CGFloat currentPitchVolum; - -@end - -@implementation AudioEffectSettingViewModel - -#define L(x) [self.theme localizedString:x] - -- (instancetype)init -{ - self = [super init]; - if (self) { - self.theme = [[TCASKitTheme alloc] init]; - self.currentMusicVolum = 100; - self.currentPitchVolum = 0; - [self createDataSource]; - } - return self; -} - -- (TCAudioSettingManager *)manager { - if (!_manager) { - _manager = [[TCAudioSettingManager alloc] init]; - _manager.delegate = self; - } - return _manager; -} - -- (void) setAudioEffectManager:(TXAudioEffectManager *)manager { - [self.manager setAudioEffectManager:manager]; -} - -- (void)createDataSource { - self.voiceChangeSources = [self createVoiceChangeDataSource]; - self.reverberationSources = [self createReverberationDataSource]; - self.musicSources = [self createMusicDataSources]; -} - -- (NSArray *)createVoiceChangeDataSource{ - NSArray *audioChangeEffect = @[@{ - @"title":L(@"ASKit.MenuItem.Original"), - @"iconName":@"voiceChange_normal_close", - @"selectIconName":@"voiceChange_normal_open", - @"voiceChangerType":@(0) - }, - @{ - @"title":L(@"ASKit.MenuItem.Naughty boy"), - @"iconName":@"voiceChange_xionghaizi", - @"selectIconName":@"voiceChange_xionghaizi", - @"voiceChangerType":@(1) - }, - @{ - @"title":L(@"ASKit.MenuItem.Little girl"), - @"iconName":@"voiceChange_luoli", - @"selectIconName":@"voiceChange_luoli", - @"voiceChangerType":@(2) - }, - @{ - @"title":L(@"ASKit.MenuItem.Middle-aged man"), - @"iconName":@"voiceChange_dashu", - @"selectIconName":@"voiceChange_dashu", - @"voiceChangerType":@(3) - }, - @{ - @"title":L(@"ASKit.MenuItem.Heavy metal"), - @"iconName":@"voiceChange_zhongjinshu", - @"selectIconName":@"voiceChange_zhongjinshu", - @"voiceChangerType":@(4) - }, - //TODO: 由于感冒特效SDK层有bug 8.6版本暂时移除 -// @{ -// @"title":L(@"ASKit.MenuItem.Being cold"), -// @"iconName":@"voiceChange_ganmao", -// @"selectIconName":@"voiceChange_ganmao", -// @"voiceChangerType":@(5) -// }, - @{ - @"title":L(@"ASKit.MenuItem.Non-native speaker"), - @"iconName":@"voiceChange_waiguo", - @"selectIconName":@"voiceChange_waiguo", - @"voiceChangerType":@(6) - }, - @{ - @"title":L(@"ASKit.MenuItem.Furious animal"), - @"iconName":@"voiceChange_kunshou", - @"selectIconName":@"voiceChange_kunshou", - @"voiceChangerType":@(7) - }, - @{ - @"title":L(@"ASKit.MenuItem.Fat otaku"), - @"iconName":@"voiceChange_feizhai", - @"selectIconName":@"voiceChange_feizhai", - @"voiceChangerType":@(8) - }, - @{ - @"title":L(@"ASKit.MenuItem.Strong electric current"), - @"iconName":@"voiceChange_qiangdianliu", - @"selectIconName":@"voiceChange_qiangdianliu", - @"voiceChangerType":@(9) - }, - @{ - @"title":L(@"ASKit.MenuItem.Robot"), - @"iconName":@"voiceChange_jixie", - @"selectIconName":@"voiceChange_jixie", - @"voiceChangerType":@(10) - }, - @{ - @"title":L(@"ASKit.MenuItem.Ethereal voice"), - @"iconName":@"voiceChange_konglin", - @"selectIconName":@"voiceChange_konglin", - @"voiceChangerType":@(11) - }]; - - NSMutableArray *result = [[NSMutableArray alloc] initWithCapacity:2]; - for (int index = 0; index < audioChangeEffect.count; index++) { - NSDictionary *audioChangeEffectDic = audioChangeEffect[index]; - NSString *title = audioChangeEffectDic[@"title"]; - NSString *normalIconName = audioChangeEffectDic[@"iconName"]; - NSString *selectedIconName = audioChangeEffectDic[@"selectIconName"]; - NSInteger voiceChangerIndex = [audioChangeEffectDic[@"voiceChangerType"] integerValue]; - - TCAudioScrollMenuCellModel *model = [[TCAudioScrollMenuCellModel alloc] init]; - model.title = title; - model.actionID = voiceChangerIndex; - if ([title isEqualToString:L(@"ASKit.MenuItem.Original")]) { - model.selected = YES; - } else { - model.selected = NO; - } - model.icon = [self.theme imageNamed:normalIconName]; - model.selectedIcon = [self.theme imageNamed:selectedIconName]; - model.action = ^{ - [self.manager setVoiceChangerTypeWithValue:voiceChangerIndex]; - self.currentChangerType = voiceChangerIndex; - }; - if (model.icon) { - [result addObject:model]; - } - } - return result; -} - -- (NSArray *)createReverberationDataSource{ - NSArray *titleArray = @[ - L(@"ASKit.MenuItem.No effect"), - L(@"ASKit.MenuItem.Karaoke room"), - L(@"ASKit.MenuItem.Small room"), - L(@"ASKit.MenuItem.Big hall"), - L(@"ASKit.MenuItem.Deep"), - L(@"ASKit.MenuItem.Resonant"), - L(@"ASKit.MenuItem.Metallic"), - L(@"ASKit.MenuItem.Husky") - ]; - NSArray *iconNameArray = @[@"Reverb_normal_close", @"Reverb_KTV", @"Reverb_literoom", @"Reverb_dahuitang", @"Reverb_dicheng", @"Reverb_hongliang", @"Reverb_zhongjinshu", @"Reverb_cixin"]; - NSArray *iconSelectedNameArray = @[@"Reverb_normal_open", @"Reverb_KTV", @"Reverb_literoom", @"Reverb_dahuitang", @"Reverb_dicheng", @"Reverb_hongliang", @"Reverb_zhongjinshu", @"Reverb_cixin"]; - NSMutableArray *result = [[NSMutableArray alloc] initWithCapacity:2]; - for (int index = 0; index < titleArray.count; index += 1) { - NSString *title = titleArray[index]; - NSString *normalIconName = iconNameArray[index]; - NSString *selectedIconName = iconSelectedNameArray[index]; - TCAudioScrollMenuCellModel *model = [[TCAudioScrollMenuCellModel alloc] init]; - model.actionID = index; - model.title = title; - if ([title isEqualToString:L(@"ASKit.MenuItem.No effect")]) { - model.selected = YES; - } else { - model.selected = NO; - } - model.icon = [self.theme imageNamed:normalIconName]; - model.selectedIcon = [self.theme imageNamed:selectedIconName]; - model.action = ^{ - [self.manager setReverbTypeWithValue:index]; - self.currentReverb = index; - }; - if (model.icon) { - [result addObject:model]; - } - } - return result; -} - -- (NSArray *)createMusicDataSources { - NSArray* musicsData = @[ - @{ - @"name": L(@"ASKit.MenuItem.Surround sound test 1"), - @"singer": L(@"ASKit.MenuItem.Unknown"), - @"url": @"https://liteav.sdk.qcloud.com/app/res/bgm/testmusic1.mp3" - }, - @{ - @"name": L(@"ASKit.MenuItem.Surround sound test 2"), - @"singer": L(@"ASKit.MenuItem.Unknown"), - @"url": @"https://liteav.sdk.qcloud.com/app/res/bgm/testmusic2.mp3" - }, - @{ - @"name": L(@"ASKit.MenuItem.Surround sound test 3"), - @"singer": L(@"ASKit.MenuItem.Unknown"), - @"url": @"https://liteav.sdk.qcloud.com/app/res/bgm/testmusic3.mp3" - } - ]; - NSMutableArray *result = [[NSMutableArray alloc] initWithCapacity:2]; - __weak __typeof(self) weakSelf = self; - for (int index = 0; index < musicsData.count; index += 1) { - NSDictionary* dic = musicsData[index]; - TCMusicSelectedModel* model = [[TCMusicSelectedModel alloc] init]; - model.musicID = 1000 + index; - model.musicName = dic[@"name"]; - model.singerName = dic[@"singer"]; - model.resourceURL = dic[@"url"]; - model.isLocal = NO; - - model.action = ^(BOOL isSelected){ - NSLog(@"选择了音乐%@", dic[@"name"]); - [weakSelf stopPlay]; - [weakSelf playMusicWithPath:dic[@"url"] bgmID:1000 + index]; - }; - [result addObject:model]; - } - - return result; -} - -- (NSInteger)getcurrentMusicTatolDurationInMs { - return [self.manager getcurrentMusicTatolDurationInMs]; -} - -- (void)setMusicVolum:(NSInteger)volum { - self.currentMusicVolum = volum; - [self.manager setBGMVolume:volum]; -} - -- (void)setVoiceVolum:(NSInteger)volum { - [self.manager setVoiceVolume:volum]; -} - -- (void)setPitchVolum:(CGFloat)volum { - self.currentPitchVolum = volum; - [self.manager setBGMPitch:volum]; -} - -/// 播放音乐 -/// @param path 音乐路径 -/// @param bgmID 音乐ID -- (void)playMusicWithPath:(NSString *)path bgmID:(NSInteger)bgmID { - self.currentMusicPath = path; - self.bgmID = bgmID; - [self.manager playMusicWithPath:path bgmID:bgmID]; - [self.manager setBGMVolume:self.currentMusicVolum]; - [self.manager setBGMPitch:self.currentPitchVolum]; -} - -- (void)stopPlay { - self.isPlaying = NO; - [self.manager stopPlay]; -} - -- (void)pausePlay { - self.isPlaying = NO; - [self.manager pausePlay]; -} - -- (void)resumePlay { - if (self.isPlayComplete) { - if (self.currentMusicPath != nil && self.bgmID != -1) { - [self.manager playMusicWithPath:self.currentMusicPath bgmID:self.bgmID]; - } - } else { - self.isPlaying = YES; - [self.manager resumePlay]; - } - -} - -- (void)resetStatus { - self.isPlaying = NO; - self.isPlayComplete = YES; - [self.manager clearStates]; -} - --(void)onStartPlayMusic { - self.isPlaying = YES; - self.isPlayComplete = NO; - if (self.delegate && [self.delegate respondsToSelector:@selector(onStartPlayMusic)]) { - [self.delegate onStartPlayMusic]; - } -} - -- (void)onPlayingWithCurrent:(NSInteger)currentSec total:(NSInteger)totalSec{ - if (self.delegate && [self.delegate respondsToSelector:@selector(onPlayingWithCurrent:total:)]) { - [self.delegate onPlayingWithCurrent:currentSec total:totalSec]; - } -} - -- (void)onStopPlayerMusic { - self.currentMusicPath = nil; - self.bgmID = -1; - self.isPlaying = NO; - self.isPlayComplete = YES; - if (self.delegate && [self.delegate respondsToSelector:@selector(onStopPlayerMusic)]) { - [self.delegate onStopPlayerMusic]; - } -} - -- (void)onCompletePlayMusic { - self.isPlaying = NO; - self.isPlayComplete = YES; - if (self.delegate && [self.delegate respondsToSelector:@selector(onCompletePlayMusic)]) { - [self.delegate onCompletePlayMusic]; - } -} - -- (void)recoveryVoiceSetting { - [self.manager setReverbTypeWithValue:self.currentReverb]; - [self.manager setVoiceChangerTypeWithValue:self.currentChangerType]; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/TCAudioScrollMenuCellModel.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/TCAudioScrollMenuCellModel.h deleted file mode 100644 index 66e73e2b..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/TCAudioScrollMenuCellModel.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// TCAudioScrollMenuCellModel.h -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -typedef void(^CellAction)(void); - -@interface TCAudioScrollMenuCellModel : NSObject - -@property (nonatomic, assign) NSInteger actionID; -@property (nonatomic, strong) NSString *title; -@property (nonatomic, strong) UIImage *icon; -@property (nonatomic, strong) UIImage *selectedIcon; -@property (nonatomic, assign, getter=isSelected) BOOL selected; -@property (nonatomic, copy)CellAction action; - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/TCAudioScrollMenuCellModel.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/TCAudioScrollMenuCellModel.m deleted file mode 100644 index a99b84e0..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/TCAudioScrollMenuCellModel.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// TCAudioScrollMenuCellModel.m -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import "TCAudioScrollMenuCellModel.h" - -@implementation TCAudioScrollMenuCellModel - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/TCMusicSelectedModel.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/TCMusicSelectedModel.h deleted file mode 100644 index c1a83b48..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/TCMusicSelectedModel.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// TCMusicSelectedModel.h -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/28. -// Copyright © 2020 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN -typedef void(^MusicSelectAction)(BOOL); -@interface TCMusicSelectedModel : NSObject - -@property (nonatomic, assign) uint32_t musicID; -@property (nonatomic, strong) NSString *musicName; -@property (nonatomic, strong) NSString *singerName; -@property (nonatomic, assign) BOOL isLocal; -@property (nonatomic, strong) NSString *resourceURL; - -@property (nonatomic, copy) MusicSelectAction action; - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/TCMusicSelectedModel.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/TCMusicSelectedModel.m deleted file mode 100644 index 79f990a4..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Model/ViewModel/TCMusicSelectedModel.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// TCMusicSelectedModel.m -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/28. -// Copyright © 2020 tencent. All rights reserved. -// - -#import "TCMusicSelectedModel.h" - -@implementation TCMusicSelectedModel - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Tool/TCAudioSettingPrefixHeader.pch b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Tool/TCAudioSettingPrefixHeader.pch deleted file mode 100644 index 553f63ad..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Tool/TCAudioSettingPrefixHeader.pch +++ /dev/null @@ -1,19 +0,0 @@ -// -// TCAudioSettingPrefixHeader.pch -// AudioSettingKit -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#ifndef TCAudioSettingPrefixHeader_pch -#define TCAudioSettingPrefixHeader_pch - -// Include any system framework and library headers here that should be included in all compilation units. -// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file. - -#import "ASMasonry.h" -#import "TCASKitTheme.h" -#import "TCCommonTool.h" - -#endif /* TCAudioSettingPrefixHeader_pch */ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Tool/TCCommonTool.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Tool/TCCommonTool.h deleted file mode 100644 index eb15b59b..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/Tool/TCCommonTool.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// TCCommonTool.h -// AudioSettingKit -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#ifndef TCCommonTool_h -#define TCCommonTool_h - -#define kScreenValue(value) value * 375 / [UIScreen mainScreen].bounds.size.width - -#endif /* TCCommonTool_h */ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/AudioEffectSettingView.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/AudioEffectSettingView.h deleted file mode 100644 index c29939f2..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/AudioEffectSettingView.h +++ /dev/null @@ -1,54 +0,0 @@ -// -// AudioEffectSettingView.h -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/26. -// Copyright © 2020 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -typedef NS_ENUM(NSUInteger, AudioEffectSettingViewType) { - AudioEffectSettingViewDefault, // 默认大小,在底部弹起 - AudioEffectSettingViewCustom, // 用户自定义大小,初始化frame为0 -}; - -@protocol AudioEffectViewDelegate - --(void)onEffectViewHidden:(BOOL)isHidden; - -@end - -@class TXAudioEffectManager; -@class TCASKitTheme; -@interface AudioEffectSettingView : UIView - -@property(nonatomic, weak)id delegate; - -+ (CGFloat)height; - -- (instancetype)initWithType:(AudioEffectSettingViewType)type; -- (instancetype)initWithType:(AudioEffectSettingViewType)type theme:(TCASKitTheme *)theme; - -- (void)setAudioEffectManager:(TXAudioEffectManager *)manager; - -- (void)show; -- (void)hide; -- (BOOL)isShow; - -/// 停止播放音乐 -- (void)stopPlay; - -- (void)recoveryVoiceSetting; // 恢复音效设置(一般禁用本地麦克风后,会导致音效设置失效) - -/// 清除音效设置状态(再次恢复需要重新设置Manager) -- (void)resetAudioSetting; - -/// 清除背景音乐播放状态 (主播暂停播放后需要恢复播放音乐的状态) -- (void)resetBgmSelectItemStatus; - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/AudioEffectSettingView.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/AudioEffectSettingView.m deleted file mode 100644 index 791f2aef..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/AudioEffectSettingView.m +++ /dev/null @@ -1,537 +0,0 @@ -// -// AudioEffectSettingView.m -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/26. -// Copyright © 2020 tencent. All rights reserved. -// - -#import "AudioEffectSettingView.h" -#import "TCMusicSelectItemView.h" -#import "TCSlideItemView.h" -#import "TCAudioScrollMenuView.h" -#import "TCMusicSelectView.h" -#import "AudioEffectSettingViewModel.h" -#import "TCMusicSelectedModel.h" -#import "TCMusicSelectedModel.h" - -#define IS_IPhoneXSeries \ -({BOOL isPhoneX = NO;\ -if (@available(iOS 11.0, *)) {\ -isPhoneX = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom > 0.0;\ -}\ -(isPhoneX);}) - -#define kSafeAreaBottom 34 -#define kDefaultHeight 526 - -@interface AudioEffectSettingView () { - BOOL _isViewReady; // 视图布局是否完成 - AudioEffectSettingViewType _currentType; - BOOL _isShow; -} - -@property (nonatomic, strong) AudioEffectSettingViewModel* viewModel; - -@property (nonatomic, strong) TCASKitTheme *theme; - - -// 视图相关属性 -@property(nonatomic, strong) UIView *mainContainer; -@property (nonatomic, strong) UIView *headerContainer; -@property (nonatomic, strong) UILabel *titleLabel; -@property (nonatomic, strong) UIButton *closeButton; - -@property (nonatomic, strong) TCMusicSelectItemView *musicSelectItemView; - -@property (nonatomic, strong) UIStackView *slideContainer; -@property (nonatomic, strong) TCSlideItemView *musicVolumView; -@property (nonatomic, strong) TCSlideItemView *personVolumView; -@property (nonatomic, strong) TCSlideItemView *personPitchView; - -@property (nonatomic, strong) UIStackView *collectionContainer; -@property (nonatomic, strong) TCAudioScrollMenuView *voiceChangeView; -@property (nonatomic, strong) TCAudioScrollMenuView *reverberationView; - -@property (nonatomic, strong) TCMusicSelectView* musiceSelectView; - -@property (nonatomic, strong) TCMusicSelectedModel *currentMusic; - -@end - -@implementation AudioEffectSettingView - -- (instancetype)initWithType:(AudioEffectSettingViewType)type theme:(TCASKitTheme *)theme { - self = [super initWithFrame:CGRectZero]; - if (self) { - self->_theme = theme; - self->_currentType = type; - CGFloat bottom_height = IS_IPhoneXSeries ? kSafeAreaBottom : 0; - self.frame = CGRectMake(0, - [UIScreen mainScreen].bounds.size.height - kDefaultHeight - bottom_height, - [UIScreen mainScreen].bounds.size.width, - kDefaultHeight + bottom_height); - [self createViewModel]; - [self setupInitStyle]; - [self bindInteraction]; - } - return self; -} - -- (instancetype)initWithType:(AudioEffectSettingViewType)type { - return [self initWithType:type theme:nil]; -} - -- (instancetype)initWithFrame:(CGRect)frame -{ - self = [super initWithFrame:frame]; - if (self) { - [self createViewModel]; - self->_currentType = AudioEffectSettingViewCustom; - [self createViewModel]; - [self setupInitStyle]; - [self bindInteraction]; - } - return self; -} - -- (instancetype)initWithCoder:(NSCoder *)coder -{ - self = [super initWithCoder:coder]; - if (self) { - [self createViewModel]; - self->_currentType = AudioEffectSettingViewCustom; - [self setupInitStyle]; - [self bindInteraction]; - - } - return self; -} - -- (void)setupInitStyle { - self.hidden = YES; - self.alpha = 0.0; - [self initBackgroundColor]; -} - -- (void)createViewModel { - self.viewModel = [[AudioEffectSettingViewModel alloc] init]; - self.viewModel.delegate = self; -} - -#pragma mark - public method 实现 - -+ (CGFloat)height { - return kDefaultHeight; -} - -- (void)show { - if (self->_isShow) { - return; - } - self->_isShow = YES; - self.alpha = 0.0; - self.hidden = YES; - [UIView animateWithDuration:0.3 animations:^{ - self.alpha = 1.0; - self.hidden = NO; - }]; - if (self.delegate && [self.delegate respondsToSelector:@selector(onEffectViewHidden:)]) { - [self.delegate onEffectViewHidden:NO]; - } -} - -- (void)hide { - if (!self->_isShow) { - return; - } - self->_isShow = NO; - self.alpha = 1.0; - self.hidden = NO; - if (self.musiceSelectView.isHidden == NO) { - [self.musiceSelectView hide]; - } - [UIView animateWithDuration:0.3 animations:^{ - self.alpha = 0.0; - self.hidden = YES; - }]; - if (self.delegate && [self.delegate respondsToSelector:@selector(onEffectViewHidden:)]) { - [self.delegate onEffectViewHidden:YES]; - } -} - -- (void)setAudioEffectManager:(TXAudioEffectManager *)manager { - [self.viewModel setAudioEffectManager:manager]; -} - -- (void)stopPlay { - [self.viewModel stopPlay]; -} - -- (void)recoveryVoiceSetting { - [self.viewModel recoveryVoiceSetting]; -} - - -#pragma mark - 视图属性懒加载 -- (TCASKitTheme *)theme { - if (!_theme) { - _theme = [[TCASKitTheme alloc] init]; - } - return _theme; -} - -- (UIView *)mainContainer { - if (!_mainContainer) { - _mainContainer = [[UIView alloc] initWithFrame:CGRectZero]; - _mainContainer.backgroundColor = UIColor.clearColor; - } - return _mainContainer; -} - -- (UIView *)headerContainer { - if (!_headerContainer) { - _headerContainer = [[UIView alloc] initWithFrame:CGRectZero]; - _headerContainer.backgroundColor = UIColor.clearColor; - } - return _headerContainer; -} - -- (UIStackView *)slideContainer { - if (!_slideContainer) { - _slideContainer = [[UIStackView alloc] initWithFrame:CGRectZero]; - _slideContainer.axis = UILayoutConstraintAxisVertical; - _slideContainer.spacing = 30.0; - _slideContainer.alignment = UIStackViewAlignmentFill; - _slideContainer.distribution = UIStackViewDistributionEqualCentering; - } - return _slideContainer; -} - -- (UIStackView *)collectionContainer { - if (!_collectionContainer) { - _collectionContainer = [[UIStackView alloc] initWithFrame:CGRectZero]; - _collectionContainer.axis = UILayoutConstraintAxisVertical; - _collectionContainer.spacing = 20.0; - _collectionContainer.alignment = UIStackViewAlignmentFill; - _collectionContainer.distribution = UIStackViewDistributionEqualCentering; - } - return _collectionContainer; -} - -- (UILabel *)titleLabel { - if (!_titleLabel) { - UILabel* label = [[UILabel alloc] initWithFrame:CGRectZero]; - label.text = [self.theme localizedString:@"ASKit.MainMenu.Title"]; - label.font = [self.theme themeFontWithSize:16.0]; - label.textColor = self.theme.normalFontColor; - _titleLabel = label; - } - return _titleLabel; -} - -- (UIButton *)closeButton { - if (!_closeButton) { - UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom]; - [button setTitle:[self.theme localizedString:@"ASKit.Common.Close"] forState:UIControlStateNormal]; - button.titleLabel.font = [self.theme themeFontWithSize:16.0]; - [button setTitleColor:[self.theme normalFontColor] forState:UIControlStateNormal]; - _closeButton = button; - } - return _closeButton; -} - -- (TCMusicSelectItemView *)musicSelectItemView { - if (!_musicSelectItemView) { - _musicSelectItemView = [[TCMusicSelectItemView alloc] init]; - } - return _musicSelectItemView; -} - -- (TCSlideItemView *)musicVolumView { - if (!_musicVolumView) { - TCSlideItemView *slideView = [[TCSlideItemView alloc] init]; - slideView.title = [self.theme localizedString:@"ASKit.MainMenu.MusicVolum"]; - slideView.icon = [self.theme imageNamed:@"VoiceSetting_volum"]; - slideView.defaultValue = 100.0; - slideView.delegate = self; - _musicVolumView = slideView; - } - return _musicVolumView; -} - -- (TCSlideItemView *)personVolumView { - if (!_personVolumView) { - TCSlideItemView *slideView = [[TCSlideItemView alloc] init]; - slideView.title = [self.theme localizedString:@"ASKit.MainMenu.PersonVolum"]; - slideView.icon = [self.theme imageNamed:@"VoiceSetting_volum"]; - slideView.defaultValue = 100.0; - slideView.delegate = self; - _personVolumView = slideView; - } - return _personVolumView; -} - -- (TCSlideItemView *)personPitchView { - if (!_personPitchView) { - TCSlideItemView *slideView = [[TCSlideItemView alloc] init]; - slideView.title = [self.theme localizedString:@"ASKit.MainMenu.PersonPitch"]; - slideView.minValue = -1.0; - slideView.maxVlaue = 1.0; - slideView.defaultValue = 0.0; - slideView.delegate = self; - slideView.isFloatAccuracy = YES; - _personPitchView = slideView; - } - return _personPitchView; -} - -- (TCAudioScrollMenuView *)voiceChangeView { - if (!_voiceChangeView) { - TCAudioScrollMenuView *view = [[TCAudioScrollMenuView alloc] init]; - view.title = [self.theme localizedString:@"ASKit.MainMenu.VoiceChangeTitle"]; - view.dataSource = self.viewModel.voiceChangeSources; - _voiceChangeView = view; - } - return _voiceChangeView; -} - -- (TCAudioScrollMenuView *)reverberationView { - if (!_reverberationView) { - TCAudioScrollMenuView *view = [[TCAudioScrollMenuView alloc] init]; - view.title = [self.theme localizedString:@"ASKit.MainMenu.Reverberation"]; - view.dataSource = self.viewModel.reverberationSources; - _reverberationView = view; - } - return _reverberationView; -} - -- (TCMusicSelectView *)musiceSelectView { - if (!_musiceSelectView) { - _musiceSelectView = [[TCMusicSelectView alloc] initWithViewModel:self.viewModel]; - _musiceSelectView.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 280); // 提前设置frame,方便切圆角 - _musiceSelectView.delegate = self; - } - return _musiceSelectView; -} - -- (void)setBackgroundColor:(UIColor *)backgroundColor { - [super setBackgroundColor:UIColor.clearColor]; - self.mainContainer.backgroundColor = backgroundColor; - self.musiceSelectView.backgroundColor = backgroundColor; -} - -#pragma mark - 视图生命周期 -- (void)didMoveToWindow { - [super didMoveToWindow]; - if (self->_isViewReady) { - return; - } - [self constructViewHierachy]; - [self activateConstraints]; - self->_isViewReady = YES; - [self setupStyle]; -} - -#pragma mark - 构造视图层级,初始化布局 -/// 构造视图层级 -- (void)constructViewHierachy { - [self addSubview:self.mainContainer]; - [self.mainContainer addSubview:self.headerContainer]; - [self.headerContainer addSubview:self.titleLabel]; - [self.headerContainer addSubview:self.closeButton]; - [self.mainContainer addSubview:self.slideContainer]; - [self.mainContainer addSubview:self.collectionContainer]; - - [self.mainContainer addSubview:self.musicSelectItemView]; - - [self.slideContainer addArrangedSubview:self.musicVolumView]; - [self.slideContainer addArrangedSubview:self.personVolumView]; - [self.slideContainer addArrangedSubview:self.personPitchView]; - [self.mainContainer addSubview:self.slideContainer]; - - [self.collectionContainer addArrangedSubview:self.voiceChangeView]; - [self.collectionContainer addArrangedSubview:self.reverberationView]; - [self.mainContainer addSubview:self.collectionContainer]; - - [self addSubview:self.musiceSelectView]; -} - -/// 构造视图约束 -- (void)activateConstraints { - [self.mainContainer mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.left.right.equalTo(self); - make.top.equalTo(self); - make.bottom.equalTo(self); - }]; - [self activeConstraintsOfTitleContainer]; - [self activeConstraintsOfMusicSelectItem]; - [self activeConstraintsOfSlideContainer]; - [self activeConstraintsOfCollectionContainer]; - [self activeConstraintsOfMusicSelectView]; -} - -- (void)activeConstraintsOfTitleContainer { - [self.headerContainer mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.left.right.equalTo(self); - make.top.equalTo(self); - make.height.mas_equalTo(56); - }]; - [self.titleLabel mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerX.equalTo(self.headerContainer.mas_centerX); - make.centerY.equalTo(self.headerContainer.mas_centerY); - }]; - [self.titleLabel sizeToFit]; - [self.closeButton mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerY.equalTo(self.headerContainer.mas_centerY); - make.right.equalTo(self.headerContainer.mas_right).offset(-20.0); - }]; - [self.closeButton sizeToFit]; -} - -- (void)activeConstraintsOfMusicSelectItem { - [self.musicSelectItemView mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.top.equalTo(self.headerContainer.mas_bottom); - make.left.equalTo(self.mas_left); - make.right.equalTo(self.mas_right); - make.height.mas_equalTo(52); - }]; -} - -- (void)activeConstraintsOfSlideContainer { - [self.slideContainer mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.top.equalTo(self.musicSelectItemView.mas_bottom).offset(14.0); - make.left.right.equalTo(self); - }]; - [self.musicVolumView mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.height.mas_equalTo(24.0); - make.width.equalTo(self.slideContainer.mas_width); - }]; - [self.personVolumView mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.height.mas_equalTo(24.0); - make.width.equalTo(self.slideContainer.mas_width); - }]; - [self.personPitchView mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.height.mas_equalTo(24.0); - make.width.equalTo(self.slideContainer.mas_width); - }]; -} - -- (void)activeConstraintsOfCollectionContainer { - [self.collectionContainer mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.top.equalTo(self.slideContainer.mas_bottom).offset(30); - make.left.right.equalTo(self); - }]; - [self.voiceChangeView mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.height.mas_equalTo(90.0); - make.width.equalTo(self.mas_width); - }]; - [self.reverberationView mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.height.mas_equalTo(90.0); - make.width.equalTo(self.mas_width); - }]; -} - -- (void)activeConstraintsOfMusicSelectView { - [self.musiceSelectView mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.left.right.equalTo(self); - make.height.mas_equalTo(280); - make.bottom.equalTo(self.mas_bottom); - }]; -} - -/// 绑定视图交互 -- (void)bindInteraction { - [self.closeButton addTarget:self action:@selector(hide) forControlEvents:UIControlEventTouchUpInside]; - self.musicSelectItemView.delegate = self; -} - -/// 设置视图样式 -- (void)setupStyle { - // 切圆角 - UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(10, 10)]; - CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; - maskLayer.frame = self.bounds; - maskLayer.path = maskPath.CGPath; - self.layer.mask = maskLayer; -} - -- (void)initBackgroundColor{ - // 设置背景色 - self.backgroundColor = UIColor.clearColor; - self.mainContainer.backgroundColor = self.theme.backgroundColor; - self.musiceSelectView.backgroundColor = self.theme.backgroundColor; -} - -#pragma mark - 视图操作响应代理 --(void)didClickItem { - [self.musiceSelectView show]; -} - -- (void)didClickPausButton:(BOOL)isPause { - if (isPause) { - [self.viewModel pausePlay]; - } else { - [self.viewModel resumePlay]; - } -} - -- (void)selectViewChangeState:(TCMusicSelectView *)view { - self.mainContainer.hidden = !view.isHidden; -} - -- (void)didSelectMusic:(TCMusicSelectedModel *)music isSelected:(BOOL)isSelected { - [self.musicSelectItemView selectMusic:music.musicName]; - self.currentMusic = music; - [self.musiceSelectView hide]; -} - -- (void)slideItemView:(TCSlideItemView *)view slideValueDidChanged:(CGFloat)value { - if (view == self.musicVolumView) { - // 设置音乐音量大小 - [self.viewModel setMusicVolum:value]; - } - if (view == self.personVolumView) { - // 设置人声音量大熊啊 - [self.viewModel setVoiceVolum:value]; - } - if (view == self.personPitchView) { - // 设置音调大小 - [self.viewModel setPitchVolum:value]; - } -} - -- (void)resetAudioSetting { - [self.viewModel resetStatus]; -} - -- (void)resetBgmSelectItemStatus { - [self.musicSelectItemView selectMusic:@""]; -} - --(void)onPlayingWithCurrent:(NSInteger)currentSec total:(NSInteger)totalSec { - NSString *currentStr = [self switchSecondToTimeStr:currentSec]; - NSString *totalString = [self switchSecondToTimeStr:totalSec]; - [self.musicSelectItemView refreshMusicPlayingProgress:[NSString stringWithFormat:@"%@/%@", currentStr, totalString]]; -} - -- (void)onStopPlayerMusic { - [self.musicSelectItemView selectMusic:@""]; -} - -- (void)onCompletePlayMusic { - [self.musicSelectItemView completeStatus]; -} - -- (NSString *)switchSecondToTimeStr:(NSInteger)secondNum { - NSInteger min = secondNum / 60; - NSString *minString = min > 9 ? [NSString stringWithFormat:@"%ld", min] : [NSString stringWithFormat:@"0%ld", (long)min]; - NSInteger sec = secondNum % 60; - NSString *secondString = sec > 9 ? [NSString stringWithFormat:@"%ld", sec] : [NSString stringWithFormat:@"0%ld", (long)sec]; - return [NSString stringWithFormat:@"%@:%@", minString, secondString]; -} - -- (BOOL)isShow { - return _isShow; -} -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCAudioScrollMenuView.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCAudioScrollMenuView.h deleted file mode 100644 index a00d7df9..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCAudioScrollMenuView.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// TCAudioScrollMenuView.h -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@class TCAudioScrollMenuCellModel; -@interface TCAudioScrollMenuView : UIView - -@property(nonatomic, strong)NSString* title; -@property(nonatomic, strong)NSArray *dataSource; - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCAudioScrollMenuView.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCAudioScrollMenuView.m deleted file mode 100644 index 76652478..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCAudioScrollMenuView.m +++ /dev/null @@ -1,140 +0,0 @@ -// -// TCAudioScrollMenuView.m -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import "TCAudioScrollMenuView.h" -#import "TCAudioScrollerMenuCell.h" -#import "TCAudioScrollMenuCellModel.h" - -@interface TCAudioScrollMenuView (){ - BOOL _isViewReady; -} - -@property (nonatomic, strong) TCASKitTheme *theme; - - -@property (nonatomic, strong) UILabel *titleLabel; -@property (nonatomic, strong) UICollectionView *menuView; - -@end - -@implementation TCAudioScrollMenuView -#pragma mark - 属性的set方法 -- (void)setTitle:(NSString *)title{ - _title = title; - self.titleLabel.text = title; -} - -- (void)setDataSource:(NSArray *)dataSource{ - _dataSource = dataSource; - [self.menuView reloadData]; - [self bindInteraction]; -} - -#pragma mark - 视图属性懒加载 -- (TCASKitTheme *)theme { - if (!_theme) { - _theme = [[TCASKitTheme alloc] init]; - } - return _theme; -} - -- (UILabel *)titleLabel { - if (!_titleLabel) { - UILabel *label = [[UILabel alloc] init]; - label.font = [self.theme themeFontWithSize:16.0]; - label.textColor = [self.theme normalFontColor]; - _titleLabel = label; - } - return _titleLabel; -} - -- (UICollectionView *)menuView { - if (!_menuView) { - UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:[self createCollectionLayout]]; - collectionView.delegate = self; - collectionView.dataSource = self; - collectionView.showsHorizontalScrollIndicator = NO; - collectionView.backgroundColor = UIColor.clearColor; - collectionView.allowsMultipleSelection = NO; - [collectionView registerClass:[TCAudioScrollerMenuCell class] forCellWithReuseIdentifier:@"TCAudioScrollerMenuCell"]; - _menuView = collectionView; - } - return _menuView; -} - -- (UICollectionViewFlowLayout *)createCollectionLayout { - UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; - layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; - layout.itemSize = CGSizeMake(44, 66); - layout.minimumLineSpacing = 15.0; - layout.sectionInset = UIEdgeInsetsMake(0, 20.0, 0, 20.0); - return layout; -} - -#pragma mark - 视图生命周期 -- (void)didMoveToWindow { - [super didMoveToWindow]; - if (self->_isViewReady) { - return; - } - [self constructViewHierachy]; - [self activateConstraints]; - self->_isViewReady = YES; - [self setupStyle]; -} - -- (void)constructViewHierachy { - [self addSubview:self.titleLabel]; - [self addSubview:self.menuView]; -} - -- (void)activateConstraints { - [self.titleLabel mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.top.equalTo(self); - make.left.equalTo(self).offset(20.0); - }]; - [self.titleLabel sizeToFit]; - [self.menuView mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.top.equalTo(self.titleLabel.mas_bottom).offset(10); - make.left.equalTo(self); - make.right.equalTo(self); - make.height.mas_equalTo(66); - }]; -} - -/// 绑定视图交互 -- (void)bindInteraction { - [self.menuView selectItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:0] animated:NO scrollPosition:UICollectionViewScrollPositionNone]; -} -/// 设置视图样式 -- (void)setupStyle { - -} - -#pragma mark - CollectionViewDelegate&&Datasource -- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ - TCAudioScrollMenuCellModel* model = self.dataSource[indexPath.row]; - model.action(); -} - -- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ - return self.dataSource.count; -} - -- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{ - return 1; -} - -- (nonnull __kindof UICollectionViewCell *)collectionView:(nonnull UICollectionView *)collectionView cellForItemAtIndexPath:(nonnull NSIndexPath *)indexPath { - TCAudioScrollerMenuCell *cell = (TCAudioScrollerMenuCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"TCAudioScrollerMenuCell" forIndexPath:indexPath]; - TCAudioScrollMenuCellModel* model = self.dataSource[indexPath.row]; - [cell setupCellWithModel:model]; - return cell; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCAudioScrollerMenuCell.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCAudioScrollerMenuCell.h deleted file mode 100644 index 12eb11aa..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCAudioScrollerMenuCell.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// TCAudioScrollerMenuCell.h -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@class TCAudioScrollMenuCellModel; -@interface TCAudioScrollerMenuCell : UICollectionViewCell - -- (void)setupCellWithModel:(TCAudioScrollMenuCellModel *)model; - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCAudioScrollerMenuCell.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCAudioScrollerMenuCell.m deleted file mode 100644 index 30ca7e3e..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCAudioScrollerMenuCell.m +++ /dev/null @@ -1,139 +0,0 @@ -// -// TCAudioScrollerMenuCell.m -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import "TCAudioScrollerMenuCell.h" -#import "TCAudioScrollMenuCellModel.h" - -@interface TCAudioScrollerMenuCell (){ - BOOL _isViewReady; -} -@property (nonatomic, strong) TCASKitTheme *theme; - -@property (nonatomic, strong) UIImageView *iconView; -@property (nonatomic, strong) UILabel *titleLabel; -@property (nonatomic, strong) TCAudioScrollMenuCellModel* model; - -@property(nonatomic, strong) UIImageView *selectedImageView; - -@end - -@implementation TCAudioScrollerMenuCell - -- (TCASKitTheme *)theme { - if (!_theme) { - _theme = [[TCASKitTheme alloc] init]; - } - return _theme; -} - -- (void)setSelected:(BOOL)selected { - [super setSelected:selected]; - if (self.model) { - self.model.selected = selected; - self.iconView.image = selected ? self.model.selectedIcon : self.model.icon; - } - _selectedImageView.hidden = !selected; - if (self.model.actionID == 0) { - _selectedImageView.hidden = YES; - } - self.titleLabel.alpha = selected ? 1.0 : 0.5; -} - -#pragma mark - 视图属性懒加载 -- (UIImageView *)iconView { - if (!_iconView) { - _iconView = [[UIImageView alloc] init]; - } - return _iconView; -} - -- (UILabel *)titleLabel { - if (!_titleLabel) { - _titleLabel = [[UILabel alloc] init]; - _titleLabel.textColor = [self.theme normalFontColor]; - _titleLabel.font = [self.theme themeFontWithSize:10.0]; - _titleLabel.adjustsFontSizeToFitWidth = YES; - _titleLabel.textAlignment = NSTextAlignmentCenter; - _titleLabel.numberOfLines = 2; - } - return _titleLabel; -} - -- (UIImageView *)selectedImageView { - if (!_selectedImageView) { - _selectedImageView = [[UIImageView alloc] init]; - _selectedImageView.hidden = !self.isSelected; - _selectedImageView.image = [self.theme imageNamed:@"audiosettingkit_select"]; - } - return _selectedImageView;; -} - --(void)prepareForReuse { - self.iconView.image = nil; - self.titleLabel.text = @""; - self.selected = NO; - self.model = nil; -} - --(void)dealloc { - self.model = nil; -} - -#pragma mark - 视图生命周期 -- (void)didMoveToWindow { - [super didMoveToWindow]; - if (self->_isViewReady) { - return; - } - [self constructViewHierachy]; - [self activateConstraints]; - self->_isViewReady = YES; - [self setupStyle]; -} - -- (void)constructViewHierachy { - [self.contentView addSubview:self.iconView]; - [self.contentView addSubview:self.selectedImageView]; - [self.contentView addSubview:self.titleLabel]; -} - -- (void)activateConstraints { - [self.iconView mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.top.right.left.equalTo(self); - make.height.mas_equalTo(44.0); - }]; - [self.selectedImageView mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.top.right.left.bottom.equalTo(self.iconView); - }]; - [self.titleLabel mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerX.equalTo(self.mas_centerX); - make.top.equalTo(self.iconView.mas_bottom).offset(5.0); - make.bottom.equalTo(self.contentView.mas_bottom); - make.left.equalTo(self.contentView.mas_left); - make.right.equalTo(self.contentView.mas_right); - }]; -} - -/// 绑定视图交互 -- (void)bindInteraction { - -} -/// 设置视图样式 -- (void)setupStyle { - -} - -- (void)setupCellWithModel:(TCAudioScrollMenuCellModel *)model { - self.model = model; - self.titleLabel.text = model.title; - self.iconView.image = self.isSelected ? model.selectedIcon : model.icon; - self.titleLabel.alpha = self.isSelected ? 1.0 : 0.5; - self.selectedImageView.hidden = !self.isSelected; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectCell.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectCell.h deleted file mode 100644 index 1751e564..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectCell.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// TCMusicSelectCell.h -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/28. -// Copyright © 2020 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@class TCMusicSelectedModel; -@interface TCMusicSelectCell : UITableViewCell - -- (void)setupCellWithModel:(TCMusicSelectedModel *)model; - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectCell.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectCell.m deleted file mode 100644 index dbb65186..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectCell.m +++ /dev/null @@ -1,127 +0,0 @@ -// -// TCMusicSelectCell.m -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/28. -// Copyright © 2020 tencent. All rights reserved. -// - -#import "TCMusicSelectCell.h" -#import "TCMusicSelectedModel.h" - -@interface TCMusicSelectCell (){ - BOOL _isViewReady; -} -@property (nonatomic, strong) TCASKitTheme *theme; - -@property (nonatomic, strong) UILabel *nameLable; -@property (nonatomic, strong) UILabel *singerLabel; -@property (nonatomic, strong) UIButton *playButton; - -@end - -@implementation TCMusicSelectCell - -- (TCASKitTheme *)theme { - if (!_theme) { - _theme = [[TCASKitTheme alloc] init]; - } - return _theme; -} - -- (UILabel *)nameLable { - if (!_nameLable) { - _nameLable = [[UILabel alloc] init]; - _nameLable.font = [self.theme themeFontWithSize:16.0]; - _nameLable.textColor = self.theme.normalFontColor; - } - return _nameLable; -} - -- (UILabel *)singerLabel { - if (!_singerLabel) { - _singerLabel = [[UILabel alloc] init]; - _singerLabel.font = [self.theme themeFontWithSize:14.0]; - _singerLabel.textColor = self.theme.normalFontColor; - _singerLabel.alpha = 0.5; - } - return _singerLabel; -} - -- (UIButton *)playButton { - if (!_playButton) { - _playButton = [UIButton buttonWithType:UIButtonTypeCustom]; -// [_playButton setImage:[self.theme imageNamed:@"bgm_pause"] forState:UIControlStateSelected]; - [_playButton setImage:[self.theme imageNamed:@"bgm_play"] forState:UIControlStateNormal]; - _playButton.imageView.contentMode = UIViewContentModeScaleAspectFit; - _playButton.userInteractionEnabled = NO; - } - return _playButton; -} - - -- (void)awakeFromNib { - [super awakeFromNib]; - // Initialization code -} - -- (void)setSelected:(BOOL)selected animated:(BOOL)animated { - [super setSelected:selected animated:animated]; - // Configure the view for the selected state - self.playButton.selected = selected; -} - - -- (void)didMoveToWindow { - [super didMoveToWindow]; - if (self->_isViewReady) { - return; - } - [self constructViewHierachy]; - [self activateConstraints]; - self->_isViewReady = YES; - [self setupStyle]; -} - -- (void)constructViewHierachy { - [self addSubview:self.nameLable]; - [self addSubview:self.singerLabel]; - [self addSubview:self.playButton]; -} - -- (void)activateConstraints { - [self.nameLable mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.left.equalTo(self).offset(20); - make.bottom.equalTo(self.mas_centerY); - }]; - [self.singerLabel mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.left.equalTo(self).offset(20); - make.top.equalTo(self.mas_centerY); - }]; - [self.playButton mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.right.equalTo(self).offset(-20); - make.centerY.equalTo(self.mas_centerY); - make.height.mas_equalTo(24); - make.width.mas_equalTo(24); - }]; -} - -/// 绑定视图交互 -- (void)bindInteraction { - -} -/// 设置视图样式 -- (void)setupStyle { - self.selectionStyle = UITableViewCellSelectionStyleNone; - self.backgroundColor = UIColor.clearColor; -} - -- (void)setupCellWithModel:(TCMusicSelectedModel *)model { - self.nameLable.text = model.musicName; - self.singerLabel.text = model.singerName; - self.playButton.selected = self.isSelected; -} - - - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectItemView.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectItemView.h deleted file mode 100644 index 79e9fda2..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectItemView.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// TCMusicSelectItemView.h -// TCAudioSettingKitResources -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@protocol TCMusicSelectItemDelegate - -- (void)didClickItem; -- (void)didClickPausButton:(BOOL)isPause; - -@end - -@interface TCMusicSelectItemView : UIView - -@property (nonatomic, weak) id delegate; - -/// 选中音乐后传入名称 -/// @param musicName 音乐名(空字符串代表没有选中) -- (void)selectMusic:(NSString *)musicName; -- (void)refreshMusicPlayingProgress:(NSString *)progressString; -- (void)completeStatus; - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectItemView.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectItemView.m deleted file mode 100644 index dde2f437..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectItemView.m +++ /dev/null @@ -1,263 +0,0 @@ -// -// TCMusicSelectItemView.m -// TCAudioSettingKitResources -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import "TCMusicSelectItemView.h" - - -@interface TCMusicSelectItemView () { - BOOL _isViewReady; - BOOL _isPlayingStatus; -} - -@property (nonatomic, strong) TCASKitTheme *theme; - -@property (nonatomic, strong) UIView *selectStatusContainer; -@property (nonatomic, strong) UILabel *titleLabel; -@property (nonatomic, strong) UILabel *subTitleLabel; -@property (nonatomic, strong) UIImageView *rightIcon; - -@property (nonatomic, strong) UIView *playingStatusContainer; -@property (nonatomic, strong) UILabel *musicNameLabel; -@property (nonatomic, strong) UILabel *musicProgressLabel; -@property (nonatomic, strong) UIButton *pausButton; - -@end - -@implementation TCMusicSelectItemView - -#pragma mark - 视图属性懒加载 -- (TCASKitTheme *)theme { - if (!_theme) { - _theme = [[TCASKitTheme alloc] init]; - } - return _theme; -} - --(UIView *)selectStatusContainer { - if (!_selectStatusContainer) { - _selectStatusContainer = [[UIView alloc] init]; - } - return _selectStatusContainer;; -} - -- (UILabel *)titleLabel { - if (!_titleLabel) { - UILabel *label = [[UILabel alloc] init]; - label.text = [self.theme localizedString:@"ASKit.MainMenu.BGM"]; - label.font = [self.theme themeFontWithSize:16.0]; - label.textColor = self.theme.normalFontColor; - _titleLabel = label; - } - return _titleLabel; -} - -- (UILabel *)subTitleLabel { - if (!_subTitleLabel) { - UILabel *label = [[UILabel alloc] init]; - label.text = [self.theme localizedString:@"ASKit.MainMenu.SelectMusic"]; - label.font = [self.theme themeFontWithSize:14.0]; - label.textColor = self.theme.normalFontColor; - label.alpha = 0.5; - _subTitleLabel = label; - } - return _subTitleLabel; -} - -- (UIImageView *)rightIcon { - if (!_rightIcon) { - UIImageView *imageView = [[UIImageView alloc] init]; - imageView.contentMode = UIViewContentModeScaleAspectFit; - imageView.alpha = 0.7; - imageView.image = [self.theme imageNamed:@"VoiceSetting_SelectMusic"]; - _rightIcon = imageView; - } - return _rightIcon; -} - -- (UIView *)playingStatusContainer { - if (!_playingStatusContainer) { - _playingStatusContainer = [[UIView alloc] init]; - _playingStatusContainer.hidden = YES; - } - return _playingStatusContainer; -} - -- (UILabel *)musicNameLabel { - if (!_musicNameLabel) { - UILabel *label = [[UILabel alloc] init]; - label.textColor = self.theme.normalFontColor; - label.font = [self.theme themeFontWithSize:16.0]; - _musicNameLabel = label; - } - return _musicNameLabel; -} - -- (UILabel *)musicProgressLabel { - if (!_musicProgressLabel) { - UILabel *label = [[UILabel alloc] init]; - label.textColor = self.theme.normalFontColor; - label.font = [self.theme themeFontWithSize:16.0]; - label.textAlignment = NSTextAlignmentRight; - _musicProgressLabel = label; - } - return _musicProgressLabel; -} - -- (UIButton *)pausButton{ - if (!_pausButton) { - UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; - [button setImage:[self.theme imageNamed:@"bgm_pause"] forState:UIControlStateNormal]; - [button setImage:[self.theme imageNamed:@"bgm_play"] forState:UIControlStateSelected]; - button.imageView.contentMode = UIViewContentModeScaleAspectFit; - [button addTarget:self action:@selector(pauseAction:) forControlEvents:UIControlEventTouchUpInside]; - _pausButton = button; - } - return _pausButton; -} - -#pragma mark - 视图生命周期 -- (void)didMoveToWindow { - [super didMoveToWindow]; - if (self->_isViewReady) { - return; - } - [self constructViewHierachy]; - [self activateConstraints]; - self->_isViewReady = YES; - [self setupStyle]; - [self bindInteraction]; -} - - -#pragma mark - 构造视图层级,初始化布局 -/// 构造视图层级 -- (void)constructViewHierachy { - [self addSubview:self.selectStatusContainer]; - [self.selectStatusContainer addSubview:self.titleLabel]; - [self.selectStatusContainer addSubview:self.subTitleLabel]; - [self.selectStatusContainer addSubview:self.rightIcon]; - - [self addSubview:self.playingStatusContainer]; - [self.playingStatusContainer addSubview:self.musicNameLabel]; - [self.playingStatusContainer addSubview:self.musicProgressLabel]; - [self.playingStatusContainer addSubview:self.pausButton]; -} - -/// 构造视图约束 -- (void)activateConstraints { - [self activateConstraintsSelectStatus]; - [self activateConstraintsPlayingConotainer]; -} - -- (void)activateConstraintsSelectStatus { - [self.selectStatusContainer mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.edges.mas_equalTo(self); - }]; - [self.titleLabel mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerY.equalTo(self.selectStatusContainer.mas_centerY); - make.left.equalTo(self.selectStatusContainer.mas_left).offset(20); - }]; - [self.titleLabel sizeToFit]; - [self.rightIcon mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerY.equalTo(self.selectStatusContainer.mas_centerY); - make.right.equalTo(self.selectStatusContainer.mas_right).offset(-20); - make.height.mas_equalTo(20); - make.width.mas_equalTo(10); - }]; - [self.subTitleLabel mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerY.equalTo(self.selectStatusContainer.mas_centerY); - make.right.equalTo(self.rightIcon.mas_left).offset(-8); - }]; - [self.subTitleLabel sizeToFit]; -} - -- (void)activateConstraintsPlayingConotainer { - [self.playingStatusContainer mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.edges.mas_equalTo(self); - }]; - [self.musicNameLabel mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerY.equalTo(self.playingStatusContainer.mas_centerY); - make.left.equalTo(self.playingStatusContainer.mas_left).offset(20); - make.width.mas_equalTo(128); - }]; - [self.pausButton mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerY.equalTo(self.playingStatusContainer.mas_centerY); - make.right.equalTo(self.playingStatusContainer.mas_right).offset(-20); - make.width.mas_equalTo(50); - make.height.mas_equalTo(50); - }]; - [self.musicProgressLabel mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerY.equalTo(self.playingStatusContainer.mas_centerY); - make.right.equalTo(self.pausButton.mas_left).offset(-8); - make.left.equalTo(self.musicNameLabel.mas_right); - }]; -} - -/// 绑定视图交互 -- (void)bindInteraction { - UITapGestureRecognizer *pan = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(panAction:)]; - [self addGestureRecognizer:pan]; -} -/// 设置视图样式 -- (void)setupStyle { - self.musicNameLabel.numberOfLines = 1; -} - -- (void)panAction:(UIPanGestureRecognizer *)sender{ - if (self.delegate && [self.delegate respondsToSelector:@selector(didClickItem)]) { - [self.delegate didClickItem]; - } -} - -- (void)pauseAction:(UIButton *)sender { - if (self.delegate && [self.delegate respondsToSelector:@selector(didClickPausButton:)]) { - [self.delegate didClickPausButton:!sender.isSelected]; - } - sender.selected = !sender.isSelected; -} - -/// 选中音乐后传入名称 -/// @param musicName 音乐名(空字符串代表没有选中) -- (void)selectMusic:(NSString *)musicName { - NSString *sufix = @""; - if ([musicName isEqualToString:@""]) { - [self changePlayingStatus:NO]; - self.pausButton.selected = YES; - } else { - self.pausButton.selected = NO; - [self changePlayingStatus:YES]; - sufix = @"..."; - } -// self.musicNameLabel.text = [NSString stringWithFormat:@"%@%@",musicName, sufix]; - self.musicNameLabel.text = musicName; -} - -- (void)refreshMusicPlayingProgress:(NSString *)progressString { - self.musicProgressLabel.text = progressString; -} - -- (void)completeStatus { - self.pausButton.selected = YES; -} - -#pragma mark - 私有方法 -- (void)changePlayingStatus:(BOOL)isPlayingStatus { - if (_isPlayingStatus == isPlayingStatus) { - return; - } - _isPlayingStatus = isPlayingStatus; - if (isPlayingStatus) { - self.playingStatusContainer.hidden = NO; - self.selectStatusContainer.hidden = YES; - } else { - self.selectStatusContainer.hidden = NO; - self.playingStatusContainer.hidden = YES; - } -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectView.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectView.h deleted file mode 100644 index d2541838..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectView.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// TCMusicSelectView.h -// TCAudioSettingKitResources -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@class AudioEffectSettingViewModel; -@class TCMusicSelectedModel; -@class TCMusicSelectView; -@protocol TCMusicSelectedDelegate - -- (void)didSelectMusic:(TCMusicSelectedModel *)music isSelected:(BOOL)isSelected; -- (void)selectViewChangeState:(TCMusicSelectView *)view; - -@end - -@interface TCMusicSelectView : UIView - -@property (nonatomic, weak) id delegate; - -- (instancetype)initWithViewModel:(AudioEffectSettingViewModel *)viewModel; - -- (void)show; -- (void)hide; - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectView.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectView.m deleted file mode 100644 index 77be44a7..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCMusicSelectView.m +++ /dev/null @@ -1,229 +0,0 @@ -// -// TCMusicSelectView.m -// TCAudioSettingKitResources -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import "TCMusicSelectView.h" -#import "AudioEffectSettingViewModel.h" -#import "TCMusicSelectCell.h" -#import "TCMusicSelectedModel.h" - -@interface TCMusicSelectView (){ - BOOL _isViewReady; // 视图布局是否完成 - BOOL _isShow; -} - -@property (nonatomic, strong) TCASKitTheme *theme; - -@property (nonatomic, strong) AudioEffectSettingViewModel* viewModel; -// 视图相关属性 -@property (nonatomic, strong) UIView *headerContainer; -@property (nonatomic, strong) UILabel *titleLabel; -@property (nonatomic, strong) UIButton *closeButton; - -@property (nonatomic, strong) UITableView *tableView; -@property (nonatomic, assign) NSInteger currentSelect; - -@end - -@implementation TCMusicSelectView - -- (instancetype)initWithViewModel:(AudioEffectSettingViewModel *)viewModel { - self = [super initWithFrame:CGRectZero]; - if (self) { - self.viewModel = viewModel; - [self setupInitStyle]; - [self bindInteraction]; - self.currentSelect = -1; - } - return self; -} - -- (void)setupInitStyle { - self.hidden = YES; -} - -#pragma mark - 属性方法 -- (TCASKitTheme *)theme { - if (!_theme) { - _theme = [[TCASKitTheme alloc] init]; - } - return _theme; -} - -- (UIView *)headerContainer { - if (!_headerContainer) { - _headerContainer = [[UIView alloc] initWithFrame:CGRectZero]; - _headerContainer.backgroundColor = UIColor.clearColor; - } - return _headerContainer; -} - -- (UILabel *)titleLabel { - if (!_titleLabel) { - UILabel* label = [[UILabel alloc] initWithFrame:CGRectZero]; - label.text = [self.theme localizedString:@"ASKit.MusicSelectMenu.Title"]; - label.font = [self.theme themeFontWithSize:16.0]; - label.textColor = self.theme.normalFontColor; - _titleLabel = label; - } - return _titleLabel; -} - -- (UIButton *)closeButton { - if (!_closeButton) { - UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom]; - [button setImage:[self.theme imageNamed:@"bgm_back"] forState:UIControlStateNormal]; - _closeButton = button; - } - return _closeButton; -} - -- (UITableView *)tableView { - if (!_tableView) { - UITableView *table = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; - table.dataSource = self; - table.delegate = self; - table.showsVerticalScrollIndicator = NO; - table.backgroundColor = UIColor.clearColor; - table.allowsMultipleSelection = NO; - table.separatorStyle = UITableViewCellSeparatorStyleNone; - [table registerClass:[TCMusicSelectCell class] forCellReuseIdentifier:@"TCMusicSelectCell"]; - _tableView = table; - } - return _tableView; -} - -#pragma mark - public method 实现 -- (void)show { - if (self->_isShow) { - return; - } - self->_isShow = YES; - self.hidden = NO; - if (self.delegate && [self.delegate respondsToSelector:@selector(selectViewChangeState:)]) { - [self.delegate selectViewChangeState:self]; - } -} - -- (void)hide { - if (!self->_isShow) { - return; - } - self->_isShow = NO; - self.hidden = YES; - if (self.delegate && [self.delegate respondsToSelector:@selector(selectViewChangeState:)]) { - [self.delegate selectViewChangeState:self]; - } -} - -#pragma mark - 视图生命周期 -- (void)didMoveToWindow { - [super didMoveToWindow]; - if (self->_isViewReady) { - return; - } - [self constructViewHierachy]; - [self activateConstraints]; - self->_isViewReady = YES; - [self setupStyle]; -} - -- (void)constructViewHierachy { - [self addSubview:self.headerContainer]; - [self.headerContainer addSubview:self.titleLabel]; - [self.headerContainer addSubview:self.closeButton]; - [self addSubview:self.tableView]; -} - -- (void)activateConstraints { - [self activeConstraintsOfTitleContainer]; - [self activateConstraintsOfTableView]; -} - -- (void)activeConstraintsOfTitleContainer { - [self.headerContainer mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.left.right.equalTo(self); - make.top.equalTo(self); - make.height.mas_equalTo(56); - }]; - [self.titleLabel mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerX.equalTo(self.headerContainer.mas_centerX); - make.centerY.equalTo(self.headerContainer.mas_centerY); - }]; - [self.titleLabel sizeToFit]; - [self.closeButton mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerY.equalTo(self.headerContainer.mas_centerY); - make.left.equalTo(self.headerContainer.mas_left).offset(20.0); - }]; -} - -- (void)activateConstraintsOfTableView { - [self.tableView mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.top.equalTo(self.headerContainer.mas_bottom); - make.left.equalTo(self.mas_left); - make.right.equalTo(self.mas_right); - make.bottom.equalTo(self.mas_bottom); - }]; -} - -- (void)bindInteraction { - [self.closeButton addTarget:self action:@selector(hide) forControlEvents:UIControlEventTouchUpInside]; -} - -- (void)setupStyle { - // 切圆角 - UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(10, 10)]; - CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; - maskLayer.frame = self.bounds; - maskLayer.path = maskPath.CGPath; - self.layer.mask = maskLayer; -} - -#pragma mark - tabledelegate&&datasource -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - TCMusicSelectedModel *model = self.viewModel.musicSources[indexPath.row]; - model.action(YES); - if (self.delegate && [self.delegate respondsToSelector:@selector(didSelectMusic:isSelected:)]) { - [self.delegate didSelectMusic:model isSelected:self.currentSelect != indexPath.row]; - } - -// if (self.currentSelect != indexPath.row) { -// if (model.action) { -// model.action(YES); -// } -// self.currentSelect = indexPath.row; -// } else { -// self.currentSelect = -1; -// if (model.action) { -// model.action(NO); -// } -// UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath]; -// [cell setSelected:NO animated:YES]; -// } -} - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - TCMusicSelectCell* cell = (TCMusicSelectCell *)[tableView dequeueReusableCellWithIdentifier:@"TCMusicSelectCell" forIndexPath:indexPath]; - TCMusicSelectedModel *model = self.viewModel.musicSources[indexPath.row]; - [cell setupCellWithModel:model]; - return cell; -} - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 1; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ - return self.viewModel.musicSources.count; -} - -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ - return 68; -} - - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCSlideItemView.h b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCSlideItemView.h deleted file mode 100644 index 4451c6cb..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCSlideItemView.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// TCSlideItemView.h -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@class TCSlideItemView; -@protocol TCSlideItemDelegate - -- (void)slideItemView:(TCSlideItemView *)view slideValueDidChanged:(CGFloat)value; - -@end - -@interface TCSlideItemView : UIView - -@property (nonatomic, strong) NSString *title; -@property (nonatomic, strong) UIImage *icon; -@property (nonatomic, assign) CGFloat minValue; -@property (nonatomic, assign) CGFloat maxVlaue; -@property (nonatomic, assign) CGFloat defaultValue; -@property (nonatomic, strong) UIColor *maxColor; -@property (nonatomic, strong) UIColor *minColor; -@property (nonatomic, assign) BOOL isFloatAccuracy; - -@property (nonatomic, weak) id delegate; - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCSlideItemView.m b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCSlideItemView.m deleted file mode 100644 index 3f2419b7..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/AudioSettingKit/View/CommonView/TCSlideItemView.m +++ /dev/null @@ -1,216 +0,0 @@ -// -// TCSlideItemView.m -// TCAudioSettingKit -// -// Created by abyyxwang on 2020/5/27. -// Copyright © 2020 tencent. All rights reserved. -// - -#import "TCSlideItemView.h" - -@interface TCSlideItemView (){ - BOOL _isViewReady; -} - -@property (nonatomic, strong) TCASKitTheme *theme; - -@property (nonatomic, strong) UILabel *titleLabel; -@property (nonatomic, strong) UILabel *volumValueLabel; -@property (nonatomic, strong) UIImageView *voiceIcon; -@property (nonatomic, strong) UISlider *slideView; - -@end - -@implementation TCSlideItemView - -- (instancetype)init -{ - self = [super init]; - if (self) { - self.maxVlaue = 100; - self.minValue = 0; - self.defaultValue = 50; - } - return self; -} - -- (instancetype)initWithFrame:(CGRect)frame -{ - self = [super initWithFrame:frame]; - if (self) { - self.maxVlaue = 100; - self.minValue = 0; - self.defaultValue = 50; - } - return self; -} - -#pragma mark - setter方法重写 -- (void)setIcon:(UIImage *)icon { - _icon = icon; - self.voiceIcon.image = icon; - if (self.slideView.superview) { - CGFloat value = icon == nil ? 16.0 : 26.0; - [self.slideView mas_updateConstraints:^(ASMASConstraintMaker *make) { - make.left.equalTo(self.titleLabel.mas_right).offset(value); - }]; - } -} - -- (void)setMaxVlaue:(CGFloat)maxVlaue { - _maxVlaue = maxVlaue; - self.slideView.maximumValue = maxVlaue; -} - -- (void)setMinValue:(CGFloat)minValue { - _minValue = minValue; - self.slideView.minimumValue = minValue; -} - -- (void)setDefaultValue:(CGFloat)defaultValue { - _defaultValue = defaultValue; - self.slideView.value = defaultValue; - self.volumValueLabel.text = [NSString stringWithFormat:@"%.0f", defaultValue]; -} - -- (void)setMaxColor:(UIColor *)maxColor { - _maxColor = maxColor; - self.slideView.maximumTrackTintColor = maxColor; -} - -- (void)setMinColor:(UIColor *)minColor { - _minColor = minColor; - self.slideView.minimumTrackTintColor = minColor; -} - -- (void)setTitle:(NSString *)title { - _title = title; - self.titleLabel.text = title; -} - -#pragma mark - 视图属性懒加载 -- (TCASKitTheme *)theme { - if (!_theme) { - _theme = [[TCASKitTheme alloc] init]; - } - return _theme; -} - -- (UILabel *)titleLabel { - if (!_titleLabel) { - UILabel *label = [[UILabel alloc] init]; - label.text = [self.theme localizedString:@"ASKit.MainMenu.BGM"]; - label.font = [self.theme themeFontWithSize:16.0]; - label.textColor = self.theme.normalFontColor; - _titleLabel = label; - } - return _titleLabel; -} - -- (UIImageView *)voiceIcon { - if (!_voiceIcon) { - UIImageView *imageView = [[UIImageView alloc] init]; - imageView.contentMode = UIViewContentModeScaleAspectFit; - _voiceIcon = imageView; - } - return _voiceIcon; -} - -- (UISlider *)slideView { - if (!_slideView) { - _slideView = [[UISlider alloc] init]; - _slideView.maximumValue = self.maxVlaue; - _slideView.minimumValue = self.minValue; - _slideView.value = self.defaultValue; - _slideView.minimumTrackTintColor = self.theme.sliderMinColor; - _slideView.maximumTrackTintColor = self.theme.sliderMaxColor; - [_slideView addTarget:self action:@selector(slideValueChanged:) forControlEvents:UIControlEventValueChanged]; - } - return _slideView; -} - -- (UILabel *)volumValueLabel { - if (!_volumValueLabel) { - UILabel *label = [[UILabel alloc] init]; - label.text = [NSString stringWithFormat:@"%.0f", self.defaultValue]; - label.font = [self.theme themeFontWithSize:14.0]; - label.textColor = self.theme.normalFontColor; - label.alpha = 0.5; - label.textAlignment = NSTextAlignmentCenter; - _volumValueLabel = label; - } - return _volumValueLabel; -} - -#pragma mark - 视图生命周期 -- (void)didMoveToWindow { - [super didMoveToWindow]; - if (self->_isViewReady) { - return; - } - [self constructViewHierachy]; - [self activateConstraints]; - self->_isViewReady = YES; - [self setupStyle]; -} - - -#pragma mark - 构造视图层级,初始化布局 -/// 构造视图层级 -- (void)constructViewHierachy { - [self addSubview:self.titleLabel]; - [self addSubview:self.slideView]; - [self addSubview:self.volumValueLabel]; - [self addSubview:self.voiceIcon]; -} - -/// 构造视图约束 -- (void)activateConstraints { - [self.titleLabel mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerY.equalTo(self.mas_centerY); - make.left.equalTo(self.mas_left).offset(20); - }]; - [self.titleLabel sizeToFit]; - [self.voiceIcon mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerY.equalTo(self.mas_centerY); - make.height.mas_equalTo(20); - make.width.mas_equalTo(20); - make.left.equalTo(self.titleLabel.mas_right).offset(4); - }]; - [self.volumValueLabel mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.centerY.equalTo(self.mas_centerY); - make.right.equalTo(self).offset(-20); - make.width.mas_equalTo(30); - }]; - CGFloat value = self.icon == nil ? 16.0 : 26.0; - [self.slideView mas_makeConstraints:^(ASMASConstraintMaker *make) { - make.left.equalTo(self.titleLabel.mas_right).offset(value); - make.right.equalTo(self.volumValueLabel.mas_left).offset(-3.0); - make.centerY.equalTo(self.mas_centerY); - }]; -} - -/// 绑定视图交互 -- (void)bindInteraction { - -} -/// 设置视图样式 -- (void)setupStyle { - -} - -#pragma mark - target-action -- (void)slideValueChanged:(UISlider *)sender { - if (self.isFloatAccuracy) { - CGFloat value = 0.1 - fabsf(sender.value) < 0 ? sender.value : 0; - self.volumValueLabel.text = [NSString stringWithFormat:@"%.1f", value]; - } else { - CGFloat value = 1 - fabsf(sender.value) < 0 ? sender.value : 0; - self.volumValueLabel.text = [NSString stringWithFormat:@"%.0f", value]; - } - if (self.delegate && [self.delegate respondsToSelector:@selector(slideItemView:slideValueDidChanged:)]) { - [self.delegate slideItemView:self slideValueDidChanged:sender.value]; - } -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Contents.json deleted file mode 100644 index 73c00596..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_KTV.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_KTV.imageset/Contents.json deleted file mode 100644 index da025ea6..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_KTV.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "Reverb_KTV.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Reverb_KTV@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "Reverb_KTV@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_KTV.imageset/Reverb_KTV.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_KTV.imageset/Reverb_KTV.png deleted file mode 100644 index 05366ff6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_KTV.imageset/Reverb_KTV.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_KTV.imageset/Reverb_KTV@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_KTV.imageset/Reverb_KTV@2x.png deleted file mode 100644 index 16160733..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_KTV.imageset/Reverb_KTV@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_KTV.imageset/Reverb_KTV@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_KTV.imageset/Reverb_KTV@3x.png deleted file mode 100644 index 03e35648..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_KTV.imageset/Reverb_KTV@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_cixin.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_cixin.imageset/Contents.json deleted file mode 100644 index c1c2fcd6..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_cixin.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "Reverb_cixin.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Reverb_cixin@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "Reverb_cixin@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_cixin.imageset/Reverb_cixin.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_cixin.imageset/Reverb_cixin.png deleted file mode 100644 index fee81bd9..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_cixin.imageset/Reverb_cixin.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_cixin.imageset/Reverb_cixin@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_cixin.imageset/Reverb_cixin@2x.png deleted file mode 100644 index effa677d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_cixin.imageset/Reverb_cixin@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_cixin.imageset/Reverb_cixin@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_cixin.imageset/Reverb_cixin@3x.png deleted file mode 100644 index 84abbe2a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_cixin.imageset/Reverb_cixin@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dahuitang.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dahuitang.imageset/Contents.json deleted file mode 100644 index dfbc692d..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dahuitang.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "Reverb_dahuitang.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Reverb_dahuitang@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "Reverb_dahuitang@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dahuitang.imageset/Reverb_dahuitang.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dahuitang.imageset/Reverb_dahuitang.png deleted file mode 100644 index dbe7103d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dahuitang.imageset/Reverb_dahuitang.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dahuitang.imageset/Reverb_dahuitang@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dahuitang.imageset/Reverb_dahuitang@2x.png deleted file mode 100644 index 954cc05f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dahuitang.imageset/Reverb_dahuitang@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dahuitang.imageset/Reverb_dahuitang@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dahuitang.imageset/Reverb_dahuitang@3x.png deleted file mode 100644 index 73ad01f4..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dahuitang.imageset/Reverb_dahuitang@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dicheng.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dicheng.imageset/Contents.json deleted file mode 100644 index fe553f93..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dicheng.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "Reverb_dicheng.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Reverb_dicheng@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "Reverb_dicheng@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dicheng.imageset/Reverb_dicheng.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dicheng.imageset/Reverb_dicheng.png deleted file mode 100644 index 37e51eb5..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dicheng.imageset/Reverb_dicheng.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dicheng.imageset/Reverb_dicheng@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dicheng.imageset/Reverb_dicheng@2x.png deleted file mode 100644 index 61099fbe..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dicheng.imageset/Reverb_dicheng@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dicheng.imageset/Reverb_dicheng@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dicheng.imageset/Reverb_dicheng@3x.png deleted file mode 100644 index a6047777..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_dicheng.imageset/Reverb_dicheng@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_hongliang.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_hongliang.imageset/Contents.json deleted file mode 100644 index 33cf0700..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_hongliang.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "Reverb_hongliang.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Reverb_hongliang@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "Reverb_hongliang@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_hongliang.imageset/Reverb_hongliang.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_hongliang.imageset/Reverb_hongliang.png deleted file mode 100644 index 9298da16..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_hongliang.imageset/Reverb_hongliang.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_hongliang.imageset/Reverb_hongliang@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_hongliang.imageset/Reverb_hongliang@2x.png deleted file mode 100644 index 088aca11..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_hongliang.imageset/Reverb_hongliang@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_hongliang.imageset/Reverb_hongliang@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_hongliang.imageset/Reverb_hongliang@3x.png deleted file mode 100644 index cf4aeda0..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_hongliang.imageset/Reverb_hongliang@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_literoom.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_literoom.imageset/Contents.json deleted file mode 100644 index 5bdb363c..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_literoom.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "Reverb_literoom.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Reverb_literoom@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "Reverb_literoom@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_literoom.imageset/Reverb_literoom.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_literoom.imageset/Reverb_literoom.png deleted file mode 100644 index 6169150d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_literoom.imageset/Reverb_literoom.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_literoom.imageset/Reverb_literoom@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_literoom.imageset/Reverb_literoom@2x.png deleted file mode 100644 index 2d971731..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_literoom.imageset/Reverb_literoom@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_literoom.imageset/Reverb_literoom@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_literoom.imageset/Reverb_literoom@3x.png deleted file mode 100644 index 03a389a9..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_literoom.imageset/Reverb_literoom@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_close.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_close.imageset/Contents.json deleted file mode 100644 index 75d31ce2..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_close.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "Reverb_normal_close.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Reverb_normal_close@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "Reverb_normal_close@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_close.imageset/Reverb_normal_close.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_close.imageset/Reverb_normal_close.png deleted file mode 100644 index 183c06e6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_close.imageset/Reverb_normal_close.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_close.imageset/Reverb_normal_close@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_close.imageset/Reverb_normal_close@2x.png deleted file mode 100644 index 70238f08..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_close.imageset/Reverb_normal_close@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_close.imageset/Reverb_normal_close@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_close.imageset/Reverb_normal_close@3x.png deleted file mode 100644 index fbabf874..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_close.imageset/Reverb_normal_close@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_open.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_open.imageset/Contents.json deleted file mode 100644 index f3e7fddc..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_open.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "Reverb_normal_open.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Reverb_normal_open@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "Reverb_normal_open@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_open.imageset/Reverb_normal_open.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_open.imageset/Reverb_normal_open.png deleted file mode 100644 index 5884bb63..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_open.imageset/Reverb_normal_open.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_open.imageset/Reverb_normal_open@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_open.imageset/Reverb_normal_open@2x.png deleted file mode 100644 index 9cf85ca6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_open.imageset/Reverb_normal_open@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_open.imageset/Reverb_normal_open@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_open.imageset/Reverb_normal_open@3x.png deleted file mode 100644 index 7535683c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_normal_open.imageset/Reverb_normal_open@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_zhongjinshu.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_zhongjinshu.imageset/Contents.json deleted file mode 100644 index f4d823e1..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_zhongjinshu.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "Reverb_zhongjinshu.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "Reverb_zhongjinshu@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "Reverb_zhongjinshu@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_zhongjinshu.imageset/Reverb_zhongjinshu.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_zhongjinshu.imageset/Reverb_zhongjinshu.png deleted file mode 100644 index d38306e0..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_zhongjinshu.imageset/Reverb_zhongjinshu.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_zhongjinshu.imageset/Reverb_zhongjinshu@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_zhongjinshu.imageset/Reverb_zhongjinshu@2x.png deleted file mode 100644 index 30e4e72a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_zhongjinshu.imageset/Reverb_zhongjinshu@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_zhongjinshu.imageset/Reverb_zhongjinshu@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_zhongjinshu.imageset/Reverb_zhongjinshu@3x.png deleted file mode 100644 index 84328b97..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/Reverb_zhongjinshu.imageset/Reverb_zhongjinshu@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_SelectMusic.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_SelectMusic.imageset/Contents.json deleted file mode 100644 index f7ccabdf..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_SelectMusic.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "VoiceSetting_SelectMusic.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "VoiceSetting_SelectMusic@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "VoiceSetting_SelectMusic@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_SelectMusic.imageset/VoiceSetting_SelectMusic.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_SelectMusic.imageset/VoiceSetting_SelectMusic.png deleted file mode 100644 index eb828bf8..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_SelectMusic.imageset/VoiceSetting_SelectMusic.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_SelectMusic.imageset/VoiceSetting_SelectMusic@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_SelectMusic.imageset/VoiceSetting_SelectMusic@2x.png deleted file mode 100644 index 67cf2424..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_SelectMusic.imageset/VoiceSetting_SelectMusic@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_SelectMusic.imageset/VoiceSetting_SelectMusic@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_SelectMusic.imageset/VoiceSetting_SelectMusic@3x.png deleted file mode 100644 index 5d4fc7b0..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_SelectMusic.imageset/VoiceSetting_SelectMusic@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_volum.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_volum.imageset/Contents.json deleted file mode 100644 index 8a4dc515..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_volum.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "VoiceSetting_volum.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "VoiceSetting_volum@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "VoiceSetting_volum@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_volum.imageset/VoiceSetting_volum.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_volum.imageset/VoiceSetting_volum.png deleted file mode 100644 index c855fe03..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_volum.imageset/VoiceSetting_volum.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_volum.imageset/VoiceSetting_volum@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_volum.imageset/VoiceSetting_volum@2x.png deleted file mode 100644 index d9b55ef8..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_volum.imageset/VoiceSetting_volum@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_volum.imageset/VoiceSetting_volum@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_volum.imageset/VoiceSetting_volum@3x.png deleted file mode 100644 index 242492cd..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/VoiceSetting_volum.imageset/VoiceSetting_volum@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/audiosettingkit_select.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/audiosettingkit_select.imageset/Contents.json deleted file mode 100644 index 07a41b4b..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/audiosettingkit_select.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "audiosettingkit_select.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "audiosettingkit_select@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "audiosettingkit_select@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/audiosettingkit_select.imageset/audiosettingkit_select.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/audiosettingkit_select.imageset/audiosettingkit_select.png deleted file mode 100644 index 99cf94fe..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/audiosettingkit_select.imageset/audiosettingkit_select.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/audiosettingkit_select.imageset/audiosettingkit_select@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/audiosettingkit_select.imageset/audiosettingkit_select@2x.png deleted file mode 100644 index 5385e5d1..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/audiosettingkit_select.imageset/audiosettingkit_select@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/audiosettingkit_select.imageset/audiosettingkit_select@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/audiosettingkit_select.imageset/audiosettingkit_select@3x.png deleted file mode 100644 index bea75304..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/audiosettingkit_select.imageset/audiosettingkit_select@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_back.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_back.imageset/Contents.json deleted file mode 100644 index 694bc882..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_back.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "bgm_back.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "bgm_back@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "bgm_back@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_back.imageset/bgm_back.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_back.imageset/bgm_back.png deleted file mode 100644 index 4d4b18a9..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_back.imageset/bgm_back.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_back.imageset/bgm_back@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_back.imageset/bgm_back@2x.png deleted file mode 100644 index b4613b53..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_back.imageset/bgm_back@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_back.imageset/bgm_back@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_back.imageset/bgm_back@3x.png deleted file mode 100644 index 9b854fe5..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_back.imageset/bgm_back@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_pause.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_pause.imageset/Contents.json deleted file mode 100644 index 566a376a..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_pause.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "bgm_pause.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "bgm_pause@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "bgm_pause@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_pause.imageset/bgm_pause.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_pause.imageset/bgm_pause.png deleted file mode 100644 index d0e4231e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_pause.imageset/bgm_pause.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_pause.imageset/bgm_pause@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_pause.imageset/bgm_pause@2x.png deleted file mode 100644 index 661a22ae..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_pause.imageset/bgm_pause@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_pause.imageset/bgm_pause@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_pause.imageset/bgm_pause@3x.png deleted file mode 100644 index 76878da0..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_pause.imageset/bgm_pause@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_play.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_play.imageset/Contents.json deleted file mode 100644 index 3f0ae272..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_play.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "bgm_play.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "bgm_play@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "bgm_play@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_play.imageset/bgm_play.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_play.imageset/bgm_play.png deleted file mode 100644 index 563e993e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_play.imageset/bgm_play.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_play.imageset/bgm_play@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_play.imageset/bgm_play@2x.png deleted file mode 100644 index c3160625..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_play.imageset/bgm_play@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_play.imageset/bgm_play@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_play.imageset/bgm_play@3x.png deleted file mode 100644 index e3ef9ceb..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/bgm_play.imageset/bgm_play@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/close_bgm.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/close_bgm.imageset/Contents.json deleted file mode 100644 index 00e7f051..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/close_bgm.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "close_bgm.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "close_bgm@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "close_bgm@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/close_bgm.imageset/close_bgm.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/close_bgm.imageset/close_bgm.png deleted file mode 100644 index 85b63650..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/close_bgm.imageset/close_bgm.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/close_bgm.imageset/close_bgm@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/close_bgm.imageset/close_bgm@2x.png deleted file mode 100644 index 14682776..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/close_bgm.imageset/close_bgm@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/close_bgm.imageset/close_bgm@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/close_bgm.imageset/close_bgm@3x.png deleted file mode 100644 index b8eb009f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/close_bgm.imageset/close_bgm@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_dashu.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_dashu.imageset/Contents.json deleted file mode 100644 index 030a785e..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_dashu.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "voiceChange_dashu.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "voiceChange_dashu@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "voiceChange_dashu@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_dashu.imageset/voiceChange_dashu.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_dashu.imageset/voiceChange_dashu.png deleted file mode 100644 index 67c1dfb9..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_dashu.imageset/voiceChange_dashu.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_dashu.imageset/voiceChange_dashu@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_dashu.imageset/voiceChange_dashu@2x.png deleted file mode 100644 index e019f3d7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_dashu.imageset/voiceChange_dashu@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_dashu.imageset/voiceChange_dashu@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_dashu.imageset/voiceChange_dashu@3x.png deleted file mode 100644 index 1c141511..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_dashu.imageset/voiceChange_dashu@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_feizhai.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_feizhai.imageset/Contents.json deleted file mode 100644 index 52c48a55..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_feizhai.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "voiceChange_feizhai.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "voiceChange_feizhai@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "voiceChange_feizhai@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_feizhai.imageset/voiceChange_feizhai.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_feizhai.imageset/voiceChange_feizhai.png deleted file mode 100644 index 775ef0fb..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_feizhai.imageset/voiceChange_feizhai.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_feizhai.imageset/voiceChange_feizhai@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_feizhai.imageset/voiceChange_feizhai@2x.png deleted file mode 100644 index 91c2486f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_feizhai.imageset/voiceChange_feizhai@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_feizhai.imageset/voiceChange_feizhai@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_feizhai.imageset/voiceChange_feizhai@3x.png deleted file mode 100644 index d2032277..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_feizhai.imageset/voiceChange_feizhai@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_ganmao.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_ganmao.imageset/Contents.json deleted file mode 100644 index db211059..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_ganmao.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "voiceChange_ganmao.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "voiceChange_ganmao@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "voiceChange_ganmao@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_ganmao.imageset/voiceChange_ganmao.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_ganmao.imageset/voiceChange_ganmao.png deleted file mode 100644 index 45379096..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_ganmao.imageset/voiceChange_ganmao.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_ganmao.imageset/voiceChange_ganmao@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_ganmao.imageset/voiceChange_ganmao@2x.png deleted file mode 100644 index 1251262c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_ganmao.imageset/voiceChange_ganmao@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_ganmao.imageset/voiceChange_ganmao@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_ganmao.imageset/voiceChange_ganmao@3x.png deleted file mode 100644 index 7d155166..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_ganmao.imageset/voiceChange_ganmao@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_jixie.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_jixie.imageset/Contents.json deleted file mode 100644 index d407d88d..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_jixie.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "voiceChange_jixie.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "voiceChange_jixie@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "voiceChange_jixie@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_jixie.imageset/voiceChange_jixie.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_jixie.imageset/voiceChange_jixie.png deleted file mode 100644 index d6ad641e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_jixie.imageset/voiceChange_jixie.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_jixie.imageset/voiceChange_jixie@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_jixie.imageset/voiceChange_jixie@2x.png deleted file mode 100644 index f169bf7d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_jixie.imageset/voiceChange_jixie@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_jixie.imageset/voiceChange_jixie@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_jixie.imageset/voiceChange_jixie@3x.png deleted file mode 100644 index 5b0a3f6b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_jixie.imageset/voiceChange_jixie@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_konglin.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_konglin.imageset/Contents.json deleted file mode 100644 index 8f570105..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_konglin.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "voiceChange_konglin.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "voiceChange_konglin@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "voiceChange_konglin@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_konglin.imageset/voiceChange_konglin.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_konglin.imageset/voiceChange_konglin.png deleted file mode 100644 index 7099241d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_konglin.imageset/voiceChange_konglin.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_konglin.imageset/voiceChange_konglin@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_konglin.imageset/voiceChange_konglin@2x.png deleted file mode 100644 index da0c440b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_konglin.imageset/voiceChange_konglin@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_konglin.imageset/voiceChange_konglin@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_konglin.imageset/voiceChange_konglin@3x.png deleted file mode 100644 index e900b8e0..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_konglin.imageset/voiceChange_konglin@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_kunshou.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_kunshou.imageset/Contents.json deleted file mode 100644 index 8d12ee31..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_kunshou.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "voiceChange_kunshou.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "voiceChange_kunshou@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "voiceChange_kunshou@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_kunshou.imageset/voiceChange_kunshou.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_kunshou.imageset/voiceChange_kunshou.png deleted file mode 100644 index bdd1eb4a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_kunshou.imageset/voiceChange_kunshou.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_kunshou.imageset/voiceChange_kunshou@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_kunshou.imageset/voiceChange_kunshou@2x.png deleted file mode 100644 index 93ab2a07..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_kunshou.imageset/voiceChange_kunshou@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_kunshou.imageset/voiceChange_kunshou@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_kunshou.imageset/voiceChange_kunshou@3x.png deleted file mode 100644 index 09692596..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_kunshou.imageset/voiceChange_kunshou@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_luoli.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_luoli.imageset/Contents.json deleted file mode 100644 index 14b439ad..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_luoli.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "voiceChange_luoli.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "voiceChange_luoli@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "voiceChange_luoli@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_luoli.imageset/voiceChange_luoli.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_luoli.imageset/voiceChange_luoli.png deleted file mode 100644 index 3011a27a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_luoli.imageset/voiceChange_luoli.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_luoli.imageset/voiceChange_luoli@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_luoli.imageset/voiceChange_luoli@2x.png deleted file mode 100644 index 1f9d2e53..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_luoli.imageset/voiceChange_luoli@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_luoli.imageset/voiceChange_luoli@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_luoli.imageset/voiceChange_luoli@3x.png deleted file mode 100644 index 144d301b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_luoli.imageset/voiceChange_luoli@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_close.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_close.imageset/Contents.json deleted file mode 100644 index 0c0ef358..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_close.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "voiceChange_normal_close.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "voiceChange_normal_close@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "voiceChange_normal_close@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_close.imageset/voiceChange_normal_close.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_close.imageset/voiceChange_normal_close.png deleted file mode 100644 index 1cc87e2b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_close.imageset/voiceChange_normal_close.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_close.imageset/voiceChange_normal_close@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_close.imageset/voiceChange_normal_close@2x.png deleted file mode 100644 index e037564b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_close.imageset/voiceChange_normal_close@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_close.imageset/voiceChange_normal_close@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_close.imageset/voiceChange_normal_close@3x.png deleted file mode 100644 index 9d102f44..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_close.imageset/voiceChange_normal_close@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_open.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_open.imageset/Contents.json deleted file mode 100644 index db63670d..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_open.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "voiceChange_normal_open.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "voiceChange_normal_open@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "voiceChange_normal_open@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_open.imageset/voiceChange_normal_open.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_open.imageset/voiceChange_normal_open.png deleted file mode 100644 index 42a45b95..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_open.imageset/voiceChange_normal_open.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_open.imageset/voiceChange_normal_open@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_open.imageset/voiceChange_normal_open@2x.png deleted file mode 100644 index 97820dbf..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_open.imageset/voiceChange_normal_open@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_open.imageset/voiceChange_normal_open@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_open.imageset/voiceChange_normal_open@3x.png deleted file mode 100644 index 7ee9880f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_normal_open.imageset/voiceChange_normal_open@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_qiangdianliu.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_qiangdianliu.imageset/Contents.json deleted file mode 100644 index 86b14389..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_qiangdianliu.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "voiceChange_qiangdianliu.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "voiceChange_qiangdianliu@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "voiceChange_qiangdianliu@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_qiangdianliu.imageset/voiceChange_qiangdianliu.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_qiangdianliu.imageset/voiceChange_qiangdianliu.png deleted file mode 100644 index 1357be12..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_qiangdianliu.imageset/voiceChange_qiangdianliu.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_qiangdianliu.imageset/voiceChange_qiangdianliu@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_qiangdianliu.imageset/voiceChange_qiangdianliu@2x.png deleted file mode 100644 index 3c3d8554..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_qiangdianliu.imageset/voiceChange_qiangdianliu@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_qiangdianliu.imageset/voiceChange_qiangdianliu@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_qiangdianliu.imageset/voiceChange_qiangdianliu@3x.png deleted file mode 100644 index 2966a72f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_qiangdianliu.imageset/voiceChange_qiangdianliu@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_waiguo.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_waiguo.imageset/Contents.json deleted file mode 100644 index 23205cc8..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_waiguo.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "voiceChange_waiguo.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "voiceChange_waiguo@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "voiceChange_waiguo@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_waiguo.imageset/voiceChange_waiguo.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_waiguo.imageset/voiceChange_waiguo.png deleted file mode 100644 index 2e8c7a67..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_waiguo.imageset/voiceChange_waiguo.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_waiguo.imageset/voiceChange_waiguo@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_waiguo.imageset/voiceChange_waiguo@2x.png deleted file mode 100644 index 089388e2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_waiguo.imageset/voiceChange_waiguo@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_waiguo.imageset/voiceChange_waiguo@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_waiguo.imageset/voiceChange_waiguo@3x.png deleted file mode 100644 index d0333b9f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_waiguo.imageset/voiceChange_waiguo@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_xionghaizi.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_xionghaizi.imageset/Contents.json deleted file mode 100644 index 95afd4e2..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_xionghaizi.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "voiceChange_xionghaizi.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "voiceChange_xionghaizi@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "voiceChange_xionghaizi@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_xionghaizi.imageset/voiceChange_xionghaizi.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_xionghaizi.imageset/voiceChange_xionghaizi.png deleted file mode 100644 index b3737fc5..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_xionghaizi.imageset/voiceChange_xionghaizi.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_xionghaizi.imageset/voiceChange_xionghaizi@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_xionghaizi.imageset/voiceChange_xionghaizi@2x.png deleted file mode 100644 index 6b27c168..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_xionghaizi.imageset/voiceChange_xionghaizi@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_xionghaizi.imageset/voiceChange_xionghaizi@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_xionghaizi.imageset/voiceChange_xionghaizi@3x.png deleted file mode 100644 index 2a5bbe73..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_xionghaizi.imageset/voiceChange_xionghaizi@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_zhongjinshu.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_zhongjinshu.imageset/Contents.json deleted file mode 100644 index 9a1ea1f1..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_zhongjinshu.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "voiceChang_zhongjinshu.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "voiceChang_zhongjinshu@2x.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "voiceChang_zhongjinshu@3x.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_zhongjinshu.imageset/voiceChang_zhongjinshu.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_zhongjinshu.imageset/voiceChang_zhongjinshu.png deleted file mode 100644 index 70515dc7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_zhongjinshu.imageset/voiceChang_zhongjinshu.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_zhongjinshu.imageset/voiceChang_zhongjinshu@2x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_zhongjinshu.imageset/voiceChang_zhongjinshu@2x.png deleted file mode 100644 index fdbcd237..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_zhongjinshu.imageset/voiceChang_zhongjinshu@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_zhongjinshu.imageset/voiceChang_zhongjinshu@3x.png b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_zhongjinshu.imageset/voiceChang_zhongjinshu@3x.png deleted file mode 100644 index 56f971a6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/TCAudioSettingKit.xcassets/voiceChange_zhongjinshu.imageset/voiceChang_zhongjinshu@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/en.lproj/AudioSettingPanelLocalizable.strings b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/en.lproj/AudioSettingPanelLocalizable.strings deleted file mode 100644 index e30bb384..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/en.lproj/AudioSettingPanelLocalizable.strings +++ /dev/null @@ -1,47 +0,0 @@ -/* - Localizable.strings - AudioSettingKit - - Created by abyyxwang on 2020/5/26. - Copyright © 2020 tencent. All rights reserved. -*/ - -"ASKit.Common.Close" = "Close"; -// 主菜单 -"ASKit.MainMenu.Title" = "Sound effect settings"; -"ASKit.MainMenu.BGM" = "Background music"; -"ASKit.MainMenu.SelectMusic" = "Select song"; -"ASKit.MainMenu.MusicVolum" = "Music volume level"; -"ASKit.MainMenu.PersonVolum" = "Voice volume level"; -"ASKit.MainMenu.PersonPitch" = "Music tone"; - -"ASKit.MainMenu.VoiceChangeTitle" = "Voice changing"; -"ASKit.MainMenu.Reverberation" = "Reverb"; - -"ASKit.MusicSelectMenu.Title" = "Background music"; - -"ASKit.MenuItem.Surround sound test 1" = "Surround sound test 1"; -"ASKit.MenuItem.Surround sound test 2" = "Surround sound test 2"; -"ASKit.MenuItem.Surround sound test 3" = "Surround sound test 3"; -"ASKit.MenuItem.Unknown" = "Unknown"; -"ASKit.MenuItem.Reverb" = "Reverb"; -"ASKit.MenuItem.Original" = "Original"; -"ASKit.MenuItem.Naughty boy" = "Naughty boy"; -"ASKit.MenuItem.Little girl" = "Little girl"; -"ASKit.MenuItem.Middle-aged man" = "Middle-aged man"; -"ASKit.MenuItem.Heavy metal" = "Heavy metal"; -"ASKit.MenuItem.Being cold" = "Being cold"; -"ASKit.MenuItem.Non-native speaker" = "Non-native speaker"; -"ASKit.MenuItem.Furious animal" = "Furious animal"; -"ASKit.MenuItem.Fat otaku" = "Fat otaku"; -"ASKit.MenuItem.Strong electric current" = "Strong electric current"; -"ASKit.MenuItem.Robot" = "Robot"; -"ASKit.MenuItem.Ethereal voice" = "Ethereal voice"; -"ASKit.MenuItem.No effect" = "No effect"; -"ASKit.MenuItem.Karaoke room" = "Karaoke room"; -"ASKit.MenuItem.Small room" = "Small room"; -"ASKit.MenuItem.Big hall" = "Big hall"; -"ASKit.MenuItem.Deep" = "Deep"; -"ASKit.MenuItem.Resonant" = "Resonant"; -"ASKit.MenuItem.Metallic" = "Metallic"; -"ASKit.MenuItem.Husky" = "Husky"; diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/zh-Hans.lproj/AudioSettingPanelLocalizable.strings b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/zh-Hans.lproj/AudioSettingPanelLocalizable.strings deleted file mode 100644 index ce78f57e..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/Resource/zh-Hans.lproj/AudioSettingPanelLocalizable.strings +++ /dev/null @@ -1,47 +0,0 @@ -/* - Localizable.strings - AudioSettingKit - - Created by abyyxwang on 2020/5/26. - Copyright © 2020 tencent. All rights reserved. -*/ -"ASKit.Common.Close" = "关闭"; -// 主菜单 -"ASKit.MainMenu.Title" = "音效设置"; -"ASKit.MainMenu.BGM" = "背景音乐"; -"ASKit.MainMenu.SelectMusic" = "选择歌曲"; -"ASKit.MainMenu.MusicVolum" = "音乐音量"; -"ASKit.MainMenu.PersonVolum" = "人声音量"; -"ASKit.MainMenu.PersonPitch" = "音乐升降调"; - -"ASKit.MainMenu.VoiceChangeTitle" = "变声"; -"ASKit.MainMenu.Reverberation" = "混响"; - -"ASKit.MusicSelectMenu.Title" = "背景音乐"; - -"ASKit.MenuItem.Surround sound test 1" = "环绕声测试1"; -"ASKit.MenuItem.Surround sound test 2" = "环绕声测试2"; -"ASKit.MenuItem.Surround sound test 3" = "环绕声测试3"; -"ASKit.MenuItem.Unknown" = "佚名"; -"ASKit.MenuItem.Reverb" = "混响"; -"ASKit.MenuItem.Original" = "原声"; -"ASKit.MenuItem.Naughty boy" = "熊孩子"; -"ASKit.MenuItem.Little girl" = "萝莉"; -"ASKit.MenuItem.Middle-aged man" = "大叔"; -"ASKit.MenuItem.Heavy metal" = "重金属"; -"ASKit.MenuItem.Being cold" = "感冒"; -"ASKit.MenuItem.Non-native speaker" = "外国人"; -"ASKit.MenuItem.Furious animal" = "困兽"; -"ASKit.MenuItem.Fat otaku" = "死肥宅"; -"ASKit.MenuItem.Strong electric current" = "强电流"; -"ASKit.MenuItem.Robot" = "重机械"; -"ASKit.MenuItem.Ethereal voice" = "空灵"; -"ASKit.MenuItem.No effect" = "无效果"; -"ASKit.MenuItem.Karaoke room" = "KTV"; -"ASKit.MenuItem.Small room" = "小房间"; -"ASKit.MenuItem.Big hall" = "大会堂"; -"ASKit.MenuItem.Deep" = "低沉"; -"ASKit.MenuItem.Resonant" = "洪亮"; -"ASKit.MenuItem.Metallic" = "金属声"; -"ASKit.MenuItem.Husky" = "磁性"; - diff --git a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/TCAudioSettingKitResources/Info.plist b/iOS/Demo/TXLiteAVDemo/AudioSettingKit/TCAudioSettingKitResources/Info.plist deleted file mode 100644 index 0def6817..00000000 --- a/iOS/Demo/TXLiteAVDemo/AudioSettingKit/TCAudioSettingKitResources/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - NSHumanReadableCopyright - Copyright © 2020 tencent. All rights reserved. - - diff --git a/iOS/Demo/TXLiteAVDemo/Base.lproj/LaunchScreen.storyboard b/iOS/Demo/TXLiteAVDemo/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 61204a48..00000000 --- a/iOS/Demo/TXLiteAVDemo/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS/Demo/TXLiteAVDemo/Base.lproj/LaunchScreen_en.storyboard b/iOS/Demo/TXLiteAVDemo/Base.lproj/LaunchScreen_en.storyboard deleted file mode 100644 index 6c37bb3f..00000000 --- a/iOS/Demo/TXLiteAVDemo/Base.lproj/LaunchScreen_en.storyboard +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS/Demo/TXLiteAVDemo/Base.lproj/Main.storyboard b/iOS/Demo/TXLiteAVDemo/Base.lproj/Main.storyboard deleted file mode 100644 index 4c31e033..00000000 --- a/iOS/Demo/TXLiteAVDemo/Base.lproj/Main.storyboard +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Info.plist b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Info.plist deleted file mode 100644 index 016a006a..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - NSHumanReadableCopyright - Copyright © 2019 Tencent. All rights reserved. - - diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Contents.json deleted file mode 100644 index 73c00596..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/Contents.json deleted file mode 100644 index 73c00596..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/bailan.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/bailan.imageset/Contents.json deleted file mode 100644 index 00276f1e..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/bailan.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "bailan@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/bailan.imageset/bailan@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/bailan.imageset/bailan@2x.png deleted file mode 100644 index 179d0617..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/bailan.imageset/bailan@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/baixi.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/baixi.imageset/Contents.json deleted file mode 100644 index f796a413..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/baixi.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "baixi.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/baixi.imageset/baixi.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/baixi.imageset/baixi.png deleted file mode 100644 index ab87507f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/baixi.imageset/baixi.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/chaotuo.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/chaotuo.imageset/Contents.json deleted file mode 100644 index 1c889366..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/chaotuo.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "chaotuo@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/chaotuo.imageset/chaotuo@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/chaotuo.imageset/chaotuo@2x.png deleted file mode 100644 index 6af93522..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/chaotuo.imageset/chaotuo@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/chunzhen.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/chunzhen.imageset/Contents.json deleted file mode 100644 index 2f75c667..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/chunzhen.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "chunzhen@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/chunzhen.imageset/chunzhen@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/chunzhen.imageset/chunzhen@2x.png deleted file mode 100644 index cf69c678..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/chunzhen.imageset/chunzhen@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/fennen.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/fennen.imageset/Contents.json deleted file mode 100644 index 1f706366..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/fennen.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "fennen@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/fennen.imageset/fennen@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/fennen.imageset/fennen@2x.png deleted file mode 100644 index b266f77d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/fennen.imageset/fennen@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/fwhite.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/fwhite.imageset/Contents.json deleted file mode 100644 index 2666debb..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/fwhite.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "fwhite@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/fwhite.imageset/fwhite@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/fwhite.imageset/fwhite@2x.png deleted file mode 100644 index e80a4661..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/fwhite.imageset/fwhite@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/huaijiu.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/huaijiu.imageset/Contents.json deleted file mode 100644 index 367e7b96..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/huaijiu.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "huaijiu@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/huaijiu.imageset/huaijiu@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/huaijiu.imageset/huaijiu@2x.png deleted file mode 100644 index 2db78f09..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/huaijiu.imageset/huaijiu@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/landiao.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/landiao.imageset/Contents.json deleted file mode 100644 index 78e11cbf..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/landiao.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "landiao@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/landiao.imageset/landiao@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/landiao.imageset/landiao@2x.png deleted file mode 100644 index bb6c26b2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/landiao.imageset/landiao@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/langman.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/langman.imageset/Contents.json deleted file mode 100644 index 4f2e1eeb..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/langman.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "langman@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/langman.imageset/langman@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/langman.imageset/langman@2x.png deleted file mode 100644 index 193281f6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/langman.imageset/langman@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/normal.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/normal.imageset/Contents.json deleted file mode 100644 index 4dbf825c..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/normal.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "biaozhun@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/normal.imageset/biaozhun@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/normal.imageset/biaozhun@2x.png deleted file mode 100644 index 63366b51..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/normal.imageset/biaozhun@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/original.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/original.imageset/Contents.json deleted file mode 100644 index b1e204c6..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/original.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "orginal@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/original.imageset/orginal@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/original.imageset/orginal@2x.png deleted file mode 100644 index dc28fa35..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/original.imageset/orginal@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/qingliang.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/qingliang.imageset/Contents.json deleted file mode 100644 index 8ccdb4c0..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/qingliang.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "qingliang@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/qingliang.imageset/qingliang@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/qingliang.imageset/qingliang@2x.png deleted file mode 100644 index d9afbe08..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/qingliang.imageset/qingliang@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/qingxin.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/qingxin.imageset/Contents.json deleted file mode 100644 index 6f126185..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/qingxin.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "qingxin@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/qingxin.imageset/qingxin@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/qingxin.imageset/qingxin@2x.png deleted file mode 100644 index 7ee66c81..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/qingxin.imageset/qingxin@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/rixi.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/rixi.imageset/Contents.json deleted file mode 100644 index e6298b5e..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/rixi.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "rixi@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/rixi.imageset/rixi@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/rixi.imageset/rixi@2x.png deleted file mode 100644 index 4be32cba..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/rixi.imageset/rixi@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/weimei.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/weimei.imageset/Contents.json deleted file mode 100644 index 350edd3a..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/weimei.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "weimei@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/weimei.imageset/weimei@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/weimei.imageset/weimei@2x.png deleted file mode 100644 index 4c86ca39..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/weimei.imageset/weimei@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/xiangfen.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/xiangfen.imageset/Contents.json deleted file mode 100644 index 36f71edf..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/xiangfen.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "xiangfen@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/xiangfen.imageset/xiangfen@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/xiangfen.imageset/xiangfen@2x.png deleted file mode 100644 index 6bba8f6b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/xiangfen.imageset/xiangfen@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yinghong.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yinghong.imageset/Contents.json deleted file mode 100644 index 5f33a453..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yinghong.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "yinghong@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yinghong.imageset/yinghong@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yinghong.imageset/yinghong@2x.png deleted file mode 100644 index 8389af40..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yinghong.imageset/yinghong@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yuanqi.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yuanqi.imageset/Contents.json deleted file mode 100644 index df9f7f58..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yuanqi.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "yuanqi@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yuanqi.imageset/yuanqi@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yuanqi.imageset/yuanqi@2x.png deleted file mode 100644 index 1886ad90..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yuanqi.imageset/yuanqi@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yunshang.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yunshang.imageset/Contents.json deleted file mode 100644 index 566be8b6..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yunshang.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "yunshang@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yunshang.imageset/yunshang@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yunshang.imageset/yunshang@2x.png deleted file mode 100644 index 5063a8e3..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/yunshang.imageset/yunshang@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/ziran.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/ziran.imageset/Contents.json deleted file mode 100644 index ab4dc650..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/ziran.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "ziran.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/ziran.imageset/ziran.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/ziran.imageset/ziran.png deleted file mode 100644 index 5bfade0a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/Filter/ziran.imageset/ziran.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_3DFace_alalei0.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_3DFace_alalei0.imageset/Contents.json deleted file mode 100644 index 5bc06e36..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_3DFace_alalei0.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_3DFace_alalei0.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_3DFace_alalei0.imageset/video_3DFace_alalei0.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_3DFace_alalei0.imageset/video_3DFace_alalei0.png deleted file mode 100644 index ed43c969..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_3DFace_alalei0.imageset/video_3DFace_alalei0.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_3DFace_dogglasses2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_3DFace_dogglasses2.imageset/Contents.json deleted file mode 100644 index 0e0eb7e4..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_3DFace_dogglasses2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_3DFace_dogglasses2.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_3DFace_dogglasses2.imageset/video_3DFace_dogglasses2.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_3DFace_dogglasses2.imageset/video_3DFace_dogglasses2.png deleted file mode 100644 index 3eaeaa9e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_3DFace_dogglasses2.imageset/video_3DFace_dogglasses2.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_Qxingzuo_iOS.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_Qxingzuo_iOS.imageset/Contents.json deleted file mode 100644 index ec4812b8..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_Qxingzuo_iOS.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_Qxingzuo.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_Qxingzuo_iOS.imageset/video_Qxingzuo.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_Qxingzuo_iOS.imageset/video_Qxingzuo.png deleted file mode 100644 index 149bd63f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_Qxingzuo_iOS.imageset/video_Qxingzuo.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_baby_agetest.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_baby_agetest.imageset/Contents.json deleted file mode 100644 index 13d7e62f..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_baby_agetest.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_baby_agetest.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_baby_agetest.imageset/video_baby_agetest.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_baby_agetest.imageset/video_baby_agetest.png deleted file mode 100644 index b81df040..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_baby_agetest.imageset/video_baby_agetest.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_boom.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_boom.imageset/Contents.json deleted file mode 100644 index 6cb259b9..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_boom.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_boom.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_boom.imageset/video_boom.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_boom.imageset/video_boom.png deleted file mode 100644 index bf87fbb5..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_boom.imageset/video_boom.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_bottle1.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_bottle1.imageset/Contents.json deleted file mode 100644 index 91945918..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_bottle1.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_bottle1.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_bottle1.imageset/video_bottle1.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_bottle1.imageset/video_bottle1.png deleted file mode 100644 index 17aa5443..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_bottle1.imageset/video_bottle1.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_caidai_iOS.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_caidai_iOS.imageset/Contents.json deleted file mode 100644 index 1a4458ba..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_caidai_iOS.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_caidai.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_caidai_iOS.imageset/video_caidai.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_caidai_iOS.imageset/video_caidai.png deleted file mode 100644 index 1c272ca7..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_caidai_iOS.imageset/video_caidai.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_cherries.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_cherries.imageset/Contents.json deleted file mode 100644 index bcff8fc1..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_cherries.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_cherries.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_cherries.imageset/video_cherries.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_cherries.imageset/video_cherries.png deleted file mode 100644 index 88b21914..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_cherries.imageset/video_cherries.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_dianshizhixing.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_dianshizhixing.imageset/Contents.json deleted file mode 100644 index 7395fe70..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_dianshizhixing.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_dianshizhixing.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_dianshizhixing.imageset/video_dianshizhixing.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_dianshizhixing.imageset/video_dianshizhixing.png deleted file mode 100644 index 77dbe729..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_dianshizhixing.imageset/video_dianshizhixing.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_dxxiaochounv.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_dxxiaochounv.imageset/Contents.json deleted file mode 100644 index b7b55c2a..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_dxxiaochounv.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_dxxiaochounv.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_dxxiaochounv.imageset/video_dxxiaochounv.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_dxxiaochounv.imageset/video_dxxiaochounv.png deleted file mode 100644 index 31e6188f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_dxxiaochounv.imageset/video_dxxiaochounv.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_fenfenxia_square_iOS.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_fenfenxia_square_iOS.imageset/Contents.json deleted file mode 100644 index d1710e50..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_fenfenxia_square_iOS.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_fenfenxia_square_iOS.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_fenfenxia_square_iOS.imageset/video_fenfenxia_square_iOS.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_fenfenxia_square_iOS.imageset/video_fenfenxia_square_iOS.png deleted file mode 100644 index 62f41390..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_fenfenxia_square_iOS.imageset/video_fenfenxia_square_iOS.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_fengkuangdacall.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_fengkuangdacall.imageset/Contents.json deleted file mode 100644 index 3b11d150..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_fengkuangdacall.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_fengkuangdacall.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_fengkuangdacall.imageset/video_fengkuangdacall.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_fengkuangdacall.imageset/video_fengkuangdacall.png deleted file mode 100644 index a910594b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_fengkuangdacall.imageset/video_fengkuangdacall.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_guajiezhuang.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_guajiezhuang.imageset/Contents.json deleted file mode 100644 index 434db1a2..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_guajiezhuang.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_guajiezhuang.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_guajiezhuang.imageset/video_guajiezhuang.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_guajiezhuang.imageset/video_guajiezhuang.png deleted file mode 100644 index b4fc5776..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_guajiezhuang.imageset/video_guajiezhuang.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_gufengzhuang.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_gufengzhuang.imageset/Contents.json deleted file mode 100644 index 1a7295eb..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_gufengzhuang.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_gufengzhuang.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_gufengzhuang.imageset/video_gufengzhuang.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_gufengzhuang.imageset/video_gufengzhuang.png deleted file mode 100644 index 9d2c49a8..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_gufengzhuang.imageset/video_gufengzhuang.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_haiyang2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_haiyang2.imageset/Contents.json deleted file mode 100644 index f0b5b662..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_haiyang2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_haiyang2.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_haiyang2.imageset/video_haiyang2.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_haiyang2.imageset/video_haiyang2.png deleted file mode 100644 index 37ee7a7a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_haiyang2.imageset/video_haiyang2.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_huaxianzi.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_huaxianzi.imageset/Contents.json deleted file mode 100644 index f894e1b9..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_huaxianzi.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_huaxianzi.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_huaxianzi.imageset/video_huaxianzi.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_huaxianzi.imageset/video_huaxianzi.png deleted file mode 100644 index 72b60703..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_huaxianzi.imageset/video_huaxianzi.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_kongxue2.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_kongxue2.imageset/Contents.json deleted file mode 100644 index 6c709e82..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_kongxue2.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_kongxue2.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_kongxue2.imageset/video_kongxue2.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_kongxue2.imageset/video_kongxue2.png deleted file mode 100644 index 78d029cc..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_kongxue2.imageset/video_kongxue2.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_lianpu.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_lianpu.imageset/Contents.json deleted file mode 100644 index d02dc1e1..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_lianpu.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_lianpu.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_lianpu.imageset/video_lianpu.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_lianpu.imageset/video_lianpu.png deleted file mode 100644 index fd32a517..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_lianpu.imageset/video_lianpu.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_liuhaifadai.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_liuhaifadai.imageset/Contents.json deleted file mode 100644 index a42f1ad6..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_liuhaifadai.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_liuhaifadai.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_liuhaifadai.imageset/video_liuhaifadai.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_liuhaifadai.imageset/video_liuhaifadai.png deleted file mode 100644 index 12aa1963..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_liuhaifadai.imageset/video_liuhaifadai.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_liuxingyu.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_liuxingyu.imageset/Contents.json deleted file mode 100644 index 7ac21170..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_liuxingyu.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_liuxingyu.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_liuxingyu.imageset/video_liuxingyu.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_liuxingyu.imageset/video_liuxingyu.png deleted file mode 100644 index cf6ca221..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_liuxingyu.imageset/video_liuxingyu.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_nihongshu.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_nihongshu.imageset/Contents.json deleted file mode 100644 index ccd68eb7..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_nihongshu.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_nihongshu.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_nihongshu.imageset/video_nihongshu.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_nihongshu.imageset/video_nihongshu.png deleted file mode 100644 index ff2eb08a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_nihongshu.imageset/video_nihongshu.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_pikachu.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_pikachu.imageset/Contents.json deleted file mode 100644 index 3af99fc5..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_pikachu.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_pikachu.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_pikachu.imageset/video_pikachu.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_pikachu.imageset/video_pikachu.png deleted file mode 100644 index d19cd019..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_pikachu.imageset/video_pikachu.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_purplecat.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_purplecat.imageset/Contents.json deleted file mode 100644 index 8e782a97..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_purplecat.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_purplecat.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_purplecat.imageset/video_purplecat.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_purplecat.imageset/video_purplecat.png deleted file mode 100644 index 8c6bbac6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_purplecat.imageset/video_purplecat.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qingchunzannan_iOS.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qingchunzannan_iOS.imageset/Contents.json deleted file mode 100644 index c023d00b..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qingchunzannan_iOS.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_qingchunzannan_iOS.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qingchunzannan_iOS.imageset/video_qingchunzannan_iOS.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qingchunzannan_iOS.imageset/video_qingchunzannan_iOS.png deleted file mode 100644 index 779ca01c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qingchunzannan_iOS.imageset/video_qingchunzannan_iOS.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qixichun.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qixichun.imageset/Contents.json deleted file mode 100644 index 15aad43d..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qixichun.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_qixichun.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qixichun.imageset/video_qixichun.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qixichun.imageset/video_qixichun.png deleted file mode 100644 index 16fe8d72..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qixichun.imageset/video_qixichun.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qxingzuo.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qxingzuo.imageset/Contents.json deleted file mode 100644 index 55918350..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qxingzuo.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_qxingzuo.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qxingzuo.imageset/video_qxingzuo.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qxingzuo.imageset/video_qxingzuo.png deleted file mode 100644 index 149bd63f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_qxingzuo.imageset/video_qxingzuo.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_rainbow.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_rainbow.imageset/Contents.json deleted file mode 100644 index d2eeefd3..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_rainbow.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_rainbow.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_rainbow.imageset/video_rainbow.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_rainbow.imageset/video_rainbow.png deleted file mode 100644 index 7df26edd..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_rainbow.imageset/video_rainbow.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_remix1.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_remix1.imageset/Contents.json deleted file mode 100644 index 43ec2629..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_remix1.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_remix1.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_remix1.imageset/video_remix1.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_remix1.imageset/video_remix1.png deleted file mode 100644 index c176a429..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_remix1.imageset/video_remix1.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_starear.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_starear.imageset/Contents.json deleted file mode 100644 index 52afad05..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_starear.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "video_starear.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_starear.imageset/video_starear.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_starear.imageset/video_starear.png deleted file mode 100644 index ba897f5c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_starear.imageset/video_starear.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_xiaofu.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_xiaofu.imageset/Contents.json deleted file mode 100644 index 49298042..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_xiaofu.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelBgRemovalIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelBgRemovalIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_xiaofu.imageset/beautyPanelBgRemovalIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_xiaofu.imageset/beautyPanelBgRemovalIcon@2x.png deleted file mode 100644 index 6906b9ff..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_xiaofu.imageset/beautyPanelBgRemovalIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_xiaofu.imageset/beautyPanelBgRemovalIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_xiaofu.imageset/beautyPanelBgRemovalIcon@3x.png deleted file mode 100644 index 1512fa83..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/MotionIcons/video_xiaofu.imageset/beautyPanelBgRemovalIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelChinIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelChinIcon.imageset/Contents.json deleted file mode 100644 index 875861e7..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelChinIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelChinIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelChinIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelChinIcon.imageset/beautyPanelChinIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelChinIcon.imageset/beautyPanelChinIcon@2x.png deleted file mode 100644 index b8964be4..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelChinIcon.imageset/beautyPanelChinIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelChinIcon.imageset/beautyPanelChinIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelChinIcon.imageset/beautyPanelChinIcon@3x.png deleted file mode 100644 index ff8869fa..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelChinIcon.imageset/beautyPanelChinIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeAngleIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeAngleIcon.imageset/Contents.json deleted file mode 100644 index 95090f72..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeAngleIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelEyeAngleIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelEyeAngleIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeAngleIcon.imageset/beautyPanelEyeAngleIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeAngleIcon.imageset/beautyPanelEyeAngleIcon@2x.png deleted file mode 100644 index 66ff27f2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeAngleIcon.imageset/beautyPanelEyeAngleIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeAngleIcon.imageset/beautyPanelEyeAngleIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeAngleIcon.imageset/beautyPanelEyeAngleIcon@3x.png deleted file mode 100644 index 305a505f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeAngleIcon.imageset/beautyPanelEyeAngleIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeDistanceIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeDistanceIcon.imageset/Contents.json deleted file mode 100644 index 47c2f0fc..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeDistanceIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelEyeDistanceIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelEyeDistanceIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeDistanceIcon.imageset/beautyPanelEyeDistanceIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeDistanceIcon.imageset/beautyPanelEyeDistanceIcon@2x.png deleted file mode 100644 index 308159fa..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeDistanceIcon.imageset/beautyPanelEyeDistanceIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeDistanceIcon.imageset/beautyPanelEyeDistanceIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeDistanceIcon.imageset/beautyPanelEyeDistanceIcon@3x.png deleted file mode 100644 index 17326c69..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeDistanceIcon.imageset/beautyPanelEyeDistanceIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeLightenIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeLightenIcon.imageset/Contents.json deleted file mode 100644 index fa760cf4..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeLightenIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelEyeLightenIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelEyeLightenIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeLightenIcon.imageset/beautyPanelEyeLightenIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeLightenIcon.imageset/beautyPanelEyeLightenIcon@2x.png deleted file mode 100644 index 39295289..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeLightenIcon.imageset/beautyPanelEyeLightenIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeLightenIcon.imageset/beautyPanelEyeLightenIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeLightenIcon.imageset/beautyPanelEyeLightenIcon@3x.png deleted file mode 100644 index 00ae51c2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeLightenIcon.imageset/beautyPanelEyeLightenIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeScaleIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeScaleIcon.imageset/Contents.json deleted file mode 100644 index 35f5d5d1..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeScaleIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelEyeScaleIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelEyeScaleIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeScaleIcon.imageset/beautyPanelEyeScaleIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeScaleIcon.imageset/beautyPanelEyeScaleIcon@2x.png deleted file mode 100644 index 08257124..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeScaleIcon.imageset/beautyPanelEyeScaleIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeScaleIcon.imageset/beautyPanelEyeScaleIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeScaleIcon.imageset/beautyPanelEyeScaleIcon@3x.png deleted file mode 100644 index b16da0cd..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelEyeScaleIcon.imageset/beautyPanelEyeScaleIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceBeautyIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceBeautyIcon.imageset/Contents.json deleted file mode 100644 index 8ed70f7e..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceBeautyIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelFaceBeautyIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelFaceBeautyIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceBeautyIcon.imageset/beautyPanelFaceBeautyIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceBeautyIcon.imageset/beautyPanelFaceBeautyIcon@2x.png deleted file mode 100644 index d2fbcb58..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceBeautyIcon.imageset/beautyPanelFaceBeautyIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceBeautyIcon.imageset/beautyPanelFaceBeautyIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceBeautyIcon.imageset/beautyPanelFaceBeautyIcon@3x.png deleted file mode 100644 index 036704bf..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceBeautyIcon.imageset/beautyPanelFaceBeautyIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceScaleIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceScaleIcon.imageset/Contents.json deleted file mode 100644 index b02ebd1e..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceScaleIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelFaceScaleIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelFaceScaleIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceScaleIcon.imageset/beautyPanelFaceScaleIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceScaleIcon.imageset/beautyPanelFaceScaleIcon@2x.png deleted file mode 100644 index 59a5d4db..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceScaleIcon.imageset/beautyPanelFaceScaleIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceScaleIcon.imageset/beautyPanelFaceScaleIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceScaleIcon.imageset/beautyPanelFaceScaleIcon@3x.png deleted file mode 100644 index 97b8f32d..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceScaleIcon.imageset/beautyPanelFaceScaleIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceSlimIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceSlimIcon.imageset/Contents.json deleted file mode 100644 index fa1dca2e..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceSlimIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelFaceSlimIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelFaceSlimIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceSlimIcon.imageset/beautyPanelFaceSlimIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceSlimIcon.imageset/beautyPanelFaceSlimIcon@2x.png deleted file mode 100644 index 15fe6909..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceSlimIcon.imageset/beautyPanelFaceSlimIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceSlimIcon.imageset/beautyPanelFaceSlimIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceSlimIcon.imageset/beautyPanelFaceSlimIcon@3x.png deleted file mode 100644 index 9f8657a5..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceSlimIcon.imageset/beautyPanelFaceSlimIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceVIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceVIcon.imageset/Contents.json deleted file mode 100644 index 1a1fd374..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceVIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelFaceVIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelFaceVIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceVIcon.imageset/beautyPanelFaceVIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceVIcon.imageset/beautyPanelFaceVIcon@2x.png deleted file mode 100644 index fdf0842a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceVIcon.imageset/beautyPanelFaceVIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceVIcon.imageset/beautyPanelFaceVIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceVIcon.imageset/beautyPanelFaceVIcon@3x.png deleted file mode 100644 index f04d4324..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelFaceVIcon.imageset/beautyPanelFaceVIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelForeheadIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelForeheadIcon.imageset/Contents.json deleted file mode 100644 index 22ac4c30..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelForeheadIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelForeheadIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelForeheadIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelForeheadIcon.imageset/beautyPanelForeheadIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelForeheadIcon.imageset/beautyPanelForeheadIcon@2x.png deleted file mode 100644 index ec13a667..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelForeheadIcon.imageset/beautyPanelForeheadIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelForeheadIcon.imageset/beautyPanelForeheadIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelForeheadIcon.imageset/beautyPanelForeheadIcon@3x.png deleted file mode 100644 index 26c21b31..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelForeheadIcon.imageset/beautyPanelForeheadIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelGoodLuckIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelGoodLuckIcon.imageset/Contents.json deleted file mode 100644 index 2f716388..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelGoodLuckIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelGoodluck@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelGoodluck@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelGoodLuckIcon.imageset/beautyPanelGoodluck@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelGoodLuckIcon.imageset/beautyPanelGoodluck@2x.png deleted file mode 100644 index 8301babe..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelGoodLuckIcon.imageset/beautyPanelGoodluck@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelGoodLuckIcon.imageset/beautyPanelGoodluck@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelGoodLuckIcon.imageset/beautyPanelGoodluck@3x.png deleted file mode 100644 index 08684d59..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelGoodLuckIcon.imageset/beautyPanelGoodluck@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelLipsThicknessIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelLipsThicknessIcon.imageset/Contents.json deleted file mode 100644 index f40f41b9..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelLipsThicknessIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelLipsThicknessIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelLipsThicknessIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelLipsThicknessIcon.imageset/beautyPanelLipsThicknessIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelLipsThicknessIcon.imageset/beautyPanelLipsThicknessIcon@2x.png deleted file mode 100644 index 9b9ce524..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelLipsThicknessIcon.imageset/beautyPanelLipsThicknessIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelLipsThicknessIcon.imageset/beautyPanelLipsThicknessIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelLipsThicknessIcon.imageset/beautyPanelLipsThicknessIcon@3x.png deleted file mode 100644 index affaa5a8..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelLipsThicknessIcon.imageset/beautyPanelLipsThicknessIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/Contents.json deleted file mode 100644 index 2f2db67a..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelMenuSelectionBackgroundImage@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelMenuSelectionBackgroundImage@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/beautyPanelMenuSelectionBackgroundImage@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/beautyPanelMenuSelectionBackgroundImage@2x.png deleted file mode 100644 index 400ac93a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/beautyPanelMenuSelectionBackgroundImage@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/beautyPanelMenuSelectionBackgroundImage@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/beautyPanelMenuSelectionBackgroundImage@3x.png deleted file mode 100644 index 7d769082..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMenuSelectionBackgroundImage.imageset/beautyPanelMenuSelectionBackgroundImage@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMouthShapeIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMouthShapeIcon.imageset/Contents.json deleted file mode 100644 index dc145013..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMouthShapeIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelMouthShapeIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelMouthShapeIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMouthShapeIcon.imageset/beautyPanelMouthShapeIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMouthShapeIcon.imageset/beautyPanelMouthShapeIcon@2x.png deleted file mode 100644 index a86a3ebb..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMouthShapeIcon.imageset/beautyPanelMouthShapeIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMouthShapeIcon.imageset/beautyPanelMouthShapeIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMouthShapeIcon.imageset/beautyPanelMouthShapeIcon@3x.png deleted file mode 100644 index caa08ed3..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelMouthShapeIcon.imageset/beautyPanelMouthShapeIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNatureBeautyStyleIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNatureBeautyStyleIcon.imageset/Contents.json deleted file mode 100644 index 24c1326c..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNatureBeautyStyleIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelNatureBeautyStyleIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelNatureBeautyStyleIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNatureBeautyStyleIcon.imageset/beautyPanelNatureBeautyStyleIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNatureBeautyStyleIcon.imageset/beautyPanelNatureBeautyStyleIcon@2x.png deleted file mode 100644 index ff05aaeb..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNatureBeautyStyleIcon.imageset/beautyPanelNatureBeautyStyleIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNatureBeautyStyleIcon.imageset/beautyPanelNatureBeautyStyleIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNatureBeautyStyleIcon.imageset/beautyPanelNatureBeautyStyleIcon@3x.png deleted file mode 100644 index 6c641fc0..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNatureBeautyStyleIcon.imageset/beautyPanelNatureBeautyStyleIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNosePositionIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNosePositionIcon.imageset/Contents.json deleted file mode 100644 index 578fd149..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNosePositionIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelNosePositionIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelNosePositionIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNosePositionIcon.imageset/beautyPanelNosePositionIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNosePositionIcon.imageset/beautyPanelNosePositionIcon@2x.png deleted file mode 100644 index 9bbcda6b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNosePositionIcon.imageset/beautyPanelNosePositionIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNosePositionIcon.imageset/beautyPanelNosePositionIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNosePositionIcon.imageset/beautyPanelNosePositionIcon@3x.png deleted file mode 100644 index fc509d2f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNosePositionIcon.imageset/beautyPanelNosePositionIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseSlimIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseSlimIcon.imageset/Contents.json deleted file mode 100644 index 565400f0..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseSlimIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelNoseSlimIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelNoseSlimIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseSlimIcon.imageset/beautyPanelNoseSlimIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseSlimIcon.imageset/beautyPanelNoseSlimIcon@2x.png deleted file mode 100644 index 60cf8b68..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseSlimIcon.imageset/beautyPanelNoseSlimIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseSlimIcon.imageset/beautyPanelNoseSlimIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseSlimIcon.imageset/beautyPanelNoseSlimIcon@3x.png deleted file mode 100644 index 63843101..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseSlimIcon.imageset/beautyPanelNoseSlimIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseWingIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseWingIcon.imageset/Contents.json deleted file mode 100644 index 9f41f869..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseWingIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelNoseWingIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelNoseWingIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseWingIcon.imageset/beautyPanelNoseWingIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseWingIcon.imageset/beautyPanelNoseWingIcon@2x.png deleted file mode 100644 index df9cebc6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseWingIcon.imageset/beautyPanelNoseWingIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseWingIcon.imageset/beautyPanelNoseWingIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseWingIcon.imageset/beautyPanelNoseWingIcon@3x.png deleted file mode 100644 index f6ce419c..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelNoseWingIcon.imageset/beautyPanelNoseWingIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPTuBeautyStyleIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPTuBeautyStyleIcon.imageset/Contents.json deleted file mode 100644 index 0219facb..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPTuBeautyStyleIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelPTuBeautyStyleIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelPTuBeautyStyleIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPTuBeautyStyleIcon.imageset/beautyPanelPTuBeautyStyleIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPTuBeautyStyleIcon.imageset/beautyPanelPTuBeautyStyleIcon@2x.png deleted file mode 100644 index 89e52930..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPTuBeautyStyleIcon.imageset/beautyPanelPTuBeautyStyleIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPTuBeautyStyleIcon.imageset/beautyPanelPTuBeautyStyleIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPTuBeautyStyleIcon.imageset/beautyPanelPTuBeautyStyleIcon@3x.png deleted file mode 100644 index a47062b9..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPTuBeautyStyleIcon.imageset/beautyPanelPTuBeautyStyleIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPounchRemoveIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPounchRemoveIcon.imageset/Contents.json deleted file mode 100644 index df474555..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPounchRemoveIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelPounchRemoveIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelPounchRemoveIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPounchRemoveIcon.imageset/beautyPanelPounchRemoveIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPounchRemoveIcon.imageset/beautyPanelPounchRemoveIcon@2x.png deleted file mode 100644 index 0ddf768e..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPounchRemoveIcon.imageset/beautyPanelPounchRemoveIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPounchRemoveIcon.imageset/beautyPanelPounchRemoveIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPounchRemoveIcon.imageset/beautyPanelPounchRemoveIcon@3x.png deleted file mode 100644 index 9ed7d756..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelPounchRemoveIcon.imageset/beautyPanelPounchRemoveIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelRuddyIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelRuddyIcon.imageset/Contents.json deleted file mode 100644 index 4a055aed..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelRuddyIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelRuddyIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelRuddyIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelRuddyIcon.imageset/beautyPanelRuddyIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelRuddyIcon.imageset/beautyPanelRuddyIcon@2x.png deleted file mode 100644 index 219eaa68..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelRuddyIcon.imageset/beautyPanelRuddyIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelRuddyIcon.imageset/beautyPanelRuddyIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelRuddyIcon.imageset/beautyPanelRuddyIcon@3x.png deleted file mode 100644 index 3e5d101b..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelRuddyIcon.imageset/beautyPanelRuddyIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmileLinesRemoveIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmileLinesRemoveIcon.imageset/Contents.json deleted file mode 100644 index 85e684d4..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmileLinesRemoveIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelSmileLinesRemoveIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelSmileLinesRemoveIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmileLinesRemoveIcon.imageset/beautyPanelSmileLinesRemoveIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmileLinesRemoveIcon.imageset/beautyPanelSmileLinesRemoveIcon@2x.png deleted file mode 100644 index 777b1765..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmileLinesRemoveIcon.imageset/beautyPanelSmileLinesRemoveIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmileLinesRemoveIcon.imageset/beautyPanelSmileLinesRemoveIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmileLinesRemoveIcon.imageset/beautyPanelSmileLinesRemoveIcon@3x.png deleted file mode 100644 index 5f4724c0..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmileLinesRemoveIcon.imageset/beautyPanelSmileLinesRemoveIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmoothBeautyStyleIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmoothBeautyStyleIcon.imageset/Contents.json deleted file mode 100644 index 07d9fd60..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmoothBeautyStyleIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelSmoothBeautyStyleIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelSmoothBeautyStyleIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmoothBeautyStyleIcon.imageset/beautyPanelSmoothBeautyStyleIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmoothBeautyStyleIcon.imageset/beautyPanelSmoothBeautyStyleIcon@2x.png deleted file mode 100644 index 346591a2..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmoothBeautyStyleIcon.imageset/beautyPanelSmoothBeautyStyleIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmoothBeautyStyleIcon.imageset/beautyPanelSmoothBeautyStyleIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmoothBeautyStyleIcon.imageset/beautyPanelSmoothBeautyStyleIcon@3x.png deleted file mode 100644 index 4f381cf6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelSmoothBeautyStyleIcon.imageset/beautyPanelSmoothBeautyStyleIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelToothWhitenIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelToothWhitenIcon.imageset/Contents.json deleted file mode 100644 index 62cd8c56..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelToothWhitenIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelToothWhitenIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelToothWhitenIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelToothWhitenIcon.imageset/beautyPanelToothWhitenIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelToothWhitenIcon.imageset/beautyPanelToothWhitenIcon@2x.png deleted file mode 100644 index db1748d5..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelToothWhitenIcon.imageset/beautyPanelToothWhitenIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelToothWhitenIcon.imageset/beautyPanelToothWhitenIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelToothWhitenIcon.imageset/beautyPanelToothWhitenIcon@3x.png deleted file mode 100644 index f6a17988..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelToothWhitenIcon.imageset/beautyPanelToothWhitenIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWhitnessIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWhitnessIcon.imageset/Contents.json deleted file mode 100644 index 78f82902..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWhitnessIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelWhitnessIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelWhitnessIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWhitnessIcon.imageset/beautyPanelWhitnessIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWhitnessIcon.imageset/beautyPanelWhitnessIcon@2x.png deleted file mode 100644 index a49d1a71..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWhitnessIcon.imageset/beautyPanelWhitnessIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWhitnessIcon.imageset/beautyPanelWhitnessIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWhitnessIcon.imageset/beautyPanelWhitnessIcon@3x.png deleted file mode 100644 index e5743f4f..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWhitnessIcon.imageset/beautyPanelWhitnessIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWrinkleRemoveIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWrinkleRemoveIcon.imageset/Contents.json deleted file mode 100644 index a6469d5f..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWrinkleRemoveIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelWrinkleRemoveIcon@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "beautyPanelWrinkleRemoveIcon@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWrinkleRemoveIcon.imageset/beautyPanelWrinkleRemoveIcon@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWrinkleRemoveIcon.imageset/beautyPanelWrinkleRemoveIcon@2x.png deleted file mode 100644 index 85c9c167..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWrinkleRemoveIcon.imageset/beautyPanelWrinkleRemoveIcon@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWrinkleRemoveIcon.imageset/beautyPanelWrinkleRemoveIcon@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWrinkleRemoveIcon.imageset/beautyPanelWrinkleRemoveIcon@3x.png deleted file mode 100644 index be868906..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/beautyPanelWrinkleRemoveIcon.imageset/beautyPanelWrinkleRemoveIcon@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/menuDisableIcon.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/menuDisableIcon.imageset/Contents.json deleted file mode 100644 index 4c645a12..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/menuDisableIcon.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "menuDisable@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "menuDisable@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/menuDisableIcon.imageset/menuDisable@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/menuDisableIcon.imageset/menuDisable@2x.png deleted file mode 100644 index 9e489a1a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/menuDisableIcon.imageset/menuDisable@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/menuDisableIcon.imageset/menuDisable@3x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/menuDisableIcon.imageset/menuDisable@3x.png deleted file mode 100644 index 8885a961..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/menuDisableIcon.imageset/menuDisable@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/sliderThumbImage.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/sliderThumbImage.imageset/Contents.json deleted file mode 100644 index d8b0d9bb..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/sliderThumbImage.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "beauty_slider@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/sliderThumbImage.imageset/beauty_slider@2x.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/sliderThumbImage.imageset/beauty_slider@2x.png deleted file mode 100644 index 2522fcc6..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/sliderThumbImage.imageset/beauty_slider@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/ziran.imageset/Contents.json b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/ziran.imageset/Contents.json deleted file mode 100644 index ab4dc650..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/ziran.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "ziran.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/ziran.imageset/ziran.png b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/ziran.imageset/ziran.png deleted file mode 100644 index 5bfade0a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/Media.xcassets/ziran.imageset/ziran.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/en.lproj/Localizable.strings b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/en.lproj/Localizable.strings deleted file mode 100644 index cae624c6..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/en.lproj/Localizable.strings +++ /dev/null @@ -1,155 +0,0 @@ -/* - File.strings - TCBeautyPanel - - Created by abyyxwang on 2020/8/11. - Copyright © 2020 Tencent. All rights reserved. -*/ -// old -"TC.Common.Clear" = "Clear"; -"TC.Common.Filter_ziran" = "Nature"; -"TC.Common.Filter_baixi" = "White"; -"TC.Common.Filter_original" = "Original"; -"TC.Common.Filter_normal" = "Standard"; -"TC.Common.Filter_yinghong" = "Cheery"; -"TC.Common.Filter_yunshang" = "Cloud"; -"TC.Common.Filter_chunzhen" = "Pure"; -"TC.Common.Filter_bailan" = "Orchid"; -"TC.Common.Filter_yuanqi" = "Vitality"; -"TC.Common.Filter_chaotuo" = "Super"; -"TC.Common.Filter_xiangfen" = "Fragrance"; -"TC.Common.Filter_white" = "White"; -"TC.Common.Filter_langman" = "Romantic"; -"TC.Common.Filter_qingxin" = "Fresh"; -"TC.Common.Filter_weimei" = "Aesthetic"; -"TC.Common.Filter_fennen" = "Rosy"; -"TC.Common.Filter_huaijiu" = "Nostalgic"; -"TC.Common.Filter_landiao" = "Blues"; -"TC.Common.Filter_qingliang" = "Cool"; -"TC.Common.Filter_rixi" = "Sweet"; -"TC.Common.Clear" = "Clear"; -"TC.BeautySettingPanel.None" = "None"; -"TC.BeautySettingPanel.GoodLuck" = "Good Luck"; -"TC.BeautySettingPanel.BeautySmooth" = "Beauty filter(Smooth)"; -"TC.BeautySettingPanel.Beauty-Natural" = "Beauty filter(Natural)"; -"TC.BeautySettingPanel.Beauty-P" = "Beauty filter(PS)"; -"TC.BeautySettingPanel.White" = "Skin brightening"; -"TC.BeautySettingPanel.Ruddy" = "Rosy skin"; -"TC.BeautySettingPanel.BigEyes" = "Eye enlarging"; -"TC.BeautySettingPanel.ThinFace" = "Face slimming"; -"TC.BeautySettingPanel.VFace" = "Chin slimming"; -"TC.BeautySettingPanel.Chin" = "Chin"; -"TC.BeautySettingPanel.ShortFace" = "Face shortening"; -"TC.BeautySettingPanel.ThinNose" = "Nose slimming"; -"TC.BeautySettingPanel.EyeLighten" = "Eye brightening"; -"TC.BeautySettingPanel.ToothWhiten" = "Teeth whitening"; -"TC.BeautySettingPanel.WrinkleRemove" = "Wrinkle-removal"; -"TC.BeautySettingPanel.PounchRemove" = "Eye bag removal"; -"TC.BeautySettingPanel.SmileLinesRemove" = "Smile Lines Removal"; -"TC.BeautySettingPanel.Forehead" = "Hairline"; -"TC.BeautySettingPanel.EyeDistance" = "Eye Distance"; -"TC.BeautySettingPanel.EyeAngle" = "Eye corners"; -"TC.BeautySettingPanel.MouthShape" = "Mouth Shape"; -"TC.BeautySettingPanel.NoseWing" = "Nose Wing"; -"TC.BeautySettingPanel.NosePosition" = "Nose Position"; -"TC.BeautySettingPanel.LipsThickness" = "Lips Thickness"; -"TC.BeautySettingPanel.FaceBeauty" = "Face Beauty"; -"TC.BeautyPanel.Menu.Beauty" = "Beauty"; -"TC.BeautyPanel.Menu.Filter" = "Filter"; -"TC.BeautyPanel.Menu.VideoEffect" = "Dynamic effect"; -"TC.BeautyPanel.Menu.BlendPic" = "Blend Pic"; -"TC.BeautyPanel.Menu.GreenScreen" = "Green screen"; -"TC.BeautyPanel.Menu.Gesture" = "Gesture"; -"TC.BeautyPanel.Menu.Cosmetic" = "Cosmetic"; -// new -"TC.BeautySettingPanel.Confirm" = "Confirm"; -"TC.BeautySettingPanel.Cancel" = "Cancel"; -"TC.BeautySettingPanel.Close" = "Close"; -"TC.BeautySettingPanel.Strength" = "Strength"; -"TC.BeautySettingPanel.Setup" = "Setup"; -"TC.BeautySettingPanel.None" = "None"; -"TC.BeautySettingPanel.Palm out" = "Palm out"; -"TC.BeautySettingPanel.Style" = "Style"; -"TC.BeautySettingPanel.Beauty" = "Beauty"; -"TC.BeautySettingPanel.Filter" = "Filter"; -"TC.BeautySettingPanel.Dynamic effect" = "Dynamic effect"; -"TC.BeautySettingPanel.Blend Pic" = "Blend Pic"; -"TC.BeautySettingPanel.Green screen" = "Green screen"; -"TC.BeautySettingPanel.Face beauty" = "Face beauty"; -"TC.BeautySettingPanel.Gesture" = "Gesture"; -"TC.BeautySettingPanel.Beauty(Smooth)" = "Beauty filter(Smooth)"; -"TC.BeautySettingPanel.Beauty(Natural)" = "Beauty filter(Natural)"; -"TC.BeautySettingPanel.Beauty(PS)" = "Beauty filter(Pitu)"; -"TC.BeautySettingPanel.Beauty" = "Beauty filter"; -"TC.BeautySettingPanel.White" = "Skin brightening"; -"TC.BeautySettingPanel.Ruddy" = "Rosy skin"; -"TC.BeautySettingPanel.Big eyes" = "Eye enlarging"; -"TC.BeautySettingPanel.Thin-face" = "Face slimming"; -"TC.BeautySettingPanel.V-face" = "Chin slimming"; -"TC.BeautySettingPanel.Chin" = "Chin"; -"TC.BeautySettingPanel.Short-face" = "Face shortening"; -"TC.BeautySettingPanel.Thin-nose" = "Nose slimming"; -"TC.BeautySettingPanel.Eye-lighten" = "Eye brightening"; -"TC.BeautySettingPanel.Tooth-white" = "Teeth whitening"; -"TC.BeautySettingPanel.Pounch-remove" = "Eye brightening"; -"TC.BeautySettingPanel.Smilelines-reomve" = "Smile line removal"; -"TC.BeautySettingPanel.Wrinkle-remove" = "Wrinkle removal"; -"TC.BeautySettingPanel.Forehead" = "Hairline"; -"TC.BeautySettingPanel.Eye-distance" = "Eye-distance"; -"TC.BeautySettingPanel.Eye-angle" = "Eye-corners"; -"TC.BeautySettingPanel.Mouth-shape" = "Mouth-shape"; -"TC.BeautySettingPanel.Nose-wing" = "Nose-wing"; -"TC.BeautySettingPanel.Nose-positon" = "Nose-positon"; -"TC.BeautySettingPanel.Mouse-width" = "Lip thickness"; -"TC.BeautySettingPanel.Face-shape" = "Face-shape"; -"TC.BeautySettingPanel.Standard" = "Standard"; -"TC.BeautySettingPanel.Cherry" = "Cherry"; -"TC.BeautySettingPanel.Cloud" = "Cloud"; -"TC.BeautySettingPanel.Pure" = "Pure"; -"TC.BeautySettingPanel.Orchid" = "Orchid"; -"TC.BeautySettingPanel.Vitality" = "Vitality"; -"TC.BeautySettingPanel.Super" = "Super"; -"TC.BeautySettingPanel.Fragrance" = "Fragrance"; -"TC.BeautySettingPanel.White" = "White"; -"TC.BeautySettingPanel.Romantic" = "Romantic"; -"TC.BeautySettingPanel.Fresh" = "Fresh"; -"TC.BeautySettingPanel.Aesthetic" = "Aesthetic"; -"TC.BeautySettingPanel.Rosy" = "Rosy"; -"TC.BeautySettingPanel.Nostalgic" = "Nostalgic"; -"TC.BeautySettingPanel.Blues" = "Blues"; -"TC.BeautySettingPanel.Cool" = "Cool"; -"TC.BeautySettingPanel.Sweet" = "Sweet"; -"TC.BeautySettingPanel.Boom" = "Boom"; -"TC.BeautySettingPanel.Rainbow Mouse" = "Rainbow Mouse"; -"TC.BeautySettingPanel.Glow stick" = "Glow stick"; -"TC.BeautySettingPanel.Q constellation" = "Q constellation"; -"TC.BeautySettingPanel.Color Ribbon" = "Color Ribbon"; -"TC.BeautySettingPanel.Bang Ribbon" = "Bang Ribbon"; -"TC.BeautySettingPanel.Violet Cat" = "Violet Cat"; -"TC.BeautySettingPanel.Floral Fairy" = "Floral Fairy"; -"TC.BeautySettingPanel.Little princess" = "Little princess"; -"TC.BeautySettingPanel.glasses dog" = "glasses dog"; -"TC.BeautySettingPanel.rainbow cloud" = "rainbow cloud"; -"TC.BeautySettingPanel.Star ear" = "Star ear"; -"TC.BeautySettingPanel.Face change" = "Face change"; -"TC.BeautySettingPanel.AI Scratch" = "AI Scratch"; -"TC.BeautySettingPanel.Good luck" = "Good luck"; -"TC.BeautySettingPanel.PikaQiu" = "PikaQiu"; -"TC.BeautySettingPanel.Meteor Shower" = "Meteor Shower"; -"TC.BeautySettingPanel.Snow Control" = "Snow Control"; -"TC.BeautySettingPanel.TV Star" = "TV Star"; -"TC.BeautySettingPanel.Bottle" = "Bottle"; -"TC.BeautySettingPanel.Cherries" = "Cherries"; -"TC.BeautySettingPanel.Ocean" = "Ocean"; -"TC.BeautySettingPanel.FenFenXia" = "FenFenXia"; -"TC.BeautySettingPanel.Widow Makeup" = "Widow Makeup"; -"TC.BeautySettingPanel.Qixichun" = "Qixichun"; -"TC.BeautySettingPanel.Gufeng" = "Gufeng"; -"TC.BeautySettingPanel.Ugly Girl" = "Ugly Girl"; -"TC.BeautySettingPanel.Mixed Makeup" = "Mixed Makeup"; -"TC.BeautySettingPanel.Fu Gu" = "Fu Gu"; -"TC.BeautySettingPanel.Uniforms" = "Uniforms"; -"TC.BeautySettingPanel.unzip fail" = "unzip fail"; -"TC.BeautySettingPanel.download fail" = "download fail"; -"TC.BeautySettingPanel.Insufficient storage space" = "Insufficient storage space"; - diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/goodluck.mp4 b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/goodluck.mp4 deleted file mode 100644 index a59ced0a..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/goodluck.mp4 and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/zh-Hans.lproj/Localizable.strings b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/zh-Hans.lproj/Localizable.strings deleted file mode 100644 index 1843a661..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/Resources/zh-Hans.lproj/Localizable.strings +++ /dev/null @@ -1,152 +0,0 @@ -/* - File.strings - TCBeautyPanel - - Created by abyyxwang on 2020/8/11. - Copyright © 2020 Tencent. All rights reserved. -*/ -"TC.BeautySettingPanel.Confirm" = "确定"; -"TC.BeautySettingPanel.Cancel" = "取消"; -"TC.BeautySettingPanel.Close" = "关闭"; -"TC.BeautySettingPanel.Strength" = "强度"; -"TC.BeautySettingPanel.Setup" = "设置"; -"TC.BeautySettingPanel.None" = "无"; -"TC.BeautySettingPanel.Palm out" = "伸出手掌"; -"TC.BeautySettingPanel.Style" = "风格"; -"TC.BeautySettingPanel.Beauty" = "美颜"; -"TC.BeautySettingPanel.Filter" = "滤镜"; -"TC.BeautySettingPanel.Dynamic effect" = "动效"; -"TC.BeautySettingPanel.Blend Pic" = "抠背"; -"TC.BeautySettingPanel.Green screen" = "绿幕"; -"TC.BeautySettingPanel.Face beauty" = "美妆"; -"TC.BeautySettingPanel.Gesture" = "手势"; -"TC.BeautySettingPanel.Beauty(Smooth)" = "美颜(光滑)"; -"TC.BeautySettingPanel.Beauty(Natural)" = "美颜(自然)"; -"TC.BeautySettingPanel.Beauty(PS)" = "美颜(天天p图)"; -"TC.BeautySettingPanel.Beauty" = "美颜"; -"TC.BeautySettingPanel.White" = "美白"; -"TC.BeautySettingPanel.Ruddy" = "红润"; -"TC.BeautySettingPanel.Big eyes" = "大眼"; -"TC.BeautySettingPanel.Thin-face" = "瘦脸"; -"TC.BeautySettingPanel.V-face" = "V脸"; -"TC.BeautySettingPanel.Chin" = "下巴"; -"TC.BeautySettingPanel.Short-face" = "短脸"; -"TC.BeautySettingPanel.Thin-nose" = "瘦鼻"; -"TC.BeautySettingPanel.Eye-lighten" = "亮眼"; -"TC.BeautySettingPanel.Tooth-white" = "白牙"; -"TC.BeautySettingPanel.Pounch-remove" = "祛眼袋"; -"TC.BeautySettingPanel.Smilelines-reomve" = "祛法令纹"; -"TC.BeautySettingPanel.Wrinkle-remove" = "祛皱"; -"TC.BeautySettingPanel.Forehead" = "发际线"; -"TC.BeautySettingPanel.Eye-distance" = "眼距"; -"TC.BeautySettingPanel.Eye-angle" = "眼角"; -"TC.BeautySettingPanel.Mouth-shape" = "嘴型"; -"TC.BeautySettingPanel.Nose-wing" = "鼻翼"; -"TC.BeautySettingPanel.Nose-positon" = "鼻子位置"; -"TC.BeautySettingPanel.Mouse-width" = "嘴唇厚度"; -"TC.BeautySettingPanel.Face-shape" = "脸型"; -"TC.BeautySettingPanel.Standard" = "标准"; -"TC.BeautySettingPanel.Cherry" = "樱红"; -"TC.BeautySettingPanel.Cloud" = "云裳"; -"TC.BeautySettingPanel.Pure" = "纯真"; -"TC.BeautySettingPanel.Orchid" = "白兰"; -"TC.BeautySettingPanel.Vitality" = "元气"; -"TC.BeautySettingPanel.Super" = "超脱"; -"TC.BeautySettingPanel.Fragrance" = "香氛"; -"TC.BeautySettingPanel.White" = "美白"; -"TC.BeautySettingPanel.Romantic" = "浪漫"; -"TC.BeautySettingPanel.Fresh" = "清新"; -"TC.BeautySettingPanel.Aesthetic" = "唯美"; -"TC.BeautySettingPanel.Rosy" = "粉嫩"; -"TC.BeautySettingPanel.Nostalgic" = "怀旧"; -"TC.BeautySettingPanel.Blues" = "蓝调"; -"TC.BeautySettingPanel.Cool" = "清凉"; -"TC.BeautySettingPanel.Sweet" = "日系"; -"TC.BeautySettingPanel.Boom" = "Boom"; -"TC.BeautySettingPanel.Rainbow Mouse" = "霓虹鼠"; -"TC.BeautySettingPanel.Glow stick" = "疯狂打Call"; -"TC.BeautySettingPanel.Q constellation" = "Q星座"; -"TC.BeautySettingPanel.Color Ribbon" = "彩色丝带"; -"TC.BeautySettingPanel.Bang Ribbon" = "刘海发带"; -"TC.BeautySettingPanel.Violet Cat" = "紫色小猫"; -"TC.BeautySettingPanel.Floral Fairy" = "花仙子"; -"TC.BeautySettingPanel.Little princess" = "小公举"; -"TC.BeautySettingPanel.glasses dog" = "眼镜狗"; -"TC.BeautySettingPanel.rainbow cloud" = "彩虹云"; -"TC.BeautySettingPanel.Star ear" = "星耳"; -"TC.BeautySettingPanel.Face change" = "变脸"; -"TC.BeautySettingPanel.AI Scratch" = "AI抠背"; -"TC.BeautySettingPanel.Good luck" = "Good luck"; -"TC.BeautySettingPanel.PikaQiu" = "皮卡丘"; -"TC.BeautySettingPanel.Meteor Shower" = "流星雨"; -"TC.BeautySettingPanel.Snow Control" = "控雪"; -"TC.BeautySettingPanel.TV Star" = "电视之星"; -"TC.BeautySettingPanel.Bottle" = "瓶盖挑战"; -"TC.BeautySettingPanel.Cherries" = "樱桃"; -"TC.BeautySettingPanel.Ocean" = "海洋"; -"TC.BeautySettingPanel.FenFenXia" = "粉粉霞"; -"TC.BeautySettingPanel.Widow Makeup" = "寡姐妆"; -"TC.BeautySettingPanel.Qixichun" = "七夕唇印"; -"TC.BeautySettingPanel.Gufeng" = "古风妆"; -"TC.BeautySettingPanel.Ugly Girl" = "小丑女"; -"TC.BeautySettingPanel.Mixed Makeup" = "混合妆"; -"TC.BeautySettingPanel.Fu Gu" = "原宿复古"; -"TC.BeautySettingPanel.Uniforms" = "校服"; -"TC.BeautySettingPanel.unzip fail" = "素材解压失败"; -"TC.BeautySettingPanel.download fail" = "下载失败"; -"TC.BeautySettingPanel.Insufficient storage space" = "存储空间不足"; -// old -"TC.BeautySettingPanel.None" = "无动效"; -"TC.BeautySettingPanel.GoodLuck" = "Good Luck"; -"TC.BeautySettingPanel.BeautySmooth" = "美颜(光滑)"; -"TC.BeautySettingPanel.Beauty-Natural" = "美颜(自然)"; -"TC.BeautySettingPanel.Beauty-P" = "美颜(P图)"; -"TC.BeautySettingPanel.White" = "美白"; -"TC.BeautySettingPanel.Ruddy" = "红润"; -"TC.BeautySettingPanel.BigEyes" = "大眼"; -"TC.BeautySettingPanel.ThinFace" = "瘦脸"; -"TC.BeautySettingPanel.VFace" = "V脸"; -"TC.BeautySettingPanel.Chin" = "下巴"; -"TC.BeautySettingPanel.ShortFace" = "短脸"; -"TC.BeautySettingPanel.ThinNose" = "瘦鼻"; -"TC.BeautySettingPanel.EyeLighten" = "亮眼"; -"TC.BeautySettingPanel.ToothWhiten" = "白牙"; -"TC.BeautySettingPanel.WrinkleRemove" = "祛皱"; -"TC.BeautySettingPanel.PounchRemove" = "祛眼袋"; -"TC.BeautySettingPanel.SmileLinesRemove" = "祛法令纹"; -"TC.BeautySettingPanel.Forehead" = "发际线"; -"TC.BeautySettingPanel.EyeDistance" = "眼距"; -"TC.BeautySettingPanel.EyeAngle" = "眼角"; -"TC.BeautySettingPanel.MouthShape" = "嘴型"; -"TC.BeautySettingPanel.NoseWing" = "鼻翼"; -"TC.BeautySettingPanel.NosePosition" = "鼻子位置"; -"TC.BeautySettingPanel.LipsThickness" = "嘴唇厚度"; -"TC.BeautySettingPanel.FaceBeauty" = "脸型"; -"TC.BeautyPanel.Menu.Beauty" = "美颜"; -"TC.BeautyPanel.Menu.Filter" = "滤镜"; -"TC.BeautyPanel.Menu.VideoEffect" = "动效"; -"TC.BeautyPanel.Menu.BlendPic" = "AI抠背"; -"TC.BeautyPanel.Menu.GreenScreen" = "绿幕"; -"TC.BeautyPanel.Menu.Gesture" = "手势"; -"TC.BeautyPanel.Menu.Cosmetic" = "美妆"; -"TC.Common.Clear" = "清除"; -"TC.Common.Filter_original" = "原图"; -"TC.Common.Filter_normal" = "标准"; -"TC.Common.Filter_yinghong" = "樱红"; -"TC.Common.Filter_yunshang" = "云裳"; -"TC.Common.Filter_chunzhen" = "纯真"; -"TC.Common.Filter_bailan" = "白兰"; -"TC.Common.Filter_yuanqi" = "元气"; -"TC.Common.Filter_chaotuo" = "超脱"; -"TC.Common.Filter_xiangfen" = "香氛"; -"TC.Common.Filter_white" = "美白"; -"TC.Common.Filter_langman" = "浪漫"; -"TC.Common.Filter_qingxin" = "清新"; -"TC.Common.Filter_weimei" = "唯美"; -"TC.Common.Filter_fennen" = "粉嫩"; -"TC.Common.Filter_huaijiu" = "怀旧"; -"TC.Common.Filter_landiao" = "蓝调"; -"TC.Common.Filter_qingliang" = "清凉"; -"TC.Common.Filter_rixi" = "日系"; -"TC.Common.Filter_baixi" = "白皙"; -"TC.Common.Filter_ziran" = "自然"; diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel.xcodeproj/project.pbxproj b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel.xcodeproj/project.pbxproj deleted file mode 100644 index 083f3aae..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel.xcodeproj/project.pbxproj +++ /dev/null @@ -1,610 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 404DEF2824E2D1F3005657DF /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 404DEF2324E23DFE005657DF /* Localizable.strings */; }; - 4534342D23B070AE0034FF12 /* TCBeautyPanelActionProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4534342B23B070AE0034FF12 /* TCBeautyPanelActionProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4534342E23B070AE0034FF12 /* TCBeautyPanelActionProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4534342C23B070AE0034FF12 /* TCBeautyPanelActionProxy.m */; }; - 4579C38B23AC64DC005ECC1C /* TCBeautyPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C38923AC64DC005ECC1C /* TCBeautyPanel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4579C3DF23AC6546005ECC1C /* TCBeautyPanelView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C3C223AC6545005ECC1C /* TCBeautyPanelView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4579C3E023AC6546005ECC1C /* TCFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C3C423AC6545005ECC1C /* TCFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4579C3E123AC6546005ECC1C /* TCFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4579C3C523AC6545005ECC1C /* TCFilter.m */; }; - 4579C3E223AC6546005ECC1C /* TCBeautyPanelTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C3C623AC6545005ECC1C /* TCBeautyPanelTheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4579C3E323AC6546005ECC1C /* TCMenuItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4579C3C923AC6545005ECC1C /* TCMenuItemCell.m */; }; - 4579C3E423AC6546005ECC1C /* TCMenuView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C3CA23AC6545005ECC1C /* TCMenuView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4579C3E523AC6546005ECC1C /* TCMenuItemCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C3CB23AC6545005ECC1C /* TCMenuItemCell.h */; }; - 4579C3E623AC6546005ECC1C /* TCMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4579C3CC23AC6545005ECC1C /* TCMenuView.m */; }; - 4579C3E723AC6546005ECC1C /* TCBeautyPanelActionPerformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C3CE23AC6545005ECC1C /* TCBeautyPanelActionPerformer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4579C3E823AC6546005ECC1C /* TCBeautyPanelTheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 4579C3CF23AC6545005ECC1C /* TCBeautyPanelTheme.m */; }; - 4579C3E923AC6546005ECC1C /* ZipArchive.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C3D223AC6545005ECC1C /* ZipArchive.h */; }; - 4579C3EA23AC6546005ECC1C /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 4579C3D423AC6545005ECC1C /* unzip.c */; }; - 4579C3EB23AC6546005ECC1C /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = 4579C3D523AC6545005ECC1C /* zip.c */; }; - 4579C3EC23AC6546005ECC1C /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 4579C3D623AC6545005ECC1C /* ioapi.c */; }; - 4579C3ED23AC6546005ECC1C /* mztools.c in Sources */ = {isa = PBXBuildFile; fileRef = 4579C3D723AC6545005ECC1C /* mztools.c */; }; - 4579C3EE23AC6546005ECC1C /* crypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C3D823AC6545005ECC1C /* crypt.h */; }; - 4579C3EF23AC6546005ECC1C /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C3D923AC6545005ECC1C /* zip.h */; }; - 4579C3F023AC6546005ECC1C /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C3DA23AC6545005ECC1C /* unzip.h */; }; - 4579C3F123AC6546005ECC1C /* mztools.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C3DB23AC6545005ECC1C /* mztools.h */; }; - 4579C3F223AC6546005ECC1C /* ioapi.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C3DC23AC6545005ECC1C /* ioapi.h */; }; - 4579C3F323AC6546005ECC1C /* ZipArchive.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4579C3DD23AC6545005ECC1C /* ZipArchive.mm */; }; - 4579C3F423AC6546005ECC1C /* TCBeautyPanelView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4579C3DE23AC6545005ECC1C /* TCBeautyPanelView.m */; }; - 4579C40123AC6635005ECC1C /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4579C40023AC6635005ECC1C /* Media.xcassets */; }; - 4579C40523AC6758005ECC1C /* TCPituMotionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4579C40323AC6758005ECC1C /* TCPituMotionManager.m */; }; - 4579C40623AC6758005ECC1C /* TCPituMotionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4579C40423AC6758005ECC1C /* TCPituMotionManager.h */; }; - 45E74D5C23B0A6C900C22B31 /* goodluck.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = 45E74D5B23B0A6C900C22B31 /* goodluck.mp4 */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 404DEF2224E23DFE005657DF /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; - 404DEF2424E23E1D005657DF /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; - 4534342B23B070AE0034FF12 /* TCBeautyPanelActionProxy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCBeautyPanelActionProxy.h; sourceTree = ""; }; - 4534342C23B070AE0034FF12 /* TCBeautyPanelActionProxy.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TCBeautyPanelActionProxy.m; sourceTree = ""; }; - 4579C38623AC64DC005ECC1C /* TCBeautyPanel.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TCBeautyPanel.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4579C38923AC64DC005ECC1C /* TCBeautyPanel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TCBeautyPanel.h; sourceTree = ""; }; - 4579C38A23AC64DC005ECC1C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 4579C3C223AC6545005ECC1C /* TCBeautyPanelView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCBeautyPanelView.h; sourceTree = ""; }; - 4579C3C423AC6545005ECC1C /* TCFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCFilter.h; sourceTree = ""; }; - 4579C3C523AC6545005ECC1C /* TCFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TCFilter.m; sourceTree = ""; }; - 4579C3C623AC6545005ECC1C /* TCBeautyPanelTheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCBeautyPanelTheme.h; sourceTree = ""; }; - 4579C3C923AC6545005ECC1C /* TCMenuItemCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TCMenuItemCell.m; sourceTree = ""; }; - 4579C3CA23AC6545005ECC1C /* TCMenuView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCMenuView.h; sourceTree = ""; }; - 4579C3CB23AC6545005ECC1C /* TCMenuItemCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCMenuItemCell.h; sourceTree = ""; }; - 4579C3CC23AC6545005ECC1C /* TCMenuView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TCMenuView.m; sourceTree = ""; }; - 4579C3CE23AC6545005ECC1C /* TCBeautyPanelActionPerformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCBeautyPanelActionPerformer.h; sourceTree = ""; }; - 4579C3CF23AC6545005ECC1C /* TCBeautyPanelTheme.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TCBeautyPanelTheme.m; sourceTree = ""; }; - 4579C3D223AC6545005ECC1C /* ZipArchive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZipArchive.h; sourceTree = ""; }; - 4579C3D423AC6545005ECC1C /* unzip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = unzip.c; sourceTree = ""; }; - 4579C3D523AC6545005ECC1C /* zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip.c; sourceTree = ""; }; - 4579C3D623AC6545005ECC1C /* ioapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ioapi.c; sourceTree = ""; }; - 4579C3D723AC6545005ECC1C /* mztools.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mztools.c; sourceTree = ""; }; - 4579C3D823AC6545005ECC1C /* crypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypt.h; sourceTree = ""; }; - 4579C3D923AC6545005ECC1C /* zip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zip.h; sourceTree = ""; }; - 4579C3DA23AC6545005ECC1C /* unzip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unzip.h; sourceTree = ""; }; - 4579C3DB23AC6545005ECC1C /* mztools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mztools.h; sourceTree = ""; }; - 4579C3DC23AC6545005ECC1C /* ioapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ioapi.h; sourceTree = ""; }; - 4579C3DD23AC6545005ECC1C /* ZipArchive.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ZipArchive.mm; sourceTree = ""; }; - 4579C3DE23AC6545005ECC1C /* TCBeautyPanelView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TCBeautyPanelView.m; path = ../TCBeautyPanelView.m; sourceTree = ""; }; - 4579C3FA23AC660C005ECC1C /* TCBeautyPanelResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TCBeautyPanelResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 4579C3FC23AC660C005ECC1C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 4579C40023AC6635005ECC1C /* Media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Media.xcassets; sourceTree = ""; }; - 4579C40323AC6758005ECC1C /* TCPituMotionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TCPituMotionManager.m; sourceTree = ""; }; - 4579C40423AC6758005ECC1C /* TCPituMotionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TCPituMotionManager.h; sourceTree = ""; }; - 4579C40A23AC67C9005ECC1C /* TCBeautyPanel.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = TCBeautyPanel.modulemap; sourceTree = ""; }; - 45E74D5B23B0A6C900C22B31 /* goodluck.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = goodluck.mp4; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 4579C38323AC64DC005ECC1C /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4579C37C23AC64DC005ECC1C = { - isa = PBXGroup; - children = ( - 4579C38823AC64DC005ECC1C /* TCBeautyPanel */, - 4579C3FB23AC660C005ECC1C /* Resources */, - 4579C38723AC64DC005ECC1C /* Products */, - ); - sourceTree = ""; - }; - 4579C38723AC64DC005ECC1C /* Products */ = { - isa = PBXGroup; - children = ( - 4579C38623AC64DC005ECC1C /* TCBeautyPanel.framework */, - 4579C3FA23AC660C005ECC1C /* TCBeautyPanelResources.bundle */, - ); - name = Products; - sourceTree = ""; - }; - 4579C38823AC64DC005ECC1C /* TCBeautyPanel */ = { - isa = PBXGroup; - children = ( - 4579C38A23AC64DC005ECC1C /* Info.plist */, - 4579C40A23AC67C9005ECC1C /* TCBeautyPanel.modulemap */, - 4579C38923AC64DC005ECC1C /* TCBeautyPanel.h */, - 4579C3CD23AC6545005ECC1C /* Interfaces */, - 4579C40223AC6758005ECC1C /* Model */, - 4579C3C723AC6545005ECC1C /* View */, - 4579C3D023AC6545005ECC1C /* Dependencies */, - 4579C3C323AC6545005ECC1C /* Filter */, - ); - path = TCBeautyPanel; - sourceTree = ""; - }; - 4579C3C323AC6545005ECC1C /* Filter */ = { - isa = PBXGroup; - children = ( - 4579C3C423AC6545005ECC1C /* TCFilter.h */, - 4579C3C523AC6545005ECC1C /* TCFilter.m */, - ); - path = Filter; - sourceTree = ""; - }; - 4579C3C723AC6545005ECC1C /* View */ = { - isa = PBXGroup; - children = ( - 4579C3C823AC6545005ECC1C /* Menu */, - 4579C3C223AC6545005ECC1C /* TCBeautyPanelView.h */, - 4579C3DE23AC6545005ECC1C /* TCBeautyPanelView.m */, - 4579C3C623AC6545005ECC1C /* TCBeautyPanelTheme.h */, - 4579C3CF23AC6545005ECC1C /* TCBeautyPanelTheme.m */, - ); - path = View; - sourceTree = ""; - }; - 4579C3C823AC6545005ECC1C /* Menu */ = { - isa = PBXGroup; - children = ( - 4579C3CA23AC6545005ECC1C /* TCMenuView.h */, - 4579C3C923AC6545005ECC1C /* TCMenuItemCell.m */, - 4579C3CB23AC6545005ECC1C /* TCMenuItemCell.h */, - 4579C3CC23AC6545005ECC1C /* TCMenuView.m */, - ); - path = Menu; - sourceTree = ""; - }; - 4579C3CD23AC6545005ECC1C /* Interfaces */ = { - isa = PBXGroup; - children = ( - 4579C3CE23AC6545005ECC1C /* TCBeautyPanelActionPerformer.h */, - ); - path = Interfaces; - sourceTree = ""; - }; - 4579C3D023AC6545005ECC1C /* Dependencies */ = { - isa = PBXGroup; - children = ( - 4579C3D123AC6545005ECC1C /* ZipArchive */, - ); - path = Dependencies; - sourceTree = ""; - }; - 4579C3D123AC6545005ECC1C /* ZipArchive */ = { - isa = PBXGroup; - children = ( - 4579C3D223AC6545005ECC1C /* ZipArchive.h */, - 4579C3D323AC6545005ECC1C /* minizip */, - 4579C3DD23AC6545005ECC1C /* ZipArchive.mm */, - ); - path = ZipArchive; - sourceTree = ""; - }; - 4579C3D323AC6545005ECC1C /* minizip */ = { - isa = PBXGroup; - children = ( - 4579C3D423AC6545005ECC1C /* unzip.c */, - 4579C3D523AC6545005ECC1C /* zip.c */, - 4579C3D623AC6545005ECC1C /* ioapi.c */, - 4579C3D723AC6545005ECC1C /* mztools.c */, - 4579C3D823AC6545005ECC1C /* crypt.h */, - 4579C3D923AC6545005ECC1C /* zip.h */, - 4579C3DA23AC6545005ECC1C /* unzip.h */, - 4579C3DB23AC6545005ECC1C /* mztools.h */, - 4579C3DC23AC6545005ECC1C /* ioapi.h */, - ); - path = minizip; - sourceTree = ""; - }; - 4579C3FB23AC660C005ECC1C /* Resources */ = { - isa = PBXGroup; - children = ( - 404DEF2324E23DFE005657DF /* Localizable.strings */, - 45E74D5B23B0A6C900C22B31 /* goodluck.mp4 */, - 4579C3FC23AC660C005ECC1C /* Info.plist */, - 4579C40023AC6635005ECC1C /* Media.xcassets */, - ); - path = Resources; - sourceTree = ""; - }; - 4579C40223AC6758005ECC1C /* Model */ = { - isa = PBXGroup; - children = ( - 4579C40323AC6758005ECC1C /* TCPituMotionManager.m */, - 4579C40423AC6758005ECC1C /* TCPituMotionManager.h */, - 4534342B23B070AE0034FF12 /* TCBeautyPanelActionProxy.h */, - 4534342C23B070AE0034FF12 /* TCBeautyPanelActionProxy.m */, - ); - path = Model; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 4579C38123AC64DC005ECC1C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 4579C3EE23AC6546005ECC1C /* crypt.h in Headers */, - 4579C3E023AC6546005ECC1C /* TCFilter.h in Headers */, - 4579C3E523AC6546005ECC1C /* TCMenuItemCell.h in Headers */, - 4579C38B23AC64DC005ECC1C /* TCBeautyPanel.h in Headers */, - 4579C3E223AC6546005ECC1C /* TCBeautyPanelTheme.h in Headers */, - 4534342D23B070AE0034FF12 /* TCBeautyPanelActionProxy.h in Headers */, - 4579C3E723AC6546005ECC1C /* TCBeautyPanelActionPerformer.h in Headers */, - 4579C3DF23AC6546005ECC1C /* TCBeautyPanelView.h in Headers */, - 4579C3E423AC6546005ECC1C /* TCMenuView.h in Headers */, - 4579C3F023AC6546005ECC1C /* unzip.h in Headers */, - 4579C40623AC6758005ECC1C /* TCPituMotionManager.h in Headers */, - 4579C3F223AC6546005ECC1C /* ioapi.h in Headers */, - 4579C3EF23AC6546005ECC1C /* zip.h in Headers */, - 4579C3E923AC6546005ECC1C /* ZipArchive.h in Headers */, - 4579C3F123AC6546005ECC1C /* mztools.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 4579C38523AC64DC005ECC1C /* TCBeautyPanel */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4579C38E23AC64DC005ECC1C /* Build configuration list for PBXNativeTarget "TCBeautyPanel" */; - buildPhases = ( - 4579C38123AC64DC005ECC1C /* Headers */, - 4579C38223AC64DC005ECC1C /* Sources */, - 4579C38323AC64DC005ECC1C /* Frameworks */, - 4579C38423AC64DC005ECC1C /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = TCBeautyPanel; - productName = TCBeautyPanel; - productReference = 4579C38623AC64DC005ECC1C /* TCBeautyPanel.framework */; - productType = "com.apple.product-type.framework"; - }; - 4579C3F923AC660C005ECC1C /* TCBeautyPanelResources */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4579C3FD23AC660C005ECC1C /* Build configuration list for PBXNativeTarget "TCBeautyPanelResources" */; - buildPhases = ( - 4579C3F823AC660C005ECC1C /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = TCBeautyPanelResources; - productName = TCBeautyPanelResources; - productReference = 4579C3FA23AC660C005ECC1C /* TCBeautyPanelResources.bundle */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 4579C37D23AC64DC005ECC1C /* Project object */ = { - isa = PBXProject; - attributes = { - DefaultBuildSystemTypeForWorkspace = Original; - LastUpgradeCheck = 1130; - ORGANIZATIONNAME = Tencent; - TargetAttributes = { - 4579C38523AC64DC005ECC1C = { - CreatedOnToolsVersion = 11.3; - }; - 4579C3F923AC660C005ECC1C = { - CreatedOnToolsVersion = 11.3; - }; - }; - }; - buildConfigurationList = 4579C38023AC64DC005ECC1C /* Build configuration list for PBXProject "TCBeautyPanel" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - "zh-Hans", - ); - mainGroup = 4579C37C23AC64DC005ECC1C; - productRefGroup = 4579C38723AC64DC005ECC1C /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 4579C38523AC64DC005ECC1C /* TCBeautyPanel */, - 4579C3F923AC660C005ECC1C /* TCBeautyPanelResources */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 4579C38423AC64DC005ECC1C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4579C3F823AC660C005ECC1C /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 404DEF2824E2D1F3005657DF /* Localizable.strings in Resources */, - 4579C40123AC6635005ECC1C /* Media.xcassets in Resources */, - 45E74D5C23B0A6C900C22B31 /* goodluck.mp4 in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 4579C38223AC64DC005ECC1C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4579C3E323AC6546005ECC1C /* TCMenuItemCell.m in Sources */, - 4579C3EA23AC6546005ECC1C /* unzip.c in Sources */, - 4579C3F423AC6546005ECC1C /* TCBeautyPanelView.m in Sources */, - 4579C3ED23AC6546005ECC1C /* mztools.c in Sources */, - 4579C3E623AC6546005ECC1C /* TCMenuView.m in Sources */, - 4579C3EB23AC6546005ECC1C /* zip.c in Sources */, - 4534342E23B070AE0034FF12 /* TCBeautyPanelActionProxy.m in Sources */, - 4579C40523AC6758005ECC1C /* TCPituMotionManager.m in Sources */, - 4579C3E123AC6546005ECC1C /* TCFilter.m in Sources */, - 4579C3E823AC6546005ECC1C /* TCBeautyPanelTheme.m in Sources */, - 4579C3F323AC6546005ECC1C /* ZipArchive.mm in Sources */, - 4579C3EC23AC6546005ECC1C /* ioapi.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 404DEF2324E23DFE005657DF /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 404DEF2224E23DFE005657DF /* en */, - 404DEF2424E23E1D005657DF /* zh-Hans */, - ); - name = Localizable.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 4579C38C23AC64DC005ECC1C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 4579C38D23AC64DC005ECC1C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 4579C38F23AC64DC005ECC1C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = TCBeautyPanel/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "${SRCROOT}/TCBeautyPanel/TCBeautyPanel.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.TCBeautyPanel; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SUPPORTS_MACCATALYST = NO; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 4579C39023AC64DC005ECC1C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = TCBeautyPanel/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "${SRCROOT}/TCBeautyPanel/TCBeautyPanel.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.TCBeautyPanel; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SUPPORTS_MACCATALYST = NO; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 4579C3FE23AC660C005ECC1C /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Resources/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - MACOSX_DEPLOYMENT_TARGET = 10.15; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.TCBeautyPanelResources; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 4579C3FF23AC660C005ECC1C /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Resources/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - MACOSX_DEPLOYMENT_TARGET = 10.15; - PRODUCT_BUNDLE_IDENTIFIER = com.tencent.TCBeautyPanelResources; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 4579C38023AC64DC005ECC1C /* Build configuration list for PBXProject "TCBeautyPanel" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4579C38C23AC64DC005ECC1C /* Debug */, - 4579C38D23AC64DC005ECC1C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4579C38E23AC64DC005ECC1C /* Build configuration list for PBXNativeTarget "TCBeautyPanel" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4579C38F23AC64DC005ECC1C /* Debug */, - 4579C39023AC64DC005ECC1C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4579C3FD23AC660C005ECC1C /* Build configuration list for PBXNativeTarget "TCBeautyPanelResources" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4579C3FE23AC660C005ECC1C /* Debug */, - 4579C3FF23AC660C005ECC1C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 4579C37D23AC64DC005ECC1C /* Project object */; -} diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 1c9c9369..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel.xcodeproj/xcshareddata/xcschemes/TCBeautyPanel.xcscheme b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel.xcodeproj/xcshareddata/xcschemes/TCBeautyPanel.xcscheme deleted file mode 100644 index babe78db..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel.xcodeproj/xcshareddata/xcschemes/TCBeautyPanel.xcscheme +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/ZipArchive.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/ZipArchive.h deleted file mode 100644 index 9ace9b27..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/ZipArchive.h +++ /dev/null @@ -1,48 +0,0 @@ -// -// ZipArchive.h -// -// -// Created by aish on 08-9-11. -// acsolu@gmail.com -// Copyright 2008 Inc. All rights reserved. -// -// History: -// 09-11-2008 version 1.0 release -// 10-18-2009 version 1.1 support password protected zip files -// 10-21-2009 version 1.2 fix date bug - -#import - -#include "minizip/zip.h" -#include "minizip/unzip.h" - - -@protocol ZipArchiveDelegate -@optional --(void) ErrorMessage:(NSString*) msg; --(BOOL) OverWriteOperation:(NSString*) file; - -@end - - -@interface ZipArchive : NSObject { -@private - zipFile _zipFile; - unzFile _unzFile; - - NSString* _password; - id _delegate; -} - -@property (nonatomic, retain) id delegate; - --(BOOL) CreateZipFile2:(NSString*) zipFile; --(BOOL) CreateZipFile2:(NSString*) zipFile Password:(NSString*) password; --(BOOL) addFileToZip:(NSString*) file newname:(NSString*) newname; --(BOOL) CloseZipFile2; - --(BOOL) UnzipOpenFile:(NSString*) zipFile; --(BOOL) UnzipOpenFile:(NSString*) zipFile Password:(NSString*) password; --(BOOL) UnzipFileTo:(NSString*) path overWrite:(BOOL) overwrite; --(BOOL) UnzipCloseFile; -@end diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/ZipArchive.mm b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/ZipArchive.mm deleted file mode 100644 index e7e21e73..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/ZipArchive.mm +++ /dev/null @@ -1,332 +0,0 @@ -// -// ZipArchive.mm -// -// -// Created by aish on 08-9-11. -// acsolu@gmail.com -// Copyright 2008 Inc. All rights reserved. -// - -#import "ZipArchive.h" -#import "zlib.h" -#import "zconf.h" - - - -@interface ZipArchive (Private) - --(void) OutputErrorMessage:(NSString*) msg; --(BOOL) OverWrite:(NSString*) file; --(NSDate*) Date1980; -@end - - - -@implementation ZipArchive -@synthesize delegate = _delegate; - --(id) init -{ - if( self=[super init] ) - { - _zipFile = NULL ; - } - return self; -} - --(void) dealloc -{ - [self CloseZipFile2]; -} - --(BOOL) CreateZipFile2:(NSString*) zipFile -{ - _zipFile = zipOpen( (const char*)[zipFile UTF8String], 0 ); - if( !_zipFile ) - return NO; - return YES; -} - --(BOOL) CreateZipFile2:(NSString*) zipFile Password:(NSString*) password -{ - _password = password; - return [self CreateZipFile2:zipFile]; -} - --(BOOL) addFileToZip:(NSString*) file newname:(NSString*) newname; -{ - if( !_zipFile ) - return NO; - // tm_zip filetime; - time_t current; - time( ¤t ); - - zip_fileinfo zipInfo = {0}; - // zipInfo.dosDate = (unsigned long) current; - NSError *error = nil; - NSDictionary *attr = [[NSFileManager defaultManager] attributesOfItemAtPath:file error:&error]; - if( attr ) - { - NSDate* fileDate = (NSDate*)[attr objectForKey:NSFileModificationDate]; - if( fileDate ) - { - // some application does use dosDate, but tmz_date instead - // zipInfo.dosDate = [fileDate timeIntervalSinceDate:[self Date1980] ]; - NSCalendar* currCalendar = [NSCalendar currentCalendar]; - uint flags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | - NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond ; - NSDateComponents* dc = [currCalendar components:flags fromDate:fileDate]; - zipInfo.tmz_date.tm_sec = (uInt)[dc second]; - zipInfo.tmz_date.tm_min = (uInt)[dc minute]; - zipInfo.tmz_date.tm_hour = (uInt)[dc hour]; - zipInfo.tmz_date.tm_mday = (uInt)[dc day]; - zipInfo.tmz_date.tm_mon = (uInt)[dc month] - 1; - zipInfo.tmz_date.tm_year = (uInt)[dc year]; - } - } - - int ret ; - NSData* data = nil; - if( [_password length] == 0 ) - { - ret = zipOpenNewFileInZip( _zipFile, - (const char*) [newname UTF8String], - &zipInfo, - NULL,0, - NULL,0, - NULL,//comment - Z_DEFLATED, - Z_DEFAULT_COMPRESSION ); - } - else - { - data = [ NSData dataWithContentsOfFile:file]; - uLong crcValue = crc32( 0L,NULL, 0L ); - crcValue = crc32( crcValue, (const Bytef*)[data bytes], (uInt)[data length] ); - ret = zipOpenNewFileInZip3( _zipFile, - (const char*) [newname UTF8String], - &zipInfo, - NULL,0, - NULL,0, - NULL,//comment - Z_DEFLATED, - Z_DEFAULT_COMPRESSION, - 0, - 15, - 8, - Z_DEFAULT_STRATEGY, - [_password cStringUsingEncoding:NSASCIIStringEncoding], - crcValue ); - } - if( ret!=Z_OK ) - { - return NO; - } - if( data==nil ) - { - data = [ NSData dataWithContentsOfFile:file]; - } - unsigned int dataLen = (unsigned int)[data length]; - ret = zipWriteInFileInZip( _zipFile, (const void*)[data bytes], dataLen); - if( ret!=Z_OK ) - { - return NO; - } - ret = zipCloseFileInZip( _zipFile ); - if( ret!=Z_OK ) - return NO; - return YES; -} - --(BOOL) CloseZipFile2 -{ - _password = nil; - if( _zipFile==NULL ) - return NO; - BOOL ret = zipClose( _zipFile,NULL )==Z_OK?YES:NO; - _zipFile = NULL; - return ret; -} - --(BOOL) UnzipOpenFile:(NSString*) zipFile -{ - _unzFile = unzOpen( (const char*)[zipFile UTF8String] ); - if( _unzFile ) - { - unz_global_info globalInfo = {0}; - if( unzGetGlobalInfo(_unzFile, &globalInfo )==UNZ_OK ) - { - NSLog(@"%d entries in the zip file",(int)globalInfo.number_entry); - } - } - return _unzFile!=NULL; -} - --(BOOL) UnzipOpenFile:(NSString*) zipFile Password:(NSString*) password -{ - _password = password; - return [self UnzipOpenFile:zipFile]; -} - --(BOOL) UnzipFileTo:(NSString*) path overWrite:(BOOL) overwrite -{ - BOOL success = YES; - int ret = unzGoToFirstFile( _unzFile ); - unsigned char buffer[4096] = {0}; - NSFileManager* fman = [NSFileManager defaultManager]; - if( ret!=UNZ_OK ) - { - [self OutputErrorMessage:@"Failed"]; - } - - do{ - if( [_password length]==0 ) - ret = unzOpenCurrentFile( _unzFile ); - else - ret = unzOpenCurrentFilePassword( _unzFile, [_password cStringUsingEncoding:NSASCIIStringEncoding] ); - if( ret!=UNZ_OK ) - { - [self OutputErrorMessage:@"Error occurs"]; - success = NO; - break; - } - // reading data and write to file - int read ; - unz_file_info fileInfo ={0}; - ret = unzGetCurrentFileInfo(_unzFile, &fileInfo, NULL, 0, NULL, 0, NULL, 0); - if( ret!=UNZ_OK ) - { - [self OutputErrorMessage:@"Error occurs while getting file info"]; - success = NO; - unzCloseCurrentFile( _unzFile ); - break; - } - char* filename = (char*) malloc( fileInfo.size_filename +1 ); - unzGetCurrentFileInfo(_unzFile, &fileInfo, filename, fileInfo.size_filename + 1, NULL, 0, NULL, 0); - filename[fileInfo.size_filename] = '\0'; - - // check if it contains directory - NSString * strPath = [NSString stringWithUTF8String:filename]; - BOOL isDirectory = NO; - if( filename[fileInfo.size_filename-1]=='/' || filename[fileInfo.size_filename-1]=='\\') - isDirectory = YES; - free( filename ); - if( [strPath rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@"/\\"]].location!=NSNotFound ) - {// contains a path - strPath = [strPath stringByReplacingOccurrencesOfString:@"\\" withString:@"/"]; - } - NSString* fullPath = [path stringByAppendingPathComponent:strPath]; - - if( isDirectory ) - [fman createDirectoryAtPath:fullPath withIntermediateDirectories:YES attributes:nil error:nil]; - else - [fman createDirectoryAtPath:[fullPath stringByDeletingLastPathComponent] withIntermediateDirectories:YES attributes:nil error:nil]; - if( [fman fileExistsAtPath:fullPath] && !isDirectory && !overwrite ) - { - if( ![self OverWrite:fullPath] ) - { - unzCloseCurrentFile( _unzFile ); - ret = unzGoToNextFile( _unzFile ); - continue; - } - } - FILE* fp = fopen( (const char*)[fullPath UTF8String], "wb"); - while( fp ) - { - read=unzReadCurrentFile(_unzFile, buffer, 4096); - if( read > 0 ) - { - fwrite(buffer, read, 1, fp ); - } - else if( read<0 ) - { - [self OutputErrorMessage:@"Failed to reading zip file"]; - break; - } - else - break; - } - if( fp ) - { - fclose( fp ); - // set the orignal datetime property - NSDate* orgDate = nil; - - //{{ thanks to brad.eaton for the solution - NSDateComponents *dc = [[NSDateComponents alloc] init]; - - dc.second = fileInfo.tmu_date.tm_sec; - dc.minute = fileInfo.tmu_date.tm_min; - dc.hour = fileInfo.tmu_date.tm_hour; - dc.day = fileInfo.tmu_date.tm_mday; - dc.month = fileInfo.tmu_date.tm_mon+1; - dc.year = fileInfo.tmu_date.tm_year; - - NSCalendar *gregorian = [[NSCalendar alloc] - initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; - - orgDate = [gregorian dateFromComponents:dc] ; - //}} - - - NSDictionary* attr = [NSDictionary dictionaryWithObject:orgDate forKey:NSFileModificationDate]; //[[NSFileManager defaultManager] fileAttributesAtPath:fullPath traverseLink:YES]; - if( attr ) - { - // [attr setValue:orgDate forKey:NSFileCreationDate]; - if( ![[NSFileManager defaultManager] setAttributes:attr ofItemAtPath:fullPath error:nil] ) - { - // cann't set attributes - NSLog(@"Failed to set attributes"); - } - - } - - - - } - unzCloseCurrentFile( _unzFile ); - ret = unzGoToNextFile( _unzFile ); - }while( ret==UNZ_OK && UNZ_OK!=UNZ_END_OF_LIST_OF_FILE ); - return success; -} - --(BOOL) UnzipCloseFile -{ - _password = nil; - if( _unzFile ) - return unzClose( _unzFile )==UNZ_OK; - return YES; -} - -#pragma mark wrapper for delegate --(void) OutputErrorMessage:(NSString*) msg -{ - if( _delegate && [_delegate respondsToSelector:@selector(ErrorMessage:)] ) - [_delegate ErrorMessage:msg]; -} - --(BOOL) OverWrite:(NSString*) file -{ - if( _delegate && [_delegate respondsToSelector:@selector(OverWriteOperation:)] ) - return [_delegate OverWriteOperation:file]; - return YES; -} - -#pragma mark get NSDate object for 1980-01-01 --(NSDate*) Date1980 -{ - NSDateComponents *comps = [[NSDateComponents alloc] init]; - [comps setDay:1]; - [comps setMonth:1]; - [comps setYear:1980]; - NSCalendar *gregorian = [[NSCalendar alloc] - initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; - NSDate *date = [gregorian dateFromComponents:comps]; - - return date; -} - - -@end - - diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/crypt.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/crypt.h deleted file mode 100644 index 622f4bc2..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/crypt.h +++ /dev/null @@ -1,132 +0,0 @@ -/* crypt.h -- base code for crypt/uncrypt ZIPfile - - - Version 1.01e, February 12th, 2005 - - Copyright (C) 1998-2005 Gilles Vollant - - This code is a modified version of crypting code in Infozip distribution - - The encryption/decryption parts of this source code (as opposed to the - non-echoing password parts) were originally written in Europe. The - whole source package can be freely distributed, including from the USA. - (Prior to January 2000, re-export from the US was a violation of US law.) - - This encryption code is a direct transcription of the algorithm from - Roger Schlafly, described by Phil Katz in the file appnote.txt. This - file (appnote.txt) is distributed with the PKZIP program (even in the - version without encryption capabilities). - - If you don't need crypting in your application, just define symbols - NOCRYPT and NOUNCRYPT. - - This code support the "Traditional PKWARE Encryption". - - The new AES encryption added on Zip format by Winzip (see the page - http://www.winzip.com/aes_info.htm ) and PKWare PKZip 5.x Strong - Encryption is not supported. -*/ - -#define CRC32(c, b) ((*(pcrc_32_tab+(((int)(c) ^ (b)) & 0xff))) ^ ((c) >> 8)) - -/*********************************************************************** - * Return the next byte in the pseudo-random sequence - */ -static int decrypt_byte(unsigned long* pkeys, const unsigned long* pcrc_32_tab) -{ - unsigned temp; /* POTENTIAL BUG: temp*(temp^1) may overflow in an - * unpredictable manner on 16-bit systems; not a problem - * with any known compiler so far, though */ - - temp = ((unsigned)(*(pkeys+2)) & 0xffff) | 2; - return (int)(((temp * (temp ^ 1)) >> 8) & 0xff); -} - -/*********************************************************************** - * Update the encryption keys with the next byte of plain text - */ -static int update_keys(unsigned long* pkeys,const unsigned long* pcrc_32_tab,int c) -{ - (*(pkeys+0)) = CRC32((*(pkeys+0)), c); - (*(pkeys+1)) += (*(pkeys+0)) & 0xff; - (*(pkeys+1)) = (*(pkeys+1)) * 134775813L + 1; - { - register int keyshift = (int)((*(pkeys+1)) >> 24); - (*(pkeys+2)) = CRC32((*(pkeys+2)), keyshift); - } - return c; -} - - -/*********************************************************************** - * Initialize the encryption keys and the random header according to - * the given password. - */ -static void init_keys(const char* passwd,unsigned long* pkeys,const unsigned long* pcrc_32_tab) -{ - *(pkeys+0) = 305419896L; - *(pkeys+1) = 591751049L; - *(pkeys+2) = 878082192L; - while (*passwd != '\0') { - update_keys(pkeys,pcrc_32_tab,(int)*passwd); - passwd++; - } -} - -#define zdecode(pkeys,pcrc_32_tab,c) \ - (update_keys(pkeys,pcrc_32_tab,c ^= decrypt_byte(pkeys,pcrc_32_tab))) - -#define zencode(pkeys,pcrc_32_tab,c,t) \ - (t=decrypt_byte(pkeys,pcrc_32_tab), update_keys(pkeys,pcrc_32_tab,c), t^(c)) - -#ifdef INCLUDECRYPTINGCODE_IFCRYPTALLOWED - -#define RAND_HEAD_LEN 12 - /* "last resort" source for second part of crypt seed pattern */ -# ifndef ZCR_SEED2 -# define ZCR_SEED2 3141592654UL /* use PI as default pattern */ -# endif - -static int crypthead(passwd, buf, bufSize, pkeys, pcrc_32_tab, crcForCrypting) - const char *passwd; /* password string */ - unsigned char *buf; /* where to write header */ - int bufSize; - unsigned long* pkeys; - const unsigned long* pcrc_32_tab; - unsigned long crcForCrypting; -{ - int n; /* index in random header */ - int t; /* temporary */ - int c; /* random byte */ - unsigned char header[RAND_HEAD_LEN-2]; /* random header */ - static unsigned calls = 0; /* ensure different random header each time */ - - if (bufSize> 7) & 0xff; - header[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, c, t); - } - /* Encrypt random header (last two bytes is high word of crc) */ - init_keys(passwd, pkeys, pcrc_32_tab); - for (n = 0; n < RAND_HEAD_LEN-2; n++) - { - buf[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, header[n], t); - } - buf[n++] = zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 16) & 0xff, t); - buf[n++] = zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 24) & 0xff, t); - return n; -} - -#endif diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/ioapi.c b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/ioapi.c deleted file mode 100644 index f1bee23e..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/ioapi.c +++ /dev/null @@ -1,177 +0,0 @@ -/* ioapi.c -- IO base function header for compress/uncompress .zip - files using zlib + zip or unzip API - - Version 1.01e, February 12th, 2005 - - Copyright (C) 1998-2005 Gilles Vollant -*/ - -#include -#include -#include - -#include "zlib.h" -#include "ioapi.h" - - - -/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */ - -#ifndef SEEK_CUR -#define SEEK_CUR 1 -#endif - -#ifndef SEEK_END -#define SEEK_END 2 -#endif - -#ifndef SEEK_SET -#define SEEK_SET 0 -#endif - -voidpf ZCALLBACK fopen_file_func OF(( - voidpf opaque, - const char* filename, - int mode)); - -uLong ZCALLBACK fread_file_func OF(( - voidpf opaque, - voidpf stream, - void* buf, - uLong size)); - -uLong ZCALLBACK fwrite_file_func OF(( - voidpf opaque, - voidpf stream, - const void* buf, - uLong size)); - -long ZCALLBACK ftell_file_func OF(( - voidpf opaque, - voidpf stream)); - -long ZCALLBACK fseek_file_func OF(( - voidpf opaque, - voidpf stream, - uLong offset, - int origin)); - -int ZCALLBACK fclose_file_func OF(( - voidpf opaque, - voidpf stream)); - -int ZCALLBACK ferror_file_func OF(( - voidpf opaque, - voidpf stream)); - - -voidpf ZCALLBACK fopen_file_func (opaque, filename, mode) - voidpf opaque; - const char* filename; - int mode; -{ - FILE* file = NULL; - const char* mode_fopen = NULL; - if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ) - mode_fopen = "rb"; - else - if (mode & ZLIB_FILEFUNC_MODE_EXISTING) - mode_fopen = "r+b"; - else - if (mode & ZLIB_FILEFUNC_MODE_CREATE) - mode_fopen = "wb"; - - if ((filename!=NULL) && (mode_fopen != NULL)) - file = fopen(filename, mode_fopen); - return file; -} - - -uLong ZCALLBACK fread_file_func (opaque, stream, buf, size) - voidpf opaque; - voidpf stream; - void* buf; - uLong size; -{ - uLong ret; - ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream); - return ret; -} - - -uLong ZCALLBACK fwrite_file_func (opaque, stream, buf, size) - voidpf opaque; - voidpf stream; - const void* buf; - uLong size; -{ - uLong ret; - ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream); - return ret; -} - -long ZCALLBACK ftell_file_func (opaque, stream) - voidpf opaque; - voidpf stream; -{ - long ret; - ret = ftell((FILE *)stream); - return ret; -} - -long ZCALLBACK fseek_file_func (opaque, stream, offset, origin) - voidpf opaque; - voidpf stream; - uLong offset; - int origin; -{ - int fseek_origin=0; - long ret; - switch (origin) - { - case ZLIB_FILEFUNC_SEEK_CUR : - fseek_origin = SEEK_CUR; - break; - case ZLIB_FILEFUNC_SEEK_END : - fseek_origin = SEEK_END; - break; - case ZLIB_FILEFUNC_SEEK_SET : - fseek_origin = SEEK_SET; - break; - default: return -1; - } - ret = 0; - fseek((FILE *)stream, offset, fseek_origin); - return ret; -} - -int ZCALLBACK fclose_file_func (opaque, stream) - voidpf opaque; - voidpf stream; -{ - int ret; - ret = fclose((FILE *)stream); - return ret; -} - -int ZCALLBACK ferror_file_func (opaque, stream) - voidpf opaque; - voidpf stream; -{ - int ret; - ret = ferror((FILE *)stream); - return ret; -} - -void fill_fopen_filefunc (pzlib_filefunc_def) - zlib_filefunc_def* pzlib_filefunc_def; -{ - pzlib_filefunc_def->zopen_file = fopen_file_func; - pzlib_filefunc_def->zread_file = fread_file_func; - pzlib_filefunc_def->zwrite_file = fwrite_file_func; - pzlib_filefunc_def->ztell_file = ftell_file_func; - pzlib_filefunc_def->zseek_file = fseek_file_func; - pzlib_filefunc_def->zclose_file = fclose_file_func; - pzlib_filefunc_def->zerror_file = ferror_file_func; - pzlib_filefunc_def->opaque = NULL; -} diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/ioapi.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/ioapi.h deleted file mode 100644 index 7d457baa..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/ioapi.h +++ /dev/null @@ -1,75 +0,0 @@ -/* ioapi.h -- IO base function header for compress/uncompress .zip - files using zlib + zip or unzip API - - Version 1.01e, February 12th, 2005 - - Copyright (C) 1998-2005 Gilles Vollant -*/ - -#ifndef _ZLIBIOAPI_H -#define _ZLIBIOAPI_H - - -#define ZLIB_FILEFUNC_SEEK_CUR (1) -#define ZLIB_FILEFUNC_SEEK_END (2) -#define ZLIB_FILEFUNC_SEEK_SET (0) - -#define ZLIB_FILEFUNC_MODE_READ (1) -#define ZLIB_FILEFUNC_MODE_WRITE (2) -#define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3) - -#define ZLIB_FILEFUNC_MODE_EXISTING (4) -#define ZLIB_FILEFUNC_MODE_CREATE (8) - - -#ifndef ZCALLBACK - -#if (defined(WIN32) || defined (WINDOWS) || defined (_WINDOWS)) && defined(CALLBACK) && defined (USEWINDOWS_CALLBACK) -#define ZCALLBACK CALLBACK -#else -#define ZCALLBACK -#endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode)); -typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size)); -typedef uLong (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size)); -typedef long (ZCALLBACK *tell_file_func) OF((voidpf opaque, voidpf stream)); -typedef long (ZCALLBACK *seek_file_func) OF((voidpf opaque, voidpf stream, uLong offset, int origin)); -typedef int (ZCALLBACK *close_file_func) OF((voidpf opaque, voidpf stream)); -typedef int (ZCALLBACK *testerror_file_func) OF((voidpf opaque, voidpf stream)); - -typedef struct zlib_filefunc_def_s -{ - open_file_func zopen_file; - read_file_func zread_file; - write_file_func zwrite_file; - tell_file_func ztell_file; - seek_file_func zseek_file; - close_file_func zclose_file; - testerror_file_func zerror_file; - voidpf opaque; -} zlib_filefunc_def; - - - -void fill_fopen_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def)); - -#define ZREAD(filefunc,filestream,buf,size) ((*((filefunc).zread_file))((filefunc).opaque,filestream,buf,size)) -#define ZWRITE(filefunc,filestream,buf,size) ((*((filefunc).zwrite_file))((filefunc).opaque,filestream,buf,size)) -#define ZTELL(filefunc,filestream) ((*((filefunc).ztell_file))((filefunc).opaque,filestream)) -#define ZSEEK(filefunc,filestream,pos,mode) ((*((filefunc).zseek_file))((filefunc).opaque,filestream,pos,mode)) -#define ZCLOSE(filefunc,filestream) ((*((filefunc).zclose_file))((filefunc).opaque,filestream)) -#define ZERROR(filefunc,filestream) ((*((filefunc).zerror_file))((filefunc).opaque,filestream)) - - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/mztools.c b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/mztools.c deleted file mode 100644 index 82e4635a..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/mztools.c +++ /dev/null @@ -1,276 +0,0 @@ -/* - Additional tools for Minizip - Code: Xavier Roche '2004 - License: Same as ZLIB (www.gzip.org) -*/ - -/* Code */ -#include -#include -#include -#include "zlib.h" -#include "unzip.h" - -#define READ_8(adr) ((unsigned char)*(adr)) -#define READ_16(adr) ( READ_8(adr) | (READ_8(adr+1) << 8) ) -#define READ_32(adr) ( READ_16(adr) | (READ_16((adr)+2) << 16) ) - -#define WRITE_8(buff, n) do { \ - *((unsigned char*)(buff)) = (unsigned char) ((n) & 0xff); \ -} while(0) -#define WRITE_16(buff, n) do { \ - WRITE_8((unsigned char*)(buff), n); \ - WRITE_8(((unsigned char*)(buff)) + 1, (n) >> 8); \ -} while(0) -#define WRITE_32(buff, n) do { \ - WRITE_16((unsigned char*)(buff), (n) & 0xffff); \ - WRITE_16((unsigned char*)(buff) + 2, (n) >> 16); \ -} while(0) - -extern int ZEXPORT unzRepair(const char* file, const char* fileOut, const char* fileOutTmp, uLong* nRecovered, uLong* bytesRecovered) -{ - int err = Z_OK; - FILE* fpZip = fopen(file, "rb"); - FILE* fpOut = fopen(fileOut, "wb"); - FILE* fpOutCD = fopen(fileOutTmp, "wb"); - if (fpZip != NULL && fpOut != NULL) { - int entries = 0; - uLong totalBytes = 0; - char header[30]; - char filename[256]; - char extra[1024]; - int offset = 0; - int offsetCD = 0; - while ( fread(header, 1, 30, fpZip) == 30 ) { - int currentOffset = offset; - - /* File entry */ - if (READ_32(header) == 0x04034b50) { - unsigned int version = READ_16(header + 4); - unsigned int gpflag = READ_16(header + 6); - unsigned int method = READ_16(header + 8); - unsigned int filetime = READ_16(header + 10); - unsigned int filedate = READ_16(header + 12); - unsigned int crc = READ_32(header + 14); /* crc */ - unsigned int cpsize = READ_32(header + 18); /* compressed size */ - unsigned int uncpsize = READ_32(header + 22); /* uncompressed sz */ - unsigned int fnsize = READ_16(header + 26); /* file name length */ - unsigned int extsize = READ_16(header + 28); /* extra field length */ - filename[0] = extra[0] = '\0'; - - /* Header */ - if (fwrite(header, 1, 30, fpOut) == 30) { - offset += 30; - } else { - err = Z_ERRNO; - break; - } - - /* Filename */ - if (fnsize > 0) { - if (fread(filename, 1, fnsize, fpZip) == fnsize) { - if (fwrite(filename, 1, fnsize, fpOut) == fnsize) { - offset += fnsize; - } else { - err = Z_ERRNO; - break; - } - } else { - err = Z_ERRNO; - break; - } - } else { - err = Z_STREAM_ERROR; - break; - } - - /* Extra field */ - if (extsize > 0) { - if (fread(extra, 1, extsize, fpZip) == extsize) { - if (fwrite(extra, 1, extsize, fpOut) == extsize) { - offset += extsize; - } else { - err = Z_ERRNO; - break; - } - } else { - err = Z_ERRNO; - break; - } - } - - /* Data */ - { - int dataSize = cpsize; - if (dataSize == 0) { - dataSize = uncpsize; - } - if (dataSize > 0) { - char* data = malloc(dataSize); - if (data != NULL) { - if ((int)fread(data, 1, dataSize, fpZip) == dataSize) { - if ((int)fwrite(data, 1, dataSize, fpOut) == dataSize) { - offset += dataSize; - totalBytes += dataSize; - } else { - err = Z_ERRNO; - } - } else { - err = Z_ERRNO; - } - free(data); - if (err != Z_OK) { - break; - } - } else { - err = Z_MEM_ERROR; - break; - } - } - } - - /* Central directory entry */ - { - char header[46]; - char* comment = ""; - int comsize = (int) strlen(comment); - WRITE_32(header, 0x02014b50); - WRITE_16(header + 4, version); - WRITE_16(header + 6, version); - WRITE_16(header + 8, gpflag); - WRITE_16(header + 10, method); - WRITE_16(header + 12, filetime); - WRITE_16(header + 14, filedate); - WRITE_32(header + 16, crc); - WRITE_32(header + 20, cpsize); - WRITE_32(header + 24, uncpsize); - WRITE_16(header + 28, fnsize); - WRITE_16(header + 30, extsize); - WRITE_16(header + 32, comsize); - WRITE_16(header + 34, 0); /* disk # */ - WRITE_16(header + 36, 0); /* int attrb */ - WRITE_32(header + 38, 0); /* ext attrb */ - WRITE_32(header + 42, currentOffset); - /* Header */ - if (fwrite(header, 1, 46, fpOutCD) == 46) { - offsetCD += 46; - - /* Filename */ - if (fnsize > 0) { - if (fwrite(filename, 1, fnsize, fpOutCD) == fnsize) { - offsetCD += fnsize; - } else { - err = Z_ERRNO; - break; - } - } else { - err = Z_STREAM_ERROR; - break; - } - - /* Extra field */ - if (extsize > 0) { - if (fwrite(extra, 1, extsize, fpOutCD) == extsize) { - offsetCD += extsize; - } else { - err = Z_ERRNO; - break; - } - } - - /* Comment field */ - if (comsize > 0) { - if ((int)fwrite(comment, 1, comsize, fpOutCD) == comsize) { - offsetCD += comsize; - } else { - err = Z_ERRNO; - break; - } - } - - - } else { - err = Z_ERRNO; - break; - } - } - - /* Success */ - entries++; - - } else { - break; - } - } - - /* Final central directory */ - { - int entriesZip = entries; - char header[22]; - char* comment = ""; // "ZIP File recovered by zlib/minizip/mztools"; - int comsize = (int) strlen(comment); - if (entriesZip > 0xffff) { - entriesZip = 0xffff; - } - WRITE_32(header, 0x06054b50); - WRITE_16(header + 4, 0); /* disk # */ - WRITE_16(header + 6, 0); /* disk # */ - WRITE_16(header + 8, entriesZip); /* hack */ - WRITE_16(header + 10, entriesZip); /* hack */ - WRITE_32(header + 12, offsetCD); /* size of CD */ - WRITE_32(header + 16, offset); /* offset to CD */ - WRITE_16(header + 20, comsize); /* comment */ - - /* Header */ - if (fwrite(header, 1, 22, fpOutCD) == 22) { - - /* Comment field */ - if (comsize > 0) { - if ((int)fwrite(comment, 1, comsize, fpOutCD) != comsize) { - err = Z_ERRNO; - } - } - - } else { - err = Z_ERRNO; - } - } - - /* Final merge (file + central directory) */ - fclose(fpOutCD); - if (err == Z_OK) { - fpOutCD = fopen(fileOutTmp, "rb"); - if (fpOutCD != NULL) { - int nRead; - char buffer[8192]; - while ( (nRead = (int)fread(buffer, 1, sizeof(buffer), fpOutCD)) > 0) { - if ((int)fwrite(buffer, 1, nRead, fpOut) != nRead) { - err = Z_ERRNO; - break; - } - } - fclose(fpOutCD); - } - } - - /* Close */ - fclose(fpZip); - fclose(fpOut); - - /* Wipe temporary file */ - (void)remove(fileOutTmp); - - /* Number of recovered entries */ - if (err == Z_OK) { - if (nRecovered != NULL) { - *nRecovered = entries; - } - if (bytesRecovered != NULL) { - *bytesRecovered = totalBytes; - } - } - } else { - err = Z_STREAM_ERROR; - } - return err; -} diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/mztools.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/mztools.h deleted file mode 100644 index eee78dc5..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/mztools.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - Additional tools for Minizip - Code: Xavier Roche '2004 - License: Same as ZLIB (www.gzip.org) -*/ - -#ifndef _zip_tools_H -#define _zip_tools_H - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _ZLIB_H -#include "zlib.h" -#endif - -#include "unzip.h" - -/* Repair a ZIP file (missing central directory) - file: file to recover - fileOut: output file after recovery - fileOutTmp: temporary file name used for recovery -*/ -extern int ZEXPORT unzRepair(const char* file, - const char* fileOut, - const char* fileOutTmp, - uLong* nRecovered, - uLong* bytesRecovered); - -#endif diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/unzip.c b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/unzip.c deleted file mode 100644 index 9ad4766d..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/unzip.c +++ /dev/null @@ -1,1598 +0,0 @@ -/* unzip.c -- IO for uncompress .zip files using zlib - Version 1.01e, February 12th, 2005 - - Copyright (C) 1998-2005 Gilles Vollant - - Read unzip.h for more info -*/ - -/* Decryption code comes from crypt.c by Info-ZIP but has been greatly reduced in terms of -compatibility with older software. The following is from the original crypt.c. Code -woven in by Terry Thorsen 1/2003. -*/ -/* - Copyright (c) 1990-2000 Info-ZIP. All rights reserved. - - See the accompanying file LICENSE, version 2000-Apr-09 or later - (the contents of which are also included in zip.h) for terms of use. - If, for some reason, all these files are missing, the Info-ZIP license - also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html -*/ -/* - crypt.c (full version) by Info-ZIP. Last revised: [see crypt.h] - - The encryption/decryption parts of this source code (as opposed to the - non-echoing password parts) were originally written in Europe. The - whole source package can be freely distributed, including from the USA. - (Prior to January 2000, re-export from the US was a violation of US law.) - */ - -/* - This encryption code is a direct transcription of the algorithm from - Roger Schlafly, described by Phil Katz in the file appnote.txt. This - file (appnote.txt) is distributed with the PKZIP program (even in the - version without encryption capabilities). - */ - - -#include -#include -#include -#include "zlib.h" -#include "unzip.h" - -#ifdef STDC -# include -# include -# include -#endif -#ifdef NO_ERRNO_H - extern int errno; -#else -# include -#endif - - -#ifndef local -# define local static -#endif -/* compile with -Dlocal if your debugger can't find static symbols */ - - -#ifndef CASESENSITIVITYDEFAULT_NO -# if !defined(unix) && !defined(CASESENSITIVITYDEFAULT_YES) -# define CASESENSITIVITYDEFAULT_NO -# endif -#endif - - -#ifndef UNZ_BUFSIZE -#define UNZ_BUFSIZE (16384) -#endif - -#ifndef UNZ_MAXFILENAMEINZIP -#define UNZ_MAXFILENAMEINZIP (256) -#endif - -#ifndef ALLOC -# define ALLOC(size) (malloc(size)) -#endif -#ifndef TRYFREE -# define TRYFREE(p) {if (p) free(p);} -#endif - -#define SIZECENTRALDIRITEM (0x2e) -#define SIZEZIPLOCALHEADER (0x1e) - - - - -const char unz_copyright[] = - " unzip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll"; - -/* unz_file_info_interntal contain internal info about a file in zipfile*/ -typedef struct unz_file_info_internal_s -{ - uLong offset_curfile;/* relative offset of local header 4 bytes */ -} unz_file_info_internal; - - -/* file_in_zip_read_info_s contain internal information about a file in zipfile, - when reading and decompress it */ -typedef struct -{ - char *read_buffer; /* internal buffer for compressed data */ - z_stream stream; /* zLib stream structure for inflate */ - - uLong pos_in_zipfile; /* position in byte on the zipfile, for fseek*/ - uLong stream_initialised; /* flag set if stream structure is initialised*/ - - uLong offset_local_extrafield;/* offset of the local extra field */ - uInt size_local_extrafield;/* size of the local extra field */ - uLong pos_local_extrafield; /* position in the local extra field in read*/ - - uLong crc32; /* crc32 of all data uncompressed */ - uLong crc32_wait; /* crc32 we must obtain after decompress all */ - uLong rest_read_compressed; /* number of byte to be decompressed */ - uLong rest_read_uncompressed;/*number of byte to be obtained after decomp*/ - zlib_filefunc_def z_filefunc; - voidpf filestream; /* io structore of the zipfile */ - uLong compression_method; /* compression method (0==store) */ - uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ - int raw; -} file_in_zip_read_info_s; - - -/* unz_s contain internal information about the zipfile -*/ -typedef struct -{ - zlib_filefunc_def z_filefunc; - voidpf filestream; /* io structore of the zipfile */ - unz_global_info gi; /* public global information */ - uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ - uLong num_file; /* number of the current file in the zipfile*/ - uLong pos_in_central_dir; /* pos of the current file in the central dir*/ - uLong current_file_ok; /* flag about the usability of the current file*/ - uLong central_pos; /* position of the beginning of the central dir*/ - - uLong size_central_dir; /* size of the central directory */ - uLong offset_central_dir; /* offset of start of central directory with - respect to the starting disk number */ - - unz_file_info cur_file_info; /* public info about the current file in zip*/ - unz_file_info_internal cur_file_info_internal; /* private info about it*/ - file_in_zip_read_info_s* pfile_in_zip_read; /* structure about the current - file if we are decompressing it */ - int encrypted; -# ifndef NOUNCRYPT - unsigned long keys[3]; /* keys defining the pseudo-random sequence */ - const unsigned long* pcrc_32_tab; -# endif -} unz_s; - - -#ifndef NOUNCRYPT -#include "crypt.h" -#endif - -/* =========================================================================== - Read a byte from a gz_stream; update next_in and avail_in. Return EOF - for end of file. - IN assertion: the stream s has been sucessfully opened for reading. -*/ - - -local int unzlocal_getByte OF(( - const zlib_filefunc_def* pzlib_filefunc_def, - voidpf filestream, - int *pi)); - -local int unzlocal_getByte(pzlib_filefunc_def,filestream,pi) - const zlib_filefunc_def* pzlib_filefunc_def; - voidpf filestream; - int *pi; -{ - unsigned char c; - int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1); - if (err==1) - { - *pi = (int)c; - return UNZ_OK; - } - else - { - if (ZERROR(*pzlib_filefunc_def,filestream)) - return UNZ_ERRNO; - else - return UNZ_EOF; - } -} - - -/* =========================================================================== - Reads a long in LSB order from the given gz_stream. Sets -*/ -local int unzlocal_getShort OF(( - const zlib_filefunc_def* pzlib_filefunc_def, - voidpf filestream, - uLong *pX)); - -local int unzlocal_getShort (pzlib_filefunc_def,filestream,pX) - const zlib_filefunc_def* pzlib_filefunc_def; - voidpf filestream; - uLong *pX; -{ - uLong x ; - int i; - int err; - - err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i); - x = (uLong)i; - - if (err==UNZ_OK) - err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i); - x += ((uLong)i)<<8; - - if (err==UNZ_OK) - *pX = x; - else - *pX = 0; - return err; -} - -local int unzlocal_getLong OF(( - const zlib_filefunc_def* pzlib_filefunc_def, - voidpf filestream, - uLong *pX)); - -local int unzlocal_getLong (pzlib_filefunc_def,filestream,pX) - const zlib_filefunc_def* pzlib_filefunc_def; - voidpf filestream; - uLong *pX; -{ - uLong x ; - int i; - int err; - - err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i); - x = (uLong)i; - - if (err==UNZ_OK) - err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i); - x += ((uLong)i)<<8; - - if (err==UNZ_OK) - err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i); - x += ((uLong)i)<<16; - - if (err==UNZ_OK) - err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i); - x += ((uLong)i)<<24; - - if (err==UNZ_OK) - *pX = x; - else - *pX = 0; - return err; -} - - -/* My own strcmpi / strcasecmp */ -local int strcmpcasenosensitive_internal (fileName1,fileName2) - const char* fileName1; - const char* fileName2; -{ - for (;;) - { - char c1=*(fileName1++); - char c2=*(fileName2++); - if ((c1>='a') && (c1<='z')) - c1 -= 0x20; - if ((c2>='a') && (c2<='z')) - c2 -= 0x20; - if (c1=='\0') - return ((c2=='\0') ? 0 : -1); - if (c2=='\0') - return 1; - if (c1c2) - return 1; - } -} - - -#ifdef CASESENSITIVITYDEFAULT_NO -#define CASESENSITIVITYDEFAULTVALUE 2 -#else -#define CASESENSITIVITYDEFAULTVALUE 1 -#endif - -#ifndef STRCMPCASENOSENTIVEFUNCTION -#define STRCMPCASENOSENTIVEFUNCTION strcmpcasenosensitive_internal -#endif - -/* - Compare two filename (fileName1,fileName2). - If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp) - If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi - or strcasecmp) - If iCaseSenisivity = 0, case sensitivity is defaut of your operating system - (like 1 on Unix, 2 on Windows) - -*/ -extern int ZEXPORT unzStringFileNameCompare (fileName1,fileName2,iCaseSensitivity) - const char* fileName1; - const char* fileName2; - int iCaseSensitivity; -{ - if (iCaseSensitivity==0) - iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE; - - if (iCaseSensitivity==1) - return strcmp(fileName1,fileName2); - - return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2); -} - -#ifndef BUFREADCOMMENT -#define BUFREADCOMMENT (0x400) -#endif - -/* - Locate the Central directory of a zipfile (at the end, just before - the global comment) -*/ -local uLong unzlocal_SearchCentralDir OF(( - const zlib_filefunc_def* pzlib_filefunc_def, - voidpf filestream)); - -local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream) - const zlib_filefunc_def* pzlib_filefunc_def; - voidpf filestream; -{ - unsigned char* buf; - uLong uSizeFile; - uLong uBackRead; - uLong uMaxBack=0xffff; /* maximum size of global comment */ - uLong uPosFound=0; - - if (ZSEEK(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0) - return 0; - - - uSizeFile = ZTELL(*pzlib_filefunc_def,filestream); - - if (uMaxBack>uSizeFile) - uMaxBack = uSizeFile; - - buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4); - if (buf==NULL) - return 0; - - uBackRead = 4; - while (uBackReaduMaxBack) - uBackRead = uMaxBack; - else - uBackRead+=BUFREADCOMMENT; - uReadPos = uSizeFile-uBackRead ; - - uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ? - (BUFREADCOMMENT+4) : (uSizeFile-uReadPos); - if (ZSEEK(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0) - break; - - if (ZREAD(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize) - break; - - for (i=(int)uReadSize-3; (i--)>0;) - if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && - ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06)) - { - uPosFound = uReadPos+i; - break; - } - - if (uPosFound!=0) - break; - } - TRYFREE(buf); - return uPosFound; -} - -/* - Open a Zip file. path contain the full pathname (by example, - on a Windows NT computer "c:\\test\\zlib114.zip" or on an Unix computer - "zlib/zlib114.zip". - If the zipfile cannot be opened (file doesn't exist or in not valid), the - return value is NULL. - Else, the return value is a unzFile Handle, usable with other function - of this unzip package. -*/ -extern unzFile ZEXPORT unzOpen2 (path, pzlib_filefunc_def) - const char *path; - zlib_filefunc_def* pzlib_filefunc_def; -{ - unz_s us; - unz_s *s; - uLong central_pos,uL; - - uLong number_disk; /* number of the current dist, used for - spaning ZIP, unsupported, always 0*/ - uLong number_disk_with_CD; /* number the the disk with central dir, used - for spaning ZIP, unsupported, always 0*/ - uLong number_entry_CD; /* total number of entries in - the central dir - (same than number_entry on nospan) */ - - int err=UNZ_OK; - - if (unz_copyright[0]!=' ') - return NULL; - - if (pzlib_filefunc_def==NULL) - fill_fopen_filefunc(&us.z_filefunc); - else - us.z_filefunc = *pzlib_filefunc_def; - - us.filestream= (*(us.z_filefunc.zopen_file))(us.z_filefunc.opaque, - path, - ZLIB_FILEFUNC_MODE_READ | - ZLIB_FILEFUNC_MODE_EXISTING); - if (us.filestream==NULL) - return NULL; - - central_pos = unzlocal_SearchCentralDir(&us.z_filefunc,us.filestream); - if (central_pos==0) - err=UNZ_ERRNO; - - if (ZSEEK(us.z_filefunc, us.filestream, - central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0) - err=UNZ_ERRNO; - - /* the signature, already checked */ - if (unzlocal_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK) - err=UNZ_ERRNO; - - /* number of this disk */ - if (unzlocal_getShort(&us.z_filefunc, us.filestream,&number_disk)!=UNZ_OK) - err=UNZ_ERRNO; - - /* number of the disk with the start of the central directory */ - if (unzlocal_getShort(&us.z_filefunc, us.filestream,&number_disk_with_CD)!=UNZ_OK) - err=UNZ_ERRNO; - - /* total number of entries in the central dir on this disk */ - if (unzlocal_getShort(&us.z_filefunc, us.filestream,&us.gi.number_entry)!=UNZ_OK) - err=UNZ_ERRNO; - - /* total number of entries in the central dir */ - if (unzlocal_getShort(&us.z_filefunc, us.filestream,&number_entry_CD)!=UNZ_OK) - err=UNZ_ERRNO; - - if ((number_entry_CD!=us.gi.number_entry) || - (number_disk_with_CD!=0) || - (number_disk!=0)) - err=UNZ_BADZIPFILE; - - /* size of the central directory */ - if (unzlocal_getLong(&us.z_filefunc, us.filestream,&us.size_central_dir)!=UNZ_OK) - err=UNZ_ERRNO; - - /* offset of start of central directory with respect to the - starting disk number */ - if (unzlocal_getLong(&us.z_filefunc, us.filestream,&us.offset_central_dir)!=UNZ_OK) - err=UNZ_ERRNO; - - /* zipfile comment length */ - if (unzlocal_getShort(&us.z_filefunc, us.filestream,&us.gi.size_comment)!=UNZ_OK) - err=UNZ_ERRNO; - - if ((central_pospfile_in_zip_read!=NULL) - unzCloseCurrentFile(file); - - ZCLOSE(s->z_filefunc, s->filestream); - TRYFREE(s); - return UNZ_OK; -} - - -/* - Write info about the ZipFile in the *pglobal_info structure. - No preparation of the structure is needed - return UNZ_OK if there is no problem. */ -extern int ZEXPORT unzGetGlobalInfo (file,pglobal_info) - unzFile file; - unz_global_info *pglobal_info; -{ - unz_s* s; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - *pglobal_info=s->gi; - return UNZ_OK; -} - - -/* - Translate date/time from Dos format to tm_unz (readable more easilty) -*/ -local void unzlocal_DosDateToTmuDate (ulDosDate, ptm) - uLong ulDosDate; - tm_unz* ptm; -{ - uLong uDate; - uDate = (uLong)(ulDosDate>>16); - ptm->tm_mday = (uInt)(uDate&0x1f) ; - ptm->tm_mon = (uInt)((((uDate)&0x1E0)/0x20)-1) ; - ptm->tm_year = (uInt)(((uDate&0x0FE00)/0x0200)+1980) ; - - ptm->tm_hour = (uInt) ((ulDosDate &0xF800)/0x800); - ptm->tm_min = (uInt) ((ulDosDate&0x7E0)/0x20) ; - ptm->tm_sec = (uInt) (2*(ulDosDate&0x1f)) ; -} - -/* - Get Info about the current file in the zipfile, with internal only info -*/ -local int unzlocal_GetCurrentFileInfoInternal OF((unzFile file, - unz_file_info *pfile_info, - unz_file_info_internal - *pfile_info_internal, - char *szFileName, - uLong fileNameBufferSize, - void *extraField, - uLong extraFieldBufferSize, - char *szComment, - uLong commentBufferSize)); - -local int unzlocal_GetCurrentFileInfoInternal (file, - pfile_info, - pfile_info_internal, - szFileName, fileNameBufferSize, - extraField, extraFieldBufferSize, - szComment, commentBufferSize) - unzFile file; - unz_file_info *pfile_info; - unz_file_info_internal *pfile_info_internal; - char *szFileName; - uLong fileNameBufferSize; - void *extraField; - uLong extraFieldBufferSize; - char *szComment; - uLong commentBufferSize; -{ - unz_s* s; - unz_file_info file_info; - unz_file_info_internal file_info_internal; - int err=UNZ_OK; - uLong uMagic; - long lSeek=0; - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (ZSEEK(s->z_filefunc, s->filestream, - s->pos_in_central_dir+s->byte_before_the_zipfile, - ZLIB_FILEFUNC_SEEK_SET)!=0) - err=UNZ_ERRNO; - - - /* we check the magic */ - if (err==UNZ_OK) - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK) - err=UNZ_ERRNO; - else if (uMagic!=0x02014b50) - err=UNZ_BADZIPFILE; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.version) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.version_needed) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.flag) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.compression_method) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.dosDate) != UNZ_OK) - err=UNZ_ERRNO; - - unzlocal_DosDateToTmuDate(file_info.dosDate,&file_info.tmu_date); - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.crc) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.compressed_size) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.uncompressed_size) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.size_filename) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_extra) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_comment) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.disk_num_start) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.internal_fa) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info.external_fa) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&file_info_internal.offset_curfile) != UNZ_OK) - err=UNZ_ERRNO; - - lSeek+=file_info.size_filename; - if ((err==UNZ_OK) && (szFileName!=NULL)) - { - uLong uSizeRead ; - if (file_info.size_filename0) && (fileNameBufferSize>0)) - if (ZREAD(s->z_filefunc, s->filestream,szFileName,uSizeRead)!=uSizeRead) - err=UNZ_ERRNO; - lSeek -= uSizeRead; - } - - - if ((err==UNZ_OK) && (extraField!=NULL)) - { - uLong uSizeRead ; - if (file_info.size_file_extraz_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0) - lSeek=0; - else - err=UNZ_ERRNO; - if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0)) - if (ZREAD(s->z_filefunc, s->filestream,extraField,uSizeRead)!=uSizeRead) - err=UNZ_ERRNO; - lSeek += file_info.size_file_extra - uSizeRead; - } - else - lSeek+=file_info.size_file_extra; - - - if ((err==UNZ_OK) && (szComment!=NULL)) - { - uLong uSizeRead ; - if (file_info.size_file_commentz_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0) - lSeek=0; - else - err=UNZ_ERRNO; - if ((file_info.size_file_comment>0) && (commentBufferSize>0)) - if (ZREAD(s->z_filefunc, s->filestream,szComment,uSizeRead)!=uSizeRead) - err=UNZ_ERRNO; - lSeek+=file_info.size_file_comment - uSizeRead; - } - else - lSeek+=file_info.size_file_comment; - - if ((err==UNZ_OK) && (pfile_info!=NULL)) - *pfile_info=file_info; - - if ((err==UNZ_OK) && (pfile_info_internal!=NULL)) - *pfile_info_internal=file_info_internal; - - return err; -} - - - -/* - Write info about the ZipFile in the *pglobal_info structure. - No preparation of the structure is needed - return UNZ_OK if there is no problem. -*/ -extern int ZEXPORT unzGetCurrentFileInfo (file, - pfile_info, - szFileName, fileNameBufferSize, - extraField, extraFieldBufferSize, - szComment, commentBufferSize) - unzFile file; - unz_file_info *pfile_info; - char *szFileName; - uLong fileNameBufferSize; - void *extraField; - uLong extraFieldBufferSize; - char *szComment; - uLong commentBufferSize; -{ - return unzlocal_GetCurrentFileInfoInternal(file,pfile_info,NULL, - szFileName,fileNameBufferSize, - extraField,extraFieldBufferSize, - szComment,commentBufferSize); -} - -/* - Set the current file of the zipfile to the first file. - return UNZ_OK if there is no problem -*/ -extern int ZEXPORT unzGoToFirstFile (file) - unzFile file; -{ - int err=UNZ_OK; - unz_s* s; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - s->pos_in_central_dir=s->offset_central_dir; - s->num_file=0; - err=unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, - &s->cur_file_info_internal, - NULL,0,NULL,0,NULL,0); - s->current_file_ok = (err == UNZ_OK); - return err; -} - -/* - Set the current file of the zipfile to the next file. - return UNZ_OK if there is no problem - return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest. -*/ -extern int ZEXPORT unzGoToNextFile (file) - unzFile file; -{ - unz_s* s; - int err; - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_END_OF_LIST_OF_FILE; - if (s->gi.number_entry != 0xffff) /* 2^16 files overflow hack */ - if (s->num_file+1==s->gi.number_entry) - return UNZ_END_OF_LIST_OF_FILE; - - s->pos_in_central_dir += SIZECENTRALDIRITEM + s->cur_file_info.size_filename + - s->cur_file_info.size_file_extra + s->cur_file_info.size_file_comment ; - s->num_file++; - err = unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, - &s->cur_file_info_internal, - NULL,0,NULL,0,NULL,0); - s->current_file_ok = (err == UNZ_OK); - return err; -} - - -/* - Try locate the file szFileName in the zipfile. - For the iCaseSensitivity signification, see unzipStringFileNameCompare - - return value : - UNZ_OK if the file is found. It becomes the current file. - UNZ_END_OF_LIST_OF_FILE if the file is not found -*/ -extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity) - unzFile file; - const char *szFileName; - int iCaseSensitivity; -{ - unz_s* s; - int err; - - /* We remember the 'current' position in the file so that we can jump - * back there if we fail. - */ - unz_file_info cur_file_infoSaved; - unz_file_info_internal cur_file_info_internalSaved; - uLong num_fileSaved; - uLong pos_in_central_dirSaved; - - - if (file==NULL) - return UNZ_PARAMERROR; - - if (strlen(szFileName)>=UNZ_MAXFILENAMEINZIP) - return UNZ_PARAMERROR; - - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_END_OF_LIST_OF_FILE; - - /* Save the current state */ - num_fileSaved = s->num_file; - pos_in_central_dirSaved = s->pos_in_central_dir; - cur_file_infoSaved = s->cur_file_info; - cur_file_info_internalSaved = s->cur_file_info_internal; - - err = unzGoToFirstFile(file); - - while (err == UNZ_OK) - { - char szCurrentFileName[UNZ_MAXFILENAMEINZIP+1]; - err = unzGetCurrentFileInfo(file,NULL, - szCurrentFileName,sizeof(szCurrentFileName)-1, - NULL,0,NULL,0); - if (err == UNZ_OK) - { - if (unzStringFileNameCompare(szCurrentFileName, - szFileName,iCaseSensitivity)==0) - return UNZ_OK; - err = unzGoToNextFile(file); - } - } - - /* We failed, so restore the state of the 'current file' to where we - * were. - */ - s->num_file = num_fileSaved ; - s->pos_in_central_dir = pos_in_central_dirSaved ; - s->cur_file_info = cur_file_infoSaved; - s->cur_file_info_internal = cur_file_info_internalSaved; - return err; -} - - -/* -/////////////////////////////////////////// -// Contributed by Ryan Haksi (mailto://cryogen@infoserve.net) -// I need random access -// -// Further optimization could be realized by adding an ability -// to cache the directory in memory. The goal being a single -// comprehensive file read to put the file I need in a memory. -*/ - -/* -typedef struct unz_file_pos_s -{ - uLong pos_in_zip_directory; // offset in file - uLong num_of_file; // # of file -} unz_file_pos; -*/ - -extern int ZEXPORT unzGetFilePos(file, file_pos) - unzFile file; - unz_file_pos* file_pos; -{ - unz_s* s; - - if (file==NULL || file_pos==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_END_OF_LIST_OF_FILE; - - file_pos->pos_in_zip_directory = s->pos_in_central_dir; - file_pos->num_of_file = s->num_file; - - return UNZ_OK; -} - -extern int ZEXPORT unzGoToFilePos(file, file_pos) - unzFile file; - unz_file_pos* file_pos; -{ - unz_s* s; - int err; - - if (file==NULL || file_pos==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - - /* jump to the right spot */ - s->pos_in_central_dir = file_pos->pos_in_zip_directory; - s->num_file = file_pos->num_of_file; - - /* set the current file */ - err = unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, - &s->cur_file_info_internal, - NULL,0,NULL,0,NULL,0); - /* return results */ - s->current_file_ok = (err == UNZ_OK); - return err; -} - -/* -// Unzip Helper Functions - should be here? -/////////////////////////////////////////// -*/ - -/* - Read the local header of the current zipfile - Check the coherency of the local header and info in the end of central - directory about this file - store in *piSizeVar the size of extra info in local header - (filename and size of extra field data) -*/ -local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar, - poffset_local_extrafield, - psize_local_extrafield) - unz_s* s; - uInt* piSizeVar; - uLong *poffset_local_extrafield; - uInt *psize_local_extrafield; -{ - uLong uMagic,uData,uFlags; - uLong size_filename; - uLong size_extra_field; - int err=UNZ_OK; - - *piSizeVar = 0; - *poffset_local_extrafield = 0; - *psize_local_extrafield = 0; - - if (ZSEEK(s->z_filefunc, s->filestream,s->cur_file_info_internal.offset_curfile + - s->byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET)!=0) - return UNZ_ERRNO; - - - if (err==UNZ_OK) - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK) - err=UNZ_ERRNO; - else if (uMagic!=0x04034b50) - err=UNZ_BADZIPFILE; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) - err=UNZ_ERRNO; -/* - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.wVersion)) - err=UNZ_BADZIPFILE; -*/ - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&uFlags) != UNZ_OK) - err=UNZ_ERRNO; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compression_method)) - err=UNZ_BADZIPFILE; - - if ((err==UNZ_OK) && (s->cur_file_info.compression_method!=0) && - (s->cur_file_info.compression_method!=Z_DEFLATED)) - err=UNZ_BADZIPFILE; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* date/time */ - err=UNZ_ERRNO; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* crc */ - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.crc) && - ((uFlags & 8)==0)) - err=UNZ_BADZIPFILE; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size compr */ - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compressed_size) && - ((uFlags & 8)==0)) - err=UNZ_BADZIPFILE; - - if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size uncompr */ - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) && - ((uFlags & 8)==0)) - err=UNZ_BADZIPFILE; - - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&size_filename) != UNZ_OK) - err=UNZ_ERRNO; - else if ((err==UNZ_OK) && (size_filename!=s->cur_file_info.size_filename)) - err=UNZ_BADZIPFILE; - - *piSizeVar += (uInt)size_filename; - - if (unzlocal_getShort(&s->z_filefunc, s->filestream,&size_extra_field) != UNZ_OK) - err=UNZ_ERRNO; - *poffset_local_extrafield= s->cur_file_info_internal.offset_curfile + - SIZEZIPLOCALHEADER + size_filename; - *psize_local_extrafield = (uInt)size_extra_field; - - *piSizeVar += (uInt)size_extra_field; - - return err; -} - -/* - Open for reading data the current file in the zipfile. - If there is no error and the file is opened, the return value is UNZ_OK. -*/ -extern int ZEXPORT unzOpenCurrentFile3 (file, method, level, raw, password) - unzFile file; - int* method; - int* level; - int raw; - const char* password; -{ - int err=UNZ_OK; - uInt iSizeVar; - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - uLong offset_local_extrafield; /* offset of the local extra field */ - uInt size_local_extrafield; /* size of the local extra field */ -# ifndef NOUNCRYPT - char source[12]; -# else - if (password != NULL) - return UNZ_PARAMERROR; -# endif - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (!s->current_file_ok) - return UNZ_PARAMERROR; - - if (s->pfile_in_zip_read != NULL) - unzCloseCurrentFile(file); - - if (unzlocal_CheckCurrentFileCoherencyHeader(s,&iSizeVar, - &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK) - return UNZ_BADZIPFILE; - - pfile_in_zip_read_info = (file_in_zip_read_info_s*) - ALLOC(sizeof(file_in_zip_read_info_s)); - if (pfile_in_zip_read_info==NULL) - return UNZ_INTERNALERROR; - - pfile_in_zip_read_info->read_buffer=(char*)ALLOC(UNZ_BUFSIZE); - pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield; - pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield; - pfile_in_zip_read_info->pos_local_extrafield=0; - pfile_in_zip_read_info->raw=raw; - - if (pfile_in_zip_read_info->read_buffer==NULL) - { - TRYFREE(pfile_in_zip_read_info); - return UNZ_INTERNALERROR; - } - - pfile_in_zip_read_info->stream_initialised=0; - - if (method!=NULL) - *method = (int)s->cur_file_info.compression_method; - - if (level!=NULL) - { - *level = 6; - switch (s->cur_file_info.flag & 0x06) - { - case 6 : *level = 1; break; - case 4 : *level = 2; break; - case 2 : *level = 9; break; - } - } - - if ((s->cur_file_info.compression_method!=0) && - (s->cur_file_info.compression_method!=Z_DEFLATED)) - err=UNZ_BADZIPFILE; - - pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc; - pfile_in_zip_read_info->crc32=0; - pfile_in_zip_read_info->compression_method = - s->cur_file_info.compression_method; - pfile_in_zip_read_info->filestream=s->filestream; - pfile_in_zip_read_info->z_filefunc=s->z_filefunc; - pfile_in_zip_read_info->byte_before_the_zipfile=s->byte_before_the_zipfile; - - pfile_in_zip_read_info->stream.total_out = 0; - - if ((s->cur_file_info.compression_method==Z_DEFLATED) && - (!raw)) - { - pfile_in_zip_read_info->stream.zalloc = (alloc_func)0; - pfile_in_zip_read_info->stream.zfree = (free_func)0; - pfile_in_zip_read_info->stream.opaque = (voidpf)0; - pfile_in_zip_read_info->stream.next_in = (voidpf)0; - pfile_in_zip_read_info->stream.avail_in = 0; - - err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS); - if (err == Z_OK) - pfile_in_zip_read_info->stream_initialised=1; - else - { - TRYFREE(pfile_in_zip_read_info); - return err; - } - /* windowBits is passed < 0 to tell that there is no zlib header. - * Note that in this case inflate *requires* an extra "dummy" byte - * after the compressed stream in order to complete decompression and - * return Z_STREAM_END. - * In unzip, i don't wait absolutely Z_STREAM_END because I known the - * size of both compressed and uncompressed data - */ - } - pfile_in_zip_read_info->rest_read_compressed = - s->cur_file_info.compressed_size ; - pfile_in_zip_read_info->rest_read_uncompressed = - s->cur_file_info.uncompressed_size ; - - - pfile_in_zip_read_info->pos_in_zipfile = - s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER + - iSizeVar; - - pfile_in_zip_read_info->stream.avail_in = (uInt)0; - - s->pfile_in_zip_read = pfile_in_zip_read_info; - -# ifndef NOUNCRYPT - if (password != NULL) - { - int i; - s->pcrc_32_tab = get_crc_table(); - init_keys(password,s->keys,s->pcrc_32_tab); - if (ZSEEK(s->z_filefunc, s->filestream, - s->pfile_in_zip_read->pos_in_zipfile + - s->pfile_in_zip_read->byte_before_the_zipfile, - SEEK_SET)!=0) - return UNZ_INTERNALERROR; - if(ZREAD(s->z_filefunc, s->filestream,source, 12)<12) - return UNZ_INTERNALERROR; - - for (i = 0; i<12; i++) - zdecode(s->keys,s->pcrc_32_tab,source[i]); - - s->pfile_in_zip_read->pos_in_zipfile+=12; - s->encrypted=1; - } -# endif - - - return UNZ_OK; -} - -extern int ZEXPORT unzOpenCurrentFile (file) - unzFile file; -{ - return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL); -} - -extern int ZEXPORT unzOpenCurrentFilePassword (file, password) - unzFile file; - const char* password; -{ - return unzOpenCurrentFile3(file, NULL, NULL, 0, password); -} - -extern int ZEXPORT unzOpenCurrentFile2 (file,method,level,raw) - unzFile file; - int* method; - int* level; - int raw; -{ - return unzOpenCurrentFile3(file, method, level, raw, NULL); -} - -/* - Read bytes from the current file. - buf contain buffer where data must be copied - len the size of buf. - - return the number of byte copied if somes bytes are copied - return 0 if the end of file was reached - return <0 with error code if there is an error - (UNZ_ERRNO for IO error, or zLib error for uncompress error) -*/ -extern int ZEXPORT unzReadCurrentFile (file, buf, len) - unzFile file; - voidp buf; - unsigned len; -{ - int err=UNZ_OK; - uInt iRead = 0; - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - - if ((pfile_in_zip_read_info->read_buffer == NULL)) - return UNZ_END_OF_LIST_OF_FILE; - if (len==0) - return 0; - - pfile_in_zip_read_info->stream.next_out = (Bytef*)buf; - - pfile_in_zip_read_info->stream.avail_out = (uInt)len; - - if ((len>pfile_in_zip_read_info->rest_read_uncompressed) && - (!(pfile_in_zip_read_info->raw))) - pfile_in_zip_read_info->stream.avail_out = - (uInt)pfile_in_zip_read_info->rest_read_uncompressed; - - if ((len>pfile_in_zip_read_info->rest_read_compressed+ - pfile_in_zip_read_info->stream.avail_in) && - (pfile_in_zip_read_info->raw)) - pfile_in_zip_read_info->stream.avail_out = - (uInt)pfile_in_zip_read_info->rest_read_compressed+ - pfile_in_zip_read_info->stream.avail_in; - - while (pfile_in_zip_read_info->stream.avail_out>0) - { - if ((pfile_in_zip_read_info->stream.avail_in==0) && - (pfile_in_zip_read_info->rest_read_compressed>0)) - { - uInt uReadThis = UNZ_BUFSIZE; - if (pfile_in_zip_read_info->rest_read_compressedrest_read_compressed; - if (uReadThis == 0) - return UNZ_EOF; - if (ZSEEK(pfile_in_zip_read_info->z_filefunc, - pfile_in_zip_read_info->filestream, - pfile_in_zip_read_info->pos_in_zipfile + - pfile_in_zip_read_info->byte_before_the_zipfile, - ZLIB_FILEFUNC_SEEK_SET)!=0) - return UNZ_ERRNO; - if (ZREAD(pfile_in_zip_read_info->z_filefunc, - pfile_in_zip_read_info->filestream, - pfile_in_zip_read_info->read_buffer, - uReadThis)!=uReadThis) - return UNZ_ERRNO; - - -# ifndef NOUNCRYPT - if(s->encrypted) - { - uInt i; - for(i=0;iread_buffer[i] = - zdecode(s->keys,s->pcrc_32_tab, - pfile_in_zip_read_info->read_buffer[i]); - } -# endif - - - pfile_in_zip_read_info->pos_in_zipfile += uReadThis; - - pfile_in_zip_read_info->rest_read_compressed-=uReadThis; - - pfile_in_zip_read_info->stream.next_in = - (Bytef*)pfile_in_zip_read_info->read_buffer; - pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis; - } - - if ((pfile_in_zip_read_info->compression_method==0) || (pfile_in_zip_read_info->raw)) - { - uInt uDoCopy,i ; - - if ((pfile_in_zip_read_info->stream.avail_in == 0) && - (pfile_in_zip_read_info->rest_read_compressed == 0)) - return (iRead==0) ? UNZ_EOF : iRead; - - if (pfile_in_zip_read_info->stream.avail_out < - pfile_in_zip_read_info->stream.avail_in) - uDoCopy = pfile_in_zip_read_info->stream.avail_out ; - else - uDoCopy = pfile_in_zip_read_info->stream.avail_in ; - - for (i=0;istream.next_out+i) = - *(pfile_in_zip_read_info->stream.next_in+i); - - pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32, - pfile_in_zip_read_info->stream.next_out, - uDoCopy); - pfile_in_zip_read_info->rest_read_uncompressed-=uDoCopy; - pfile_in_zip_read_info->stream.avail_in -= uDoCopy; - pfile_in_zip_read_info->stream.avail_out -= uDoCopy; - pfile_in_zip_read_info->stream.next_out += uDoCopy; - pfile_in_zip_read_info->stream.next_in += uDoCopy; - pfile_in_zip_read_info->stream.total_out += uDoCopy; - iRead += uDoCopy; - } - else - { - uLong uTotalOutBefore,uTotalOutAfter; - const Bytef *bufBefore; - uLong uOutThis; - int flush=Z_SYNC_FLUSH; - - uTotalOutBefore = pfile_in_zip_read_info->stream.total_out; - bufBefore = pfile_in_zip_read_info->stream.next_out; - - /* - if ((pfile_in_zip_read_info->rest_read_uncompressed == - pfile_in_zip_read_info->stream.avail_out) && - (pfile_in_zip_read_info->rest_read_compressed == 0)) - flush = Z_FINISH; - */ - err=inflate(&pfile_in_zip_read_info->stream,flush); - - if ((err>=0) && (pfile_in_zip_read_info->stream.msg!=NULL)) - err = Z_DATA_ERROR; - - uTotalOutAfter = pfile_in_zip_read_info->stream.total_out; - uOutThis = uTotalOutAfter-uTotalOutBefore; - - pfile_in_zip_read_info->crc32 = - crc32(pfile_in_zip_read_info->crc32,bufBefore, - (uInt)(uOutThis)); - - pfile_in_zip_read_info->rest_read_uncompressed -= - uOutThis; - - iRead += (uInt)(uTotalOutAfter - uTotalOutBefore); - - if (err==Z_STREAM_END) - return (iRead==0) ? UNZ_EOF : iRead; - if (err!=Z_OK) - break; - } - } - - if (err==Z_OK) - return iRead; - return err; -} - - -/* - Give the current position in uncompressed data -*/ -extern z_off_t ZEXPORT unztell (file) - unzFile file; -{ - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - return (z_off_t)pfile_in_zip_read_info->stream.total_out; -} - - -/* - return 1 if the end of file was reached, 0 elsewhere -*/ -extern int ZEXPORT unzeof (file) - unzFile file; -{ - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - if (pfile_in_zip_read_info->rest_read_uncompressed == 0) - return 1; - else - return 0; -} - - - -/* - Read extra field from the current file (opened by unzOpenCurrentFile) - This is the local-header version of the extra field (sometimes, there is - more info in the local-header version than in the central-header) - - if buf==NULL, it return the size of the local extra field that can be read - - if buf!=NULL, len is the size of the buffer, the extra header is copied in - buf. - the return value is the number of bytes copied in buf, or (if <0) - the error code -*/ -extern int ZEXPORT unzGetLocalExtrafield (file,buf,len) - unzFile file; - voidp buf; - unsigned len; -{ - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - uInt read_now; - uLong size_to_read; - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - size_to_read = (pfile_in_zip_read_info->size_local_extrafield - - pfile_in_zip_read_info->pos_local_extrafield); - - if (buf==NULL) - return (int)size_to_read; - - if (len>size_to_read) - read_now = (uInt)size_to_read; - else - read_now = (uInt)len ; - - if (read_now==0) - return 0; - - if (ZSEEK(pfile_in_zip_read_info->z_filefunc, - pfile_in_zip_read_info->filestream, - pfile_in_zip_read_info->offset_local_extrafield + - pfile_in_zip_read_info->pos_local_extrafield, - ZLIB_FILEFUNC_SEEK_SET)!=0) - return UNZ_ERRNO; - - if (ZREAD(pfile_in_zip_read_info->z_filefunc, - pfile_in_zip_read_info->filestream, - buf,read_now)!=read_now) - return UNZ_ERRNO; - - return (int)read_now; -} - -/* - Close the file in zip opened with unzipOpenCurrentFile - Return UNZ_CRCERROR if all the file was read but the CRC is not good -*/ -extern int ZEXPORT unzCloseCurrentFile (file) - unzFile file; -{ - int err=UNZ_OK; - - unz_s* s; - file_in_zip_read_info_s* pfile_in_zip_read_info; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - pfile_in_zip_read_info=s->pfile_in_zip_read; - - if (pfile_in_zip_read_info==NULL) - return UNZ_PARAMERROR; - - - if ((pfile_in_zip_read_info->rest_read_uncompressed == 0) && - (!pfile_in_zip_read_info->raw)) - { - if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait) - err=UNZ_CRCERROR; - } - - - TRYFREE(pfile_in_zip_read_info->read_buffer); - pfile_in_zip_read_info->read_buffer = NULL; - if (pfile_in_zip_read_info->stream_initialised) - inflateEnd(&pfile_in_zip_read_info->stream); - - pfile_in_zip_read_info->stream_initialised = 0; - TRYFREE(pfile_in_zip_read_info); - - s->pfile_in_zip_read=NULL; - - return err; -} - - -/* - Get the global comment string of the ZipFile, in the szComment buffer. - uSizeBuf is the size of the szComment buffer. - return the number of byte copied or an error code <0 -*/ -extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf) - unzFile file; - char *szComment; - uLong uSizeBuf; -{ - int err=UNZ_OK; - unz_s* s; - uLong uReadThis ; - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - - uReadThis = uSizeBuf; - if (uReadThis>s->gi.size_comment) - uReadThis = s->gi.size_comment; - - if (ZSEEK(s->z_filefunc,s->filestream,s->central_pos+22,ZLIB_FILEFUNC_SEEK_SET)!=0) - return UNZ_ERRNO; - - if (uReadThis>0) - { - *szComment='\0'; - if (ZREAD(s->z_filefunc,s->filestream,szComment,uReadThis)!=uReadThis) - return UNZ_ERRNO; - } - - if ((szComment != NULL) && (uSizeBuf > s->gi.size_comment)) - *(szComment+s->gi.size_comment)='\0'; - return (int)uReadThis; -} - -/* Additions by RX '2004 */ -extern uLong ZEXPORT unzGetOffset (file) - unzFile file; -{ - unz_s* s; - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - if (!s->current_file_ok) - return 0; - if (s->gi.number_entry != 0 && s->gi.number_entry != 0xffff) - if (s->num_file==s->gi.number_entry) - return 0; - return s->pos_in_central_dir; -} - -extern int ZEXPORT unzSetOffset (file, pos) - unzFile file; - uLong pos; -{ - unz_s* s; - int err; - - if (file==NULL) - return UNZ_PARAMERROR; - s=(unz_s*)file; - - s->pos_in_central_dir = pos; - s->num_file = s->gi.number_entry; /* hack */ - err = unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info, - &s->cur_file_info_internal, - NULL,0,NULL,0,NULL,0); - s->current_file_ok = (err == UNZ_OK); - return err; -} diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/unzip.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/unzip.h deleted file mode 100644 index b247937c..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/unzip.h +++ /dev/null @@ -1,354 +0,0 @@ -/* unzip.h -- IO for uncompress .zip files using zlib - Version 1.01e, February 12th, 2005 - - Copyright (C) 1998-2005 Gilles Vollant - - This unzip package allow extract file from .ZIP file, compatible with PKZip 2.04g - WinZip, InfoZip tools and compatible. - - Multi volume ZipFile (span) are not supported. - Encryption compatible with pkzip 2.04g only supported - Old compressions used by old PKZip 1.x are not supported - - - I WAIT FEEDBACK at mail info@winimage.com - Visit also http://www.winimage.com/zLibDll/unzip.htm for evolution - - Condition of use and distribution are the same than zlib : - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - -*/ - -/* for more info about .ZIP format, see - http://www.info-zip.org/pub/infozip/doc/appnote-981119-iz.zip - http://www.info-zip.org/pub/infozip/doc/ - PkWare has also a specification at : - ftp://ftp.pkware.com/probdesc.zip -*/ - -#ifndef _unz_H -#define _unz_H - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _ZLIB_H -#include "zlib.h" -#endif - -#ifndef _ZLIBIOAPI_H -#include "ioapi.h" -#endif - -#if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP) -/* like the STRICT of WIN32, we define a pointer that cannot be converted - from (void*) without cast */ -typedef struct TagunzFile__ { int unused; } unzFile__; -typedef unzFile__ *unzFile; -#else -typedef voidp unzFile; -#endif - - -#define UNZ_OK (0) -#define UNZ_END_OF_LIST_OF_FILE (-100) -#define UNZ_ERRNO (Z_ERRNO) -#define UNZ_EOF (0) -#define UNZ_PARAMERROR (-102) -#define UNZ_BADZIPFILE (-103) -#define UNZ_INTERNALERROR (-104) -#define UNZ_CRCERROR (-105) - -/* tm_unz contain date/time info */ -typedef struct tm_unz_s -{ - uInt tm_sec; /* seconds after the minute - [0,59] */ - uInt tm_min; /* minutes after the hour - [0,59] */ - uInt tm_hour; /* hours since midnight - [0,23] */ - uInt tm_mday; /* day of the month - [1,31] */ - uInt tm_mon; /* months since January - [0,11] */ - uInt tm_year; /* years - [1980..2044] */ -} tm_unz; - -/* unz_global_info structure contain global data about the ZIPfile - These data comes from the end of central dir */ -typedef struct unz_global_info_s -{ - uLong number_entry; /* total number of entries in - the central dir on this disk */ - uLong size_comment; /* size of the global comment of the zipfile */ -} unz_global_info; - - -/* unz_file_info contain information about a file in the zipfile */ -typedef struct unz_file_info_s -{ - uLong version; /* version made by 2 bytes */ - uLong version_needed; /* version needed to extract 2 bytes */ - uLong flag; /* general purpose bit flag 2 bytes */ - uLong compression_method; /* compression method 2 bytes */ - uLong dosDate; /* last mod file date in Dos fmt 4 bytes */ - uLong crc; /* crc-32 4 bytes */ - uLong compressed_size; /* compressed size 4 bytes */ - uLong uncompressed_size; /* uncompressed size 4 bytes */ - uLong size_filename; /* filename length 2 bytes */ - uLong size_file_extra; /* extra field length 2 bytes */ - uLong size_file_comment; /* file comment length 2 bytes */ - - uLong disk_num_start; /* disk number start 2 bytes */ - uLong internal_fa; /* internal file attributes 2 bytes */ - uLong external_fa; /* external file attributes 4 bytes */ - - tm_unz tmu_date; -} unz_file_info; - -extern int ZEXPORT unzStringFileNameCompare OF ((const char* fileName1, - const char* fileName2, - int iCaseSensitivity)); -/* - Compare two filename (fileName1,fileName2). - If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp) - If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi - or strcasecmp) - If iCaseSenisivity = 0, case sensitivity is defaut of your operating system - (like 1 on Unix, 2 on Windows) -*/ - - -extern unzFile ZEXPORT unzOpen OF((const char *path)); -/* - Open a Zip file. path contain the full pathname (by example, - on a Windows XP computer "c:\\zlib\\zlib113.zip" or on an Unix computer - "zlib/zlib113.zip". - If the zipfile cannot be opened (file don't exist or in not valid), the - return value is NULL. - Else, the return value is a unzFile Handle, usable with other function - of this unzip package. -*/ - -extern unzFile ZEXPORT unzOpen2 OF((const char *path, - zlib_filefunc_def* pzlib_filefunc_def)); -/* - Open a Zip file, like unzOpen, but provide a set of file low level API - for read/write the zip file (see ioapi.h) -*/ - -extern int ZEXPORT unzClose OF((unzFile file)); -/* - Close a ZipFile opened with unzipOpen. - If there is files inside the .Zip opened with unzOpenCurrentFile (see later), - these files MUST be closed with unzipCloseCurrentFile before call unzipClose. - return UNZ_OK if there is no problem. */ - -extern int ZEXPORT unzGetGlobalInfo OF((unzFile file, - unz_global_info *pglobal_info)); -/* - Write info about the ZipFile in the *pglobal_info structure. - No preparation of the structure is needed - return UNZ_OK if there is no problem. */ - - -extern int ZEXPORT unzGetGlobalComment OF((unzFile file, - char *szComment, - uLong uSizeBuf)); -/* - Get the global comment string of the ZipFile, in the szComment buffer. - uSizeBuf is the size of the szComment buffer. - return the number of byte copied or an error code <0 -*/ - - -/***************************************************************************/ -/* Unzip package allow you browse the directory of the zipfile */ - -extern int ZEXPORT unzGoToFirstFile OF((unzFile file)); -/* - Set the current file of the zipfile to the first file. - return UNZ_OK if there is no problem -*/ - -extern int ZEXPORT unzGoToNextFile OF((unzFile file)); -/* - Set the current file of the zipfile to the next file. - return UNZ_OK if there is no problem - return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest. -*/ - -extern int ZEXPORT unzLocateFile OF((unzFile file, - const char *szFileName, - int iCaseSensitivity)); -/* - Try locate the file szFileName in the zipfile. - For the iCaseSensitivity signification, see unzStringFileNameCompare - - return value : - UNZ_OK if the file is found. It becomes the current file. - UNZ_END_OF_LIST_OF_FILE if the file is not found -*/ - - -/* ****************************************** */ -/* Ryan supplied functions */ -/* unz_file_info contain information about a file in the zipfile */ -typedef struct unz_file_pos_s -{ - uLong pos_in_zip_directory; /* offset in zip file directory */ - uLong num_of_file; /* # of file */ -} unz_file_pos; - -extern int ZEXPORT unzGetFilePos( - unzFile file, - unz_file_pos* file_pos); - -extern int ZEXPORT unzGoToFilePos( - unzFile file, - unz_file_pos* file_pos); - -/* ****************************************** */ - -extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file, - unz_file_info *pfile_info, - char *szFileName, - uLong fileNameBufferSize, - void *extraField, - uLong extraFieldBufferSize, - char *szComment, - uLong commentBufferSize)); -/* - Get Info about the current file - if pfile_info!=NULL, the *pfile_info structure will contain somes info about - the current file - if szFileName!=NULL, the filemane string will be copied in szFileName - (fileNameBufferSize is the size of the buffer) - if extraField!=NULL, the extra field information will be copied in extraField - (extraFieldBufferSize is the size of the buffer). - This is the Central-header version of the extra field - if szComment!=NULL, the comment string of the file will be copied in szComment - (commentBufferSize is the size of the buffer) -*/ - -/***************************************************************************/ -/* for reading the content of the current zipfile, you can open it, read data - from it, and close it (you can close it before reading all the file) - */ - -extern int ZEXPORT unzOpenCurrentFile OF((unzFile file)); -/* - Open for reading data the current file in the zipfile. - If there is no error, the return value is UNZ_OK. -*/ - -extern int ZEXPORT unzOpenCurrentFilePassword OF((unzFile file, - const char* password)); -/* - Open for reading data the current file in the zipfile. - password is a crypting password - If there is no error, the return value is UNZ_OK. -*/ - -extern int ZEXPORT unzOpenCurrentFile2 OF((unzFile file, - int* method, - int* level, - int raw)); -/* - Same than unzOpenCurrentFile, but open for read raw the file (not uncompress) - if raw==1 - *method will receive method of compression, *level will receive level of - compression - note : you can set level parameter as NULL (if you did not want known level, - but you CANNOT set method parameter as NULL -*/ - -extern int ZEXPORT unzOpenCurrentFile3 OF((unzFile file, - int* method, - int* level, - int raw, - const char* password)); -/* - Same than unzOpenCurrentFile, but open for read raw the file (not uncompress) - if raw==1 - *method will receive method of compression, *level will receive level of - compression - note : you can set level parameter as NULL (if you did not want known level, - but you CANNOT set method parameter as NULL -*/ - - -extern int ZEXPORT unzCloseCurrentFile OF((unzFile file)); -/* - Close the file in zip opened with unzOpenCurrentFile - Return UNZ_CRCERROR if all the file was read but the CRC is not good -*/ - -extern int ZEXPORT unzReadCurrentFile OF((unzFile file, - voidp buf, - unsigned len)); -/* - Read bytes from the current file (opened by unzOpenCurrentFile) - buf contain buffer where data must be copied - len the size of buf. - - return the number of byte copied if somes bytes are copied - return 0 if the end of file was reached - return <0 with error code if there is an error - (UNZ_ERRNO for IO error, or zLib error for uncompress error) -*/ - -extern z_off_t ZEXPORT unztell OF((unzFile file)); -/* - Give the current position in uncompressed data -*/ - -extern int ZEXPORT unzeof OF((unzFile file)); -/* - return 1 if the end of file was reached, 0 elsewhere -*/ - -extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file, - voidp buf, - unsigned len)); -/* - Read extra field from the current file (opened by unzOpenCurrentFile) - This is the local-header version of the extra field (sometimes, there is - more info in the local-header version than in the central-header) - - if buf==NULL, it return the size of the local extra field - - if buf!=NULL, len is the size of the buffer, the extra header is copied in - buf. - the return value is the number of bytes copied in buf, or (if <0) - the error code -*/ - -/***************************************************************************/ - -/* Get the current file offset */ -extern uLong ZEXPORT unzGetOffset (unzFile file); - -/* Set the current file offset */ -extern int ZEXPORT unzSetOffset (unzFile file, uLong pos); - - - -#ifdef __cplusplus -} -#endif - -#endif /* _unz_H */ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/zip.c b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/zip.c deleted file mode 100644 index 62074314..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/zip.c +++ /dev/null @@ -1,1219 +0,0 @@ -/* zip.c -- IO on .zip files using zlib - Version 1.01e, February 12th, 2005 - - 27 Dec 2004 Rolf Kalbermatter - Modification to zipOpen2 to support globalComment retrieval. - - Copyright (C) 1998-2005 Gilles Vollant - - Read zip.h for more info -*/ - - -#include -#include -#include -#include -#include "zlib.h" -#include "zip.h" - -#ifdef STDC -# include -# include -# include -#endif -#ifdef NO_ERRNO_H - extern int errno; -#else -# include -#endif - - -#ifndef local -# define local static -#endif -/* compile with -Dlocal if your debugger can't find static symbols */ - -#ifndef VERSIONMADEBY -# define VERSIONMADEBY (0x0) /* platform depedent */ -#endif - -#ifndef Z_BUFSIZE -#define Z_BUFSIZE (16384) -#endif - -#ifndef Z_MAXFILENAMEINZIP -#define Z_MAXFILENAMEINZIP (256) -#endif - -#ifndef ALLOC -# define ALLOC(size) (malloc(size)) -#endif -#ifndef TRYFREE -# define TRYFREE(p) {if (p) free(p);} -#endif - -/* -#define SIZECENTRALDIRITEM (0x2e) -#define SIZEZIPLOCALHEADER (0x1e) -*/ - -/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */ - -#ifndef SEEK_CUR -#define SEEK_CUR 1 -#endif - -#ifndef SEEK_END -#define SEEK_END 2 -#endif - -#ifndef SEEK_SET -#define SEEK_SET 0 -#endif - -#ifndef DEF_MEM_LEVEL -#if MAX_MEM_LEVEL >= 8 -# define DEF_MEM_LEVEL 8 -#else -# define DEF_MEM_LEVEL MAX_MEM_LEVEL -#endif -#endif -static const char zip_copyright[] = - " zip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll"; - - -#define SIZEDATA_INDATABLOCK (4096-(4*4)) - -#define LOCALHEADERMAGIC (0x04034b50) -#define CENTRALHEADERMAGIC (0x02014b50) -#define ENDHEADERMAGIC (0x06054b50) - -#define FLAG_LOCALHEADER_OFFSET (0x06) -#define CRC_LOCALHEADER_OFFSET (0x0e) - -#define SIZECENTRALHEADER (0x2e) /* 46 */ - -typedef struct linkedlist_datablock_internal_s -{ - struct linkedlist_datablock_internal_s* next_datablock; - uLong avail_in_this_block; - uLong filled_in_this_block; - uLong unused; /* for future use and alignement */ - unsigned char data[SIZEDATA_INDATABLOCK]; -} linkedlist_datablock_internal; - -typedef struct linkedlist_data_s -{ - linkedlist_datablock_internal* first_block; - linkedlist_datablock_internal* last_block; -} linkedlist_data; - - -typedef struct -{ - z_stream stream; /* zLib stream structure for inflate */ - int stream_initialised; /* 1 is stream is initialised */ - uInt pos_in_buffered_data; /* last written byte in buffered_data */ - - uLong pos_local_header; /* offset of the local header of the file - currenty writing */ - char* central_header; /* central header data for the current file */ - uLong size_centralheader; /* size of the central header for cur file */ - uLong flag; /* flag of the file currently writing */ - - int method; /* compression method of file currenty wr.*/ - int raw; /* 1 for directly writing raw data */ - Byte buffered_data[Z_BUFSIZE];/* buffer contain compressed data to be writ*/ - uLong dosDate; - uLong crc32; - int encrypt; -#ifndef NOCRYPT - unsigned long keys[3]; /* keys defining the pseudo-random sequence */ - const unsigned long* pcrc_32_tab; - int crypt_header_size; -#endif -} curfile_info; - -typedef struct -{ - zlib_filefunc_def z_filefunc; - voidpf filestream; /* io structore of the zipfile */ - linkedlist_data central_dir;/* datablock with central dir in construction*/ - int in_opened_file_inzip; /* 1 if a file in the zip is currently writ.*/ - curfile_info ci; /* info on the file curretly writing */ - - uLong begin_pos; /* position of the beginning of the zipfile */ - uLong add_position_when_writting_offset; - uLong number_entry; -#ifndef NO_ADDFILEINEXISTINGZIP - char *globalcomment; -#endif -} zip_internal; - - - -#ifndef NOCRYPT -#define INCLUDECRYPTINGCODE_IFCRYPTALLOWED -#include "crypt.h" -#endif - -local linkedlist_datablock_internal* allocate_new_datablock() -{ - linkedlist_datablock_internal* ldi; - ldi = (linkedlist_datablock_internal*) - ALLOC(sizeof(linkedlist_datablock_internal)); - if (ldi!=NULL) - { - ldi->next_datablock = NULL ; - ldi->filled_in_this_block = 0 ; - ldi->avail_in_this_block = SIZEDATA_INDATABLOCK ; - } - return ldi; -} - -local void free_datablock(ldi) - linkedlist_datablock_internal* ldi; -{ - while (ldi!=NULL) - { - linkedlist_datablock_internal* ldinext = ldi->next_datablock; - TRYFREE(ldi); - ldi = ldinext; - } -} - -local void init_linkedlist(ll) - linkedlist_data* ll; -{ - ll->first_block = ll->last_block = NULL; -} - -local void free_linkedlist(ll) - linkedlist_data* ll; -{ - free_datablock(ll->first_block); - ll->first_block = ll->last_block = NULL; -} - - -local int add_data_in_datablock(ll,buf,len) - linkedlist_data* ll; - const void* buf; - uLong len; -{ - linkedlist_datablock_internal* ldi; - const unsigned char* from_copy; - - if (ll==NULL) - return ZIP_INTERNALERROR; - - if (ll->last_block == NULL) - { - ll->first_block = ll->last_block = allocate_new_datablock(); - if (ll->first_block == NULL) - return ZIP_INTERNALERROR; - } - - ldi = ll->last_block; - from_copy = (unsigned char*)buf; - - while (len>0) - { - uInt copy_this; - uInt i; - unsigned char* to_copy; - - if (ldi->avail_in_this_block==0) - { - ldi->next_datablock = allocate_new_datablock(); - if (ldi->next_datablock == NULL) - return ZIP_INTERNALERROR; - ldi = ldi->next_datablock ; - ll->last_block = ldi; - } - - if (ldi->avail_in_this_block < len) - copy_this = (uInt)ldi->avail_in_this_block; - else - copy_this = (uInt)len; - - to_copy = &(ldi->data[ldi->filled_in_this_block]); - - for (i=0;ifilled_in_this_block += copy_this; - ldi->avail_in_this_block -= copy_this; - from_copy += copy_this ; - len -= copy_this; - } - return ZIP_OK; -} - - - -/****************************************************************************/ - -#ifndef NO_ADDFILEINEXISTINGZIP -/* =========================================================================== - Inputs a long in LSB order to the given file - nbByte == 1, 2 or 4 (byte, short or long) -*/ - -local int ziplocal_putValue OF((const zlib_filefunc_def* pzlib_filefunc_def, - voidpf filestream, uLong x, int nbByte)); -local int ziplocal_putValue (pzlib_filefunc_def, filestream, x, nbByte) - const zlib_filefunc_def* pzlib_filefunc_def; - voidpf filestream; - uLong x; - int nbByte; -{ - unsigned char buf[4]; - int n; - for (n = 0; n < nbByte; n++) - { - buf[n] = (unsigned char)(x & 0xff); - x >>= 8; - } - if (x != 0) - { /* data overflow - hack for ZIP64 (X Roche) */ - for (n = 0; n < nbByte; n++) - { - buf[n] = 0xff; - } - } - - if (ZWRITE(*pzlib_filefunc_def,filestream,buf,nbByte)!=(uLong)nbByte) - return ZIP_ERRNO; - else - return ZIP_OK; -} - -local void ziplocal_putValue_inmemory OF((void* dest, uLong x, int nbByte)); -local void ziplocal_putValue_inmemory (dest, x, nbByte) - void* dest; - uLong x; - int nbByte; -{ - unsigned char* buf=(unsigned char*)dest; - int n; - for (n = 0; n < nbByte; n++) { - buf[n] = (unsigned char)(x & 0xff); - x >>= 8; - } - - if (x != 0) - { /* data overflow - hack for ZIP64 */ - for (n = 0; n < nbByte; n++) - { - buf[n] = 0xff; - } - } -} - -/****************************************************************************/ - - -local uLong ziplocal_TmzDateToDosDate(ptm,dosDate) - const tm_zip* ptm; - uLong dosDate; -{ - uLong year = (uLong)ptm->tm_year; - if (year>1980) - year-=1980; - else if (year>80) - year-=80; - return - (uLong) (((ptm->tm_mday) + (32 * (ptm->tm_mon+1)) + (512 * year)) << 16) | - ((ptm->tm_sec/2) + (32* ptm->tm_min) + (2048 * (uLong)ptm->tm_hour)); -} - - -/****************************************************************************/ - -local int ziplocal_getByte OF(( - const zlib_filefunc_def* pzlib_filefunc_def, - voidpf filestream, - int *pi)); - -local int ziplocal_getByte(pzlib_filefunc_def,filestream,pi) - const zlib_filefunc_def* pzlib_filefunc_def; - voidpf filestream; - int *pi; -{ - unsigned char c; - int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1); - if (err==1) - { - *pi = (int)c; - return ZIP_OK; - } - else - { - if (ZERROR(*pzlib_filefunc_def,filestream)) - return ZIP_ERRNO; - else - return ZIP_EOF; - } -} - - -/* =========================================================================== - Reads a long in LSB order from the given gz_stream. Sets -*/ -local int ziplocal_getShort OF(( - const zlib_filefunc_def* pzlib_filefunc_def, - voidpf filestream, - uLong *pX)); - -local int ziplocal_getShort (pzlib_filefunc_def,filestream,pX) - const zlib_filefunc_def* pzlib_filefunc_def; - voidpf filestream; - uLong *pX; -{ - uLong x ; - int i; - int err; - - err = ziplocal_getByte(pzlib_filefunc_def,filestream,&i); - x = (uLong)i; - - if (err==ZIP_OK) - err = ziplocal_getByte(pzlib_filefunc_def,filestream,&i); - x += ((uLong)i)<<8; - - if (err==ZIP_OK) - *pX = x; - else - *pX = 0; - return err; -} - -local int ziplocal_getLong OF(( - const zlib_filefunc_def* pzlib_filefunc_def, - voidpf filestream, - uLong *pX)); - -local int ziplocal_getLong (pzlib_filefunc_def,filestream,pX) - const zlib_filefunc_def* pzlib_filefunc_def; - voidpf filestream; - uLong *pX; -{ - uLong x ; - int i; - int err; - - err = ziplocal_getByte(pzlib_filefunc_def,filestream,&i); - x = (uLong)i; - - if (err==ZIP_OK) - err = ziplocal_getByte(pzlib_filefunc_def,filestream,&i); - x += ((uLong)i)<<8; - - if (err==ZIP_OK) - err = ziplocal_getByte(pzlib_filefunc_def,filestream,&i); - x += ((uLong)i)<<16; - - if (err==ZIP_OK) - err = ziplocal_getByte(pzlib_filefunc_def,filestream,&i); - x += ((uLong)i)<<24; - - if (err==ZIP_OK) - *pX = x; - else - *pX = 0; - return err; -} - -#ifndef BUFREADCOMMENT -#define BUFREADCOMMENT (0x400) -#endif -/* - Locate the Central directory of a zipfile (at the end, just before - the global comment) -*/ -local uLong ziplocal_SearchCentralDir OF(( - const zlib_filefunc_def* pzlib_filefunc_def, - voidpf filestream)); - -local uLong ziplocal_SearchCentralDir(pzlib_filefunc_def,filestream) - const zlib_filefunc_def* pzlib_filefunc_def; - voidpf filestream; -{ - unsigned char* buf; - uLong uSizeFile; - uLong uBackRead; - uLong uMaxBack=0xffff; /* maximum size of global comment */ - uLong uPosFound=0; - - if (ZSEEK(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0) - return 0; - - - uSizeFile = ZTELL(*pzlib_filefunc_def,filestream); - - if (uMaxBack>uSizeFile) - uMaxBack = uSizeFile; - - buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4); - if (buf==NULL) - return 0; - - uBackRead = 4; - while (uBackReaduMaxBack) - uBackRead = uMaxBack; - else - uBackRead+=BUFREADCOMMENT; - uReadPos = uSizeFile-uBackRead ; - - uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ? - (BUFREADCOMMENT+4) : (uSizeFile-uReadPos); - if (ZSEEK(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0) - break; - - if (ZREAD(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize) - break; - - for (i=(int)uReadSize-3; (i--)>0;) - if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && - ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06)) - { - uPosFound = uReadPos+i; - break; - } - - if (uPosFound!=0) - break; - } - TRYFREE(buf); - return uPosFound; -} -#endif /* !NO_ADDFILEINEXISTINGZIP*/ - -/************************************************************/ -extern zipFile ZEXPORT zipOpen2 (pathname, append, globalcomment, pzlib_filefunc_def) - const char *pathname; - int append; - zipcharpc* globalcomment; - zlib_filefunc_def* pzlib_filefunc_def; -{ - zip_internal ziinit; - zip_internal* zi; - int err=ZIP_OK; - - - if (pzlib_filefunc_def==NULL) - fill_fopen_filefunc(&ziinit.z_filefunc); - else - ziinit.z_filefunc = *pzlib_filefunc_def; - - ziinit.filestream = (*(ziinit.z_filefunc.zopen_file)) - (ziinit.z_filefunc.opaque, - pathname, - (append == APPEND_STATUS_CREATE) ? - (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_CREATE) : - (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_EXISTING)); - - if (ziinit.filestream == NULL) - return NULL; - ziinit.begin_pos = ZTELL(ziinit.z_filefunc,ziinit.filestream); - ziinit.in_opened_file_inzip = 0; - ziinit.ci.stream_initialised = 0; - ziinit.number_entry = 0; - ziinit.add_position_when_writting_offset = 0; - init_linkedlist(&(ziinit.central_dir)); - - - zi = (zip_internal*)ALLOC(sizeof(zip_internal)); - if (zi==NULL) - { - ZCLOSE(ziinit.z_filefunc,ziinit.filestream); - return NULL; - } - - /* now we add file in a zipfile */ -# ifndef NO_ADDFILEINEXISTINGZIP - ziinit.globalcomment = NULL; - if (append == APPEND_STATUS_ADDINZIP) - { - uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/ - - uLong size_central_dir; /* size of the central directory */ - uLong offset_central_dir; /* offset of start of central directory */ - uLong central_pos,uL; - - uLong number_disk; /* number of the current dist, used for - spaning ZIP, unsupported, always 0*/ - uLong number_disk_with_CD; /* number the the disk with central dir, used - for spaning ZIP, unsupported, always 0*/ - uLong number_entry; - uLong number_entry_CD; /* total number of entries in - the central dir - (same than number_entry on nospan) */ - uLong size_comment; - - central_pos = ziplocal_SearchCentralDir(&ziinit.z_filefunc,ziinit.filestream); - if (central_pos==0) - err=ZIP_ERRNO; - - if (ZSEEK(ziinit.z_filefunc, ziinit.filestream, - central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0) - err=ZIP_ERRNO; - - /* the signature, already checked */ - if (ziplocal_getLong(&ziinit.z_filefunc, ziinit.filestream,&uL)!=ZIP_OK) - err=ZIP_ERRNO; - - /* number of this disk */ - if (ziplocal_getShort(&ziinit.z_filefunc, ziinit.filestream,&number_disk)!=ZIP_OK) - err=ZIP_ERRNO; - - /* number of the disk with the start of the central directory */ - if (ziplocal_getShort(&ziinit.z_filefunc, ziinit.filestream,&number_disk_with_CD)!=ZIP_OK) - err=ZIP_ERRNO; - - /* total number of entries in the central dir on this disk */ - if (ziplocal_getShort(&ziinit.z_filefunc, ziinit.filestream,&number_entry)!=ZIP_OK) - err=ZIP_ERRNO; - - /* total number of entries in the central dir */ - if (ziplocal_getShort(&ziinit.z_filefunc, ziinit.filestream,&number_entry_CD)!=ZIP_OK) - err=ZIP_ERRNO; - - if ((number_entry_CD!=number_entry) || - (number_disk_with_CD!=0) || - (number_disk!=0)) - err=ZIP_BADZIPFILE; - - /* size of the central directory */ - if (ziplocal_getLong(&ziinit.z_filefunc, ziinit.filestream,&size_central_dir)!=ZIP_OK) - err=ZIP_ERRNO; - - /* offset of start of central directory with respect to the - starting disk number */ - if (ziplocal_getLong(&ziinit.z_filefunc, ziinit.filestream,&offset_central_dir)!=ZIP_OK) - err=ZIP_ERRNO; - - /* zipfile global comment length */ - if (ziplocal_getShort(&ziinit.z_filefunc, ziinit.filestream,&size_comment)!=ZIP_OK) - err=ZIP_ERRNO; - - if ((central_pos0) - { - ziinit.globalcomment = ALLOC(size_comment+1); - if (ziinit.globalcomment) - { - size_comment = ZREAD(ziinit.z_filefunc, ziinit.filestream,ziinit.globalcomment,size_comment); - ziinit.globalcomment[size_comment]=0; - } - } - - byte_before_the_zipfile = central_pos - - (offset_central_dir+size_central_dir); - ziinit.add_position_when_writting_offset = byte_before_the_zipfile; - - { - uLong size_central_dir_to_read = size_central_dir; - size_t buf_size = SIZEDATA_INDATABLOCK; - void* buf_read = (void*)ALLOC(buf_size); - if (ZSEEK(ziinit.z_filefunc, ziinit.filestream, - offset_central_dir + byte_before_the_zipfile, - ZLIB_FILEFUNC_SEEK_SET) != 0) - err=ZIP_ERRNO; - - while ((size_central_dir_to_read>0) && (err==ZIP_OK)) - { - uLong read_this = SIZEDATA_INDATABLOCK; - if (read_this > size_central_dir_to_read) - read_this = size_central_dir_to_read; - if (ZREAD(ziinit.z_filefunc, ziinit.filestream,buf_read,read_this) != read_this) - err=ZIP_ERRNO; - - if (err==ZIP_OK) - err = add_data_in_datablock(&ziinit.central_dir,buf_read, - (uLong)read_this); - size_central_dir_to_read-=read_this; - } - TRYFREE(buf_read); - } - ziinit.begin_pos = byte_before_the_zipfile; - ziinit.number_entry = number_entry_CD; - - if (ZSEEK(ziinit.z_filefunc, ziinit.filestream, - offset_central_dir+byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET)!=0) - err=ZIP_ERRNO; - } - - if (globalcomment) - { - *globalcomment = ziinit.globalcomment; - } -# endif /* !NO_ADDFILEINEXISTINGZIP*/ - - if (err != ZIP_OK) - { -# ifndef NO_ADDFILEINEXISTINGZIP - TRYFREE(ziinit.globalcomment); -# endif /* !NO_ADDFILEINEXISTINGZIP*/ - TRYFREE(zi); - return NULL; - } - else - { - *zi = ziinit; - return (zipFile)zi; - } -} - -extern zipFile ZEXPORT zipOpen (pathname, append) - const char *pathname; - int append; -{ - return zipOpen2(pathname,append,NULL,NULL); -} - -extern int ZEXPORT zipOpenNewFileInZip3 (file, filename, zipfi, - extrafield_local, size_extrafield_local, - extrafield_global, size_extrafield_global, - comment, method, level, raw, - windowBits, memLevel, strategy, - password, crcForCrypting) - zipFile file; - const char* filename; - const zip_fileinfo* zipfi; - const void* extrafield_local; - uInt size_extrafield_local; - const void* extrafield_global; - uInt size_extrafield_global; - const char* comment; - int method; - int level; - int raw; - int windowBits; - int memLevel; - int strategy; - const char* password; - uLong crcForCrypting; -{ - zip_internal* zi; - uInt size_filename; - uInt size_comment; - uInt i; - int err = ZIP_OK; - -# ifdef NOCRYPT - if (password != NULL) - return ZIP_PARAMERROR; -# endif - - if (file == NULL) - return ZIP_PARAMERROR; - if ((method!=0) && (method!=Z_DEFLATED)) - return ZIP_PARAMERROR; - - zi = (zip_internal*)file; - - if (zi->in_opened_file_inzip == 1) - { - err = zipCloseFileInZip (file); - if (err != ZIP_OK) - return err; - } - - - if (filename==NULL) - filename="-"; - - if (comment==NULL) - size_comment = 0; - else - size_comment = (uInt)strlen(comment); - - size_filename = (uInt)strlen(filename); - - if (zipfi == NULL) - zi->ci.dosDate = 0; - else - { - if (zipfi->dosDate != 0) - zi->ci.dosDate = zipfi->dosDate; - else zi->ci.dosDate = ziplocal_TmzDateToDosDate(&zipfi->tmz_date,zipfi->dosDate); - } - - zi->ci.flag = 0; - if ((level==8) || (level==9)) - zi->ci.flag |= 2; - if ((level==2)) - zi->ci.flag |= 4; - if ((level==1)) - zi->ci.flag |= 6; - if (password != NULL) - zi->ci.flag |= 1; - - zi->ci.crc32 = 0; - zi->ci.method = method; - zi->ci.encrypt = 0; - zi->ci.stream_initialised = 0; - zi->ci.pos_in_buffered_data = 0; - zi->ci.raw = raw; - zi->ci.pos_local_header = ZTELL(zi->z_filefunc,zi->filestream) ; - zi->ci.size_centralheader = SIZECENTRALHEADER + size_filename + - size_extrafield_global + size_comment; - zi->ci.central_header = (char*)ALLOC((uInt)zi->ci.size_centralheader); - - ziplocal_putValue_inmemory(zi->ci.central_header,(uLong)CENTRALHEADERMAGIC,4); - /* version info */ - ziplocal_putValue_inmemory(zi->ci.central_header+4,(uLong)VERSIONMADEBY,2); - ziplocal_putValue_inmemory(zi->ci.central_header+6,(uLong)20,2); - ziplocal_putValue_inmemory(zi->ci.central_header+8,(uLong)zi->ci.flag,2); - ziplocal_putValue_inmemory(zi->ci.central_header+10,(uLong)zi->ci.method,2); - ziplocal_putValue_inmemory(zi->ci.central_header+12,(uLong)zi->ci.dosDate,4); - ziplocal_putValue_inmemory(zi->ci.central_header+16,(uLong)0,4); /*crc*/ - ziplocal_putValue_inmemory(zi->ci.central_header+20,(uLong)0,4); /*compr size*/ - ziplocal_putValue_inmemory(zi->ci.central_header+24,(uLong)0,4); /*uncompr size*/ - ziplocal_putValue_inmemory(zi->ci.central_header+28,(uLong)size_filename,2); - ziplocal_putValue_inmemory(zi->ci.central_header+30,(uLong)size_extrafield_global,2); - ziplocal_putValue_inmemory(zi->ci.central_header+32,(uLong)size_comment,2); - ziplocal_putValue_inmemory(zi->ci.central_header+34,(uLong)0,2); /*disk nm start*/ - - if (zipfi==NULL) - ziplocal_putValue_inmemory(zi->ci.central_header+36,(uLong)0,2); - else - ziplocal_putValue_inmemory(zi->ci.central_header+36,(uLong)zipfi->internal_fa,2); - - if (zipfi==NULL) - ziplocal_putValue_inmemory(zi->ci.central_header+38,(uLong)0,4); - else - ziplocal_putValue_inmemory(zi->ci.central_header+38,(uLong)zipfi->external_fa,4); - - ziplocal_putValue_inmemory(zi->ci.central_header+42,(uLong)zi->ci.pos_local_header- zi->add_position_when_writting_offset,4); - - for (i=0;ici.central_header+SIZECENTRALHEADER+i) = *(filename+i); - - for (i=0;ici.central_header+SIZECENTRALHEADER+size_filename+i) = - *(((const char*)extrafield_global)+i); - - for (i=0;ici.central_header+SIZECENTRALHEADER+size_filename+ - size_extrafield_global+i) = *(comment+i); - if (zi->ci.central_header == NULL) - return ZIP_INTERNALERROR; - - /* write the local header */ - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)LOCALHEADERMAGIC,4); - - if (err==ZIP_OK) - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)20,2);/* version needed to extract */ - if (err==ZIP_OK) - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.flag,2); - - if (err==ZIP_OK) - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.method,2); - - if (err==ZIP_OK) - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.dosDate,4); - - if (err==ZIP_OK) - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* crc 32, unknown */ - if (err==ZIP_OK) - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* compressed size, unknown */ - if (err==ZIP_OK) - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* uncompressed size, unknown */ - - if (err==ZIP_OK) - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_filename,2); - - if (err==ZIP_OK) - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_extrafield_local,2); - - if ((err==ZIP_OK) && (size_filename>0)) - if (ZWRITE(zi->z_filefunc,zi->filestream,filename,size_filename)!=size_filename) - err = ZIP_ERRNO; - - if ((err==ZIP_OK) && (size_extrafield_local>0)) - if (ZWRITE(zi->z_filefunc,zi->filestream,extrafield_local,size_extrafield_local) - !=size_extrafield_local) - err = ZIP_ERRNO; - - zi->ci.stream.avail_in = (uInt)0; - zi->ci.stream.avail_out = (uInt)Z_BUFSIZE; - zi->ci.stream.next_out = zi->ci.buffered_data; - zi->ci.stream.total_in = 0; - zi->ci.stream.total_out = 0; - - if ((err==ZIP_OK) && (zi->ci.method == Z_DEFLATED) && (!zi->ci.raw)) - { - zi->ci.stream.zalloc = (alloc_func)0; - zi->ci.stream.zfree = (free_func)0; - zi->ci.stream.opaque = (voidpf)0; - - if (windowBits>0) - windowBits = -windowBits; - - err = deflateInit2(&zi->ci.stream, level, - Z_DEFLATED, windowBits, memLevel, strategy); - - if (err==Z_OK) - zi->ci.stream_initialised = 1; - } -# ifndef NOCRYPT - zi->ci.crypt_header_size = 0; - if ((err==Z_OK) && (password != NULL)) - { - unsigned char bufHead[RAND_HEAD_LEN]; - unsigned int sizeHead; - zi->ci.encrypt = 1; - zi->ci.pcrc_32_tab = get_crc_table(); - /*init_keys(password,zi->ci.keys,zi->ci.pcrc_32_tab);*/ - - sizeHead=crypthead(password,bufHead,RAND_HEAD_LEN,zi->ci.keys,zi->ci.pcrc_32_tab,crcForCrypting); - zi->ci.crypt_header_size = sizeHead; - - if (ZWRITE(zi->z_filefunc,zi->filestream,bufHead,sizeHead) != sizeHead) - err = ZIP_ERRNO; - } -# endif - - if (err==Z_OK) - zi->in_opened_file_inzip = 1; - return err; -} - -extern int ZEXPORT zipOpenNewFileInZip2(file, filename, zipfi, - extrafield_local, size_extrafield_local, - extrafield_global, size_extrafield_global, - comment, method, level, raw) - zipFile file; - const char* filename; - const zip_fileinfo* zipfi; - const void* extrafield_local; - uInt size_extrafield_local; - const void* extrafield_global; - uInt size_extrafield_global; - const char* comment; - int method; - int level; - int raw; -{ - return zipOpenNewFileInZip3 (file, filename, zipfi, - extrafield_local, size_extrafield_local, - extrafield_global, size_extrafield_global, - comment, method, level, raw, - -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, - NULL, 0); -} - -extern int ZEXPORT zipOpenNewFileInZip (file, filename, zipfi, - extrafield_local, size_extrafield_local, - extrafield_global, size_extrafield_global, - comment, method, level) - zipFile file; - const char* filename; - const zip_fileinfo* zipfi; - const void* extrafield_local; - uInt size_extrafield_local; - const void* extrafield_global; - uInt size_extrafield_global; - const char* comment; - int method; - int level; -{ - return zipOpenNewFileInZip2 (file, filename, zipfi, - extrafield_local, size_extrafield_local, - extrafield_global, size_extrafield_global, - comment, method, level, 0); -} - -local int zipFlushWriteBuffer(zi) - zip_internal* zi; -{ - int err=ZIP_OK; - - if (zi->ci.encrypt != 0) - { -#ifndef NOCRYPT - uInt i; - int t; - for (i=0;ici.pos_in_buffered_data;i++) - zi->ci.buffered_data[i] = zencode(zi->ci.keys, zi->ci.pcrc_32_tab, - zi->ci.buffered_data[i],t); -#endif - } - if (ZWRITE(zi->z_filefunc,zi->filestream,zi->ci.buffered_data,zi->ci.pos_in_buffered_data) - !=zi->ci.pos_in_buffered_data) - err = ZIP_ERRNO; - zi->ci.pos_in_buffered_data = 0; - return err; -} - -extern int ZEXPORT zipWriteInFileInZip (file, buf, len) - zipFile file; - const void* buf; - unsigned len; -{ - zip_internal* zi; - int err=ZIP_OK; - - if (file == NULL) - return ZIP_PARAMERROR; - zi = (zip_internal*)file; - - if (zi->in_opened_file_inzip == 0) - return ZIP_PARAMERROR; - - zi->ci.stream.next_in = (void*)buf; - zi->ci.stream.avail_in = len; - zi->ci.crc32 = crc32(zi->ci.crc32,buf,len); - - while ((err==ZIP_OK) && (zi->ci.stream.avail_in>0)) - { - if (zi->ci.stream.avail_out == 0) - { - if (zipFlushWriteBuffer(zi) == ZIP_ERRNO) - err = ZIP_ERRNO; - zi->ci.stream.avail_out = (uInt)Z_BUFSIZE; - zi->ci.stream.next_out = zi->ci.buffered_data; - } - - - if(err != ZIP_OK) - break; - - if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw)) - { - uLong uTotalOutBefore = zi->ci.stream.total_out; - err=deflate(&zi->ci.stream, Z_NO_FLUSH); - zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ; - - } - else - { - uInt copy_this,i; - if (zi->ci.stream.avail_in < zi->ci.stream.avail_out) - copy_this = zi->ci.stream.avail_in; - else - copy_this = zi->ci.stream.avail_out; - for (i=0;ici.stream.next_out)+i) = - *(((const char*)zi->ci.stream.next_in)+i); - { - zi->ci.stream.avail_in -= copy_this; - zi->ci.stream.avail_out-= copy_this; - zi->ci.stream.next_in+= copy_this; - zi->ci.stream.next_out+= copy_this; - zi->ci.stream.total_in+= copy_this; - zi->ci.stream.total_out+= copy_this; - zi->ci.pos_in_buffered_data += copy_this; - } - } - } - - return err; -} - -extern int ZEXPORT zipCloseFileInZipRaw (file, uncompressed_size, crc32) - zipFile file; - uLong uncompressed_size; - uLong crc32; -{ - zip_internal* zi; - uLong compressed_size; - int err=ZIP_OK; - - if (file == NULL) - return ZIP_PARAMERROR; - zi = (zip_internal*)file; - - if (zi->in_opened_file_inzip == 0) - return ZIP_PARAMERROR; - zi->ci.stream.avail_in = 0; - - if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw)) - while (err==ZIP_OK) - { - uLong uTotalOutBefore; - if (zi->ci.stream.avail_out == 0) - { - if (zipFlushWriteBuffer(zi) == ZIP_ERRNO) - err = ZIP_ERRNO; - zi->ci.stream.avail_out = (uInt)Z_BUFSIZE; - zi->ci.stream.next_out = zi->ci.buffered_data; - } - uTotalOutBefore = zi->ci.stream.total_out; - err=deflate(&zi->ci.stream, Z_FINISH); - zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ; - } - - if (err==Z_STREAM_END) - err=ZIP_OK; /* this is normal */ - - if ((zi->ci.pos_in_buffered_data>0) && (err==ZIP_OK)) - if (zipFlushWriteBuffer(zi)==ZIP_ERRNO) - err = ZIP_ERRNO; - - if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw)) - { - err=deflateEnd(&zi->ci.stream); - zi->ci.stream_initialised = 0; - } - - if (!zi->ci.raw) - { - crc32 = (uLong)zi->ci.crc32; - uncompressed_size = (uLong)zi->ci.stream.total_in; - } - compressed_size = (uLong)zi->ci.stream.total_out; -# ifndef NOCRYPT - compressed_size += zi->ci.crypt_header_size; -# endif - - ziplocal_putValue_inmemory(zi->ci.central_header+16,crc32,4); /*crc*/ - ziplocal_putValue_inmemory(zi->ci.central_header+20, - compressed_size,4); /*compr size*/ - if (zi->ci.stream.data_type == Z_ASCII) - ziplocal_putValue_inmemory(zi->ci.central_header+36,(uLong)Z_ASCII,2); - ziplocal_putValue_inmemory(zi->ci.central_header+24, - uncompressed_size,4); /*uncompr size*/ - - if (err==ZIP_OK) - err = add_data_in_datablock(&zi->central_dir,zi->ci.central_header, - (uLong)zi->ci.size_centralheader); - free(zi->ci.central_header); - - if (err==ZIP_OK) - { - long cur_pos_inzip = ZTELL(zi->z_filefunc,zi->filestream); - if (ZSEEK(zi->z_filefunc,zi->filestream, - zi->ci.pos_local_header + 14,ZLIB_FILEFUNC_SEEK_SET)!=0) - err = ZIP_ERRNO; - - if (err==ZIP_OK) - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,crc32,4); /* crc 32, unknown */ - - if (err==ZIP_OK) /* compressed size, unknown */ - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,compressed_size,4); - - if (err==ZIP_OK) /* uncompressed size, unknown */ - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,uncompressed_size,4); - - if (ZSEEK(zi->z_filefunc,zi->filestream, - cur_pos_inzip,ZLIB_FILEFUNC_SEEK_SET)!=0) - err = ZIP_ERRNO; - } - - zi->number_entry ++; - zi->in_opened_file_inzip = 0; - - return err; -} - -extern int ZEXPORT zipCloseFileInZip (file) - zipFile file; -{ - return zipCloseFileInZipRaw (file,0,0); -} - -extern int ZEXPORT zipClose (file, global_comment) - zipFile file; - const char* global_comment; -{ - zip_internal* zi; - int err = 0; - uLong size_centraldir = 0; - uLong centraldir_pos_inzip; - uInt size_global_comment; - if (file == NULL) - return ZIP_PARAMERROR; - zi = (zip_internal*)file; - - if (zi->in_opened_file_inzip == 1) - { - err = zipCloseFileInZip (file); - } - -#ifndef NO_ADDFILEINEXISTINGZIP - if (global_comment==NULL) - global_comment = zi->globalcomment; -#endif - if (global_comment==NULL) - size_global_comment = 0; - else - size_global_comment = (uInt)strlen(global_comment); - - centraldir_pos_inzip = ZTELL(zi->z_filefunc,zi->filestream); - if (err==ZIP_OK) - { - linkedlist_datablock_internal* ldi = zi->central_dir.first_block ; - while (ldi!=NULL) - { - if ((err==ZIP_OK) && (ldi->filled_in_this_block>0)) - if (ZWRITE(zi->z_filefunc,zi->filestream, - ldi->data,ldi->filled_in_this_block) - !=ldi->filled_in_this_block ) - err = ZIP_ERRNO; - - size_centraldir += ldi->filled_in_this_block; - ldi = ldi->next_datablock; - } - } - free_datablock(zi->central_dir.first_block); - - if (err==ZIP_OK) /* Magic End */ - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)ENDHEADERMAGIC,4); - - if (err==ZIP_OK) /* number of this disk */ - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,2); - - if (err==ZIP_OK) /* number of the disk with the start of the central directory */ - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,2); - - if (err==ZIP_OK) /* total number of entries in the central dir on this disk */ - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->number_entry,2); - - if (err==ZIP_OK) /* total number of entries in the central dir */ - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->number_entry,2); - - if (err==ZIP_OK) /* size of the central directory */ - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_centraldir,4); - - if (err==ZIP_OK) /* offset of start of central directory with respect to the - starting disk number */ - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream, - (uLong)(centraldir_pos_inzip - zi->add_position_when_writting_offset),4); - - if (err==ZIP_OK) /* zipfile comment length */ - err = ziplocal_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_global_comment,2); - - if ((err==ZIP_OK) && (size_global_comment>0)) - if (ZWRITE(zi->z_filefunc,zi->filestream, - global_comment,size_global_comment) != size_global_comment) - err = ZIP_ERRNO; - - if (ZCLOSE(zi->z_filefunc,zi->filestream) != 0) - if (err == ZIP_OK) - err = ZIP_ERRNO; - -#ifndef NO_ADDFILEINEXISTINGZIP - TRYFREE(zi->globalcomment); -#endif - TRYFREE(zi); - - return err; -} diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/zip.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/zip.h deleted file mode 100644 index acacce83..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Dependencies/ZipArchive/minizip/zip.h +++ /dev/null @@ -1,235 +0,0 @@ -/* zip.h -- IO for compress .zip files using zlib - Version 1.01e, February 12th, 2005 - - Copyright (C) 1998-2005 Gilles Vollant - - This unzip package allow creates .ZIP file, compatible with PKZip 2.04g - WinZip, InfoZip tools and compatible. - Multi volume ZipFile (span) are not supported. - Encryption compatible with pkzip 2.04g only supported - Old compressions used by old PKZip 1.x are not supported - - For uncompress .zip file, look at unzip.h - - - I WAIT FEEDBACK at mail info@winimage.com - Visit also http://www.winimage.com/zLibDll/unzip.html for evolution - - Condition of use and distribution are the same than zlib : - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - -*/ - -/* for more info about .ZIP format, see - http://www.info-zip.org/pub/infozip/doc/appnote-981119-iz.zip - http://www.info-zip.org/pub/infozip/doc/ - PkWare has also a specification at : - ftp://ftp.pkware.com/probdesc.zip -*/ - -#ifndef _zip_H -#define _zip_H - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _ZLIB_H -#include "zlib.h" -#endif - -#ifndef _ZLIBIOAPI_H -#include "ioapi.h" -#endif - -#if defined(STRICTZIP) || defined(STRICTZIPUNZIP) -/* like the STRICT of WIN32, we define a pointer that cannot be converted - from (void*) without cast */ -typedef struct TagzipFile__ { int unused; } zipFile__; -typedef zipFile__ *zipFile; -#else -typedef voidp zipFile; -#endif - -#define ZIP_OK (0) -#define ZIP_EOF (0) -#define ZIP_ERRNO (Z_ERRNO) -#define ZIP_PARAMERROR (-102) -#define ZIP_BADZIPFILE (-103) -#define ZIP_INTERNALERROR (-104) - -#ifndef DEF_MEM_LEVEL -# if MAX_MEM_LEVEL >= 8 -# define DEF_MEM_LEVEL 8 -# else -# define DEF_MEM_LEVEL MAX_MEM_LEVEL -# endif -#endif -/* default memLevel */ - -/* tm_zip contain date/time info */ -typedef struct tm_zip_s -{ - uInt tm_sec; /* seconds after the minute - [0,59] */ - uInt tm_min; /* minutes after the hour - [0,59] */ - uInt tm_hour; /* hours since midnight - [0,23] */ - uInt tm_mday; /* day of the month - [1,31] */ - uInt tm_mon; /* months since January - [0,11] */ - uInt tm_year; /* years - [1980..2044] */ -} tm_zip; - -typedef struct -{ - tm_zip tmz_date; /* date in understandable format */ - uLong dosDate; /* if dos_date == 0, tmu_date is used */ -/* uLong flag; */ /* general purpose bit flag 2 bytes */ - - uLong internal_fa; /* internal file attributes 2 bytes */ - uLong external_fa; /* external file attributes 4 bytes */ -} zip_fileinfo; - -typedef const char* zipcharpc; - - -#define APPEND_STATUS_CREATE (0) -#define APPEND_STATUS_CREATEAFTER (1) -#define APPEND_STATUS_ADDINZIP (2) - -extern zipFile ZEXPORT zipOpen OF((const char *pathname, int append)); -/* - Create a zipfile. - pathname contain on Windows XP a filename like "c:\\zlib\\zlib113.zip" or on - an Unix computer "zlib/zlib113.zip". - if the file pathname exist and append==APPEND_STATUS_CREATEAFTER, the zip - will be created at the end of the file. - (useful if the file contain a self extractor code) - if the file pathname exist and append==APPEND_STATUS_ADDINZIP, we will - add files in existing zip (be sure you don't add file that doesn't exist) - If the zipfile cannot be opened, the return value is NULL. - Else, the return value is a zipFile Handle, usable with other function - of this zip package. -*/ - -/* Note : there is no delete function into a zipfile. - If you want delete file into a zipfile, you must open a zipfile, and create another - Of couse, you can use RAW reading and writing to copy the file you did not want delte -*/ - -extern zipFile ZEXPORT zipOpen2 OF((const char *pathname, - int append, - zipcharpc* globalcomment, - zlib_filefunc_def* pzlib_filefunc_def)); - -extern int ZEXPORT zipOpenNewFileInZip OF((zipFile file, - const char* filename, - const zip_fileinfo* zipfi, - const void* extrafield_local, - uInt size_extrafield_local, - const void* extrafield_global, - uInt size_extrafield_global, - const char* comment, - int method, - int level)); -/* - Open a file in the ZIP for writing. - filename : the filename in zip (if NULL, '-' without quote will be used - *zipfi contain supplemental information - if extrafield_local!=NULL and size_extrafield_local>0, extrafield_local - contains the extrafield data the the local header - if extrafield_global!=NULL and size_extrafield_global>0, extrafield_global - contains the extrafield data the the local header - if comment != NULL, comment contain the comment string - method contain the compression method (0 for store, Z_DEFLATED for deflate) - level contain the level of compression (can be Z_DEFAULT_COMPRESSION) -*/ - - -extern int ZEXPORT zipOpenNewFileInZip2 OF((zipFile file, - const char* filename, - const zip_fileinfo* zipfi, - const void* extrafield_local, - uInt size_extrafield_local, - const void* extrafield_global, - uInt size_extrafield_global, - const char* comment, - int method, - int level, - int raw)); - -/* - Same than zipOpenNewFileInZip, except if raw=1, we write raw file - */ - -extern int ZEXPORT zipOpenNewFileInZip3 OF((zipFile file, - const char* filename, - const zip_fileinfo* zipfi, - const void* extrafield_local, - uInt size_extrafield_local, - const void* extrafield_global, - uInt size_extrafield_global, - const char* comment, - int method, - int level, - int raw, - int windowBits, - int memLevel, - int strategy, - const char* password, - uLong crcForCtypting)); - -/* - Same than zipOpenNewFileInZip2, except - windowBits,memLevel,,strategy : see parameter strategy in deflateInit2 - password : crypting password (NULL for no crypting) - crcForCtypting : crc of file to compress (needed for crypting) - */ - - -extern int ZEXPORT zipWriteInFileInZip OF((zipFile file, - const void* buf, - unsigned len)); -/* - Write data in the zipfile -*/ - -extern int ZEXPORT zipCloseFileInZip OF((zipFile file)); -/* - Close the current file in the zipfile -*/ - -extern int ZEXPORT zipCloseFileInZipRaw OF((zipFile file, - uLong uncompressed_size, - uLong crc32)); -/* - Close the current file in the zipfile, for fiel opened with - parameter raw=1 in zipOpenNewFileInZip2 - uncompressed_size and crc32 are value for the uncompressed size -*/ - -extern int ZEXPORT zipClose OF((zipFile file, - const char* global_comment)); -/* - Close the zipfile -*/ - -#ifdef __cplusplus -} -#endif - -#endif /* _zip_H */ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Filter/TCFilter.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Filter/TCFilter.h deleted file mode 100644 index 518c1213..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Filter/TCFilter.h +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) 2019 Tencent. All rights reserved. - -#import - -NS_ASSUME_NONNULL_BEGIN - -typedef NSString * TCFilterIdentifier NS_STRING_ENUM; - -extern TCFilterIdentifier const TCFilterIdentifierNone; -extern TCFilterIdentifier const TCFilterIdentifierBaiXi; -extern TCFilterIdentifier const TCFilterIdentifierNormal; -extern TCFilterIdentifier const TCFilterIdentifierZiRan; -extern TCFilterIdentifier const TCFilterIdentifierYinghong; -extern TCFilterIdentifier const TCFilterIdentifierYunshang; -extern TCFilterIdentifier const TCFilterIdentifierChunzhen; -extern TCFilterIdentifier const TCFilterIdentifierBailan; -extern TCFilterIdentifier const TCFilterIdentifierYuanqi; -extern TCFilterIdentifier const TCFilterIdentifierChaotuo; -extern TCFilterIdentifier const TCFilterIdentifierXiangfen; -extern TCFilterIdentifier const TCFilterIdentifierWhite; -extern TCFilterIdentifier const TCFilterIdentifierLangman; -extern TCFilterIdentifier const TCFilterIdentifierQingxin; -extern TCFilterIdentifier const TCFilterIdentifierWeimei; -extern TCFilterIdentifier const TCFilterIdentifierFennen; -extern TCFilterIdentifier const TCFilterIdentifierHuaijiu; -extern TCFilterIdentifier const TCFilterIdentifierLandiao; -extern TCFilterIdentifier const TCFilterIdentifierQingliang; -extern TCFilterIdentifier const TCFilterIdentifierRixi; - -@interface TCFilter : NSObject -@property (readonly, nonatomic) TCFilterIdentifier identifier; -@property (readonly, nonatomic) NSString *lookupImagePath; -@end - -@interface TCFilterManager : NSObject -+ (instancetype)defaultManager; -@property (readonly, nonatomic) NSArray *allFilters; -- (TCFilter *)filterWithIdentifier:(TCFilterIdentifier)identifier; -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Filter/TCFilter.m b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Filter/TCFilter.m deleted file mode 100644 index c01d6f25..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Filter/TCFilter.m +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (c) 2019 Tencent. All rights reserved. - -#import "TCFilter.h" - -TCFilterIdentifier const TCFilterIdentifierNone = @""; -TCFilterIdentifier const TCFilterIdentifierBaiXi = @"baixi"; -TCFilterIdentifier const TCFilterIdentifierNormal = @"normal"; -TCFilterIdentifier const TCFilterIdentifierZiRan = @"ziran"; -TCFilterIdentifier const TCFilterIdentifierYinghong = @"yinghong"; -TCFilterIdentifier const TCFilterIdentifierYunshang = @"yunshang"; -TCFilterIdentifier const TCFilterIdentifierChunzhen = @"chunzhen"; -TCFilterIdentifier const TCFilterIdentifierBailan = @"bailan"; -TCFilterIdentifier const TCFilterIdentifierYuanqi = @"yuanqi"; -TCFilterIdentifier const TCFilterIdentifierChaotuo = @"chaotuo"; -TCFilterIdentifier const TCFilterIdentifierXiangfen = @"xiangfen"; -TCFilterIdentifier const TCFilterIdentifierWhite = @"white"; -TCFilterIdentifier const TCFilterIdentifierLangman = @"langman"; -TCFilterIdentifier const TCFilterIdentifierQingxin = @"qingxin"; -TCFilterIdentifier const TCFilterIdentifierWeimei = @"weimei"; -TCFilterIdentifier const TCFilterIdentifierFennen = @"fennen"; -TCFilterIdentifier const TCFilterIdentifierHuaijiu = @"huaijiu"; -TCFilterIdentifier const TCFilterIdentifierLandiao = @"landiao"; -TCFilterIdentifier const TCFilterIdentifierQingliang = @"qingliang"; -TCFilterIdentifier const TCFilterIdentifierRixi = @"rixi"; - -@implementation TCFilter - -- (instancetype)initWithIdentifier:(TCFilterIdentifier)identifier - lookupImagePath:(NSString *)lookupImagePath -{ - if (self = [super init]) { - _identifier = identifier; - _lookupImagePath = lookupImagePath; - } - return self; -} -@end - -@implementation TCFilterManager -{ - NSDictionary *_filterDictionary; -} -+ (instancetype)defaultManager -{ - static TCFilterManager *defaultManager = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - defaultManager = [[TCFilterManager alloc] init]; - }); - return defaultManager; -} - -- (instancetype)init -{ - self = [super init]; - if (self) { - NSBundle *bundle = [NSBundle mainBundle]; - NSString *path = [bundle pathForResource:@"FilterResource" ofType:@"bundle"]; - NSFileManager *manager = [[NSFileManager alloc] init]; - if ([manager fileExistsAtPath:path]) { - NSArray *availableFilters = @[ - TCFilterIdentifierBaiXi, - TCFilterIdentifierNormal, - TCFilterIdentifierZiRan, - TCFilterIdentifierYinghong, - TCFilterIdentifierYunshang, - TCFilterIdentifierChunzhen, - TCFilterIdentifierBailan, - TCFilterIdentifierYuanqi, - TCFilterIdentifierChaotuo, - TCFilterIdentifierXiangfen, - TCFilterIdentifierWhite, - TCFilterIdentifierLangman, - TCFilterIdentifierQingxin, - TCFilterIdentifierWeimei, - TCFilterIdentifierFennen, - TCFilterIdentifierHuaijiu, - TCFilterIdentifierLandiao, - TCFilterIdentifierQingliang, - TCFilterIdentifierRixi]; - NSMutableArray *filters = [[NSMutableArray alloc] initWithCapacity:availableFilters.count]; - NSMutableDictionary *filterMap = [[NSMutableDictionary alloc] initWithCapacity:availableFilters.count]; - for (TCFilterIdentifier identifier in availableFilters) { - NSString * itemPath = [path stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png", identifier]]; - if ([manager fileExistsAtPath:path]) { - TCFilter *filter = [[TCFilter alloc] initWithIdentifier:identifier lookupImagePath:itemPath]; - [filters addObject:filter]; - filterMap[identifier] = filter; - } - } - _allFilters = filters; - - } - } - return self; -} - -- (TCFilter *)filterWithIdentifier:(TCFilterIdentifier)identifier; -{ - return _filterDictionary[identifier]; -} -@end diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Info.plist b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Info.plist deleted file mode 100644 index 9bcb2444..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - - diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Interfaces/TCBeautyPanelActionPerformer.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Interfaces/TCBeautyPanelActionPerformer.h deleted file mode 100644 index a6e445a7..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Interfaces/TCBeautyPanelActionPerformer.h +++ /dev/null @@ -1,221 +0,0 @@ -// Copyright © 2019 Tencent. All rights reserved. -// -// TXBeautyManager 的接口包装,使用时可以将TXBeautyManager 强制转为 id - -#import - -NS_ASSUME_NONNULL_BEGIN - -@protocol TCBeautyPanelActionPerformer -/** -* 设置指定素材滤镜特效 -* -* @param filterImage 指定素材,即颜色查找表图片。**必须使用 png 格式** -*/ -- (void)setFilter:(nullable UIImage*)filterImage; - -/** - * 设置滤镜强度(v7.2后的版本请使用 setFilterStrength) - * - * @param level 滤镜强度, 从0到1,越大滤镜效果越明显,默认值为0.5。 - */ -- (void)setFilterConcentration:(float)level; - -/** - * 设置滤镜浓度 - * - * 在美女秀场等应用场景里,滤镜浓度的要求会比较高,以便更加突显主播的差异。 - * 我们默认的滤镜浓度是0.5,如果您觉得滤镜效果不明显,可以使用下面的接口进行调节。 - * - * @param strength 从0到1,越大滤镜效果越明显,默认值为0.5。 - */ -- (void)setFilterStrength:(float)strength; - -/** 设置绿幕文件(增值版本有效,普通版本设置此参数无效)[仅限企业版Pro] - * - * @param file 绿幕文件路径 - */ -- (void)setGreenScreenFile:(nullable NSString *)file; - -// 以下为 TXBeautyManager 方法 -/** - * 设置美颜(磨皮)算法 - * - * SDK 内部集成了两套风格不同的磨皮算法,一套我们取名叫“光滑”,适用于美女秀场,效果比较明显。 - * 另一套我们取名“自然”,磨皮算法更多地保留了面部细节,主观感受上会更加自然。 - * - * @param beautyStyle 美颜风格,光滑或者自然,光滑风格磨皮更加明显,适合娱乐场景。 - */ -- (void)setBeautyStyle:(NSInteger)beautyStyle; - -/** - * 设置美颜级别 - * @param level 美颜级别,取值范围0 - 9; 0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setBeautyLevel:(float)level; - -/** - * 设置美白级别 - * - * @param level 美白级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setWhitenessLevel:(float)level; - -/** - * 设置红润级别 - * - * @param level 红润级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setRuddyLevel:(float)level; - -#if TARGET_OS_IPHONE -/** - * 设置大眼级别(企业版有效,其它版本设置此参数无效) - * - * @param level 大眼级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setEyeScaleLevel:(float)level; - -/** - * 设置瘦脸级别(企业版有效,其它版本设置此参数无效) - * - * @param level 瘦脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setFaceSlimLevel:(float)level; - -/** - * 设置V脸级别(企业版有效,其它版本设置此参数无效) - * - * @param level V脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setFaceVLevel:(float)level; - -/** - * 设置下巴拉伸或收缩(企业版有效,其它版本设置此参数无效) - * - * @param level 下巴拉伸或收缩级别,取值范围-9 - 9;0 表示关闭,小于0表示收缩,大于0表示拉伸。 - */ -- (void)setChinLevel:(float)level; -/** - * 设置短脸级别(企业版有效,其它版本设置此参数无效) - * - * @param level 短脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setFaceShortLevel:(float)level; - -/** - * 设置瘦鼻级别(企业版有效,其它版本设置此参数无效) - * - * @param level 瘦鼻级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setNoseSlimLevel:(float)level; - -/** - * 设置亮眼 (企业版有效,其它版本设置此参数无效) - * - * @param level 亮眼级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setEyeLightenLevel:(float)level; - -/** - * 设置白牙 (企业版有效,其它版本设置此参数无效) - * - * @param level 白牙级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setToothWhitenLevel:(float)level; - -/** - * 设置祛皱 (企业版有效,其它版本设置此参数无效) - * - * @param level 祛皱级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setWrinkleRemoveLevel:(float)level; - -/** - * 设置祛眼袋 (企业版有效,其它版本设置此参数无效) - * - * @param level 祛眼袋级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setPounchRemoveLevel:(float)level; - -/** - * 设置法令纹 (企业版有效,其它版本设置此参数无效) - * - * @param level 法令纹级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setSmileLinesRemoveLevel:(float)level; - -/** - * 设置发际线 (企业版有效,其它版本设置此参数无效) - * - * @param level 发际线级别,取值范围-9 - 9;0表示关闭,小于0表示抬高,大于0表示降低。 - */ -- (void)setForeheadLevel:(float)level; - -/** - * 设置眼距 (企业版有效,其它版本设置此参数无效) - * - * @param level 眼距级别,取值范围-9 - 9;0表示关闭,小于0表示拉伸,大于0表示收缩。 - */ -- (void)setEyeDistanceLevel:(float)level; - -/** - * 设置眼角 (企业版有效,其它版本设置此参数无效) - * - * @param level 眼角级别,取值范围-9 - 9;0表示关闭,小于0表示降低,大于0表示抬高。 - */ -- (void)setEyeAngleLevel:(float)level; - -/** - * 设置嘴型 (企业版有效,其它版本设置此参数无效) - * - * @param level 嘴型级别,取值范围-9 - 9;0表示关闭,小于0表示拉伸,大于0表示收缩。 - */ -- (void)setMouthShapeLevel:(float)level; - -/** - * 设置鼻翼 (企业版有效,其它版本设置此参数无效) - * - * @param level 鼻翼级别,取值范围-9 - 9;0表示关闭,小于0表示拉伸,大于0表示收缩。 - */ -- (void)setNoseWingLevel:(float)level; - -/** - * 设置鼻子位置 (企业版有效,其它版本设置此参数无效) - * @param level 鼻子位置级别,取值范围-9 - 9;0表示关闭,小于0表示抬高,大于0表示降低。 - */ -- (void)setNosePositionLevel:(float)level; - -/** - * 设置嘴唇厚度 (企业版有效,其它版本设置此参数无效) - * @param level 嘴唇厚度级别,取值范围-9 - 9;0表示关闭,小于0表示拉伸,大于0表示收缩。 - */ -- (void)setLipsThicknessLevel:(float)level; - -/** - * 设置脸型(企业版有效,其它版本设置此参数无效) - * @param level 美型级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setFaceBeautyLevel:(float)level; - -/** - * 选择 AI 动效挂件(企业版有效,其它版本设置此参数无效) - * - * @param tmplName 动效名称 - * @param tmplDir 动效所在目录 - */ -- (void)setMotionTmpl:(nullable NSString *)tmplName inDir:(nullable NSString *)tmplDir; - -/** - * 设置动效静音(企业版有效,其它版本设置此参数无效) - * - * 有些挂件本身会有声音特效,通过此 API 可以关闭这些特效播放时所带的声音效果。 - * - * @param motionMute YES:静音;NO:不静音。 - */ -- (void)setMotionMute:(BOOL)motionMute; -#endif - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Model/TCBeautyPanelActionProxy.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Model/TCBeautyPanelActionProxy.h deleted file mode 100644 index d5602fd7..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Model/TCBeautyPanelActionProxy.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// TCBeautyPanelActionProxy.h -// TCBeautyPanel -// -// Created by cui on 2019/12/23. -// Copyright © 2019 Tencent. All rights reserved. -// - -#import -#import "TCBeautyPanelActionPerformer.h" -#import "TCBeautyPanelView.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface TCBeautyPanelActionProxy : NSProxy -+ (instancetype)proxyWithSDKObject:(id)object; -@end - -@interface TCBeautyPanel (SDK) -+ (instancetype)beautyPanelWithFrame:(CGRect)frame SDKObject:(id)object; -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Model/TCBeautyPanelActionProxy.m b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Model/TCBeautyPanelActionProxy.m deleted file mode 100644 index 2813585c..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Model/TCBeautyPanelActionProxy.m +++ /dev/null @@ -1,98 +0,0 @@ -// -// TCBeautyPanelActionProxy.m -// TCBeautyPanel -// -// Created by cui on 2019/12/23. -// Copyright © 2019 Tencent. All rights reserved. -// - -#import "TCBeautyPanelActionProxy.h" - -@interface NSObject (BeautyManager) -- (id)getBeautyManager; -- (void)setFilterConcentration:(float)level; -- (void)setSpecialRatio:(float)level; -@end - -NS_INLINE BOOL isFilterConcentrationSetter(SEL selector) { - return strcmp(sel_getName(selector), sel_getName(@selector(setFilterConcentration:))) == 0; -} - -@implementation TCBeautyPanelActionProxy -{ - __weak id _object; - __weak id _beautyManager; - SEL _filterConcentrationAlternativeSetter; -} - -+ (instancetype)proxyWithSDKObject:(id)object { - return [[TCBeautyPanelActionProxy alloc] initWithObject:object - filterConcentrationSetter:@selector(setSpecialRatio:)]; -} - -+ (instancetype)proxyWithSDKObject:(id)object filterConcentrationSetter:(SEL)setter { - return [[TCBeautyPanelActionProxy alloc] initWithObject:object - filterConcentrationSetter:setter]; -} - -- (instancetype)initWithObject:(id)object filterConcentrationSetter:(SEL)setter { - _filterConcentrationAlternativeSetter = setter; - if (![object respondsToSelector:@selector(getBeautyManager)]) { - NSLog(@"%s failed, %@ doesn't has getBeautyManager method", __PRETTY_FUNCTION__, object); - return nil; - } - id beautyManager = [object getBeautyManager]; - if (![beautyManager isKindOfClass:NSClassFromString(@"TXBeautyManager")]) { - NSLog(@"%s failed, type mismatch of object.getBeautyManager(%@)", __PRETTY_FUNCTION__, object); - return nil; - } - _object = object; - _beautyManager = beautyManager; - return self; -} - -- (NSMethodSignature *)methodSignatureForSelector:(SEL)sel { - if ([_beautyManager respondsToSelector:sel]) { - return [_beautyManager methodSignatureForSelector:sel]; - } else if ([_object respondsToSelector:sel]) { - return [_object methodSignatureForSelector:sel]; - } else if (_filterConcentrationAlternativeSetter && isFilterConcentrationSetter(sel)) { - return [_object methodSignatureForSelector:_filterConcentrationAlternativeSetter]; - } - - return [super methodSignatureForSelector:sel]; -} - -- (void)forwardInvocation:(NSInvocation *)invocation { - SEL selector = invocation.selector; - if ([_beautyManager respondsToSelector: selector]) { - [invocation invokeWithTarget:_beautyManager]; - } else if ([_object respondsToSelector: selector]) { - [invocation invokeWithTarget:_object]; - } else if (_filterConcentrationAlternativeSetter && isFilterConcentrationSetter(selector)) { - invocation.selector = _filterConcentrationAlternativeSetter; - [invocation invokeWithTarget:_object]; - } -} - -- (BOOL)respondsToSelector:(SEL)aSelector { - if ([_beautyManager respondsToSelector:aSelector]) { - return YES; - } - if ([_object respondsToSelector:aSelector]) { - return YES; - } - if (_filterConcentrationAlternativeSetter && isFilterConcentrationSetter(aSelector)) { - return [_object respondsToSelector:_filterConcentrationAlternativeSetter]; - } - return NO; -} - -@end - -@implementation TCBeautyPanel (SDK) -+ (instancetype)beautyPanelWithFrame:(CGRect)frame SDKObject:(id)object { - return [TCBeautyPanel beautyPanelWithFrame:frame - actionPerformer:[TCBeautyPanelActionProxy proxyWithSDKObject:object]]; -} -@end diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Model/TCPituMotionManager.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Model/TCPituMotionManager.h deleted file mode 100644 index dbd07714..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Model/TCPituMotionManager.h +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) 2019 Tencent. All rights reserved. - -#ifndef TCPituMotionManager_h -#define TCPituMotionManager_h - -#import -@interface TCPituMotion : NSObject -@property (readonly, nonatomic) NSString *identifier; -@property (readonly, nonatomic) NSString *name; -@property (readonly, nonatomic) NSURL *url; -- (instancetype)initWithId:(NSString *)identifier name:(NSString *)name url:(NSString *)address; -@end - - -@interface TCPituMotionManager : NSObject -@property (readonly, nonatomic) NSArray * motionPasters; -@property (readonly, nonatomic) NSArray * cosmeticPasters; -@property (readonly, nonatomic) NSArray * gesturePasters; -@property (readonly, nonatomic) NSArray * backgroundRemovalPasters; - -+ (instancetype)sharedInstance; -- (TCPituMotion *)motionWithIdentifier:(NSString *)identifier; - -@end - -#endif /* Header_h */ diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Model/TCPituMotionManager.m b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Model/TCPituMotionManager.m deleted file mode 100644 index f384ca65..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/Model/TCPituMotionManager.m +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (c) 2019 Tencent. All rights reserved. - -#import "TCPituMotionManager.h" -#import - -#define L(x) [self localizedString:x] - -@implementation TCPituMotionManager -{ - NSMutableDictionary *_map; - NSBundle *_resourceBundle; -} - -+ (instancetype)sharedInstance -{ - static TCPituMotionManager *sharedInstance = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - sharedInstance = [[TCPituMotionManager alloc] init]; - }); - return sharedInstance; -} - -- (instancetype)init -{ - self = [super init]; - if (self) { - [self setupBundle]; - NSArray *initList = @[ - @[@"video_boom", @"http://dldir1.qq.com/hudongzhibo/AISpecial/ios/160/video_boom.zip", L(@"Boom")], - ]; - NSArray *gestureMotionArray = @[ - @[@"video_pikachu", @"http://dldir1.qq.com/hudongzhibo/AISpecial/Android/181/video_pikachu.zip", L(@"TC.BeautySettingPanel.PikaQiu")], - ]; - NSArray *cosmeticMotionArray = @[ - @[@"video_qingchunzannan_iOS", @"http://res.tu.qq.com/materials/video_qingchunzannan_iOS.zip", L(@"TC.BeautySettingPanel.Fu Gu")], - ]; - NSArray *backgroundRemovalArray = @[ - @[@"video_xiaofu", @"http://dldir1.qq.com/hudongzhibo/AISpecial/ios/160/video_xiaofu.zip", L(@"TC.BeautyPanel.Menu.BlendPic")], - ]; - NSArray *(^generate)(NSArray *) = ^(NSArray *inputArray){ - NSMutableArray *array = [NSMutableArray arrayWithCapacity:inputArray.count]; - self->_map = [[NSMutableDictionary alloc] initWithCapacity:inputArray.count]; - for (NSArray *item in inputArray) { - TCPituMotion *address = [[TCPituMotion alloc] initWithId:item[0] name:item[2] url:item[1]]; - [array addObject:address]; - self->_map[item[0]] = address; - } - return array; - }; - _motionPasters = generate(initList); - _cosmeticPasters = generate(cosmeticMotionArray); - _gesturePasters = generate(gestureMotionArray); - _backgroundRemovalPasters = generate(backgroundRemovalArray); - } - return self; -} - -- (TCPituMotion *)motionWithIdentifier:(NSString *)identifier -{ - return _map[identifier]; -} - -- (void)setupBundle { - NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"UGCKitResources" ofType:@"bundle"]; - NSBundle *bundle = [NSBundle bundleWithPath:resourcePath]; - if (nil == bundle) { - bundle = [NSBundle mainBundle]; - } - NSString *path = [[NSBundle mainBundle] pathForResource:@"TCBeautyPanelResources" ofType:@"bundle"]; - if (!path) { - path = [bundle pathForResource:@"TCBeautyPanelResources" ofType:@"bundle"]; - } - NSBundle *panelResBundle = [NSBundle bundleWithPath:path]; - if (panelResBundle) { - bundle = panelResBundle; - } - _resourceBundle = bundle ?: [NSBundle mainBundle]; -} - -- (NSString *)localizedString:(nonnull NSString *)key { - NSString *string = [_resourceBundle localizedStringForKey:key value:@"" table:nil]; - return string ?: @""; -} - -@end - -@implementation TCPituMotion -- (instancetype)initWithId:(NSString *)identifier name:(NSString *)name url:(NSString *)address -{ - if (self = [super init]) { - _identifier = identifier; - _name = name; - _url = [NSURL URLWithString: address]; - } - return self; -} -@end diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/TCBeautyPanel.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/TCBeautyPanel.h deleted file mode 100644 index 5c832f99..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/TCBeautyPanel.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// TCBeautyPanel.h -// TCBeautyPanel -// -// Created by cui on 2019/12/20. -// Copyright © 2019 Tencent. All rights reserved. -// - -#import - -//! Project version number for TCBeautyPanel. -FOUNDATION_EXPORT double TCBeautyPanelVersionNumber; - -//! Project version string for TCBeautyPanel. -FOUNDATION_EXPORT const unsigned char TCBeautyPanelVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - -#import -#import -#import -#import -#import -#import diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/TCBeautyPanel.modulemap b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/TCBeautyPanel.modulemap deleted file mode 100644 index cfc1e114..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/TCBeautyPanel.modulemap +++ /dev/null @@ -1,5 +0,0 @@ -module TCBeautyPanel { - umbrella header "Headers/TCBeautyPanel.h" - export * -} - diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/TCBeautyPanelView.m b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/TCBeautyPanelView.m deleted file mode 100644 index 6c3531f3..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/TCBeautyPanelView.m +++ /dev/null @@ -1,796 +0,0 @@ -// Copyright (c) 2019 Tencent. All rights reserved. -#define POD_PITU 1 - -#import "TCBeautyPanelView.h" -#import "TCMenuItemCell.h" -#if POD_PITU -#import "ZipArchive.h" -#endif - -#import "TCFilter.h" -#import "TCMenuView.h" -#import "TCPituMotionManager.h" -#import -#import "TCBeautyPanelTheme.h" -#import "TCBeautyPanelActionPerformer.h" -#import "TCFilter.h" - -#define BeautyViewMargin 8 -#define BeautyViewSliderHeight 30 -#define BeautyViewCollectionHeight 50 -#define BeautyViewTitleWidth 40 - -#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \ -green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \ - blue:((float)(rgbValue & 0xFF))/255.0 \ -alpha:1.0] - -static const CGFloat DefaultBeautyPanelHeight = 170; -static const CGFloat MenuHeight = 130; - -static const float BeautyMinLevel = 0; -static const float BeautyMaxLevel = 9; - -static const float DefaultWhitnessLevel = 1; -static const float DefaultBeautyLevel = 6; - -typedef NS_ENUM(NSUInteger, BeautyMenuItem) { - BeautyMenuItemSmooth, - BeautyMenuItemNature, -#ifdef UGC_SMART - BeautyMenuItemLastBeautyTypeItem = BeautyMenuItemNature, -#else - BeautyMenuItemPiTu, - BeautyMenuItemLastBeautyTypeItem = BeautyMenuItemPiTu, -#endif - BeautyMenuItemWhite, - BeautyMenuItemRed, - BeautyMenuItemLastBeautyValueItem = BeautyMenuItemRed, -}; - -@interface TCPituDownloadTask : NSObject -@property (strong, nonatomic) NSURL *url; -@property (strong, nonatomic) NSString *destPath; -@property (strong, nonatomic) NSString *dir; -@property (strong, nonatomic) NSString *name; -@property (strong, nonatomic) NSURLSessionDownloadTask *task; -+ (instancetype)taskWithDestPath:(NSString *)destPath dir:(NSString *)dir name:(NSString *)name; -@end -@implementation TCPituDownloadTask -+ (instancetype)taskWithDestPath:(NSString *)destPath dir:(NSString *)dir name:(NSString *)name -{ - TCPituDownloadTask *ret = [[TCPituDownloadTask alloc] init]; - ret.destPath = destPath; - ret.dir = dir; - ret.name = name; - return ret; -} -@end - -#define L(x) [_theme localizedString:x] - -/// 菜单条目对象 -@interface TCBeautyPanelItem : NSObject -@property (strong, nonatomic) NSString *title; ///< 菜单标题 -@property (strong, nonatomic) UIImage *icon; ///< 菜单图标 -@property (nullable, weak, nonatomic) id target;///< 菜单动作执行对象,为空时会发送到actionPerformer -@property (assign, nonatomic) SEL action; ///< 菜单动作 -@property (assign, nonatomic) double minValue; ///< 条目值的调节范围下限, 与上限范围相同时不显示滑杆 -@property (assign, nonatomic) double maxValue; ///< 条目值的调节范围上限, 与下限范围相同时不显示滑杆 -@property (nullable, strong, nonatomic) id userInfo; ///< 附带信息 -@end - -@implementation TCBeautyPanelItem -+ (instancetype)itemWithTitle:(NSString *)title icon:(UIImage *)icon target:(id)target action:(SEL)action minValue:(double)minValue maxValue:(double)maxValue -{ - TCBeautyPanelItem *item = [[ TCBeautyPanelItem alloc] init]; - item.target = target; - item.title = title; - item.icon = icon; - item.action = action; - item.minValue = minValue; - item.maxValue = maxValue; - return item; -} -+ (instancetype)itemWithTitle:(NSString *)title icon:(UIImage *)icon { - return [self itemWithTitle:title icon:icon target:nil action:nil minValue:0 maxValue:0]; -} -@end -static TCBeautyPanelItem * makeMenuItem(NSString *title, UIImage *icon, id target, SEL action, double minValue, double maxValue) { - return [ TCBeautyPanelItem itemWithTitle:title icon:icon target:target action:action minValue:minValue maxValue:maxValue]; -} - -#pragma mark - -@interface TCBeautyPanel() - -{ - TCMenuView *_menu; - UIView *_bottomBackgroundView; - NSInteger _previousMenuIndex; - NSArray *_menuArray; // 菜单标题 - NSArray *_optionsContainer; // 每个菜单的内容 - NSMutableDictionary *_selectedIndexMap; - NSArray *_filters; - id _theme; - NSObject *_actionPerformerPlaceholder; - NSURLSession *_urlSession; - NSMutableDictionary *_runningTask; -} -@property (nonatomic, strong) NSMutableDictionary *beautyLevelDic; ///< 不同美颜类型下的数值 -@property (nonatomic, strong) NSMutableDictionary* filterValueDic; ///< 各滤镜的数值 -@property (nonatomic, strong) UILabel *sliderValueLabel; ///< 滑杆数值显示 -@property (nonatomic, strong) UISlider *slider; ///< 数值调节滑杆 -@property (nonatomic, strong) NSURLSessionDownloadTask *operation; ///< 资源下载 -@property (nonatomic, assign) TCBeautyStyle beautyStyle; -@property (nonatomic, assign) NSString *pituName; -@end - -@implementation TCBeautyPanel - -#pragma mark - Public API -+ (instancetype)beautyPanelWithFrame:(CGRect)frame - actionPerformer:(id)actionPerformer { - TCBeautyPanel *panel = [[TCBeautyPanel alloc] initWithFrame:frame - theme:nil - actionPerformer:actionPerformer]; - return panel; -} - -- (instancetype)initWithFrame:(CGRect)frame { - return [self initWithFrame:frame theme:nil actionPerformer:nil]; -} - -- (instancetype)initWithFrame:(CGRect)frame - theme:(id)theme - actionPerformer:(id)actionPerformer -{ - self = [super initWithFrame:frame]; - if(self){ - _theme = theme ?: [[TCBeautyPanelTheme alloc] init]; - _actionPerformer = actionPerformer; - [self commonInit]; - } - return self; -} - -- (instancetype)initWithCoder:(NSCoder *)coder { - if (self = [super initWithCoder:coder]) { - _theme = [[TCBeautyPanelTheme alloc] init]; - [self commonInit]; - } - return self; -} - -- (void)dealloc { - [_urlSession invalidateAndCancel]; -} - -- (void)setCurrentFilterIndex:(NSInteger)index { - index = [self _converOptionIndexToFilterArrayIndex:index]; - _currentFilterIndex = index; - [_menu setSelectedOption:index inMenu:PanelMenuIndexFilter]; -} - -- (NSString*)currentFilterName -{ - NSInteger index = self.currentFilterIndex; - return [_optionsContainer[PanelMenuIndexFilter][index] title]; -} - -- (float)beautyLevel { - return [_beautyLevelDic[@(self.beautyStyle)] floatValue]; -} -- (float)ruddyLevel { - return [_beautyLevelDic[@(BeautyMenuItemRed)] floatValue]; -} -- (float)whiteLevel { - return [_beautyLevelDic[@(BeautyMenuItemWhite)] floatValue]; -} -/// 重置为默认值 -- (void)resetAndApplyValues -{ - // 默认值配置 - const BeautyMenuItem defaultBeautyStyle = BeautyMenuItemPiTu; - self.beautyStyle = BeautyMenuItemPiTu; - const TCFilterIdentifier defaultFilterIdentifier = TCFilterIdentifierBaiXi; - // index = 0 为关闭 - NSUInteger defaultFilterIndex = [_filters indexOfObjectPassingTest: - ^BOOL(TCFilter * _Nonnull obj, - NSUInteger idx, - BOOL * _Nonnull stop) { - return [obj.identifier isEqualToString:defaultFilterIdentifier]; - }]; - // 滤镜 - NSDictionary *defaultFilterValue = @{ - TCFilterIdentifierNone :@(0) - ,TCFilterIdentifierBaiXi :@(5) - ,TCFilterIdentifierNormal :@(5) - ,TCFilterIdentifierZiRan :@(5) - ,TCFilterIdentifierYinghong :@(8) - ,TCFilterIdentifierYunshang :@(8) - ,TCFilterIdentifierChunzhen :@(7) - ,TCFilterIdentifierBailan :@(10) - ,TCFilterIdentifierYuanqi :@(8) - ,TCFilterIdentifierChaotuo :@(10) - ,TCFilterIdentifierXiangfen :@(5) - ,TCFilterIdentifierWhite :@(3) - ,TCFilterIdentifierLangman :@(3) - ,TCFilterIdentifierQingxin :@(3) - ,TCFilterIdentifierWeimei :@(3) - ,TCFilterIdentifierFennen :@(3) - ,TCFilterIdentifierHuaijiu :@(3) - ,TCFilterIdentifierLandiao :@(3) - ,TCFilterIdentifierQingliang :@(3) - ,TCFilterIdentifierRixi :@(3) - }; - - self.slider.hidden = NO; - self.sliderValueLabel.hidden = NO; - - self.beautyLevelDic = [NSMutableDictionary dictionary]; - // 重置美颜滤镜 - [self.beautyLevelDic setObject:@(DefaultBeautyLevel) forKey:@(BeautyMenuItemSmooth)]; - [self.beautyLevelDic setObject:@(DefaultBeautyLevel) forKey:@(BeautyMenuItemNature)]; -#ifndef UGC_SMART - [self.beautyLevelDic setObject:@(DefaultBeautyLevel) forKey:@(BeautyMenuItemPiTu)]; -#endif -// [self.beautyLevelDic setObject:@(DefaultWhitnessLevel) forKey:@(BeautyMenuItemWhite)]; -// [self.beautyLevelDic setObject:@(0) forKey:@(BeautyMenuItemRed)]; - - NSInteger beautyValue = [self.beautyLevelDic[@(defaultBeautyStyle)] integerValue]; - [self setSliderValue:beautyValue]; - self.slider.minimumValue = BeautyMinLevel; - self.slider.maximumValue = BeautyMaxLevel; - - self.filterValueDic = [defaultFilterValue mutableCopy]; - [_menu setSelectedOption:defaultFilterIndex+1 inMenu:PanelMenuIndexFilter];// 0为关闭 - [_menu setSelectedOption:defaultBeautyStyle inMenu:PanelMenuIndexBeauty]; - - // 默认值只修改美颜和滤镜,其它均设置为关闭 - for (PanelMenuIndex i = PanelMenuIndexMotion; i < PanelMenuIndexCount; ++i) { - [_menu setSelectedOption:0 inMenu:i]; - } - - if (self.actionPerformer) { - // 重置基础美颜 - id performer = self.actionPerformer; - [performer setBeautyStyle:defaultBeautyStyle]; - [performer setBeautyLevel:DefaultBeautyLevel]; - - // 重置滤镜选项 - TCFilterIdentifier defaultFilterIdentifier = _filters[defaultFilterIndex].identifier; - UIImage *lutImage = [self filterImageByMenuOptionIndex:defaultFilterIndex+1]; - [performer setFilter:lutImage]; - - // v7.2后的版本使用 setFilterStrength - if ([self.actionPerformer respondsToSelector:@selector(setFilterStrength:)]) { - [performer setFilterStrength:self.filterValueDic[defaultFilterIdentifier].floatValue/10.0]; - } else if([self.actionPerformer respondsToSelector:@selector(setFilterConcentration:)]){ - [performer setFilterConcentration:self.filterValueDic[defaultFilterIdentifier].floatValue/10.0]; - } - - // 重置各高级美颜选项,瘦脸大脸等 - NSArray *beautySettingItems = _optionsContainer[PanelMenuIndexBeauty]; - for (TCBeautyPanelItem *item in beautySettingItems) { - [self _applyMenuItem:item value:0.0f]; - } - - // 关闭贴纸 - [performer setMotionTmpl:nil inDir:nil]; - - // 关闭绿幕 - [performer setGreenScreenFile:nil]; - } -} - -+ (NSUInteger)getHeight -{ - return DefaultBeautyPanelHeight; -} - -- (NSInteger)_converOptionIndexToFilterArrayIndex:(NSInteger)index { - const NSInteger itemCount = _optionsContainer[PanelMenuIndexFilter].count; - if (index < 0) - index = itemCount - 1; - if (index > itemCount - 1) - index = 0; - return index; -} - -- (UIImage*)filterImageByMenuOptionIndex:(NSInteger)index -{ - index = [self _converOptionIndexToFilterArrayIndex:index]; - - if (index == 0) { - return nil; - } - TCFilter *filter = _filters[index-1]; - return [UIImage imageWithContentsOfFile:filter.lookupImagePath]; -} - --(float)filterMixLevelByIndex:(NSInteger)optionIndex -{ - optionIndex = [self _converOptionIndexToFilterArrayIndex:optionIndex]; - - if (optionIndex == 0) { - return 0; - } - optionIndex -= 1; - NSString *filterID = _filters[optionIndex].identifier; - return [self.filterValueDic[filterID] floatValue]; -} - -#pragma mark - Init -- (void)_applyTheme { - self.backgroundColor = [_theme.backgroundColor colorWithAlphaComponent:0.6]; - [self _generateMenuItems]; - _menu.menuTitleColor = _theme.beautyPanelTitleColor; - _menu.subMenuSelectionColor = _theme.beautyPanelSelectionColor; - _menu.menuSelectionBackgroundImage = _theme.beautyPanelMenuSelectionBackgroundImage; - [_slider setMinimumTrackTintColor:_theme.sliderMinColor]; - [_slider setMaximumTrackTintColor:_theme.sliderMaxColor]; - [_slider setThumbImage:_theme.sliderThumbImage forState:UIControlStateNormal]; - _sliderValueLabel.textColor = _theme.sliderValueColor; - [_menu reloadData]; -} - -- (void)setTheme:(id)theme { - _theme = theme; - [self _applyTheme]; -} - - -// 使用主题更新菜单条目 -- (void)_generateMenuItems { - // Menu Setup - TCBeautyPanelItem *disableItem = [ TCBeautyPanelItem itemWithTitle:L(@"TC.BeautySettingPanel.None") icon:_theme.menuDisableIcon]; - - NSMutableArray *filters = [NSMutableArray arrayWithCapacity:_filters.count]; - [filters addObject:[ TCBeautyPanelItem itemWithTitle:L(@"TC.Common.Clear") icon:_theme.menuDisableIcon]]; - for (TCFilter *filter in _filters) { - NSString *identifier = [NSString stringWithFormat:@"TC.Common.Filter_%@", filter.identifier]; - [filters addObject:[ TCBeautyPanelItem itemWithTitle:L(identifier) icon:[_theme iconForFilter:filter.identifier]]]; - } - - NSArray *beautyArray = @[ - makeMenuItem(L(@"TC.BeautySettingPanel.BeautySmooth"), _theme.beautyPanelSmoothBeautyStyleIcon, nil, nil, 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.Beauty-Natural"), _theme.beautyPanelNatureBeautyStyleIcon, nil, nil, 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.Beauty-P"), _theme.beautyPanelPTuBeautyStyleIcon, nil, nil, 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.White"), _theme.beautyPanelWhitnessIcon, nil, nil, 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.Ruddy"), _theme.beautyPanelRuddyIcon, nil, nil, 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.BigEyes"), _theme.beautyPanelEyeScaleIcon, nil, @selector(setEyeScaleLevel:), 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.ThinFace"), _theme.beautyPanelFaceSlimIcon, nil, @selector(setFaceSlimLevel:), 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.VFace"), _theme.beautyPanelFaceVIcon, nil, @selector(setFaceVLevel:), 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.Chin"), _theme.beautyPanelChinIcon, nil, @selector(setChinLevel:), -10, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.ShortFace"), _theme.beautyPanelFaceScaleIcon, nil, @selector(setFaceShortLevel:), 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.ThinNose"), _theme.beautyPanelNoseSlimIcon, nil, @selector(setNoseSlimLevel:), 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.EyeLighten"), _theme.beautyPanelEyeLightenIcon, nil, @selector(setEyeLightenLevel:), 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.ToothWhiten"), _theme.beautyPanelToothWhitenIcon, nil, @selector(setToothWhitenLevel:), 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.WrinkleRemove"), _theme.beautyPanelWrinkleRemoveIcon, nil, @selector(setWrinkleRemoveLevel:), 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.PounchRemove"), _theme.beautyPanelPounchRemoveIcon, nil, @selector(setPounchRemoveLevel:), 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.SmileLinesRemove"), _theme.beautyPanelSmileLinesRemoveIcon, nil, @selector(setSmileLinesRemoveLevel:), 0, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.Forehead"), _theme.beautyPanelForeheadIcon, nil, @selector(setForeheadLevel:), -10, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.EyeDistance"), _theme.beautyPanelEyeDistanceIcon, nil, @selector(setEyeDistanceLevel:), -10, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.EyeAngle"), _theme.beautyPanelEyeAngleIcon, nil, @selector(setEyeAngleLevel:), -10, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.MouthShape"), _theme.beautyPanelMouthShapeIcon, nil, @selector(setMouthShapeLevel:), -10, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.NoseWing"), _theme.beautyPanelNoseWingIcon, nil, @selector(setNoseWingLevel:), -10, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.NosePosition"), _theme.beautyPanelNosePositionIcon, nil, @selector(setNosePositionLevel:), -10, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.LipsThickness"), _theme.beautyPanelLipsThicknessIcon, nil, @selector(setLipsThicknessLevel:), -10, 10), - makeMenuItem(L(@"TC.BeautySettingPanel.FaceBeauty"), _theme.beautyPanelFaceBeautyIcon, nil, @selector(setFaceBeautyLevel:), 0, 10), - ]; - - NSArray *(^makeMenuItemsFromPituMotions)(NSArray *motions) = ^(NSArray *motions) { - NSMutableArray *result = [@[disableItem] mutableCopy]; - for (TCPituMotion *motion in motions) { - TCBeautyPanelItem *item = [ TCBeautyPanelItem itemWithTitle:motion.name - icon:[self->_theme imageNamed:motion.identifier]]; - item.userInfo = motion; - [result addObject:item]; - } - return result; - }; - NSArray *motionArray = makeMenuItemsFromPituMotions([TCPituMotionManager sharedInstance].motionPasters); - NSArray *koubeiArray = makeMenuItemsFromPituMotions([TCPituMotionManager sharedInstance].backgroundRemovalPasters); - NSArray *cosmeticArray = makeMenuItemsFromPituMotions([TCPituMotionManager sharedInstance].cosmeticPasters); - NSArray *gestureEffectArray = makeMenuItemsFromPituMotions([TCPituMotionManager sharedInstance].gesturePasters); - NSArray *greenArray = @[disableItem, - [ TCBeautyPanelItem itemWithTitle:L(@"TC.BeautySettingPanel.GoodLuck") icon:_theme.beautyPanelGoodLuckIcon] - ]; - - NSArray *menuArray = @[ - L(@"TC.BeautyPanel.Menu.Beauty"), - L(@"TC.BeautyPanel.Menu.Filter"), - L(@"TC.BeautyPanel.Menu.VideoEffect"), - L(@"TC.BeautyPanel.Menu.Cosmetic"), - L(@"TC.BeautyPanel.Menu.Gesture"), - L(@"TC.BeautyPanel.Menu.BlendPic"), - L(@"TC.BeautyPanel.Menu.GreenScreen")]; - _menuArray = menuArray; - _optionsContainer = @[ beautyArray, filters, motionArray, cosmeticArray, gestureEffectArray, koubeiArray, greenArray]; -} - -- (void)commonInit -{ - _runningTask = [[NSMutableDictionary alloc] initWithCapacity:1]; - _urlSession = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] - delegate:self - delegateQueue:[NSOperationQueue mainQueue]]; - self.backgroundColor = [_theme.backgroundColor colorWithAlphaComponent:0.6]; - _actionPerformerPlaceholder = [[NSObject alloc] init]; - _filters = [TCFilterManager defaultManager].allFilters; - - [self _generateMenuItems]; - - TCMenuView *menu = [[TCMenuView alloc] initWithFrame:CGRectMake(0, CGRectGetHeight(self.bounds) - MenuHeight, - CGRectGetWidth(self.bounds), MenuHeight) - dataSource:self]; - menu.delegate = self; - menu.minSubMenuWidth = 54; - menu.minMenuWidth = 54; - menu.menuTitleColor = _theme.beautyPanelTitleColor; - menu.subMenuSelectionColor = _theme.beautyPanelSelectionColor; - menu.menuSelectionBackgroundImage = _theme.beautyPanelMenuSelectionBackgroundImage; - menu.subMenuBackgroundColor = [UIColor clearColor]; - menu.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; - [self addSubview:menu]; - _menu = menu; - - // Slider Setup - self.slider.frame = CGRectMake(BeautyViewMargin * 4, CGRectGetMinY(menu.frame) - BeautyViewMargin - BeautyViewSliderHeight, - CGRectGetWidth(self.bounds) - 10 * BeautyViewMargin - BeautyViewSliderHeight, BeautyViewSliderHeight); - self.slider.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; - [self addSubview:self.slider]; - - self.sliderValueLabel.frame = CGRectMake(self.slider.frame.size.width + self.slider.frame.origin.x + BeautyViewMargin, BeautyViewMargin, BeautyViewSliderHeight, BeautyViewSliderHeight); - self.sliderValueLabel.layer.cornerRadius = self.sliderValueLabel.frame.size.width / 2; - self.sliderValueLabel.layer.masksToBounds = YES; - [self addSubview:self.sliderValueLabel]; - self.sliderValueLabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; - - _bottomBackgroundView = [[UIView alloc] initWithFrame:CGRectZero]; - _bottomBackgroundView.backgroundColor = menu.menuBackgroundColor; - [self addSubview:_bottomBackgroundView]; -} - -- (void)layoutSubviews { - [super layoutSubviews]; - _menu.frame = CGRectMake(0, CGRectGetHeight(self.bounds) - MenuHeight - _bottomOffset, - CGRectGetWidth(self.bounds), MenuHeight); - self.slider.frame = CGRectMake(BeautyViewMargin * 4, - CGRectGetMinY(_menu.frame) - BeautyViewMargin - BeautyViewSliderHeight, - CGRectGetWidth(self.bounds) - 10 * BeautyViewMargin - BeautyViewSliderHeight, - BeautyViewSliderHeight); - self.sliderValueLabel.frame = CGRectMake(self.slider.frame.size.width + self.slider.frame.origin.x + BeautyViewMargin, - BeautyViewMargin, - BeautyViewSliderHeight, - BeautyViewSliderHeight); - _bottomBackgroundView.frame = CGRectMake(0, CGRectGetMaxY(_menu.frame), - CGRectGetWidth(self.bounds), - CGRectGetHeight(self.bounds) - CGRectGetMaxY(_menu.frame)); -} - -- (void)setBottomOffset:(CGFloat)bottomOffset { - _bottomOffset = bottomOffset; - [self setNeedsLayout]; -} -#pragma mark - Menu actionPerformer -- (void)menu:(TCMenuView *)menu didChangeToIndex:(NSInteger)menuIndex option:(NSInteger)optionIndex { - self.sliderValueLabel.hidden = menuIndex != PanelMenuIndexBeauty; - self.slider.hidden = self.sliderValueLabel.hidden; - - switch (menuIndex) { - case PanelMenuIndexBeauty: { - float value = self.beautyLevelDic[@(optionIndex)].floatValue; - - if (optionIndex < 3) { - self.beautyStyle = optionIndex; - } - - TCBeautyPanelItem *item = _optionsContainer[menu.menuIndex][menu.optionIndex]; - if ([item isKindOfClass:[ TCBeautyPanelItem class]]) { - self.slider.minimumValue = item.minValue; - self.slider.maximumValue = item.maxValue; - } - - [self setSliderValue:value]; - [self _applyBeautySettings]; - } break; - case PanelMenuIndexFilter: { - _currentFilterIndex = optionIndex; - self.slider.minimumValue = BeautyMinLevel; - self.slider.maximumValue = BeautyMaxLevel; - - [self onSetFilterAtMenuIndex:optionIndex]; - if (optionIndex > 0) { - TCFilterIdentifier filterId = _filters[optionIndex - 1].identifier; - NSNumber* value = self.filterValueDic[filterId]; - [self.slider setValue:value.floatValue]; - self.slider.hidden = NO; - self.sliderValueLabel.hidden = NO; - [self onSetFilterAtMenuIndex:optionIndex]; - [self onSliderValueChanged:self.slider]; - } - } - break; - case PanelMenuIndexMotion: case PanelMenuIndexGesture: case PanelMenuIndexCosmetic: case PanelMenuIndexKoubei: - if (!(_previousMenuIndex != menuIndex && optionIndex == 0)) { - // 切换一级菜单后,如果新的菜单选则的取消,不关闭动效 - [self onSetMotionWithIndex:optionIndex]; - } - - break; - case PanelMenuIndexGreen: - [self onSetGreenWithIndex:optionIndex]; - break; - - default: - break; - } - _previousMenuIndex = menuIndex; -} - -#pragma mark - Value Change Event Handlers -- (void)_applyBeautySettings { - if ([self.actionPerformer respondsToSelector:@selector(setBeautyStyle:)]) { - [self.actionPerformer setBeautyStyle:self.beautyStyle]; - } - if ([self.actionPerformer respondsToSelector:@selector(setBeautyLevel:)]) { - [self.actionPerformer setBeautyLevel:self.beautyLevel]; - } - if ([self.actionPerformer respondsToSelector:@selector(setWhitenessLevel:)]) { - [self.actionPerformer setWhitenessLevel:self.whiteLevel]; - } - if ([self.actionPerformer respondsToSelector:@selector(setRuddyLevel:)]) { - [self.actionPerformer setRuddyLevel:self.ruddyLevel]; - } -} - -- (void)_applyMenuItem:( TCBeautyPanelItem *)item value:(float)value { - id target = item.target ?: self.actionPerformer; - - if ([item isKindOfClass:[ TCBeautyPanelItem class]] && [target respondsToSelector:item.action]) { - // 这里当参数类型变化时要注意修改为对应类型 - typedef float ParamType; -#if DEBUG - // 参数类型检查 - NSMethodSignature *signature = [[target class] instanceMethodSignatureForSelector:item.action]; - const char *type = [signature getArgumentTypeAtIndex:2]; - NSAssert(strcmp(type, @encode(ParamType)) == 0, @"type mismatch"); -#endif - void(*setter)(id,SEL,ParamType) = (void(*)(id,SEL,ParamType))objc_msgSend; - setter(target, item.action, (float)value); - } -} - -#pragma mark - value changed -- (void)onSliderValueChanged:(UISlider *)slider -{ - float value = slider.value; - [self setSliderValue:slider.value]; - NSInteger menuIndex = _menu.menuIndex; - if(menuIndex == PanelMenuIndexFilter) { - if (_menu.optionIndex <= 0) { return; } - - NSString *filterID = _filters[_menu.optionIndex-1].identifier; - self.filterValueDic[filterID] = @(value); - // v7.2后的版本使用 setFilterStrength - if ([self.actionPerformer respondsToSelector:@selector(setFilterStrength:)]) { - [self.actionPerformer setFilterStrength:value / 10.f]; - } else if([self.actionPerformer respondsToSelector:@selector(setFilterConcentration:)]){ - [self.actionPerformer setFilterConcentration:value / 10.f]; - } - } else if(menuIndex == PanelMenuIndexBeauty) { - // 美颜数值变化 - NSInteger beautyIndex = _menu.optionIndex;// (int)[self selectedIndexPathForMenu:PanelMenuIndexBeauty].row; - self.beautyLevelDic[@(beautyIndex)] = @(value); - if(beautyIndex <= BeautyMenuItemLastBeautyValueItem) { // 选中的美颜 - [self _applyBeautySettings]; - } else { // 选中的大眼瘦脸等效果 - TCBeautyPanelItem *item = _optionsContainer[PanelMenuIndexBeauty][_menu.optionIndex]; - [self _applyMenuItem:item value:value]; - } - } -} - -- (void)onSetFilterAtMenuIndex:(NSInteger)index -{ - if ([self.actionPerformer respondsToSelector:@selector(setFilter:)]) { - UIImage* image = [self filterImageByMenuOptionIndex:index]; - if ([self.actionPerformer respondsToSelector:@selector(setFilter:)]) { - [self.actionPerformer setFilter:image]; - } - } -} - - -- (void)onSetGreenWithIndex:(NSInteger)index -{ - if ([self.actionPerformer respondsToSelector:@selector(setGreenScreenFile:)]) { - if (index == 0) { - [self.actionPerformer setGreenScreenFile:nil]; - } - if (index == 1) { - NSURL* url = [_theme goodLuckVideoFileURL]; - [self.actionPerformer setGreenScreenFile:url.path]; - } - } -} - -- (void)onSetMotionWithIndex:(NSInteger)index -{ - if ([self.actionPerformer respondsToSelector:@selector(setMotionTmpl:inDir:)]) { - NSString *localPackageDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/packages"]; - if (![[NSFileManager defaultManager] fileExistsAtPath:localPackageDir]) { - [[NSFileManager defaultManager] createDirectoryAtPath:localPackageDir withIntermediateDirectories:NO attributes:nil error:nil]; - } - if (index == 0){ - [self.actionPerformer setMotionTmpl:nil inDir:localPackageDir]; - } else{ - TCBeautyPanelItem *item = _optionsContainer[_menu.menuIndex][_menu.optionIndex]; - TCPituMotion *motion = item.userInfo; - self.pituName = motion.identifier; - NSString *pituPath = [NSString stringWithFormat:@"%@/%@", localPackageDir, motion.identifier]; - if ([[NSFileManager defaultManager] fileExistsAtPath:pituPath]) { - [self.actionPerformer setMotionTmpl:motion.identifier inDir:localPackageDir]; - }else{ - [self startLoadPitu:localPackageDir pituName:motion.identifier packageURL:motion.url]; - } - } - } -} - -- (void)startLoadPitu:(NSString *)pituDir pituName:(NSString *)pituName packageURL:(NSURL *)packageURL{ - NSURLSessionDownloadTask *task = nil; - @synchronized (_runningTask) { - if (_runningTask[packageURL]) { - return; - } - NSString *targetPath = [NSString stringWithFormat:@"%@/%@.zip", pituDir, pituName]; - TCPituDownloadTask *downloadTask = [TCPituDownloadTask taskWithDestPath:targetPath dir:pituDir name:pituName]; - - if ([[NSFileManager defaultManager] fileExistsAtPath:targetPath]) { - [[NSFileManager defaultManager] removeItemAtPath:targetPath error:nil]; - } - - NSURLRequest *downloadReq = [NSURLRequest requestWithURL:packageURL - cachePolicy:NSURLRequestReloadIgnoringLocalCacheData - timeoutInterval:30.f]; - task = [_urlSession downloadTaskWithRequest:downloadReq]; - self->_runningTask[packageURL] = downloadTask; - } - [self.pituDelegate onLoadPituStart]; - [task resume]; -} - -#pragma mark - NSURLSessionDownloadDelegate -- (void)URLSession:(NSURLSession *)session - task:(NSURLSessionTask *)task -didCompleteWithError:(nullable NSError *)error -{ - if (error) { - NSURL *packageURL = task.originalRequest.URL; - @synchronized (self->_runningTask) { - [self->_runningTask removeObjectForKey:packageURL]; - } - [self.pituDelegate onLoadPituFailed]; - } -} - -- (void)URLSession:(NSURLSession *)session - downloadTask:(NSURLSessionDownloadTask *)downloadTask -didFinishDownloadingToURL:(NSURL *)location -{ - NSURL *packageURL = downloadTask.originalRequest.URL; - TCPituDownloadTask *task = self->_runningTask[packageURL]; - @synchronized (self->_runningTask) { - [self->_runningTask removeObjectForKey:packageURL]; - } - NSError *fsErr = nil; - [[NSFileManager defaultManager] moveItemAtURL:location toURL:[NSURL fileURLWithPath:task.destPath] - error:&fsErr]; - if (fsErr) { - [self.pituDelegate onLoadPituFailed]; - return; - } - NSString *targetPath = task.destPath; - NSString *pituDir = task.dir; - NSString *pituName = task.name; - // 解压 - BOOL unzipSuccess = NO; - ZipArchive *zipArchive = [[ZipArchive alloc] init]; - if ([zipArchive UnzipOpenFile:targetPath]) { - unzipSuccess = [zipArchive UnzipFileTo:pituDir overWrite:YES]; - [zipArchive UnzipCloseFile]; - - // 删除zip文件 - NSError *fsErr = nil; - [[NSFileManager defaultManager] removeItemAtPath:targetPath error:&fsErr]; - if (fsErr) { - NSLog(@"Error when removing temp file: %@", fsErr); - } - } - if (unzipSuccess) { - [self.pituDelegate onLoadPituFinished]; - if (![self.pituName isEqualToString:pituName]) { - return; - } - - if ([self.actionPerformer respondsToSelector:@selector(setMotionTmpl:inDir:)]) { - [self.actionPerformer setMotionTmpl:pituName inDir:pituDir]; - } - } else { - [self.pituDelegate onLoadPituFailed]; - } -} - -- (void)URLSession:(NSURLSession *)session - downloadTask:(NSURLSessionDownloadTask *)downloadTask - didWriteData:(int64_t)bytesWritten - totalBytesWritten:(int64_t)totalBytesWritten -totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite { - if (self.pituDelegate) { - double progress = (double)totalBytesWritten / totalBytesExpectedToWrite; - [self.pituDelegate onLoadPituProgress:progress]; - } -} - -#pragma mark - -- (NSMutableDictionary *)beautyLevelDic -{ - if(!_beautyLevelDic){ - _beautyLevelDic = [[NSMutableDictionary alloc] init]; - } - return _beautyLevelDic; -} - -- (UISlider *)slider -{ - if(!_slider){ - _slider = [[UISlider alloc] init]; - _slider.minimumValue = 0; - _slider.maximumValue = 10; - [_slider setMinimumTrackTintColor:_theme.sliderMinColor]; - [_slider setMaximumTrackTintColor:_theme.sliderMaxColor]; - [_slider setThumbImage:_theme.sliderThumbImage forState:UIControlStateNormal]; - [_slider addTarget:self action:@selector(onSliderValueChanged:) forControlEvents:UIControlEventValueChanged]; - } - return _slider; -} - -- (UILabel *)sliderValueLabel -{ - if(!_sliderValueLabel){ - _sliderValueLabel = [[UILabel alloc] init]; - _sliderValueLabel.backgroundColor = [UIColor whiteColor]; - _sliderValueLabel.textAlignment = NSTextAlignmentCenter; - _sliderValueLabel.text = @"0"; - [_sliderValueLabel setTextColor:_theme.sliderValueColor]; - } - return _sliderValueLabel; -} - -- (void)setSliderValue:(float)value -{ - self.sliderValueLabel.text = @(roundf(value)).stringValue; - self.slider.value = value; -} - -#pragma mark - TCMenuViewDataSource -- (NSInteger)numberOfMenusInMenu:(TCMenuView *)menu { - return _menuArray.count; -} -- (NSString *)titleOfMenu:(TCMenuView *)menu atIndex:(NSInteger)index { - return L(_menuArray[index]); -} - -- (NSUInteger)numberOfOptionsInMenu:(TCMenuView *)menu menuIndex:(NSInteger)index { - return _optionsContainer[index].count; -} - -- (id)menu:(TCMenuView *)menu - itemAtMenuIndex:(NSInteger)index - optionIndex:(NSInteger)optionIndex { - return _optionsContainer[index][optionIndex]; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/Menu/TCMenuItemCell.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/Menu/TCMenuItemCell.h deleted file mode 100644 index 56b1b05a..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/Menu/TCMenuItemCell.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) 2019 Tencent. All rights reserved. - -#import - -@interface TCMenuItemCell : UICollectionViewCell -@property (nonatomic, strong) UILabel *label; -@property (nonatomic, strong) UIImageView *imageView; -@property (nonatomic, strong) UIImage *selectedBackgroundImage; - -- (void)setSelected:(BOOL)selected; -+ (NSString *)reuseIdentifier; -@end diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/Menu/TCMenuItemCell.m b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/Menu/TCMenuItemCell.m deleted file mode 100644 index 15f5477b..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/Menu/TCMenuItemCell.m +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright (c) 2019 Tencent. All rights reserved. - -#import "TCMenuItemCell.h" - -@implementation TCMenuItemCell { - UIImageView *_backgroundImageView; -} -- (id)initWithFrame:(CGRect)frame -{ - self = [super initWithFrame:frame]; - if(self){ - [self setupView]; - } - return self; -} - -+ (NSString *)reuseIdentifier -{ - return NSStringFromClass([self class]); -} - -- (void)prepareForReuse { - [super prepareForReuse]; - _imageView.highlighted = NO; - _label.highlighted = NO; - _imageView.image = nil; - _label.text = nil; -} - -- (void)layoutSubviews -{ - if (_imageView && _imageView.image) { - CGSize imageSize = CGSizeMake(45, 45); // _imageView.image.size - CGRect labelFrame = CGRectIntegral((CGRect){CGPointZero, [_label sizeThatFits:self.bounds.size]}); - labelFrame.size.width = CGRectGetWidth(self.bounds); - const CGFloat spacing = 5; - CGFloat totalHeight = CGRectGetHeight(labelFrame) + imageSize.height; - CGFloat y = (CGRectGetHeight(self.bounds) - totalHeight) / 2; - CGRect imageFrame = CGRectMake(0, y, CGRectGetWidth(self.bounds), imageSize.height); - labelFrame.origin.y = CGRectGetMaxY(imageFrame) + spacing; - _label.frame = labelFrame; - _imageView.frame = imageFrame; - } else { - _label.frame = self.bounds; - } -} - -- (void)setSelected:(BOOL)selected -{ - if (selected) { - _backgroundImageView.image = self.selectedBackgroundImage; - } - _label.highlighted = selected; - _imageView.highlighted = selected; - _backgroundImageView.hidden = !selected; -} - -- (void)setupView -{ - self.layer.borderColor = [UIColor whiteColor].CGColor; - _label = [[UILabel alloc] initWithFrame:self.bounds]; - _label.font = [UIFont systemFontOfSize:12]; - _label.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - _label.textColor = [UIColor whiteColor]; - _label.textAlignment = NSTextAlignmentCenter; - [self addSubview:self.label]; - _backgroundImageView = [[UIImageView alloc] initWithFrame:UIEdgeInsetsInsetRect(self.bounds, UIEdgeInsetsMake(8, 0, 8, 0))]; - _backgroundImageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - [self insertSubview:_backgroundImageView atIndex:0]; -} - -- (UIImageView *)imageView { - if (nil == _imageView) { - _imageView = [[UIImageView alloc] init]; - _imageView.contentMode = UIViewContentModeScaleAspectFit; - [self addSubview:_imageView]; - } - return _imageView; -} - - -@end diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/Menu/TCMenuView.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/Menu/TCMenuView.h deleted file mode 100644 index 56dd6d4f..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/Menu/TCMenuView.h +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) 2019 Tencent. All rights reserved. - -#import - -NS_ASSUME_NONNULL_BEGIN - -@protocol TCMenuItem -- (NSString *)title; -- (UIImage *)icon; -@end - -@protocol TCMenuViewDelegate, TCMenuViewDataSource; - -@interface TCMenuView : UIView -@property (weak, nullable, nonatomic) id delegate; -@property (weak, nullable, nonatomic) id dataSource; - -/// 被选中一级菜单的数组下标 -@property (readonly, nonatomic) NSInteger menuIndex; - -/// 被选中二级菜单的数组下标 -@property (readonly, nonatomic) NSInteger optionIndex; - -/// 菜单文字的标题颜色 -@property (strong, nonatomic) UIColor *menuTitleColor; - -/// 菜单文字的最小宽度 -@property (assign, nonatomic) CGFloat minMenuWidth; - -/// 二级菜单文字的最小宽度 -@property (assign, nonatomic) CGFloat minSubMenuWidth; - -/// 一级菜单背景色 -@property (strong, nonatomic) UIColor *menuBackgroundColor; - -/// 一级菜单选中后的背景图片 -@property (strong, nonatomic, nullable) UIImage *menuSelectionBackgroundImage; - -/// 二级菜单背景色 -@property (strong, nonatomic) UIColor *subMenuBackgroundColor; - -/// 二级菜单选中时标题的颜色 -@property (strong, nonatomic, nullable) UIColor *subMenuSelectionColor; - - -- (instancetype)initWithFrame:(CGRect)frame - dataSource:(id)dataSource; -- (void)setSelectedOption:(NSInteger)optionIndex inMenu:(NSInteger)menuIndex; -- (void)reloadData; -@end - -@protocol TCMenuViewDelegate -- (void)menu:(TCMenuView *)menu didChangeToIndex:(NSInteger)menuIndex option:(NSInteger)optionIndex; -@end - -@protocol TCMenuViewDataSource -- (NSInteger)numberOfMenusInMenu:(TCMenuView *)menu; -- (NSString *)titleOfMenu:(TCMenuView *)menu atIndex:(NSInteger)index; -- (NSUInteger)numberOfOptionsInMenu:(TCMenuView *)menu menuIndex:(NSInteger)index; -- (id)menu:(TCMenuView *)menu - itemAtMenuIndex:(NSInteger)index - optionIndex:(NSInteger)optionIndex; -@end -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/Menu/TCMenuView.m b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/Menu/TCMenuView.m deleted file mode 100644 index 21e78d65..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/Menu/TCMenuView.m +++ /dev/null @@ -1,245 +0,0 @@ -// Copyright (c) 2019 Tencent. All rights reserved. - -#import "TCMenuView.h" -#import "TCMenuItemCell.h" - -#define BeautyViewMargin 8 -#define BeautyViewSliderHeight 30 -#define BeautyViewCollectionHeight 50 - -#define BeautyViewTitleWidth 40 - -static const CGFloat MenuTitleFontSize = 15; -static const CGFloat SubMenuTitleFontSize = 12; - - -@interface TCMenuView () -{ - UICollectionView *_collectionView; -} -//@property (nonatomic, strong) NSArray *menuArray; -/// array of options for each menu -//@property (nonatomic, strong) NSArray> *> *optionsContainer; -@property (nonatomic, strong) NSMutableDictionary *selectedIndexMap; -@property (nonatomic, strong) UICollectionView *menuCollectionView; -@property (nonatomic, strong) UICollectionView *optionsCollectionView; - -//@property (nonatomic, strong) id currentItem; -@end - -@implementation TCMenuView - -- (instancetype)initWithFrame:(CGRect)frame - dataSource:(id)dataSource { - if (self = [super initWithFrame:frame]) { - _dataSource = dataSource; - - // 一级菜单 - UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; - layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; - // layout.itemSize = CGSizeMake(100, 40); - CGRect menuFrame = CGRectMake(0, CGRectGetHeight(self.bounds) - BeautyViewCollectionHeight, - CGRectGetWidth(self.bounds), BeautyViewCollectionHeight); - _menuCollectionView = [[UICollectionView alloc] initWithFrame:menuFrame collectionViewLayout:layout]; - _menuCollectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; - _menuCollectionView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.6]; - _menuCollectionView.showsHorizontalScrollIndicator = NO; - _menuCollectionView.delegate = self; - _menuCollectionView.dataSource = self; - [_menuCollectionView registerClass:[TCMenuItemCell class] forCellWithReuseIdentifier:[TCMenuItemCell reuseIdentifier]]; - [self addSubview:_menuCollectionView]; - // 二级菜单 - layout = [[UICollectionViewFlowLayout alloc] init]; - layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; - const CGFloat SubMenuHeight = CGRectGetHeight(frame) - BeautyViewCollectionHeight; - CGRect subMenuFrame = CGRectMake(0, CGRectGetMinY(_menuCollectionView.frame) - SubMenuHeight, - CGRectGetWidth(self.bounds), SubMenuHeight); - - _optionsCollectionView = [[UICollectionView alloc] initWithFrame:subMenuFrame collectionViewLayout:layout]; - _optionsCollectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; - _optionsCollectionView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.3]; - _optionsCollectionView.showsHorizontalScrollIndicator = NO; - _optionsCollectionView.delegate = self; - _optionsCollectionView.dataSource = self; - [_optionsCollectionView registerClass:[TCMenuItemCell class] forCellWithReuseIdentifier:[TCMenuItemCell reuseIdentifier]]; - [self addSubview:_optionsCollectionView]; - - // 选中状态 - _selectedIndexMap = [NSMutableDictionary dictionary]; - - if ([dataSource numberOfMenusInMenu:self] > 0) { - [_menuCollectionView selectItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:0] animated:NO scrollPosition:UICollectionViewScrollPositionNone]; - } - } - return self; -} - -- (UIColor *)menuBackgroundColor { - return _menuCollectionView.backgroundColor; -} - -- (void)setMenuBackgroundColor:(UIColor *)menuBackgroundColor { - _menuCollectionView.backgroundColor = menuBackgroundColor; -} - -- (UIColor *)subMenuBackgroundColor { - return _optionsCollectionView.backgroundColor; -} - -- (void)setSubMenuBackgroundColor:(UIColor *)subMenuBackgroundColor { - _optionsCollectionView.backgroundColor = subMenuBackgroundColor; -} - -- (void)setSelectedOption:(NSInteger)optionIndex inMenu:(NSInteger)menuIndex { - NSIndexPath *indexPath = [NSIndexPath indexPathForItem:optionIndex inSection:0]; - _selectedIndexMap[@(menuIndex)] = indexPath; - if (menuIndex == _menuIndex) { - _optionIndex = optionIndex; - [self.optionsCollectionView selectItemAtIndexPath:indexPath - animated:NO - scrollPosition:UICollectionViewScrollPositionCenteredHorizontally]; - } -} - -- (void)setMenuSelectionBackgroundImage:(UIImage *)menuSelectionBackgroundImage -{ - _menuSelectionBackgroundImage = menuSelectionBackgroundImage; - [_optionsCollectionView reloadData]; - [_menuCollectionView reloadData]; -} - -#pragma mark - Menu Switch -- (void)changeSubmenu:(NSInteger)menuIndex -{ - NSUInteger count = [self.dataSource numberOfMenusInMenu:self]; - NSAssert(menuIndex < count, @"index out of range"); - if (menuIndex >= count) { - return; - } - [self.menuCollectionView cellForItemAtIndexPath:[NSIndexPath indexPathForItem:_menuIndex inSection:0]].selected = NO; - _menuIndex = menuIndex; - NSIndexPath *indexPath = _selectedIndexMap[@(menuIndex)]; - [self.optionsCollectionView reloadData]; - if (indexPath) { - [self.optionsCollectionView selectItemAtIndexPath:indexPath - animated:NO - scrollPosition:UICollectionViewScrollPositionCenteredHorizontally]; - } - _optionIndex = indexPath ? indexPath.item : 0; - [self.delegate menu:self didChangeToIndex:menuIndex option:_optionIndex]; -} - -- (void)setSelectedIndexPath:(NSIndexPath *)indexPath { - [self setSelectedIndexPath:indexPath forMenu:_menuIndex]; -} - -- (void)setSelectedIndexPath:(NSIndexPath *)indexPath forMenu:(NSInteger)menuIndex { - _selectedIndexMap[@(menuIndex)] = indexPath; -} - -- (void)reloadData { - [_menuCollectionView reloadData]; - [_optionsCollectionView reloadData]; -} - -#pragma mark - UICollectionViewDataSource -- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { - return 1; -} - -- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section -{ - if (collectionView == self.menuCollectionView) { - return [self.dataSource numberOfMenusInMenu:self];// self.menuArray.count; - } - return [self.dataSource numberOfOptionsInMenu:self menuIndex:_menuIndex]; -// return [_optionsContainer[_menuIndex] count]; -} - -- (NSIndexPath *)selectedIndexPath { - return [self selectedIndexPathForMenu:_menuIndex]; -} - -- (NSIndexPath *)selectedIndexPathForMenu:(NSInteger)index { - return _selectedIndexMap[@(index)] ?: [NSIndexPath indexPathForItem:0 inSection:0]; -} - -- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath -{ - if(collectionView == _menuCollectionView){ - TCMenuItemCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:[TCMenuItemCell reuseIdentifier] forIndexPath:indexPath]; - cell.label.font = [UIFont systemFontOfSize: MenuTitleFontSize]; - cell.label.text = [self.dataSource titleOfMenu:self atIndex:indexPath.row];// self.menuArray[indexPath.row]; - cell.selectedBackgroundImage = self.menuSelectionBackgroundImage; - cell.selected = indexPath.row == _menuIndex; - cell.label.textColor = self.menuTitleColor; - return cell; - } else { - TCMenuItemCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:[TCMenuItemCell reuseIdentifier] forIndexPath:indexPath]; - cell.label.font = [UIFont systemFontOfSize: SubMenuTitleFontSize]; - id item = [self.dataSource menu:self itemAtMenuIndex:_menuIndex optionIndex:indexPath.row]; - if ([item isKindOfClass:[NSString class]]) { - cell.imageView.image = nil; - cell.label.text = (NSString*)item; - } else { - cell.imageView.image = [item icon]; - cell.label.text = [item title]; - } - cell.selected = [indexPath isEqual: [self selectedIndexPath]]; - cell.label.highlightedTextColor = self.subMenuSelectionColor; - cell.label.textColor = self.menuTitleColor; - return cell; - } -} - -- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath -{ - if(collectionView == _menuCollectionView){ - if(indexPath.row != _menuIndex){ - [self changeSubmenu:indexPath.item]; - } - } else { - // select options - NSIndexPath *prevSelectedIndexPath = [self selectedIndexPath]; - [collectionView cellForItemAtIndexPath:prevSelectedIndexPath].selected = NO; - - if([indexPath isEqual:prevSelectedIndexPath]){ - // 和上次选的一样 - return; - } - [self setSelectedIndexPath:indexPath]; - _optionIndex = indexPath.item; - [self.delegate menu:self didChangeToIndex:_menuIndex option:indexPath.item]; - } -} - -- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath -{ - NSString *text = nil; - CGFloat minWidth = 0; - CGFloat fontSize = 0; - if(collectionView == _menuCollectionView){ - text = [self.dataSource titleOfMenu:self atIndex:indexPath.row];// self.menuArray[indexPath.row]; - fontSize = MenuTitleFontSize; - minWidth = self.minMenuWidth; - } else { - minWidth = self.minSubMenuWidth; - fontSize = SubMenuTitleFontSize; - id item = [self.dataSource menu:self - itemAtMenuIndex:_menuIndex - optionIndex:indexPath.row]; -// id item = _optionsContainer[_menuIndex][indexPath.item]; - if ([item isKindOfClass:[NSString class]]) { - text = (NSString*)item; - } else { - text = item.title; - } - } - UIFont *font = [UIFont systemFontOfSize: fontSize]; - NSDictionary *attrs = @{NSFontAttributeName : font}; - CGSize size=[text sizeWithAttributes:attrs]; - CGFloat width = MAX(size.width, minWidth); - return CGSizeMake(width, collectionView.frame.size.height); -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/TCBeautyPanelTheme.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/TCBeautyPanelTheme.h deleted file mode 100644 index 5727a80b..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/TCBeautyPanelTheme.h +++ /dev/null @@ -1,98 +0,0 @@ -// -// TCPanelTheme.h -// TC -// -// Created by cui on 2019/12/19. -// Copyright © 2019 Tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@protocol TCBeautyPanelThemeProtocol - -@property (strong, nonatomic) UIColor *backgroundColor; -#pragma mark - Beauty Panel -/// 美颜面板 - 美颜图标 -@property (strong, nonatomic) UIImage *beautyPanelSmoothBeautyStyleIcon; -/// 美颜面板 - 大眼图标 -@property (strong, nonatomic) UIImage *beautyPanelEyeScaleIcon; -/// 美颜面板 - P图风格美颜图标 -@property (strong, nonatomic) UIImage *beautyPanelPTuBeautyStyleIcon; -/// 美颜面板 - 自然风格图标 -@property (strong, nonatomic) UIImage *beautyPanelNatureBeautyStyleIcon; -/// 美颜面板 - 红润图标 -@property (strong, nonatomic) UIImage *beautyPanelRuddyIcon; -/// 美颜面板 - 绿幕图标 -@property (strong, nonatomic) UIImage *beautyPanelBgRemovalIcon; -/// 美颜面板 - 美白图标 -@property (strong, nonatomic) UIImage *beautyPanelWhitnessIcon; -/// 美颜面板 - 瘦脸图标 -@property (strong, nonatomic) UIImage *beautyPanelFaceSlimIcon; -/// 美颜面板 - AI抠图图标 -@property (strong, nonatomic) UIImage *beautyPanelGoodLuckIcon; -/// 美颜面板 - 下巴调整图标 -@property (strong, nonatomic) UIImage *beautyPanelChinIcon; -/// 美颜面板 - V脸图标 -@property (strong, nonatomic) UIImage *beautyPanelFaceVIcon; -/// 美颜面板 - 瘦脸图标 -@property (strong, nonatomic) UIImage *beautyPanelFaceScaleIcon; -/// 美颜面板 - 瘦鼻图标 -@property (strong, nonatomic) UIImage *beautyPanelNoseSlimIcon; -/// 美颜面板 - 白牙图标 -@property (strong, nonatomic) UIImage *beautyPanelToothWhitenIcon; -/// 美颜面板 - 眼距图标 -@property (strong, nonatomic) UIImage *beautyPanelEyeDistanceIcon; -/// 美颜面板 - 发际线图标 -@property (strong, nonatomic) UIImage *beautyPanelForeheadIcon; -/// 美颜面板 - 脸型图标 -@property (strong, nonatomic) UIImage *beautyPanelFaceBeautyIcon; -/// 美颜面板 - 眼睛角度图标 -@property (strong, nonatomic) UIImage *beautyPanelEyeAngleIcon; -/// 美颜面板 - 鼻翼图标 -@property (strong, nonatomic) UIImage *beautyPanelNoseWingIcon; -/// 美颜面板 - 嘴唇厚度图标 -@property (strong, nonatomic) UIImage *beautyPanelLipsThicknessIcon; -/// 美颜面板 - 袪皱图标 -@property (strong, nonatomic) UIImage *beautyPanelWrinkleRemoveIcon; -/// 美颜面板 - 嘴形图标 -@property (strong, nonatomic) UIImage *beautyPanelMouthShapeIcon; -/// 美颜面板 - 袪眼袋图标x -@property (strong, nonatomic) UIImage *beautyPanelPounchRemoveIcon; -/// 美颜面板 - 嘴形图标 -@property (strong, nonatomic) UIImage *beautyPanelSmileLinesRemoveIcon; -/// 美颜面板 - 亮眼图标 -@property (strong, nonatomic) UIImage *beautyPanelEyeLightenIcon; -/// 美颜面板 - 鼻子位置图标 -@property (strong, nonatomic) UIImage *beautyPanelNosePositionIcon; -/// 美颜面板 - 关闭效果图标 -@property (strong, nonatomic) UIImage *menuDisableIcon; -/// 菜单选中背景图片 -@property (strong, nonatomic) UIImage *beautyPanelMenuSelectionBackgroundImage; -/// 菜单文字颜色 -@property (strong, nonatomic) UIColor *beautyPanelTitleColor; -/// 菜单文字选中颜色 -@property (strong, nonatomic) UIColor *beautyPanelSelectionColor; -/// 录制速度选中文字颜色 -@property (strong, nonatomic) UIColor *speedControlSelectedTitleColor; - -- (NSString *)localizedString:(NSString *)key __attribute__((annotate("returns_localized_nsstring"))); - -/// 滑杆配置 -@property (strong, nonatomic) UIColor *sliderMinColor; -@property (strong, nonatomic) UIColor *sliderMaxColor; -@property (strong, nonatomic) UIImage *sliderThumbImage; -@property (strong, nonatomic) UIColor *sliderValueColor; - -- (UIImage *)iconForFilter:(NSString *)filter; -- (UIImage *)imageNamed:(NSString *)name; -- (NSURL *)goodLuckVideoFileURL; -@end - - -@interface TCBeautyPanelTheme : NSObject - -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/TCBeautyPanelTheme.m b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/TCBeautyPanelTheme.m deleted file mode 100644 index c4b0c59b..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/TCBeautyPanelTheme.m +++ /dev/null @@ -1,228 +0,0 @@ -// -// TCPanelTheme.m -// TC -// -// Created by cui on 2019/12/19. -// Copyright © 2019 Tencent. All rights reserved. -// - -#import "TCBeautyPanelTheme.h" -#import - -@interface TCBeautyPanelTheme () { - @public - NSMutableDictionary *_imageDict; - NSMutableDictionary *_filterIconDictionary; -} -@property (strong, nonatomic) NSBundle *resourceBundle; -- (UIImage *)imageForKey:(NSString *)key; -- (void)setImage:(UIImage *)image forKey:(NSString *)key; -@end - -static UIImage *getImageByName(TCBeautyPanelTheme *self, SEL selector) { - NSString *selName = NSStringFromSelector(selector); - NSString *key = [[[selName substringToIndex:1] lowercaseString] stringByAppendingString:[selName substringFromIndex:1]]; - UIImage *image = [self imageForKey:key]; - if (nil == image) { - image = [UIImage imageNamed:NSStringFromSelector(selector) inBundle:self.resourceBundle compatibleWithTraitCollection:nil]; - } - if (nil == image) { - NSLog(@"%@ %@ image not found", NSStringFromClass([self class]), key); - } - return image; -} - -static void setImageForKey(id self, SEL selector, UIImage *image) { - NSString *selName = NSStringFromSelector(selector); - NSString *attrName = [[selName substringFromIndex:3] stringByTrimmingCharactersInSet: - [NSCharacterSet characterSetWithCharactersInString:@":"]]; - NSString *key = [[[attrName substringToIndex:1] lowercaseString] stringByAppendingString:[attrName substringFromIndex:1]]; - [self setImage:image forKey:key]; -} - - -@implementation TCBeautyPanelTheme -@synthesize backgroundColor=_backgroundColor; -@synthesize beautyPanelTitleColor=_beautyPanelTitleColor; -@synthesize beautyPanelSelectionColor=_beautyPanelSelectionColor; -@synthesize speedControlSelectedTitleColor=_speedControlSelectedTitleColor; -@synthesize sliderMinColor=_sliderMinColor; -@synthesize sliderMaxColor=_sliderMaxColor; -@synthesize sliderValueColor=_sliderValueColor; -@dynamic beautyPanelSmoothBeautyStyleIcon; -@dynamic beautyPanelEyeScaleIcon; -@dynamic beautyPanelPTuBeautyStyleIcon; -@dynamic beautyPanelNatureBeautyStyleIcon; -@dynamic beautyPanelRuddyIcon; -@dynamic beautyPanelBgRemovalIcon; -@dynamic beautyPanelWhitnessIcon; -@dynamic beautyPanelFaceSlimIcon; -@dynamic beautyPanelGoodLuckIcon; -@dynamic beautyPanelChinIcon; -@dynamic beautyPanelFaceVIcon; -@dynamic beautyPanelFaceScaleIcon; -@dynamic beautyPanelNoseSlimIcon; -@dynamic beautyPanelToothWhitenIcon; -@dynamic beautyPanelEyeDistanceIcon; -@dynamic beautyPanelForeheadIcon; -@dynamic beautyPanelFaceBeautyIcon; -@dynamic beautyPanelEyeAngleIcon; -@dynamic beautyPanelNoseWingIcon; -@dynamic beautyPanelLipsThicknessIcon; -@dynamic beautyPanelWrinkleRemoveIcon; -@dynamic beautyPanelMouthShapeIcon; -@dynamic beautyPanelPounchRemoveIcon; -@dynamic beautyPanelSmileLinesRemoveIcon; -@dynamic beautyPanelEyeLightenIcon; -@dynamic beautyPanelNosePositionIcon; -@dynamic menuDisableIcon; -@dynamic beautyPanelMenuSelectionBackgroundImage; -@dynamic sliderThumbImage; - -+ (BOOL)resolveInstanceMethod:(SEL)sel -{ - NSString *selName = NSStringFromSelector(sel); - if ([selName hasPrefix:@"set"]) { - if ([selName hasSuffix:@"Icon:"] || [selName hasSuffix:@"Image:"]) { - class_addMethod([self class], sel, (IMP)setImageForKey, "@@:@"); - return YES; - } - } else if ([selName hasSuffix:@"Icon"] || [selName hasSuffix:@"Image"]) { - class_addMethod([self class], sel, (IMP)getImageByName, "@@:"); - return YES; - } - return [super resolveInstanceMethod:sel]; -} - -- (instancetype)init -{ - self = [super init]; - if (self) { - NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"UGCKitResources" ofType:@"bundle"]; - NSBundle *bundle = [NSBundle bundleWithPath:resourcePath]; - if (nil == bundle) { - bundle = [NSBundle mainBundle]; - } - NSString *path = [[NSBundle mainBundle] pathForResource:@"TCBeautyPanelResources" ofType:@"bundle"]; - if (!path) { - path = [bundle pathForResource:@"TCBeautyPanelResources" ofType:@"bundle"]; - } - NSBundle *panelResBundle = [NSBundle bundleWithPath:path]; - if (panelResBundle) { - bundle = panelResBundle; - } - _imageDict = [NSMutableDictionary dictionary]; - - _resourceBundle = bundle ?: [NSBundle mainBundle]; - - _beautyPanelTitleColor = [UIColor whiteColor]; - _beautyPanelSelectionColor = [UIColor colorWithRed:0xff/255.0 green:0x58/255.0 blue:0x4c/255.0 alpha:1]; - _backgroundColor = [UIColor blackColor]; - _sliderValueColor = [UIColor colorWithRed:1.0 green:0x58/255.0 blue:0x4c/255.0 alpha:1]; - } - return self; -} -- (NSURL *)goodLuckVideoFileURL { - return [_resourceBundle URLForResource:@"goodluck" withExtension:@"mp4"]; -} - -- (UIImage *)iconForFilter:(nonnull NSString *)filter { - UIImage *image = _filterIconDictionary[filter]; - if (image) { - return image; - } - - if (nil == filter) { - return [UIImage imageNamed:@"original" inBundle:_resourceBundle compatibleWithTraitCollection:nil]; - } else if ([filter isEqualToString:@"white"]) { - return [UIImage imageNamed:@"fwhite" inBundle:_resourceBundle compatibleWithTraitCollection:nil]; - } else { - return [UIImage imageNamed:filter inBundle:_resourceBundle compatibleWithTraitCollection:nil]; - } -} - - -- (UIImage *)imageNamed:(nonnull NSString *)name { - return [UIImage imageNamed:name inBundle:_resourceBundle compatibleWithTraitCollection:nil]; -} - -- (UIImage *)imageForKey:(NSString *)key -{ - return _imageDict[key]; -} - -- (void)setImage:(UIImage *)image forKey:(NSString *)key -{ - _imageDict[key] = image; -} - -- (NSString *)localizedString:(nonnull NSString *)key { - static NSDictionary *defaultStringMap = nil; - NSString *string = [_resourceBundle localizedStringForKey:key value:@"" table:nil]; - if (![string isEqualToString:key]) { - return string; - } - - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - defaultStringMap = @{ - @"TC.Common.Clear": @"清除", - @"TC.BeautySettingPanel.None" : @"无动效", - @"TC.BeautySettingPanel.GoodLuck" : @"Good Luck", - @"TC.BeautySettingPanel.BeautySmooth" : @"美颜(光滑)", - @"TC.BeautySettingPanel.Beauty-Natural" : @"美颜(自然)", - @"TC.BeautySettingPanel.Beauty-P" : @"美颜(P图)", - @"TC.BeautySettingPanel.White" : @"美白", - @"TC.BeautySettingPanel.Ruddy" : @"红润", - @"TC.BeautySettingPanel.BigEyes" : @"大眼", - @"TC.BeautySettingPanel.ThinFace" : @"瘦脸", - @"TC.BeautySettingPanel.VFace" : @"V脸", - @"TC.BeautySettingPanel.Chin" : @"下巴", - @"TC.BeautySettingPanel.ShortFace" : @"短脸", - @"TC.BeautySettingPanel.ThinNose" : @"瘦鼻", - @"TC.BeautySettingPanel.EyeLighten" : @"亮眼", - @"TC.BeautySettingPanel.ToothWhiten" : @"白牙", - @"TC.BeautySettingPanel.WrinkleRemove" : @"祛皱", - @"TC.BeautySettingPanel.PounchRemove" : @"祛眼袋", - @"TC.BeautySettingPanel.SmileLinesRemove" : @"祛法令纹", - @"TC.BeautySettingPanel.Forehead" : @"发际线", - @"TC.BeautySettingPanel.EyeDistance" : @"眼距", - @"TC.BeautySettingPanel.EyeAngle" : @"眼角", - @"TC.BeautySettingPanel.MouthShape" : @"嘴型", - @"TC.BeautySettingPanel.NoseWing" : @"鼻翼", - @"TC.BeautySettingPanel.NosePosition" : @"鼻子位置", - @"TC.BeautySettingPanel.LipsThickness" : @"嘴唇厚度", - @"TC.BeautySettingPanel.FaceBeauty" : @"脸型", - @"TC.BeautyPanel.Menu.Beauty" : @"美颜", - @"TC.BeautyPanel.Menu.Filter" : @"滤镜", - @"TC.BeautyPanel.Menu.VideoEffect" : @"动效", - @"TC.BeautyPanel.Menu.BlendPic" : @"抠背", - @"TC.BeautyPanel.Menu.GreenScreen" : @"绿幕", - @"TC.BeautyPanel.Menu.Gesture" : @"手势", - @"TC.BeautyPanel.Menu.Cosmetic" : @"美妆", - @"TC.Common.Filter_original" : @"原图", - @"TC.Common.Filter_baixi" : @"白皙", - @"TC.Common.Filter_normal" : @"标准", - @"TC.Common.Filter_ziran" : @"自然", - @"TC.Common.Filter_yinghong" : @"樱红", - @"TC.Common.Filter_yunshang" : @"云裳", - @"TC.Common.Filter_chunzhen" : @"纯真", - @"TC.Common.Filter_bailan" : @"白兰", - @"TC.Common.Filter_yuanqi" : @"元气", - @"TC.Common.Filter_chaotuo" : @"超脱", - @"TC.Common.Filter_xiangfen" : @"香氛", - @"TC.Common.Filter_white" : @"美白", - @"TC.Common.Filter_langman" : @"浪漫", - @"TC.Common.Filter_qingxin" : @"清新", - @"TC.Common.Filter_weimei" : @"唯美", - @"TC.Common.Filter_fennen" : @"粉嫩", - @"TC.Common.Filter_huaijiu" : @"怀旧", - @"TC.Common.Filter_landiao" : @"蓝调", - @"TC.Common.Filter_qingliang" : @"清凉", - @"TC.Common.Filter_rixi" : @"日系", - }; - }); - return defaultStringMap[key] ?: key; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/TCBeautyPanelView.h b/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/TCBeautyPanelView.h deleted file mode 100644 index ce5b8b10..00000000 --- a/iOS/Demo/TXLiteAVDemo/BeautySettingKit/TCBeautyPanel/View/TCBeautyPanelView.h +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) 2019 Tencent. All rights reserved. - -#import -NS_ASSUME_NONNULL_BEGIN - -typedef NS_ENUM(NSUInteger, PanelMenuIndex) { - PanelMenuIndexBeauty, - PanelMenuIndexFilter, - PanelMenuIndexMotion, - PanelMenuIndexCosmetic, - PanelMenuIndexGesture, - PanelMenuIndexKoubei, - PanelMenuIndexGreen, - PanelMenuIndexCount -}; - -typedef NS_ENUM(NSInteger, TCBeautyStyle) { - TCBeautyStyleSmooth = 0, ///< 光滑,适用于美女秀场,效果比较明显。 - TCBeautyStyleNature = 1, ///< 自然,磨皮算法更多地保留了面部细节,主观感受上会更加自然。 - TCBeautyStylePitu = 2 ///< 企业版美颜算法(企业版有效,其它版本设置此参数无效) -}; - -@protocol TCBeautyPanelThemeProtocol; -@protocol TCBeautyPanelActionPerformer; - -@protocol BeautyLoadPituDelegate -- (void)onLoadPituStart; -- (void)onLoadPituProgress:(CGFloat)progress; -- (void)onLoadPituFinished; -- (void)onLoadPituFailed; -@end - -@interface TCBeautyPanel : UIView -@property (nonatomic, assign) NSInteger currentFilterIndex; -@property (nonatomic, readonly, nullable) NSString* currentFilterName; -@property (nonatomic, assign) CGFloat bottomOffset; -@property (nonatomic, assign, readonly) float beautyLevel; -@property (nonatomic, assign, readonly) float whiteLevel; -@property (nonatomic, assign, readonly) float ruddyLevel; -@property (nonatomic, assign, readonly) TCBeautyStyle beautyStyle; -@property (nonatomic, strong) id theme; -// 这里是强引用,一般传入一个代理对象,来转发各设置项到SDK -@property (nonatomic, strong) id actionPerformer; -@property (nonatomic, weak) id pituDelegate; - -/// 以默认主题实例化美颜面板 -+ (instancetype)beautyPanelWithFrame:(CGRect)frame - actionPerformer:(id)actionPerformer; - -- (instancetype)initWithFrame:(CGRect)frame - theme:(nullable id)theme - actionPerformer:(nullable id)actionPerformer; - -/** - * 重置默认值,并通过 actionPerformer 应用默认值 - * - * 默认开启以下内容: - * “自然”风格美颜,值为6;开启“美白”选项,值为1;使用“标准”风格滤镜,值为5;其它均为关闭。 - */ -- (void)resetAndApplyValues; -+ (NSUInteger)getHeight; -- (UIImage*)filterImageByMenuOptionIndex:(NSInteger)index; -- (float)filterMixLevelByIndex:(NSInteger)index; -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/Debug/GenerateTestUserSig.h b/iOS/Demo/TXLiteAVDemo/Debug/GenerateTestUserSig.h deleted file mode 100644 index bec4a8fa..00000000 --- a/iOS/Demo/TXLiteAVDemo/Debug/GenerateTestUserSig.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Module: GenerateTestUserSig - * - * Function: 用于生成测试用的 UserSig,UserSig 是腾讯云为其云服务设计的一种安全保护签名。 - * 其计算方法是对 SDKAppID、UserID 和 EXPIRETIME 进行加密,加密算法为 HMAC-SHA256。 - * - * Attention: 请不要将如下代码发布到您的线上正式版本的 App 中,原因如下: - * - * 本文件中的代码虽然能够正确计算出 UserSig,但仅适合快速调通 SDK 的基本功能,不适合线上产品, - * 这是因为客户端代码中的 SECRETKEY 很容易被反编译逆向破解,尤其是 Web 端的代码被破解的难度几乎为零。 - * 一旦您的密钥泄露,攻击者就可以计算出正确的 UserSig 来盗用您的腾讯云流量。 - * - * 正确的做法是将 UserSig 的计算代码和加密密钥放在您的业务服务器上,然后由 App 按需向您的服务器获取实时算出的 UserSig。 - * 由于破解服务器的成本要高于破解客户端 App,所以服务器计算的方案能够更好地保护您的加密密钥。 - * - * Reference:https://cloud.tencent.com/document/product/269/32688#Server - */ - -#import - -NS_ASSUME_NONNULL_BEGIN - -/** TRTC的bizid的appid用于转推直播流,https://console.cloud.tencent.com/rav 点击【应用】【帐号信息】 - * 在【直播信息】中可以看到bizid和appid,分别填到下面这两个符号 - */ -#define TX_BIZID 0 - -#define TX_APPID 0 - -/** - * 腾讯云 SDKAppId,需要替换为您自己账号下的 SDKAppId。 - * - * 进入腾讯云云通信[控制台](https://console.cloud.tencent.com/avc) 创建应用,即可看到 SDKAppId, - * 它是腾讯云用于区分客户的唯一标识。 - */ -static const int SDKAPPID = 0; - -/** - * 签名过期时间,建议不要设置的过短 - * - * 时间单位:秒 - * 默认时间:7 x 24 x 60 x 60 = 604800 = 7 天 - */ -static const int EXPIRETIME = 604800; - -/** - * 计算签名用的加密密钥,获取步骤如下: - * - * step1. 进入腾讯云云通信[控制台](https://console.cloud.tencent.com/avc) ,如果还没有应用就创建一个, - * step2. 单击“应用配置”进入基础配置页面,并进一步找到“帐号体系集成”部分。 - * step3. 点击“查看密钥”按钮,就可以看到计算 UserSig 使用的加密的密钥了,请将其拷贝并复制到如下的变量中 - * - * 注意:该方案仅适用于调试Demo,正式上线前请将 UserSig 计算代码和密钥迁移到您的后台服务器上,以避免加密密钥泄露导致的流量盗用。 - * 文档:https://cloud.tencent.com/document/product/269/32688#Server - */ -static NSString * const SECRETKEY = @""; - - -@interface GenerateTestUserSig : NSObject -/** - * 计算 UserSig 签名 - * - * 函数内部使用 HMAC-SHA256 非对称加密算法,对 SDKAPPID、userId 和 EXPIRETIME 进行加密。 - * - * @note: 请不要将如下代码发布到您的线上正式版本的 App 中,原因如下: - * - * 本文件中的代码虽然能够正确计算出 UserSig,但仅适合快速调通 SDK 的基本功能,不适合线上产品, - * 这是因为客户端代码中的 SECRETKEY 很容易被反编译逆向破解,尤其是 Web 端的代码被破解的难度几乎为零。 - * 一旦您的密钥泄露,攻击者就可以计算出正确的 UserSig 来盗用您的腾讯云流量。 - * - * 正确的做法是将 UserSig 的计算代码和加密密钥放在您的业务服务器上,然后由 App 按需向您的服务器获取实时算出的 UserSig。 - * 由于破解服务器的成本要高于破解客户端 App,所以服务器计算的方案能够更好地保护您的加密密钥。 - * - * 文档:https://cloud.tencent.com/document/product/269/32688#Server - */ -+ (NSString *)genTestUserSig:(NSString *)identifier; -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/Debug/GenerateTestUserSig.m b/iOS/Demo/TXLiteAVDemo/Debug/GenerateTestUserSig.m deleted file mode 100644 index 4af34a85..00000000 --- a/iOS/Demo/TXLiteAVDemo/Debug/GenerateTestUserSig.m +++ /dev/null @@ -1,90 +0,0 @@ -#import "GenerateTestUserSig.h" -#import -#import - -@implementation GenerateTestUserSig - -+ (NSString *)genTestUserSig:(NSString *)identifier -{ - CFTimeInterval current = CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970; - long TLSTime = floor(current); - NSMutableDictionary *obj = [@{@"TLS.ver": @"2.0", - @"TLS.identifier": identifier, - @"TLS.sdkappid": @(SDKAPPID), - @"TLS.expire": @(EXPIRETIME), - @"TLS.time": @(TLSTime)} mutableCopy]; - NSMutableString *stringToSign = [[NSMutableString alloc] init]; - NSArray *keyOrder = @[@"TLS.identifier", - @"TLS.sdkappid", - @"TLS.time", - @"TLS.expire"]; - for (NSString *key in keyOrder) { - [stringToSign appendFormat:@"%@:%@\n", key, obj[key]]; - } - NSLog(@"%@", stringToSign); - //NSString *sig = [self sigString:stringToSign]; - NSString *sig = [self hmac:stringToSign]; - - obj[@"TLS.sig"] = sig; - NSLog(@"sig: %@", sig); - NSError *error = nil; - NSData *jsonToZipData = [NSJSONSerialization dataWithJSONObject:obj options:0 error:&error]; - if (error) { - NSLog(@"[Error] json serialization failed: %@", error); - return @""; - } - - const Bytef* zipsrc = (const Bytef*)[jsonToZipData bytes]; - uLongf srcLen = jsonToZipData.length; - uLong upperBound = compressBound(srcLen); - Bytef *dest = (Bytef*)malloc(upperBound); - uLongf destLen = upperBound; - int ret = compress2(dest, &destLen, (const Bytef*)zipsrc, srcLen, Z_BEST_SPEED); - if (ret != Z_OK) { - NSLog(@"[Error] Compress Error %d, upper bound: %lu", ret, upperBound); - free(dest); - return @""; - } - NSString *result = [self base64URL: [NSData dataWithBytesNoCopy:dest length:destLen]]; - return result; -} - -+ (NSString *)hmac:(NSString *)plainText -{ - const char *cKey = [SECRETKEY cStringUsingEncoding:NSUTF8StringEncoding]; - const char *cData = [plainText cStringUsingEncoding:NSUTF8StringEncoding]; - - unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH]; - - CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC); - - NSData *HMACData = [[NSData alloc] initWithBytes:cHMAC length:sizeof(cHMAC)]; - return [HMACData base64EncodedStringWithOptions:0]; -} - -+ (NSString *)base64URL:(NSData *)data -{ - NSString *result = [data base64EncodedStringWithOptions:0]; - NSMutableString *final = [[NSMutableString alloc] init]; - const char *cString = [result cStringUsingEncoding:NSUTF8StringEncoding]; - for (int i = 0; i < result.length; ++ i) { - char x = cString[i]; - switch(x){ - case '+': - [final appendString:@"*"]; - break; - case '/': - [final appendString:@"-"]; - break; - case '=': - [final appendString:@"_"]; - break; - default: - [final appendFormat:@"%c", x]; - break; - } - } - return final; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/English.lproj/InfoPlist.strings b/iOS/Demo/TXLiteAVDemo/English.lproj/InfoPlist.strings deleted file mode 100644 index 6e32b3db..00000000 --- a/iOS/Demo/TXLiteAVDemo/English.lproj/InfoPlist.strings +++ /dev/null @@ -1,15 +0,0 @@ -/* - InfoPlist.strings - TXLiteAVDemo - - Created by gg on 2021/3/18. - Copyright © 2021 Tencent. All rights reserved. -*/ - -CFBundleDisplayName = "TCToolkit"; -NSAppleMusicUsageDescription = "The toolkit needs access to your media library to acquire music"; -NSCameraUsageDescription = "The toolkit needs access to your camera to capture video"; -NSMicrophoneUsageDescription = "The toolkit needs access to your mic to capture audio"; -NSPhotoLibraryAddUsageDescription = "The toolkit needs access your photo library to save edited files."; -NSPhotoLibraryUsageDescription = "The toolkit needs access to your photo library to edit videos"; -"UILaunchStoryboardName" = "LaunchScreen_en"; diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoom.h b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoom.h deleted file mode 100644 index fff9a44f..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoom.h +++ /dev/null @@ -1,728 +0,0 @@ -/* - * Module: MLVBLiveRoom - * - * Function: 腾讯云移动直播 - 连麦直播间(MLVBLiveRoom) - * - */ - -#import -#import -#import "MLVBLiveRoomDelegate.h" -#import "MLVBLiveRoomDef.h" -#import "RoomUtil.h" -#import "TXBeautyManager.h" - -#define MLVB_DEPRECAETD_BEAUTY_API __deprecated_msg("Use getBeautyManager instead.") - -/** 腾讯云移动直播 - 连麦直播间 - * - * 基于腾讯云直播(LVB)、点播(VOD) 和 云通讯(IM)三大 PAAS 服务组合而成,支持: - * - * - 主播创建新的直播间开播,观众进入直播间观看。 - * - 主播和观众进行视频连麦互动。 - * - 两个不同房间的主播 PK 互动。 - * - 每一个直播间都有一个不限制房间人数的聊天室,支持发送各种文本消息和自定义消息,自定义消息可用于实现弹幕、点赞和礼物。 - * - * 连麦直播间(MLVBLiveRoom)是一个开源的 Class,依赖两个腾讯云的闭源 SDK: - * - * - LiteAVSDK: 使用了其中的 TXLivePusher 和 TXLivePlayer 两个组件,前者用于推流,后者用于拉流。 - * - IM SDK: 使用 IM SDK 的 AVChatroom 用于实现直播聊天室的功能,同时,主播间的连麦流程也是依靠 IM 消息串联起来的。 - * - * 参考文档:[直播连麦(LiveRoom)](https://cloud.tencent.com/document/product/454/14606) - */ -@interface MLVBLiveRoom : NSObject - - -///////////////////////////////////////////////////////////////////////////////// -// -// MLVBLiveRoom 基础函数 -// -///////////////////////////////////////////////////////////////////////////////// - -#pragma mark - MLVBLiveRoom 基础函数 -/// @name SDK 基础函数 -/// @{ - -/** - * 获取 MLVBLiveRoom 单例对象 - * - * @return MLVBLiveRoom 实例 - * - * @note 可以调用 MLVBLiveRoom#destroySharedInstance() 销毁单例对象 - */ -+ (instancetype)sharedInstance; - -/** - * 销毁 MLVBLiveRoom 单例对象 - * - * @note 销毁实例后,外部缓存的 MLVBLiveRoom 实例不能再使用,需要重新调用 MLVBLiveRoom#sharedInstance 获取新实例 - */ -+ (void)destorySharedInstance; - -/** - * MLVBLiveRoom 事件回调 - * 您可以通过 MLVBLiveRoomDelegate 获得 MLVBLiveRoom 的各种状态通知 - * - * @note 默认是在 Main Queue 中回调,如果需要自定义回调线程,可使用 delegateQueue。 - */ -@property (nonatomic, weak) id delegate; - -/** - * 设置驱动回调函数的 GCD 队列 - */ -@property (nonatomic, copy) dispatch_queue_t delegateQueue; - -/** - * 登录 - * - * @param loginInfo 登录信息 - * @param completion 登录结果回调 - */ -- (void)loginWithInfo:(MLVBLoginInfo *)loginInfo completion:(void(^)(int errCode, NSString *errMsg))completion; - -/** - * 登出 - */ --(void)logout; - - -/** - * 修改个人信息 - * - * @param userName 昵称 - * @param avatarURL 头像地址 - */ --(void)setSelfProfile:(NSString *)userName avatarURL:(NSString*)avatarURL completion:(void(^)(int code, NSString *msg))completion; - -/// @} - - -///////////////////////////////////////////////////////////////////////////////// -// -// 房间相关接口函数 -// -///////////////////////////////////////////////////////////////////////////////// - -#pragma mark - 房间相关接口函数 -/// @name 房间相关接口函数 -/// @{ - -/** - * 获取房间列表 - * - * 该接口支持分页获取房间列表,可以用 index 和 count 两个参数控制列表分页的逻辑, - * - index = 0 & count = 10代表获取第一页的10个房间。 - * - index = 11 & count = 10代表获取第二页的10个房间。 - * - * @param index 房间开始索引,从0开始计算。 - * @param count 希望后台返回的房间个数。 - * @param completion 获取房间列表的结果回调。 - */ -- (void)getRoomList:(int)index count:(int)count completion:(void(^)(int errCode, NSString *errMsg, NSArray *roomInfoArray))completion; - -/** - * 获取观众列表 - * - * 当有观众进房时,后台会将其信息加入到指定房间的观众列表中,调入该函数即可返回指定房间的观众列表 - * - * @note 观众列表最多只保存30人,因为对于常规的 UI 展示来说这已经足够,保存更多除了浪费存储空间,也会拖慢列表返回的速度。 - * - * @param roomID 房间标识。 - * @param completion 获取观众列表的结果回调。 - */ -- (void)getAudienceList:(NSString *)roomID completion:(void(^)(int errCode, NSString *errMsg, NSArray *audienceInfoArray))completion; - - -/** - * 创建房间(主播调用) - * - * 主播开播的正常调用流程是: - * 1.【主播】调用 startLocalPreview() 打开摄像头预览,此时可以调整美颜参数。 - * 2.【主播】调用 createRoom 创建直播间,房间创建成功与否会通过 completion 通知给主播。 - * - * @param roomID 房间标识,推荐做法是用主播的 userID 作为房间的 roomID,这样省去了后台映射的成本。room ID 可以填空,此时由后台生成。 - * @param roomInfo 房间信息(非必填),用于房间描述的信息,比如房间名称,允许使用 JSON 格式作为房间信息。 - * @param completion 创建房间的结果回调 - */ -- (void)createRoom:(NSString *)roomID roomInfo:(NSString *)roomInfo completion:(void(^)(int errCode, NSString *errMsg))completion; - -/** - * 进入房间(观众调用) - * - * 观众观看直播的正常调用流程是: - * 1.【观众】调用 getRoomList() 刷新最新的直播房间列表,并通过 completion 回调拿到房间列表。 - * 2.【观众】选择一个直播间以后,调用 enterRoom() 进入该房间。 - * - * @param roomID 房间标识 - * @param view 承载视频画面的控件 - * @param completion 进入房间的结果回调 - * - */ -- (void)enterRoom:(NSString *)roomID view:(UIView *)view completion:(void(^)(int errCode, NSString *errMsg))completion; - -/** - * 离开房间 - * - * @param completion 离开房间的结果回调 - */ -- (void)exitRoom:(void(^)(int errCode, NSString *errMsg))completion; - -/** - * 设置当前房间的扩展信息字段 - * - * 有时候您需要为当前房间设置一些扩展字段,比如“点赞人数”、“是否正在连麦”等等,这些字段我们很难全都预先定义好,所以提供了如下三种操作接口: - * - SET:设置,value 可以是数值或者字符串,比如“是否正在连麦”等。 - * - INC:增加,value 只能是整数,比如“点赞人数”,“人气指数”等,都可以使用该操作接口。 - * - DEC:减少,value 只能是整数,比如“点赞人数”,“人气指数”等,都可以使用该操作接口。 - * - * @param op 执行动作 - * @param key 自定义键 - * @param value 值,可选类型为 NSNumber 或者 NSString - * @param completion 操作完成的回调 - * - * @note op 为 MLVBCustomFieldOpSet 或者 MLVBCustomFieldOpDec 时,value 需要是一个数字 - */ -- (void)setCustomInfo:(MLVBCustomFieldOp)op key:(NSString *)key value:(id)value completion:(void(^)(int errCode, NSString *custom))completion; - -/** - * 获取当前房间的扩展信息字段 - * - * @param completion 获取自定义值回调 - */ -- (void)getCustomInfo:(void(^)(int errCode, NSString *errMsg, NSDictionary *customInfo))completion; - -/// @} - - - -///////////////////////////////////////////////////////////////////////////////// -// -// 主播和观众连麦 -// -///////////////////////////////////////////////////////////////////////////////// - -#pragma mark - 主播和观众连麦 -/// @name 主播和观众连麦 -/// @{ - -/** - * 观众请求连麦 - * - * 主播和观众的连麦流程可以简单描述为如下几个步骤: - * 1. 【观众】调用 requestJoinAnchor 向主播发起连麦请求。 - * 2. 【主播】会收到 MLVBLiveRoomDelegate#onRequestJoinAnchor 的回调通知。 - * 3. 【主播】调用 reponseJoinAnchor 确定是否接受观众的连麦请求。 - * 4. 【观众】会收到 requestJoinAnchor 传入的回调通知,可以得知请求是否被同意。 - * 5. 【观众】如果请求被同意,则调用 startLocalPreview 开启本地摄像头,如果 App 还没有取得摄像头和麦克风权限,会触发 UI 提示。 - * 6. 【观众】然后调用 joinAnchor 正式进入连麦状态。 - * 7. 【主播】一旦观众进入连麦状态,主播就会收到 MLVBLiveRoomDelegate#onAnchorEnter 通知。 - * 8. 【主播】主播调用 startRemoteView 就可以看到连麦观众的视频画面。 - * 9. 【观众】如果直播间里已经有其他观众正在跟主播进行连麦,那么新加入的这位连麦观众也会收到 MLVBLiveRoomDelegate#onAnchorJoin 通知,用于展示(startRemoteView)其他连麦者的视频画面。 - * - * @param reason 连麦原因 - * @param completion 主播响应回调 - * @see MLVBLiveRoomDelegate#onRequestJoinAnchor(AnchorInfo, String) - */ -- (void)requestJoinAnchor:(NSString *)reason completion:(void(^)(int errCode, NSString *errMsg))completion; - -/** - * 主播处理连麦请求 - * - * 主播在收到 MLVBLiveRoomDelegate#onRequestJoinAnchor() 回调之后会需要调用此接口来处理观众的连麦请求。 - * - * @param userID 观众 ID - * @param agree YES:同意;NO:拒绝。 - * @param reason 同意/拒绝连麦的原因描述。 - */ -- (void)responseJoinAnchor:(NSString *)userID agree:(BOOL)agree reason:(NSString *)reason; - -/** - * 进入连麦状态 - * - * 进入连麦成功后,主播和其他连麦观众会收到 MLVBLiveRoomDelegate#onAnchorEnter 通知 - * - * @param completion 进入连麦的结果回调 - */ -- (void)joinAnchor:(void(^)(int errCode, NSString *errMsg))completion; - -/** - * 观众退出连麦 - * - * 退出连麦成功后,主播和其他连麦观众会收到 MLVBLiveRoomDelegate#onAnchorExit 通知 - * - * @param completion 退出连麦的结果回调 - */ -- (void)quitJoinAnchor:(void(^)(int errCode, NSString *errMsg))completion; - -/** - * 主播踢除连麦观众 - * - * 主播调用此接口踢除连麦观众后,被踢连麦观众会收到 MLVBLiveRoomDelegate#onKickoutJoinAnchor 回调通知 - * - * @param userID 连麦小主播 ID - * - * @see MLVBLiveRoomDelegate#onKickoutJoinAnchor() - */ -- (void)kickoutJoinAnchor:(NSString *)userID; -/// @} - -#pragma mark - 主播跨房间 PK -/// @name 主播跨房间 PK -/// @{ - -/** - * 请求跨房 PK - * - * 主播和主播之间可以跨房间 PK,两个正在直播中的主播 A 和 B,他们之间的跨房 PK 流程如下: - * 1. 【主播 A】调用 requestRoomPK() 向主播 B 发起连麦请求。 - * 2. 【主播 B】会收到 MLVBLiveRoomDelegate#onRequestRoomPK(AnchorInfo) 回调通知。 - * 3. 【主播 B】调用 responseRoomPK() 确定是否接受主播 A 的 PK 请求。 - * 4. 【主播 B】如果接受了主播 A 的要求,可以直接调用 startRemoteView() 来显示主播 A 的视频画面。 - * 5. 【主播 A】会通过传入的 completion 收到回调通知,可以得知请求是否被同意。 - * 6. 【主播 A】如果请求被同意,则可以调用 startRemoteView() 显示主播 B 的视频画面。 - * - * @param userID 被邀约主播 ID - * @param completion 请求跨房 PK 的结果回调 - * - * @see MLVBLiveRoomDelegate#onRequestRoomPK(AnchorInfo) - */ -- (void)requestRoomPK:(NSString *)userID completion:(void(^)(int errCode, NSString *errMsg, NSString *streamUrl))completion; - -/** - * 响应跨房 PK 请求 - * - * 主播响应其他房间主播的 PK 请求,发起 PK 请求的主播会收到 MLVBLiveRoomDelegate.onRequestRoomPK 回调通知。 - * - * @param anchor 发起 PK 请求的主播 - * @param agree YES:同意;NO:拒绝 - * @param reason 同意或拒绝 PK 的原因描述。 - */ -- (void)responseRoomPK:(MLVBAnchorInfo *)anchor agree:(BOOL)agree reason:(NSString *)reason; - -/** - * 退出跨房 PK - * - * 当两个主播中的任何一个退出跨房 PK 状态后,另一个主播会收到 MLVBLiveRoomDelegate#onQuitRoomPK 回调通知。 - * - * @param completion 退出跨房 PK 的结果回调 - */ -- (void)quitRoomPK:(void(^)(int errCode, NSString *errMsg))completion; -/// @} - - -///////////////////////////////////////////////////////////////////////////////// -// -// 视频相关接口函数 -// -///////////////////////////////////////////////////////////////////////////////// - -#pragma mark - 视频相关接口函数 -/// @name 视频相关接口函数 -/// @{ - -/** - * 开启本地视频的预览画面 - * - * @param frontCamera YES:前置摄像头;NO:后置摄像头。 - * @param view 承载视频画面的控件 - */ -- (void)startLocalPreview:(BOOL)frontCamera view:(UIView *)view; - -/** - * 停止本地视频采集及预览 - */ -- (void)stopLocalPreview; - -/** - * 启动渲染远端视频画面 - * - * @param anchorInfo 对方的用户信息 - * @param view 承载视频画面的控件 - * @param onPlayBegin 播放器开始回调 - * @param onPlayError 播放出错回调 - * @param onPlayEvent 其它播放事件回调 - * - * @note 在 onUserVideoAvailable 回调时,调用这个接口 - */ -- (void)startRemoteView:(MLVBAnchorInfo *)anchorInfo view:(UIView *)view onPlayBegin:(IPlayBegin)onPlayBegin onPlayError:(IPlayError)onPlayError playEvent:(IPlayEventBlock)onPlayEvent; - -/** - * 停止渲染远端视频画面 - * - * @param anchor 对方的用户 - */ -- (void)stopRemoteView:(MLVBAnchorInfo *)anchor; - -/** - * 设置观众端镜像效果 - * - * 由于前置摄像头采集的画面是取自手机的观察视角,如果将采集到的画面直接展示给观众,是完全没有问题的。 - * 但如果将采集到的画面也直接显示给主播,则会跟主播照镜子时的体验完全相反,会让主播感觉到很奇怪。 - * 因此,SDK 会默认开启本地摄像头预览画面的镜像效果,让主播直播时跟照镜子时保持一个体验效果。 - * - * setMirror 所影响的则是观众端看到的视频效果,如果想要保持观众端看到的效果跟主播端保持一致,需要开启镜像; - * 如果想要让观众端看到正常的未经处理过的画面(比如主播弹吉他的时候有类似需求),则可以关闭镜像。 - * - * @note 仅当前使用前置摄像头时,setMirror 接口才会生效,在使用后置摄像头时此接口无效。 - * - * @param isMirror YES:播放端看到的是镜像画面;NO:播放端看到的是非镜像画面。 - */ -- (void)setMirror:(BOOL)isMirror; - -/// @} - -///////////////////////////////////////////////////////////////////////////////// -// -// 音频相关接口函数 -// -///////////////////////////////////////////////////////////////////////////////// - -#pragma mark - 音频相关接口函数 -/// @name 音频相关接口函数 -/// @{ - -/** - * 是否屏蔽本地音频 - * - * @param mute YES:屏蔽;NO:开启 - */ -- (void)muteLocalAudio:(BOOL)mute; - -/** - * 设置指定用户是否静音 - * - * @param userID 对方的用户标识 - * @param mute YES:静音;NO:非静音 - */ -- (void)muteRemoteAudio:(NSString *)userID mute:(BOOL) mute; - -/** - * 设置所有远端用户是否静音 - * - * @param mute YES:静音;NO:非静音 - */ --(void)muteAllRemoteAudio:(BOOL)mute; - -/// @} - -///////////////////////////////////////////////////////////////////////////////// -// -// 摄像头相关接口函数 -// -///////////////////////////////////////////////////////////////////////////////// - -#pragma mark - 摄像头相关接口函数 -/// @name 摄像头相关接口函数 -/// @{ -/** - * 切换前后摄像头 - */ -- (void)switchCamera; - -/** - * 主播屏蔽摄像头期间需要显示的等待图片 - * - * 当主播屏蔽摄像头,或者由于 App 切入后台无法使用摄像头的时候,我们需要使用一张等待图片来提示观众“主播暂时离开,请不要走开”。 - * - * @param image 等待图片 - */ -- (void)setCameraMuteImage:(UIImage*)image; - -/** - * 调整焦距 - * - * @param distance 焦距大小,取值范围1 - 5 - * - * @note 当为1的时候为最远视角(正常镜头),当为5的时候为最近视角(放大镜头),这里最大值推荐为5,超过5后视频数据会变得模糊不清 - */ -- (void)setZoom:(CGFloat)distance; - - -/** - * 打开闪关灯。 - * - * @param bEnable YES:打开;NO:关闭 - * @return YES:打开成功;NO:打开失败 - */ -- (BOOL)enableTorch:(BOOL)bEnable; - -/** - * 设置手动对焦区域 - * - * SDK 默认使用摄像头自动对焦功能,您也可以通过 TXLivePushConfig 中的 touchFocus 选项关闭自动对焦,改用手动对焦。 - * 改用手动对焦之后,需要由主播自己点击摄像头预览画面上的某个区域,来手动指导摄像头对焦。 - * - */ -- (void)setFocusPosition:(CGPoint)touchPoint; - -/// @} - -#pragma mark - 美颜滤镜相关接口函数 -/// @name 美颜滤镜相关接口函数 -/// @{ - -/** - * 获取美颜管理对象 - * - * 通过美颜管理,您可以使用以下功能: - * - 设置"美颜风格"、“美白”、“红润”、“大眼”、“瘦脸”、“V脸”、“下巴”、“短脸”、“小鼻”、“亮眼”、“白牙”、“祛眼袋”、“祛皱纹”、“祛法令纹”等美容效果。 - * - 调整“发际线”、“眼间距”、“眼角”、“嘴形”、“鼻翼”、“鼻子位置”、“嘴唇厚度”、“脸型” - * - 设置人脸挂件(素材)等动态效果 - * - 添加美妆 - * - 进行手势识别 - */ -- (TXBeautyManager *)getBeautyManager; - -/** - * 设置美颜、美白、红润效果级别 - * - * @param beautyStyle 美颜风格,三种美颜风格:0 :光滑;1:自然;2:天天 P 图版美颜(企业版有效,普通版本设置此选项无效)。 - * @param beautyLevel 美颜级别,取值范围 0 - 9; 0 表示关闭, 1 - 9值越大,效果越明显。 - * @param whitenessLevel 美白级别,取值范围 0 - 9; 0 表示关闭, 1 - 9值越大,效果越明显。 - * @param ruddinessLevel 红润级别,取值范围 0 - 9; 0 表示关闭, 1 - 9值越大,效果越明显。 - */ -- (void)setBeautyStyle:(TX_Enum_Type_BeautyStyle)beautyStyle - beautyLevel:(float)beautyLevel - whitenessLevel:(float)whitenessLevel - ruddinessLevel:(float)ruddinessLevel MLVB_DEPRECAETD_BEAUTY_API; - -/** - * 设置指定素材滤镜特效 - * - * @param image 指定素材,即颜色查找表图片。 - * - * @note 滤镜素材请使用 png 格式,不能使用 jpg 格式,友情提示,Windows 里直接改文件的后缀名不能改变图片的格式,需要用 Photoshop 进行转换。 - */ -- (void)setFilter:(UIImage *)image; - -/** - * 设置滤镜浓度 - * - * @param specialValue 从0到1,越大滤镜效果越明显,默认取值0.5 - */ -- (void)setSpecialRatio:(float)specialValue; - -/** - * 设置大眼级别(企业版有效,普通版本设置此参数无效) - * - * @param eyeScaleLevel 大眼等级取值为 0 - 9。取值为0时代表关闭美颜效果。默认值:0 - */ -- (void)setEyeScaleLevel:(float)eyeScaleLevel MLVB_DEPRECAETD_BEAUTY_API; - -/** - * 设置瘦脸级别(企业版有效,普通版本设置此参数无效) - * - * @param faceScaleLevel 瘦脸级别取值范围 0 - 9; 0 表示关闭 1 - 9值越大 效果越明显。 - */ -- (void)setFaceScaleLevel:(float)faceScaleLevel MLVB_DEPRECAETD_BEAUTY_API; - -/** - * 设置 V 脸级别(企业版有效,其它版本设置此参数无效)。 - * - * @param faceVLevel V 脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setFaceVLevel:(float)faceVLevel MLVB_DEPRECAETD_BEAUTY_API; - -/** - * 设置下巴拉伸或收缩(企业版有效,其它版本设置此参数无效)。 - * - * @param chinLevel 下巴拉伸或收缩级别,取值范围 -9 - 9;0 表示关闭,小于0表示收缩,大于0表示拉伸。 - */ -- (void)setChinLevel:(float)chinLevel MLVB_DEPRECAETD_BEAUTY_API; - -/** - * 设置短脸级别(企业版有效,其它版本设置此参数无效)。 - * - * @param faceShortlevel 短脸级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setFaceShortLevel:(float)faceShortlevel MLVB_DEPRECAETD_BEAUTY_API; - -/** - * 设置瘦鼻级别(企业版有效,其它版本设置此参数无效)。 - * - * @param noseSlimLevel 瘦鼻级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 - */ -- (void)setNoseSlimLevel:(float)noseSlimLevel MLVB_DEPRECAETD_BEAUTY_API; - -/** - * 设置绿幕背景视频(企业版有效,其它版本设置此参数无效)。 - * - * @note 此处的绿幕功能并非智能抠背,它需要被拍摄者的背后有一块绿色的幕布来辅助产生特效。 - * - * @param file 视频文件路径。支持 MP4;nil 表示关闭特效。 - */ -- (void)setGreenScreenFile:(NSURL *)file; - -/** - * 选择使用哪一款 AI 动效挂件(企业版有效,其它版本设置此参数无效)。 - * - * @param tmplName 动效名称 - * @param tmplDir 动效所在目录 - */ -- (void)selectMotionTmpl:(NSString *)tmplName inDir:(NSString *)tmplDir MLVB_DEPRECAETD_BEAUTY_API; -/// @} - - -///////////////////////////////////////////////////////////////////////////////// -// -// 消息发送接口函数 -// -///////////////////////////////////////////////////////////////////////////////// - -#pragma mark - 消息发送接口函数 -/// @name 消息发送接口函数 -/// @{ - -/** - * 发送文本消息 - * - * @param message 文本消息 - * @param completion 发送结果回调 - * - * @see MLVBLiveRoomDelegate#onRecvRoomTextMsg - */ -- (void)sendRoomTextMsg:(NSString *)message completion:(void (^)(int errCode, NSString *errMsg))completion; - -/** - * 发送自定义文本消息 - * - * @param cmd 命令字,由开发者自定义,主要用于区分不同消息类型 - * @param message 文本消息 - * @param completion 发送结果回调 - * - * @see MLVBLiveRoomDelegate#onRecvRoomCustomMsg - */ -- (void)sendRoomCustomMsg:(NSString *)cmd msg:(NSString *)message completion:(void (^)(int errCode, NSString *errMsg))completion;; -/// @} - - -///////////////////////////////////////////////////////////////////////////////// -// -// 背景混音相关接口函数 -// -///////////////////////////////////////////////////////////////////////////////// - -#pragma mark - 背景混音相关接口函数 -/// @name 背景混音相关接口函数 -/// @{ - -/** - * 播放背景音乐 - * - * @param path 音乐文件路径,一定要是 app 对应的 document 目录下面的路径,否则文件会读取失败。 - * - * @return YES:成功;NO:失败。 - */ -- (BOOL)playBGM:(NSString *)path; - -/** - * 播放背景音乐(高级版本) - * - * @param path 音乐文件路径,一定要是 app 对应的 document 目录下面的路径,否则文件会读取失败。 - * @param beginNotify 音乐播放开始的回调通知。 - * @param progressNotify 音乐播放的进度通知,单位毫秒。 - * @param completeNotify 音乐播放结束的回调通知。 - * - * @return YES:成功;NO:失败。 - */ -- (BOOL)playBGM:(NSString *)path - withBeginNotify:(void (^)(NSInteger errCode))beginNotify -withProgressNotify:(void (^)(NSInteger progressMS, NSInteger durationMS))progressNotify - andCompleteNotify:(void (^)(NSInteger errCode))completeNotify; - -/** - * 停止播放背景音乐 - */ -- (BOOL)stopBGM; - -/** - * 暂停播放背景音乐 - */ -- (BOOL)pauseBGM; - -/** - * 继续播放背景音乐 - */ -- (BOOL)resumeBGM; - -/** - * 获取音乐文件总时长,单位毫秒 - * - * @param path 音乐文件路径,如果 path 为 nil,那么返回当前正在播放的背景音乐时长 - * - - * @return 成功返回时长,单位毫秒,失败返回-1 - */ -- (int)getMusicDuration:(NSString *)path; - -/** - * 设置麦克风的音量大小,播放背景音乐混音时使用,用来控制麦克风音量大小 - * - * @param volume 音量大小,1.0 为正常音量,建议值为0.0 - 2.0。 - */ -- (BOOL)setMicVolume:(float)volume; - - - - -/** - * 设置背景音乐的音量大小,播放背景音乐混音时使用,用来控制背景音音量大小 - * - * @param volume 音量大小,1.0为正常音量,建议值为0.0 - 2.0。 - */ -- (BOOL)setBGMVolume:(float)volume; - - -/** - * 调整背景音乐的音调高低 - * - * @param pitch 音调,默认值是0.0f,范围是:-1 - 1 之间的浮点数。 - * - * @return YES:成功;NO:失败。 - */ -- (BOOL)setBGMPitch:(float)pitch; - -/** - * 设置背景音的播放位置 - * - * @param position 播放位置,默认值是0;范围是 0 - 1。 - */ -- (BOOL)setBGMPosition:(float)position; - -/** - * 设置混响效果 - * - * @param reverbType 混响类型,详见 “TXLiveSDKTypeDef.h” 中的 TXReverbType 定义。 - * @return YES:成功;NO:失败。 - */ -- (BOOL)setReverbType:(TXReverbType)reverbType; - -/** - * 设置变声类型 - * - * @param voiceChangerType 混响类型,详见 “TXLiveSDKTypeDef.h” 中的 voiceChangerType 定义。 - * @return YES:成功;NO:失败。 - */ -- (BOOL)setVoiceChangerType:(TXVoiceChangerType)voiceChangerType; - -/// @} - - -///////////////////////////////////////////////////////////////////////////////// -// -// 调试相关接口函数 -// -///////////////////////////////////////////////////////////////////////////////// - -#pragma mark - 调试相关接口函数 -/// @name 调试相关接口函数 -/// @{ - -/** - * 在渲染 view 上显示播放或推流状态统计及事件消息浮层 - */ -- (void)showVideoDebugLog:(BOOL)isShow; - -/// @} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoom.m b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoom.m deleted file mode 100644 index 2561877c..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoom.m +++ /dev/null @@ -1,2338 +0,0 @@ -// -// MLVBLiveRoom.m -// TXLiteAVDemo -// -// Created by lijie on 2017/10/30. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import "MLVBLiveRoom.h" -#import "TXLiveSDKTypeDef.h" -#import "TXLivePush.h" -#import "TXLivePlayer.h" -#import "AFNetworking.h" -#import "IMMsgManager.h" -#import "RoomUtil.h" -#import -#import "AppLocalized.h" - -@interface MLVBProxy : NSProxy { - MLVBLiveRoom *_object; -} -- (instancetype)initWithInstance:(MLVBLiveRoom *)cloud; -- (void)destroy; -@end - -// 业务服务器API -#define ServerAddr @"https://liveroom.qcloud.com/weapp/live_room" - -#define kHttpServerAddr_GetRoomList @"get_room_list" -#define kHttpServerAddr_GetAudienceList @"get_audiences" -#define kHttpServerAddr_GetAnchorUrl @"get_anchor_url" -#define kHttpServerAddr_GetAnchors @"get_anchors" -#define kHttpServerAddr_CreateRoom @"create_room" -#define kHttpServerAddr_AddAnchor @"add_anchor" -#define kHttpServerAddr_DeleteAnchor @"delete_anchor" -#define kHttpServerAddr_AddAudience @"add_audience" -#define kHttpServerAddr_DeleteAudience @"delete_audience" -#define kHttpServerAddr_AnchorHeartBeat @"anchor_heartbeat" -#define kHttpServerAddr_Logout @"logout" -#define kHttpServerAddr_MergeStream @"merge_stream" -#define kHttpServerAddr_SetCustomField @"set_custom_field" -#define kHttpServerAddr_GetCustomInfo @"get_custom_info" - -static NSString * const RespCodeKey = @"code"; - -typedef NS_ENUM(int, RoomRole) { - RoomRoleCreator = 1, - RoomRoleMinor = 2, - RoomRoleMember = 3 -}; - -typedef NS_ENUM(NSUInteger, StreamMixMode) { - StreamMixModeJoinAnchor, - StreamMixModePK -}; - -/// 连麦请求超时等待时间 -static const NSTimeInterval JoinAnchorRequestTimeout = 10; -/// PK请求超时等待时间 -static const NSTimeInterval PKRequestTimeout = 10; - -@interface MLVBLiveRoom() { - TXLivePush *_livePusher; - NSMutableDictionary *_playerWrapperDic; // [userID, RoomLivePlayerWrapper] - NSArray *_roomList; // 保存最近一次拉回的房间列表,这里仅仅使用里面的房间混流地址和创建者信息 - NSMutableArray *_audienceList; // 保存最近一次拉回的房间观众列表 - AFHTTPSessionManager *_httpSession; - AFNetworkReachabilityManager *_reachabilityManager; - NSString *_serverDomain; // 保存业务服务器域名 - NSMutableDictionary *_apiAddr; // 保存业务服务器相关的rest api - - MLVBLoginInfo *_currentUser; - NSString *_pushUrl; - NSString *_accUrl; - - dispatch_source_t _heartBeatTimer; - dispatch_queue_t _queue; - - RoomRole _roomRole; // 房间角色,创建者(大主播):1 小主播:2 普通观众:3 - BOOL _created; // 标记是否已经创建过房间 - int _videoQuality; // 保存当前推流的视频质量 - int _renderMode; - BOOL _inBackground; - StreamMixMode _mixMode; -} -@property (nonatomic, strong) MLVBAnchorInfo *pkAnchor; -@property (atomic, strong) IMMsgManager * msgMgr; -/// getPushers 会返回一个code, 作为etag, 心跳时变了就返回pusher列表 -@property (nonatomic, strong) NSNumber *roomStatusCode; -@property (nonatomic, copy) void(^createRoomCompletion)(int errCode, NSString *reason); -@property (nonatomic, copy) void(^joinAnchorCompletion)(int errCode, NSString *reason); -@property (nonatomic, copy) void(^requestAnchorCompletion)(int errCode, NSString *reason); - -@property (nonatomic, copy) IRequestPKCompletionHandler requestPKCompletion; - -/// 注意这个RoomInfo里面的anchorInfoArray不包含自己 -@property (nonatomic, strong) MLVBRoomInfo *roomInfo; -@property (nonatomic, copy) NSString *roomCreatorPlayerURL; -@end - -static MLVBProxy *sharedInstance = nil; -static pthread_mutex_t sharedInstanceLock; - -@implementation MLVBLiveRoom -+ (void)load { - pthread_mutex_init(&sharedInstanceLock, NULL); -} - -+ (instancetype)sharedInstance { - if (sharedInstance == nil) { - pthread_mutex_lock(&sharedInstanceLock); - if (sharedInstance == nil) { - MLVBLiveRoom *liveRoom = [[MLVBLiveRoom alloc] initInternal]; - sharedInstance = [[MLVBProxy alloc] initWithInstance:liveRoom]; - NSLog(@"sharedInstance<%p> is created", sharedInstance); - } - pthread_mutex_unlock(&sharedInstanceLock); - } - return (MLVBLiveRoom*)sharedInstance; -} - -+ (void)destorySharedInstance { - pthread_mutex_lock(&sharedInstanceLock); - if (sharedInstance) { - [sharedInstance destroy]; - NSLog(@"sharedInstance<%p> is destroyed", sharedInstance); - sharedInstance = nil; - } - pthread_mutex_unlock(&sharedInstanceLock); -} - -- (instancetype)initInternal { - if (self = [super init]) { - _serverDomain = ServerAddr; - [self initLivePusher]; - _playerWrapperDic = [[NSMutableDictionary alloc] init]; - _delegateQueue = dispatch_get_main_queue(); - _roomInfo = [[MLVBRoomInfo alloc] init]; - _audienceList = [[NSMutableArray alloc] init]; - _httpSession = [AFHTTPSessionManager manager]; - _reachabilityManager = [AFNetworkReachabilityManager sharedManager]; - [_reachabilityManager startMonitoring]; - [_httpSession setRequestSerializer:[AFJSONRequestSerializer serializer]]; - [_httpSession setResponseSerializer:[AFJSONResponseSerializer serializer]]; - [_httpSession.requestSerializer willChangeValueForKey:@"timeoutInterval"]; - _httpSession.requestSerializer.timeoutInterval = 5.0; - [_httpSession.requestSerializer didChangeValueForKey:@"timeoutInterval"]; - _httpSession.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html", @"text/xml", @"text/plain", nil]; - _queue = dispatch_queue_create("LiveRoomQueue", DISPATCH_QUEUE_SERIAL); - [_httpSession setCompletionQueue:_queue]; - - _created = NO; - _inBackground = NO; - _renderMode = -1; - - NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; - [center addObserver:self selector:@selector(willResignActive:) name:UIApplicationWillResignActiveNotification object:nil]; - [center addObserver:self selector:@selector(didBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil]; - } - return self; -} - -- (void)initLivePusher { - if (_livePusher == nil) { - TXLivePushConfig *config = [[TXLivePushConfig alloc] init]; - config.pauseImg = [UIImage imageNamed:@"pause_publish.jpg"]; - config.pauseFps = 15; - config.pauseTime = 300; - - _videoQuality = VIDEO_QUALITY_HIGH_DEFINITION; - _livePusher = [[TXLivePush alloc] initWithConfig:config]; - _livePusher.delegate = self; - [_livePusher setVideoQuality:_videoQuality adjustBitrate:NO adjustResolution:NO]; - [_livePusher setLogViewMargin:UIEdgeInsetsMake(120, 10, 60, 10)]; - config.videoEncodeGop = 2; - [_livePusher setConfig:config]; - } -} - -- (void)dealloc -{ - [_msgMgr prepareToDealloc]; - [[NSNotificationCenter defaultCenter] removeObserver:self]; - [_httpSession invalidateSessionCancelingTasks:NO resetSession:NO]; - [self stopHeartBeat]; -} - -#pragma mark - -- (void)releaseLivePusher { - if (_livePusher) { - _livePusher.delegate = nil; - _livePusher = nil; - } -} - -- (void)asyncRun:(void(^)(MLVBLiveRoom *self))block { - __weak __typeof(self) wself = self; - dispatch_async(_queue, ^{ - __strong __typeof(wself) self = wself; - if (self) { - block(self); - } - }); -} - -#pragma mark - API Generator -- (NSString *)getApiAddr:(NSString *)api userID:(NSString*)userID token:(NSString*)token { - return [NSString stringWithFormat:@"%@/%@?userID=%@&token=%@", _serverDomain, api, userID, token]; -} - -// 保存所有server API -- (void)initApiAddr:(NSString*)userID token:(NSString*)token { - _apiAddr = [[NSMutableDictionary alloc] init]; - NSArray *apiList = @[ - kHttpServerAddr_GetRoomList - ,kHttpServerAddr_GetAudienceList - ,kHttpServerAddr_GetAnchorUrl - ,kHttpServerAddr_GetAnchors - ,kHttpServerAddr_CreateRoom - ,kHttpServerAddr_AddAnchor - ,kHttpServerAddr_DeleteAnchor - ,kHttpServerAddr_AnchorHeartBeat - ,kHttpServerAddr_AddAudience - ,kHttpServerAddr_DeleteAudience - ,kHttpServerAddr_MergeStream - ,kHttpServerAddr_GetCustomInfo - ,kHttpServerAddr_SetCustomField - ,kHttpServerAddr_Logout]; - - for (NSString *api in apiList) { - _apiAddr[api] = [self getApiAddr:api userID:userID token:token]; - } -} - -#pragma mark - SDK 基础函数 -/** - 1. Room登录 - 2. IM初始化及登录 - */ -- (void)loginWithInfo:(MLVBLoginInfo *)loginInfo completion:(void(^)(int, NSString*))completion { - __weak __typeof(self) weakSelf = self; - [self login:loginInfo.sdkAppID userID:loginInfo.userID userSig:loginInfo.userSig completion:^(int errCode, NSString *errMsg, NSString *userID, NSString *token, NSNumber *timestamp) { - __strong __typeof(weakSelf) self = weakSelf; - if (self == nil) return; - if (errCode == ROOM_SUCCESS) { - [self initApiAddr: loginInfo.userID token:token]; - - // 初始化userInfo - self->_currentUser = [loginInfo copy]; - // 初始化 RoomMsgMgr 并登录 - if (self->_msgMgr) { - self->_msgMgr.delegate = nil; - [self->_msgMgr logout:nil]; - [self->_msgMgr prepareToDealloc]; - } - self-> _msgMgr = [[IMMsgManager alloc] initWithConfig:loginInfo]; - [self->_msgMgr setDelegate:self]; - - ; - [self sendDebugMsg:LocalizeReplaceThreeCharacter(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.initIMSDKxxyyzz"), [NSString stringWithFormat:@"%d",loginInfo.sdkAppID] , [NSString stringWithFormat:@"%@",loginInfo.userID] , [NSString stringWithFormat:@"%@",[timestamp stringValue]])]; - - [self->_msgMgr loginWithCompletion:^(int errCode, NSString *errMsg) { - [weakSelf asyncRun:^(MLVBLiveRoom *self){ - [self sendDebugMsg:LocalizeReplace(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.imloginbackxxyy"), [NSString stringWithFormat:@"%d",errCode], [NSString stringWithFormat:@"%@",errMsg])]; - if (completion) { - if (errCode == 0) { - [self setSelfProfile:loginInfo.userName avatarURL:loginInfo.userAvatar completion:nil]; - completion(0, LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.loginsuccess")); - } else if (errCode != 0) { - completion(ROOM_ERR_IM_LOGIN, LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.loginfailed")); - } - } - }]; - }]; - self->_msgMgr.loginServerTime = [timestamp unsignedLongLongValue]; - } else { - [weakSelf sendDebugMsg: LocalizeReplace(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.initliveroomfailedxxyy"), [NSString stringWithFormat:@"%d",errCode], [NSString stringWithFormat:@"%@",errMsg])]; - completion(errCode, errMsg); - } - }]; -} - -/** - Room退出 - */ --(void)logout { - [self asyncRun:^(MLVBLiveRoom *self) { - if (self->_apiAddr == nil) { - return; - } - [self stopHeartBeat]; - __weak __typeof(self) weakSelf = self; - [self exitRoom:^(int errCode, NSString *errMsg) { - __strong __typeof(weakSelf) self = weakSelf; - if (!self) return; - // Room退出 - [self requestWithName:kHttpServerAddr_Logout params:nil completion:^(MLVBLiveRoom *self, int errCode, NSString *errMsg, NSDictionary *responseObject) { - NSLog(@"MLVBLiveRoom logout with code: %d, msg: %@", errCode, errMsg); - }]; - - self->_currentUser = nil; - self->_created = NO; - self->_msgMgr.delegate = nil; - [self->_msgMgr logout:nil]; - [self->_msgMgr prepareToDealloc]; - self->_msgMgr = nil; - self->_apiAddr = nil; - [self releaseLivePusher]; - [self->_playerWrapperDic removeAllObjects]; - self->_roomList = nil; - }]; - }]; -} - --(void)setSelfProfile:(NSString *)userName avatarURL:(NSString*)avatarURL completion:(void(^)(int code, NSString *msg))completion -{ - __weak __typeof(self) wself = self; - [_msgMgr setSelfProfile:userName avatarURL:avatarURL completion:^(int code, NSString *msg) { - if (code == 0) { - __strong __typeof(wself) self = wself; - if (self) { - self->_currentUser.userName = userName; - self->_currentUser.userAvatar = avatarURL; - } - } - }]; -} - -#pragma mark - 被踢 -- (void)onForceOffline { - [self.delegate onError:ROOM_ERR_IM_FORCE_OFFLINE errMsg:LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.imforcedoffline") extraInfo:nil]; -} - -#pragma mark - 前后台切换 -- (void)willResignActive:(NSNotification *)notification { - [_livePusher pausePush]; - _inBackground = YES; -} - -- (void)didBecomeActive:(NSNotification *)notification { - [_livePusher resumePush]; - - [self asyncRun:^(MLVBLiveRoom *self) { - [self->_playerWrapperDic enumerateKeysAndObjectsUsingBlock:^(NSString * _Nonnull key, RoomLivePlayerWrapper * _Nonnull wrapper, BOOL * _Nonnull stop) { - dispatch_async(dispatch_get_main_queue(), ^{ - [wrapper.player resume]; - }); - }]; - }]; - - _inBackground = NO; - - if (_livePusher && [_livePusher isPublishing]) { - [self updateAnchorList]; - } -} - -#pragma mark - 房间相关接口函数 -- (void)getRoomList:(int)index count:(int)count completion:(IGetRoomListCompletionHandler)completion { - [self asyncRun:^(MLVBLiveRoom *self) { - NSDictionary *params = @{@"cnt": @(count), @"index": @(index)}; - [self sendDebugMsg:LocalizeReplace(@"LiveLinkMicDemoOld.MLVBLiveRoom.requestgetliveroom", [NSString stringWithFormat:@"%d",index], [NSString stringWithFormat:@"%d",count])]; - [self requestWithName:kHttpServerAddr_GetRoomList params:params completion:^(MLVBLiveRoom *self, int errCode, NSString *errMsg, NSDictionary *responseObject) { - NSArray *roomList = [self parseRoomListFromResponse:responseObject]; - if (self) { - self->_roomList = roomList; - } - if (completion) { - if (errCode == 0) { - completion(errCode, errMsg, roomList); - } else { - completion(errCode, [NSString stringWithFormat:@"%@[%d]", errMsg, errCode], nil); - } - } - }]; - }]; -} - -- (void)onGroupMemberEnter:(NSString *)group user:(MLVBAudienceInfo *)audienceInfo { - [self asyncRun:^(MLVBLiveRoom *self) { - [self->_audienceList addObject:audienceInfo]; - dispatch_async(self.delegateQueue, ^{ - if ([self.delegate respondsToSelector:@selector(onAudienceEnter:)]) { - [self.delegate onAudienceEnter:audienceInfo]; - } - }); - }]; -} - -- (void)onGroupMemberLeave:(NSString *)group user:(MLVBAudienceInfo *)audienceInfo { - [self asyncRun:^(MLVBLiveRoom *self) { - [self->_audienceList removeObject:audienceInfo]; - dispatch_async(self.delegateQueue, ^{ - if ([self.delegate respondsToSelector:@selector(onAudienceExit:)]) { - [self.delegate onAudienceExit:audienceInfo]; - } - }); - }]; -} - -- (void)getAudienceList:(NSString *)roomID completion:(void(^)(int errCode, NSString *errMsg, NSArray *audienceInfoArray))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - if (self->_audienceList.count == 0) { - [self->_msgMgr getGroupMemberList:roomID completion:^(int code, NSString *msg, NSArray *members) { - if (code != 0) { - completion(code, msg, nil); - } else { - [self asyncRun:^(MLVBLiveRoom *self) { - [self->_audienceList setArray:members]; - }]; - completion(0, nil, members); - } - }]; - } else { - completion(0, 0, [self->_audienceList copy]); - } - }]; -} - -/** - 大主播 - 1. 在应用层调用startLocalPreview - 2. 请求kHttpServerAddr_GetAnchorUrl,获取推流地址 - 3. 开始推流 - 4. 在收到推流成功的事件后请求kHttpServerAddr_CreateRoom,获取roomID - 5. 加入IM Group (groupID就是第4步请求到的roomID) - */ -- (void)createRoom:(NSString *)roomID roomInfo:(NSString *)roomName completion:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - self->_roomRole = RoomRoleCreator; // 房间角色为创建者 - MLVBRoomInfo *roomInfo = [[MLVBRoomInfo alloc] init]; - roomInfo.roomID = roomID; - roomInfo.roomInfo = roomName; - roomInfo.roomCreator = self->_currentUser.userID; - self.roomInfo = roomInfo; - self.createRoomCompletion = completion; - [self getUrlAndPushing:completion]; - // onPushBegin 后创建IM房间并回调 - }]; -} - -- (RoomLivePlayerWrapper *)playerWrapperForUserID:(NSString *)userID { - RoomLivePlayerWrapper *playerWrapper = self->_playerWrapperDic[userID]; - if (!playerWrapper) { - playerWrapper = [[RoomLivePlayerWrapper alloc] init]; - playerWrapper.userID = userID; - playerWrapper.delegate = self; - [playerWrapper.player setRenderMode:RENDER_MODE_FILL_EDGE]; - - self->_playerWrapperDic[userID] = playerWrapper; - } - return playerWrapper; -} - -/** - 观众 - 1. 加入IM Group - 2. 播放房间的混流播放地址 - */ -- (void)enterRoom:(NSString *)roomID view:(UIView *)view completion:(void(^)(int errCode, NSString *errMsg))completion { - __weak __typeof(self) weakSelf = self; - - [self asyncRun:^(MLVBLiveRoom *self){ - self->_roomRole = RoomRoleMember; // 房间角色为普通观众 - self.roomInfo = [[MLVBRoomInfo alloc] init]; - self.roomInfo.roomID = roomID; - - NSString *groupID = roomID; - - [self->_msgMgr enterRoom:groupID completion:^(int errCode, NSString *errMsg) { - [weakSelf asyncRun:^(MLVBLiveRoom *self) { - [self sendDebugMsg:LocalizeReplace(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.joinimfinishxxyy"), [NSString stringWithFormat:@"%d",errCode], [NSString stringWithFormat:@"%@",errMsg])]; - if (errCode == 0) { - - // 找到当前房间 - MLVBRoomInfo *roomInfo = nil; - for (MLVBRoomInfo *info in self->_roomList) { - if ([info.roomID isEqualToString:roomID]) { - roomInfo = info; - break; - } - } - - if (roomInfo == nil) { - self.roomInfo = nil; - if (completion) { - NSString *message = LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.enterroomfailed"); - completion(ROOM_ERR_ENTER_ROOM, message); - } - return; - } - - - // 保存大主播ID和房间混流地址 - self.roomInfo = roomInfo; - - // 播放房间混流地址,注意这里是按直播模式播放 - RoomLivePlayerWrapper *playerWrapper = [self playerWrapperForUserID:self.roomInfo.roomCreator]; - playerWrapper.playErrorBlock = ^(int event, NSString *msg) { - dispatch_async(self.delegateQueue, ^{ - [self.delegate onError:event errMsg:LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.invalidplaybackaddress") extraInfo:nil]; - }); - }; - TXLivePlayer *player = playerWrapper.player; - - dispatch_async(dispatch_get_main_queue(), ^{ - TXLivePlayConfig *playConfig = [[TXLivePlayConfig alloc] init]; - playConfig.bAutoAdjustCacheTime = YES; - playConfig.minAutoAdjustCacheTime = 2.0f; - playConfig.maxAutoAdjustCacheTime = 2.0f; - [player setupVideoWidget:CGRectZero containView:view insertIndex:0]; - [player setConfig:playConfig]; - [player startPlay:self.roomInfo.mixedPlayURL type:[self getPlayType:self.roomInfo.mixedPlayURL]]; - [player setLogViewMargin:UIEdgeInsetsMake(120, 10, 60, 10)]; - }); - - // 作为普通观众,调用CGI:add_audience - NSError *parseError = nil; - NSData *jsonData = [NSJSONSerialization dataWithJSONObject:@{@"userName":self->_currentUser.userName, @"userAvatar":self->_currentUser.userAvatar} options:NSJSONWritingPrettyPrinted error:&parseError]; - NSString *userInfo = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; - [self doAddAudience:roomID userID:self->_currentUser.userID userInfo:userInfo completion:^(int errCode, NSString *errMsg) { - - }]; - - if (completion) { - completion(errCode, errMsg); - } - } - else { - if (completion) { - NSString *message = LocalizeReplaceXX(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.joinroomfailedxx"), [NSString stringWithFormat:@"%@",errMsg]); - completion(ROOM_ERR_ENTER_ROOM, message); - } - } - - }]; - }]; - }]; -} - -/** - 1. stopLocalPreview - 2. 调用stopPush - 3. 退出IM房间 - 4. 结束播放所有的流 - 5. 请求 kHttpServerAddr_DeleteAnchor - - 如果是普通观众,则只需要调用第3、4步 - */ -- (void)exitRoom:(void(^)(int errCode, NSString *errMsg))completion { - __weak __typeof(self) weakSelf = self; - [self asyncRun:^(MLVBLiveRoom *self){ - // 上层存在没有获取到roomID也调用exitRoom的情况 - if (!self.roomInfo.roomID) { - return; - } - - [self->_livePusher stopPush]; - if (self->_requestAnchorCompletion) { - self->_requestAnchorCompletion(ROOM_ERR_CANCELED, @"Exit Room"); - self->_requestAnchorCompletion = nil; - } - if (self->_requestPKCompletion) { - self->_requestPKCompletion(ROOM_ERR_CANCELED, @"Exit Room", nil); - self->_requestPKCompletion = nil; - } - if (self.joinAnchorCompletion) { - self.joinAnchorCompletion(ROOM_ERR_CANCELED, @"Exit Room"); - self.joinAnchorCompletion = nil; - } - if (self.createRoomCompletion) { - self.createRoomCompletion(ROOM_ERR_CANCELED, @"Exit Room"); - self.createRoomCompletion = nil; - } - - NSString *groupID = self.roomInfo.roomID; - IMMsgManager *IMManager = self->_msgMgr; - - if (self->_roomRole == RoomRoleCreator) { - // 解散IM群组 - [IMManager deleteGroupWithID:groupID completion:nil]; - } else { - [self notifyAnchorChange]; - // 退出IM群组 - [IMManager quitGroup:groupID completion:^(int errCode, NSString *errMsg) { - [weakSelf sendDebugMsg: LocalizeReplace(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.leaveimfinishxxyy"), [NSString stringWithFormat:@"%d",errCode],[NSString stringWithFormat:@"%@",errMsg])]; - }]; - } - - // 作为连麦者退出房间(不区分大、小主播、普通观众) - [self doDeleteAnchorWithRoomID:self.roomInfo.roomID userID:self->_currentUser.userID completion:completion]; - - // 作为普通观众退出 (不区分大、小主播) - [self doDeleteAudience:self.roomInfo.roomID userID:self->_currentUser.userID completion:nil]; - - - dispatch_async(dispatch_get_main_queue(), ^{ - // 关闭本地采集和预览 - [self stopLocalPreview]; - - // 关闭所有播放器 - [self->_playerWrapperDic enumerateKeysAndObjectsUsingBlock:^(NSString * _Nonnull key, RoomLivePlayerWrapper * _Nonnull obj, BOOL * _Nonnull stop) { - TXLivePlayer *player = obj.player; - [player stopPlay]; - }]; - - [self->_playerWrapperDic removeAllObjects]; - }); - - // 停止心跳 - [self stopHeartBeat]; - - // 清掉房间信息 - self.roomInfo = nil; - self.roomCreatorPlayerURL = nil; - self.pkAnchor = nil; - self.roomStatusCode = nil; - self.roomCreatorPlayerURL = nil; - [self->_audienceList removeAllObjects]; - // 清除标记 - self->_created = NO; - self->_renderMode = -1; - }]; -} - -- (void)setCustomInfo:(MLVBCustomFieldOp)op key:(NSString *)key value:(id)value completion:(void(^)(int errCode, NSString *errMsg))completion -{ - if (!([value isKindOfClass:[NSString class]] || [value isKindOfClass:[NSNumber class]])) { - completion(ROOM_ERR_INVALID_PARAM, @"Value type should be either NSString or NSNumber"); - return; - } - if (op != MLVBCustomFieldOpSet && [value isKindOfClass:[NSString class]]) { - NSNumber *doubleValue = @([value doubleValue]); - NSLog(@"%s Setting string value(%@) when using INC or DEC operation. Converting to double value(%@).", __PRETTY_FUNCTION__, value, doubleValue); - value = doubleValue; - } - NSString *operation = nil;; - switch(op) { - case MLVBCustomFieldOpSet: - operation = @"set"; - break; - case MLVBCustomFieldOpInc: - operation = @"inc"; - break; - case MLVBCustomFieldOpDec: - operation = @"dec"; - break; - default: - NSAssert(NO, @"invalid operation"); - break; - } - NSAssert(key != nil, @"key is nil"); - - [self asyncRun:^(MLVBLiveRoom *self) { - if (self.roomInfo.roomID == nil) { - completion(-1, LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.notjoinroom")); - return; - } - - NSDictionary *params = @{@"roomID": self.roomInfo.roomID, @"operation": operation, @"fieldName": key, @"value": value}; - [self requestWithName:kHttpServerAddr_SetCustomField params:params completion:^(MLVBLiveRoom *self, int errCode, NSString *errMsg, NSDictionary *responseObject) { - if (completion) { - completion(errCode, errMsg); - } - }]; - }]; -} - -- (void)getCustomInfo:(void(^)(int errCode, NSString *errMsg, NSDictionary *customInfo))completion -{ - [self asyncRun:^(MLVBLiveRoom *self) { - if (self.roomInfo.roomID == nil) { - completion(-1, LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.notjoinroom"), nil); - return; - } - NSDictionary *params = @{@"roomID": self.roomInfo.roomID,}; - [self requestWithName:kHttpServerAddr_GetCustomInfo params:params completion:^(MLVBLiveRoom *self, int errCode, NSString *errMsg, NSDictionary *responseObject) { - if (completion) { - if (errCode == 0) { - NSDictionary *custom = responseObject[@"custom"]; - completion(errCode, errMsg, custom); - } else { - completion(errCode, errMsg, nil); - } - } - }]; - }]; -} - -#pragma mark - 房间相关接口函数 -/** - 小主播发起连麦请求 - */ -- (void)requestJoinAnchor:(NSString *)reason completion:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - self.requestAnchorCompletion = completion; - [self->_msgMgr sendJoinAnchorRequest:self.roomInfo.roomCreator roomID:self.roomInfo.roomID]; - - dispatch_async(dispatch_get_main_queue(), ^{ - [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(handleRequestJoinAnchorTimeOut:) object:self]; - [self performSelector:@selector(handleRequestJoinAnchorTimeOut:) withObject:self afterDelay:JoinAnchorRequestTimeout]; - }); - }]; -} - -/** - 大主播响应连麦请求 - */ -- (void)responseJoinAnchor:(NSString *)userID agree:(BOOL)agree reason:(NSString *)reason { - [self asyncRun:^(MLVBLiveRoom *self) { - [self->_msgMgr sendJoinAnchorResponseWithUID:userID roomID:self.roomInfo.roomID result:agree reason:reason]; - }]; -} - -/** - 小主播在请求加入连麦成功后调用 - 1. 在应用层调用startLocalPreview - 2. 结束播放房间的混流地址(mixedPlayURL),改为播放大主播的直播流地址 - 3. 请求kHttpServerAddr_GetAnchors,获取房间里所有pusher的信息 - 4. 通过onGetAnchors将房间里所有主播信息回调给上层播放 - 5. 请求kHttpServerAddr_GetAnchorUrl,获取推流地址 - 6. 开始推流 - 7. 在收到推流成功的事件后请求kHttpServerAddr_AddAnchor,把自己加入房间成员列表 - */ -- (void)joinAnchor:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - // 房间角色为小主播 - self->_roomRole = RoomRoleMinor; - - // 设置视频质量为小主播(连麦模式) - if (self->_videoQuality != VIDEO_QUALITY_LINKMIC_SUB_PUBLISHER) { - self->_videoQuality = VIDEO_QUALITY_LINKMIC_SUB_PUBLISHER; - [self->_livePusher setVideoQuality:self->_videoQuality adjustBitrate:NO adjustResolution:NO]; - [self->_livePusher setLogViewMargin:UIEdgeInsetsMake(2, 2, 2, 2)]; - } - - - // 获取主播加速流地址 - __weak __typeof(self) weakSelf = self; - [self _updateAnchorList:^(int errCode, NSString *errMsg, NSArray *anchorList) { - __strong __typeof(weakSelf) self = weakSelf; - if (errCode != 0) { - dispatch_async(self.delegateQueue, ^{ - [self.delegate onError:errCode errMsg:errMsg extraInfo:nil]; - }); - } else { - // 复用房间直播播放器来播放大主播的直播流地址 - RoomLivePlayerWrapper *wrapper = self->_playerWrapperDic[self.roomInfo.roomCreator]; - TXLivePlayer *player = wrapper.player; - NSAssert(player, @"nil player"); - if (player) { - dispatch_async(dispatch_get_main_queue(), ^{ - NSAssert(self.roomCreatorPlayerURL, @"empty acc url"); - // 播放大主播的直播流地址,注意type是 PLAY_TYPE_LIVE_RTMP_ACC - [player startPlay:self.roomCreatorPlayerURL type:PLAY_TYPE_LIVE_RTMP_ACC]; - }); - } - - dispatch_async(self.delegateQueue, ^{ - [self handleUpdatedAnchorList:anchorList]; - }); - - self.joinAnchorCompletion = completion; - // 获取推流地址并推流 - [self getUrlAndPushing:^(int errCode, NSString *errMsg) { - // errCode = 0 则等待推流成功后回调 - if (errCode != 0) { - self.joinAnchorCompletion = nil; // 失败直接调用completion,无需保存 - self->_roomRole = RoomRoleMember; - completion(errCode, errMsg); - } - }]; - } - }]; - }]; -} - -/** - 小主播退出连麦 - 1. 应用层调用stopLocalPreview,结束本地预览和停止推流 - 2. 结束播放所有的流(playUrl) - 3. 播放房间的混流地址(mixedPlayURL),这里使用大主播的view来播放视频 - 4. 请求 kHttpServerAddr_DeleteAnchor,将自己从房间成员列表里删除 - */ -- (void)quitJoinAnchor:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - self->_roomRole = RoomRoleMember; // 房间角色变为普通观众 - - RoomLivePlayerWrapper *playerForCreator = self->_playerWrapperDic[self.roomInfo.roomCreator]; - - // 关闭所有播放器 - [self _stopAndRemoveAllPlayerIncludeCreator:NO]; - - // 用大主播的播放器来播放混流地址,这样可以复用之前的view - TXLivePlayer *bigPlayer = playerForCreator.player; // 获取大主播的player - playerForCreator.userID = self.roomInfo.roomCreator; - playerForCreator.delegate = self; - - if (self->_roomRole != RoomRoleMinor && [bigPlayer isPlaying]) { - dispatch_async(dispatch_get_main_queue(), ^{ - TXLivePlayConfig *playConfig = [[TXLivePlayConfig alloc] init]; - playConfig.bAutoAdjustCacheTime = YES; - playConfig.minAutoAdjustCacheTime = 2.0f; - playConfig.maxAutoAdjustCacheTime = 2.0f; - [bigPlayer setConfig:playConfig]; - [bigPlayer startPlay:self.roomInfo.mixedPlayURL type:[self getPlayType:self.roomInfo.mixedPlayURL]]; - if (self->_inBackground == YES) { - [bigPlayer pause]; - } - }); - } - - // 请求 kHttpServerAddr_DeleteAnchor - [self doDeleteAnchorWithRoomID:self.roomInfo.roomID - userID:self->_currentUser.userID - completion:nil]; - - // 停止心跳 - [self stopHeartBeat]; - - }]; -} - -/** - 大主播踢掉小主播 - */ -- (void)kickoutJoinAnchor:(NSString *)userID { - // 发送踢掉消息 - [_msgMgr sendJoinAnchorKickout:userID roomID:self.roomInfo.roomID]; -} - -#pragma mark - 主播跨房间 PK -/** - 主播PK: 发起PK请求 - 请求带上自己的userID, userName, userAvatar, streamUrl - */ -- (void)requestRoomPK:(NSString *)userID completion:(IRequestPKCompletionHandler)completion { - [self asyncRun:^(MLVBLiveRoom *self) { - NSString *accelerateURL = self->_accUrl; - self->_requestPKCompletion = completion; - [self->_msgMgr sendPKRequest:userID roomID:self.roomInfo.roomID withAccelerateURL:accelerateURL]; - - dispatch_async(dispatch_get_main_queue(), ^{ - [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(handleRequestPKTimeout:) object:nil]; - [self performSelector:@selector(handleRequestPKTimeout:) withObject:nil afterDelay:PKRequestTimeout]; - }); - }]; -} - -/** - 主播PK: 拒绝PK请求 - */ -- (void)responseRoomPK:(MLVBAnchorInfo *)anchor agree:(BOOL)agree reason:(NSString *)reason { - [self asyncRun:^(MLVBLiveRoom *self) { - if (agree) { - self->_mixMode = StreamMixModePK; - self.pkAnchor = anchor; - [self->_msgMgr acceptPKRequest:anchor.userID roomID:self.roomInfo.roomID withAccelerateURL:self->_accUrl]; - } else { - [self->_msgMgr rejectPKRequest:anchor.userID roomID:self.roomInfo.roomID reason:reason]; - } - }]; -} - -/** - 主播PK: 发送结束PK的请求 - */ -- (void)quitRoomPK:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - if (self.pkAnchor == nil) { - if (completion) { - completion(ROOM_ERR_CANCELED, LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.donothavepking")); - } - return; - } - [self->_msgMgr sendPKFinishRequest:self.pkAnchor.userID roomID:self.roomInfo.roomID completion:^(int errCode, NSString *errMsg) { - if (errCode == 0) { - self.pkAnchor = nil; - } - if (completion) { - completion(errCode, errMsg); - } - }]; - }]; -} - -#pragma mark - 视频相关接口函数 -- (void)startLocalPreview:(BOOL)frontCamera view:(UIView *)view { - [self initLivePusher]; - if (_livePusher.frontCamera != frontCamera) { - [_livePusher switchCamera]; - } - [_livePusher startPreview:view]; -} - -- (void)stopLocalPreview { - [_livePusher stopPreview]; - [_livePusher stopPush]; - [self releaseLivePusher]; -} - -// 播放小主播、PK -- (void)startRemoteView:(MLVBAnchorInfo *)anchorInfo view:(UIView *)view onPlayBegin:(IPlayBegin)onPlayBegin onPlayError:(IPlayError)onPlayError playEvent:(IPlayEventBlock)onPlayEvent { - [self asyncRun:^(MLVBLiveRoom *self) { - NSString *userID = anchorInfo.userID; - - if (self->_roomRole == RoomRoleCreator) { - NSArray *anchorURLsToMix = nil; - if (self->_mixMode == StreamMixModePK) { - // 设置PK推流模式(降低分辨率) - self->_videoQuality = VIDEO_QUALITY_LINKMIC_MAIN_PUBLISHER; - [self->_livePusher setVideoQuality:self->_videoQuality adjustBitrate:YES adjustResolution:NO]; - TXLivePushConfig * config = self->_livePusher.config; - config.videoResolution = VIDEO_RESOLUTION_TYPE_360_640; - config.enableAutoBitrate = NO; - config.videoBitratePIN = 800; - [self->_livePusher setConfig:config]; - - anchorURLsToMix = @[anchorInfo.accelerateURL]; - } else { - if ([self->_roomInfo.anchorInfoArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"userID = %@", anchorInfo.userID]].count == 0) { - // 如果userID不存在,就通知上层该userID已经离开房间及销毁view - NSLog(@"startRemoteView: userID[%@] not exist!!!", userID); - dispatch_async(dispatch_get_main_queue(), ^{ - if (self->_delegate) { - MLVBAnchorInfo *pushInfo = [[MLVBAnchorInfo alloc] init]; - pushInfo.userID = userID; - [self->_delegate onAnchorExit:pushInfo]; - } - }); - return; - } - anchorURLsToMix = [self.roomInfo.anchorInfoArray valueForKey:@"accelerateURL"]; - } - - [self requestMergeStreamWithPlayUrlArray:anchorURLsToMix withMode:self->_mixMode]; - } - - [self startPlayAcc:anchorInfo inView:view playBegin:onPlayBegin playError:onPlayError playEvent:onPlayEvent]; - }]; -} - -- (void)stopRemoteView:(MLVBAnchorInfo *)anchor { - if(anchor == nil) { - return; - } - [self asyncRun:^(MLVBLiveRoom *self) { - RoomLivePlayerWrapper *playerWrapper = [self->_playerWrapperDic objectForKey:anchor.userID]; - TXLivePlayer *player = playerWrapper.player; - if (player) { - dispatch_async(dispatch_get_main_queue(), ^{ - [player stopPlay]; - [player removeVideoWidget]; - }); - } - if ([self.pkAnchor.userID isEqualToString:anchor.userID]) { - self.pkAnchor = nil; - } - [self->_playerWrapperDic removeObjectForKey:anchor.userID]; - if (self->_roomRole == RoomRoleCreator) { - NSArray *urls = [[self.roomInfo.anchorInfoArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"userID != %@", anchor.userID]] - valueForKey:@"accelerateURL"]; - [self requestMergeStreamWithPlayUrlArray:urls withMode:self->_mixMode]; - - if (self.roomInfo.anchorInfoArray.count == 0) { - // 无连麦或PK,设置推流模式为直播模式(高清) - self->_videoQuality = VIDEO_QUALITY_HIGH_DEFINITION; - [self->_livePusher setVideoQuality:self->_videoQuality adjustBitrate:NO adjustResolution:NO]; - TXLivePushConfig * config = self->_livePusher.config; - config.videoEncodeGop = 2; - [self->_livePusher setConfig:config]; - } - } - self.roomInfo.anchorInfoArray = [self.roomInfo.anchorInfoArray filteredArrayUsingPredicate: - [NSPredicate predicateWithFormat: - @"%@ != %@", NSStringFromSelector(@selector(userID)), anchor.userID]]; - }]; -} - -#pragma mark - 音频相关接口函数 -- (void)muteLocalAudio:(BOOL)mute -{ - [_livePusher setMute:mute]; -} - -- (void)muteRemoteAudio:(NSString *)userID mute:(BOOL) mute -{ - [self asyncRun:^(MLVBLiveRoom *self) { - RoomLivePlayerWrapper *wrapper = self->_playerWrapperDic[userID]; - [wrapper.player setMute:mute]; - }]; -} - --(void)muteAllRemoteAudio:(BOOL)mute -{ - [self asyncRun:^(MLVBLiveRoom *self) { - [self->_playerWrapperDic enumerateKeysAndObjectsUsingBlock:^(NSString * _Nonnull key, RoomLivePlayerWrapper * _Nonnull obj, BOOL * _Nonnull stop) { - [obj.player setMute:mute]; - }]; - }]; -} -#pragma mark - 摄像头相关接口函数 -- (void)switchCamera { - [_livePusher switchCamera]; -} - - -- (void)setZoom:(CGFloat)distance { - [_livePusher setZoom:distance]; -} - -- (BOOL)enableTorch:(BOOL)enabled { - return [_livePusher toggleTorch: enabled]; -} - -- (void)setCameraMuteImage:(UIImage *)pauseImage { - TXLivePushConfig *config = _livePusher.config; - if (!config.pauseImg || ![config.pauseImg isEqual:pauseImage]) { - config.pauseImg = pauseImage; - [_livePusher setConfig:config]; - } -} -- (void)setFocusPosition:(CGPoint)position { - [_livePusher setFocusPosition:position]; -} - -- (void)setMirror:(BOOL)isMirror { - [_livePusher setMirror:isMirror]; -} -#pragma mark - 美颜滤镜相关接口函数 -- (TXBeautyManager *)getBeautyManager -{ - return [_livePusher getBeautyManager]; -} - -- (void)setBeautyStyle:(TX_Enum_Type_BeautyStyle)beautyStyle beautyLevel:(float)beautyLevel whitenessLevel:(float)whitenessLevel ruddinessLevel:(float)ruddinessLevel { - TXBeautyManager *manager = [_livePusher getBeautyManager]; - [manager setBeautyStyle:(TXBeautyStyle)beautyStyle]; - [manager setBeautyLevel:beautyLevel]; - [manager setWhitenessLevel:whitenessLevel]; - [manager setRuddyLevel:ruddinessLevel]; -} - -- (void)setFilter:(UIImage *)image { - [_livePusher setFilter:image]; -} - -- (void)setEyeScaleLevel:(float)eyeScaleLevel { - [[_livePusher getBeautyManager] setEyeScaleLevel:eyeScaleLevel]; -} - -- (void)setFaceScaleLevel:(float)faceScaleLevel { - [[_livePusher getBeautyManager] setFaceSlimLevel:faceScaleLevel]; -} - -- (void)setSpecialRatio:(float)specialValue { - [_livePusher setSpecialRatio:specialValue]; -} - -- (void)setFaceVLevel:(float)faceVLevel { - [[_livePusher getBeautyManager] setFaceVLevel:faceVLevel]; -} - -- (void)setChinLevel:(float)chinLevel { - [[_livePusher getBeautyManager] setChinLevel:chinLevel]; -} - -- (void)setFaceShortLevel:(float)faceShortlevel { - [[_livePusher getBeautyManager] setFaceShortLevel:faceShortlevel]; -} - -- (void)setNoseSlimLevel:(float)noseSlimLevel { - [[_livePusher getBeautyManager] setNoseSlimLevel:noseSlimLevel]; -} - -- (void)setGreenScreenFile:(NSURL *)file { - [_livePusher setGreenScreenFile:file]; -} - -- (void)selectMotionTmpl:(NSString *)tmplName inDir:(NSString *)tmplDir; -{ - [[_livePusher getBeautyManager] setMotionTmpl:tmplName inDir:tmplDir]; -} - -#pragma mark - 消息发送接口函数 -- (void)sendRoomTextMsg:(NSString *)textMsg completion:(void (^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - [self->_msgMgr sendGroupTextMsg:textMsg completion:completion]; - }]; -} - -- (void)sendRoomCustomMsg:(NSString *)cmd msg:(NSString *)msg completion:(void (^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - [self->_msgMgr sendRoomCustomMsg:cmd msg:msg completion:completion]; - }]; -} - -#pragma mark - 背景混音相关接口函数 -- (BOOL)playBGM:(NSString *)path { - TXLivePushConfig *config = _livePusher.config; - config.enableAudioPreview = YES; // 开启耳返 - [_livePusher setConfig:config]; - - return [_livePusher playBGM:path]; -} - -- (BOOL)playBGM:(NSString *)path -withBeginNotify:(void (^)(NSInteger errCode))beginNotify -withProgressNotify:(void (^)(NSInteger progressMS, NSInteger durationMS))progressNotify -andCompleteNotify:(void (^)(NSInteger errCode))completeNotify { - TXLivePushConfig *config = _livePusher.config; - config.enableAudioPreview = YES; // 开启耳返 - [_livePusher setConfig:config]; - - return [_livePusher playBGM:path withBeginNotify:beginNotify withProgressNotify:progressNotify andCompleteNotify:completeNotify]; -} - -- (BOOL)stopBGM { - TXLivePushConfig *config = _livePusher.config; - config.enableAudioPreview = NO; // 关闭耳返 - [_livePusher setConfig:config]; - - return [_livePusher stopBGM]; -} - -- (BOOL)pauseBGM { - return [_livePusher pauseBGM]; -} - -- (BOOL)resumeBGM { - return [_livePusher resumeBGM]; -} - -- (int)getMusicDuration:(NSString *)path { - return [_livePusher getMusicDuration:path]; -} - -- (BOOL)setMicVolume:(float)volume { - return [_livePusher setMicVolume:volume]; -} - -- (BOOL)setBGMVolume:(float)volume { - return [_livePusher setBGMVolume:volume]; -} - -- (BOOL)setBGMPitch:(float)pitch { - return [_livePusher setBGMPitch:pitch]; -} - -- (BOOL)setBGMPosition:(float)position { - int duration = [_livePusher getMusicDuration:NULL]; - return [_livePusher setBGMPosition:duration*position]; -} - -- (BOOL)setReverbType:(TXReverbType)reverbType { - return [_livePusher setReverbType:reverbType]; -} - -- (BOOL)setVoiceChangerType:(TXVoiceChangerType)voiceChangerType { - return [_livePusher setVoiceChangerType:voiceChangerType]; -} - -#pragma mark - -- (void)notifyAnchorChange { - //通知房间内其他主播 - [self.msgMgr sendNotifyMessage]; -} - - -typedef void (^ILoginCompletionCallback)(int errCode, NSString *errMsg, NSString *userID, NSString *token, NSNumber *timestamp); - -/** - Room登录 - */ --(void)login:(int)sdkAppID userID:(NSString*)userID userSig:(NSString*)userSig completion:(ILoginCompletionCallback)completion { - if (!(userID && userSig)) { - NSLog(@"Param is missing"); - return; - } - [self asyncRun:^(MLVBLiveRoom *self) { - __weak __typeof(self) weakSelf = self; - - // Room登录 - NSDictionary *params = @{@"sdkAppID": @(sdkAppID).stringValue, - @"userID": userID, - @"userSig": userSig, - @"platform": @"iOS" - }; - NSMutableString *query = [[NSMutableString alloc] init]; - [params enumerateKeysAndObjectsUsingBlock:^(NSString *_Nonnull key, NSString *_Nonnull obj, BOOL * _Nonnull stop) { - [query appendFormat:@"%@=%@&", key, [obj stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; - }]; - [query deleteCharactersInRange:NSMakeRange(query.length-1, 1)]; - NSString * cgiUrl = [NSString stringWithFormat:@"%@/login?%@", self->_serverDomain, query]; - [weakSelf sendDebugMsg:LocalizeReplaceXX(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.liveroomloginxx"), [NSString stringWithFormat:@"%@",userID])]; - - [self->_httpSession POST:cgiUrl parameters:nil headers:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { - int errCode = [responseObject[RespCodeKey] intValue]; - NSString *errMsg = responseObject[@"message"]; - NSString *userID = responseObject[@"userID"]; - NSString *token = responseObject[@"token"]; - NSNumber *timestamp = responseObject[@"timestamp"]; - - weakSelf.roomInfo.roomCreator = userID; - if (completion) { - completion(errCode == 0 ? ROOM_SUCCESS : ROOM_ERR_REQUEST_TIMEOUT, [NSString stringWithFormat:@"%@[%d]", errMsg, errCode], userID, token, timestamp); - } - } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { - - [weakSelf sendDebugMsg:LocalizeReplaceXX(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.liveroomloginfailedxx"), [NSString stringWithFormat:@"%@",[error description]])]; - if (completion) { - completion(ROOM_ERR_REQUEST_TIMEOUT, LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.networktimeout"), nil, nil, nil); - } - }]; - }]; -} - -- (void)_stopAndRemoveAllPlayerIncludeCreator:(BOOL)includeCreator { - [_playerWrapperDic enumerateKeysAndObjectsUsingBlock:^(NSString * _Nonnull key, RoomLivePlayerWrapper * _Nonnull obj, BOOL * _Nonnull stop) { - BOOL shouldStop = includeCreator || ![key isEqualToString:self.roomInfo.roomCreator]; - if (shouldStop) { - dispatch_async(dispatch_get_main_queue(), ^{ - [obj.player stopPlay]; - }); - } - }]; - NSArray *keysToRemove = [[_playerWrapperDic allKeys] filteredArrayUsingPredicate:[NSPredicate predicateWithFormat: @"self != %@", self.roomInfo.roomCreator]]; - [_playerWrapperDic removeObjectsForKeys:keysToRemove]; - self.roomInfo.anchorInfoArray = @[]; -} - - --(void) handleRequestJoinAnchorTimeOut:(NSObject*)obj { - if (_requestAnchorCompletion) { - _requestAnchorCompletion(1, LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.anchordidnotprocessconnectionrequest")); - _requestAnchorCompletion = nil; - } -} - - -- (void)handleRequestPKTimeout:(NSObject *)obj { - if (_requestPKCompletion) { - _requestPKCompletion(1, LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.anchordidnotprocesspk"), nil); - _requestPKCompletion = nil; - } -} - -#pragma mark - 心跳 - -- (void)startHeartBeat { - // 启动心跳,向业务服务器发送心跳请求 - __weak __typeof(self) weakSelf = self; - _heartBeatTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)); - dispatch_source_set_event_handler(_heartBeatTimer, ^{ - __strong __typeof(self) strongSelf = weakSelf; - if (strongSelf) { - [strongSelf sendHeartBeat]; - } - }); - dispatch_source_set_timer(_heartBeatTimer, dispatch_walltime(NULL, 0), 7 * NSEC_PER_SEC, 0); - dispatch_resume(_heartBeatTimer); -} - -- (void)stopHeartBeat { - if (_heartBeatTimer) { - dispatch_cancel(_heartBeatTimer); - _heartBeatTimer = nil; - } -} - -- (void)sendHeartBeat { - [self asyncRun:^(MLVBLiveRoom *self) { - if (self->_currentUser == nil || self.roomInfo.roomID == nil) { - return; - } - - NSDictionary *params = @{@"roomID": self.roomInfo.roomID, - @"userID": self->_currentUser.userID, - @"roomStatusCode": self.roomStatusCode ?: @0 - }; - - [self requestWithName:kHttpServerAddr_AnchorHeartBeat params:params completion:^(MLVBLiveRoom *self, int errCode, NSString *errMsg, NSDictionary *responseObject) { - if (errCode == 0) { - [self onHeartBeatResponse:responseObject]; - } - }]; - }]; -} - -- (void)onHeartBeatResponse:(NSDictionary *)responseObject { - if ([responseObject[RespCodeKey] intValue] == 0 && responseObject[@"roomStatusCode"]) { - self.roomStatusCode = responseObject[@"roomStatusCode"]; - NSArray *anchorList = [self parseAnchorsFromJsonArray:responseObject[@"pushers"]]; - [self handleUpdatedAnchorList:anchorList]; - } -} - -#pragma mark - -- (void)startPlayAcc:(MLVBAnchorInfo *)anchor inView:(UIView *)view playBegin:(IPlayBegin)playBegin playError:(IPlayError)playError playEvent:(IPlayEventBlock)onPlayEvent { - // 播放加速流地址 - NSString *playUrl = anchor.accelerateURL; - // 播放加速流地址 - RoomLivePlayerWrapper *playerWrapper = [self playerWrapperForUserID:anchor.userID]; - playerWrapper.playBeginBlock = playBegin; - __weak __typeof(self) wself = self; - playerWrapper.playErrorBlock = ^(int errCode, NSString *errMsg) { - [wself stopRemoteView:anchor]; - }; - playerWrapper.playEventBlock = onPlayEvent; - TXLivePlayer *player = playerWrapper.player; - dispatch_async(dispatch_get_main_queue(), ^{ - [player setupVideoWidget:CGRectZero containView:view insertIndex:0]; - [player startPlay:playUrl type:PLAY_TYPE_LIVE_RTMP_ACC]; - }); -} - -- (void)handleUpdatedAnchorList:(NSArray *)updatedAnchorList -{ - NSArray* oldAnchorList = _roomInfo.anchorInfoArray; - NSMutableSet *leftAnchorSet = [[NSMutableSet alloc] initWithArray:oldAnchorList]; - NSSet *updatedAnchorSet = [NSSet setWithArray:updatedAnchorList]; - if ([updatedAnchorSet isEqualToSet:leftAnchorSet]) { - return; - } - - BOOL anchorChanged = NO; - for (MLVBAnchorInfo *anchorInfo in updatedAnchorList) { - // 过滤自己 - if ([anchorInfo.userID isEqualToString:_currentUser.userID]) { - continue; - } - - BOOL isNewMember = ![oldAnchorList containsObject:anchorInfo]; - - if (isNewMember) { - dispatch_async(self.delegateQueue, ^{ - [self.delegate onAnchorEnter:anchorInfo]; - [self sendDebugMsg: LocalizeReplaceThreeCharacter(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.joinroomxxyyzz"), [NSString stringWithFormat:@"%@",anchorInfo.userID], [NSString stringWithFormat:@"%@",anchorInfo.userName], [NSString stringWithFormat:@"%@",anchorInfo.accelerateURL])]; - }); - anchorChanged = YES; - // 有新主播加入,混流时采用连麦配置 - _mixMode = StreamMixModeJoinAnchor; - } - [leftAnchorSet filterUsingPredicate:[NSPredicate predicateWithFormat:@"userID != %@", anchorInfo.userID]]; - } - - for (MLVBAnchorInfo *anchorInfo in leftAnchorSet) { - // 关闭播放器 - [self stopRemoteView:anchorInfo]; - dispatch_async(self.delegateQueue, ^{ - [self.delegate onAnchorExit:anchorInfo]; - [self sendDebugMsg:LocalizeReplace(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.leaveroomxxyy"), [NSString stringWithFormat:@"%@",anchorInfo.userID], [NSString stringWithFormat:@"%@",anchorInfo.userName])]; - }); - anchorChanged = YES; - } - - // 更新 - _roomInfo.anchorInfoArray = updatedAnchorList; - - if (_roomRole == RoomRoleCreator && anchorChanged) { - // 当连麦人数发生变化时,大主播需要重新向服务器请求混流 - NSMutableArray *playUrlArray = [[NSMutableArray alloc] init]; - for (MLVBAnchorInfo *anchorInfo in _roomInfo.anchorInfoArray) { - [playUrlArray addObject:anchorInfo.accelerateURL]; - } - - // 当存在其他推流者时,就是连麦模式 - if (_roomInfo.anchorInfoArray.count > 0) { - // 设置视频质量为大主播(连麦模式) - if (_videoQuality != VIDEO_QUALITY_LINKMIC_MAIN_PUBLISHER) { - _videoQuality = VIDEO_QUALITY_LINKMIC_MAIN_PUBLISHER; - [_livePusher setVideoQuality:_videoQuality adjustBitrate:YES adjustResolution:NO]; - } - } else { - // 只有一个主播(自己),恢复正常的直播模式 - // 设置视频质量为高清(直播模式) - if (_videoQuality != VIDEO_QUALITY_HIGH_DEFINITION) { - _videoQuality = VIDEO_QUALITY_HIGH_DEFINITION; - [_livePusher setVideoQuality:_videoQuality adjustBitrate:NO adjustResolution:NO]; - TXLivePushConfig * config = _livePusher.config; - config.videoEncodeGop = 2; - [_livePusher setConfig:config]; - } - } - } -} - -- (void)showVideoDebugLog:(BOOL)isShow { - [_livePusher showVideoDebugLog:isShow]; - - [self asyncRun:^(MLVBLiveRoom *self) { - [self->_playerWrapperDic enumerateKeysAndObjectsUsingBlock:^(NSString * _Nonnull key, RoomLivePlayerWrapper * _Nonnull wrapper, BOOL * _Nonnull stop) { - dispatch_async(dispatch_get_main_queue(), ^{ - [wrapper.player showVideoDebugLog:isShow]; - }); - }]; - }]; -} - - -#pragma mark - TXLivePushListener --(void) onPushEvent:(int)EvtID withParam:(NSDictionary*)param { - [self asyncRun:^(MLVBLiveRoom *self) { - if (EvtID == PUSH_EVT_PUSH_BEGIN) { - [self onPushBegin]; - } else if (EvtID == PUSH_ERR_NET_DISCONNECT || EvtID == PUSH_ERR_INVALID_ADDRESS) { - NSString *errMsg = LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.pushstreamdisconnected"); - if (self.createRoomCompletion) { - self.createRoomCompletion(ROOM_ERR_CREATE_ROOM, errMsg); - self.createRoomCompletion = nil; - - } else if (self.joinAnchorCompletion) { - self.joinAnchorCompletion(ROOM_ERR_PUSH_DISCONNECT, errMsg); - } else { - dispatch_async(self.delegateQueue, ^{ - [self.delegate onError:ROOM_ERR_PUSH_DISCONNECT errMsg:errMsg extraInfo:nil]; - }); - } - } else if (EvtID == PUSH_ERR_OPEN_CAMERA_FAIL) { - NSString *errMsg = LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.failedtogetcamerapermission"); - if (self.createRoomCompletion) { - self.createRoomCompletion(ROOM_ERR_CREATE_ROOM, errMsg); - self.createRoomCompletion = nil; - } else if (self.joinAnchorCompletion) { - self.joinAnchorCompletion(ROOM_ERR_ENTER_ROOM, errMsg); - self.joinAnchorCompletion = nil; - } - } else if (EvtID == PUSH_ERR_OPEN_MIC_FAIL) { - NSString *errMsg = LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.failedtogetmicrophonepermission"); - if (self->_createRoomCompletion) { - self->_createRoomCompletion(ROOM_ERR_CREATE_ROOM, errMsg); - self->_createRoomCompletion = nil; - } else if (self->_joinAnchorCompletion) { - self->_joinAnchorCompletion(ROOM_ERR_ENTER_ROOM, errMsg); - self->_joinAnchorCompletion = nil; - } - } - }]; -} - -/** 退流成功 - * - * 1. 创建房间 - * 2. 加入推流 - * 3. 创建IM组 - * 4. 启动心跳 - */ -- (void)onPushBegin { - IMMsgManager *IMManager = self.msgMgr; - NSString *userID = _currentUser.userID; - __weak __typeof(self) weakSelf = self; - - if (_roomRole == RoomRoleCreator) { // 创建者 - // rtmp推流过程中每次重连都会下发PUSH_EVT_PUSH_BEGIN,需要加一个BOOL变量来保护下,避免重复请求create_room, - // 只能在第一次或者调用过exitRoom后才能够请求create_room - if (_created) { - return; - } - - //调用CGI:create_room,返回roomID - [self doCreateRoom:^(int errCode, NSString *errMsg, NSString *roomID) { - __strong __typeof(weakSelf) self = weakSelf; - if (self == nil) return; - - void (^finish)(int, NSString *) = ^(int code, NSString *msg) { - if (weakSelf.createRoomCompletion) { - weakSelf.createRoomCompletion(code, [NSString stringWithFormat:@"%@[%d]", msg, code]); - weakSelf.createRoomCompletion = nil; - } - }; - - if (errCode == 0) { - self.roomInfo.roomID = roomID; - self->_created = YES; // 标记已经创建房间 - - //请求CGI:add_anchor,加入房间 - [self doAddAnchor:roomID completion:^(int errCode, NSString *errMsg) { - __strong __typeof(weakSelf) self = weakSelf; - if (self == nil) return; - if (errCode == 0) { - [IMManager createGroupWithID:roomID name:roomID completion:^(int errCode, NSString *errMsg) { - [self sendDebugMsg:LocalizeReplace(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.joinimfinishxxyy"), [NSString stringWithFormat:@"%d",errCode], [NSString stringWithFormat:@"%@",errMsg])]; - - if (errCode == 0 || errCode == 10025) { - //群组 ID 已被使用,并且操作者为群主,可以直接使用 - if (errCode == 10025) { - - NSLog( @"%@", LocalizeReplaceXX(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.groupisusedxx"), [NSString stringWithFormat:@"%@",roomID])); - } - self.roomInfo.roomCreator = userID; - [self startHeartBeat]; // 启动心跳 - //启动心跳 - //mStreamMixturer.setMainVideoStream(pushURL); - errCode = 0; - } else if (errCode == 10036) { - - NSLog(@"%@",LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.thecloudcommunicationaccountyou")); - } - finish(errCode, errMsg); - }]; - } else { - finish(ROOM_ERR_ENTER_ROOM, errMsg); - } - }]; - } else { - finish(ROOM_ERR_CREATE_ROOM, [NSString stringWithFormat:@"%@[%d]", errMsg, errCode]); - } - }]; - } else if (_roomRole == RoomRoleMinor) { // 小主播 - //请求CGI:add_anchor,加入房间 - [self doAddAnchor:self.roomInfo.roomID completion:^(int errCode, NSString *errMsg) { - int code = errCode; - NSString *msg = errMsg; - if (errCode != 0) { - code = ROOM_ERR_ENTER_ROOM; - msg = [NSString stringWithFormat:@"%@[%d]", errMsg, errCode]; - } - if (weakSelf.joinAnchorCompletion) { - weakSelf.joinAnchorCompletion(code, msg); - weakSelf.joinAnchorCompletion = nil; - } - if (errCode == 0) { - [self notifyAnchorChange]; - } - // 启动心跳 - [weakSelf startHeartBeat]; - }]; - } -} - --(void) onNetStatus:(NSDictionary*)param { - -} - -#pragma mark - HTTP API - -- (void)requestWithName:(NSString *)name - params:(NSDictionary *)params - completion:(void(^)(__strong MLVBLiveRoom *self, int code, NSString *message, NSDictionary *responseObject))completion { - __weak __typeof(self) weakSelf = self; - NSString *paramDesc = [[params description] stringByReplacingOccurrencesOfString:@"\n" withString:@""]; - [self sendDebugMsg:LocalizeReplace(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.startrequestxxyy"), [NSString stringWithFormat:@"%@",name],[NSString stringWithFormat:@"%@",paramDesc])]; - [self->_httpSession POST:_apiAddr[name] - parameters:params - headers:nil - progress:nil - success: - ^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { - __strong __typeof(weakSelf) self = weakSelf; - int errCode = [responseObject[RespCodeKey] intValue]; - - [self sendDebugMsg:LocalizeReplaceThreeCharacter(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.requestxxyybackzz"), [NSString stringWithFormat:@"%@",name], errCode == 0 ? LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.success") : LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.failed"), [NSString stringWithFormat:@"%@",responseObject])]; - if (completion) { - NSString *errMsg = responseObject[@"message"]; - if (errCode != 0) { - completion(self, errCode, [@"[MLVBLiveRoom] " stringByAppendingString:errMsg], responseObject); - } else { - completion(self, errCode, errMsg, responseObject); - } - } - } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { - [weakSelf sendDebugMsg:LocalizeReplace(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.requestxxerroryy"),[NSString stringWithFormat:@"%@",name],[NSString stringWithFormat:@"%@",[error description]])]; - if (completion) { - completion(weakSelf, ROOM_ERR_REQUEST_TIMEOUT,LocalizeReplaceXX(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.networktimeoutchecknetworksettingxx"), [NSString stringWithFormat:@"%@",[error description]]), nil); - } - }]; -} - -/** - 获取推流地址,并推流 - */ -- (void)getUrlAndPushing:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - // 获取推流地址 - NSDictionary *params = @{@"userID": self->_currentUser.userID}; - [self requestWithName:kHttpServerAddr_GetAnchorUrl params:params completion:^(MLVBLiveRoom *self, int errCode, NSString *errMsg, NSDictionary *responseObject) { - if (errCode == 0) { - if (self == nil) { - completion(ROOM_ERR_INSTANCE_RELEASED, LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.isdestruction")); - return; - } - // 启动推流 - NSString *pushURL = responseObject[@"pushURL"]; - NSString *accURL = responseObject[@"accelerateURL"]; - self->_pushUrl = pushURL; - self->_accUrl = accURL; - - dispatch_async(dispatch_get_main_queue(), ^{ - int result = [self->_livePusher startPush:pushURL]; - dispatch_async(self->_queue, ^{ - if (result == 0) { - completion(0, nil); - } else { - completion(result, LocalizeReplaceXX(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.startpushfailedxx"), [NSString stringWithFormat:@"%d",result])); - } - }); - }); - } else { - if (completion) { - completion(errCode, errMsg); - } - } - }]; - }]; -} - -/** - * 获取房间内所有主播的信息 - */ -- (void)_updateAnchorList:(void (^)(int errCode, NSString *errMsg, NSArray *anchorList))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - NSDictionary *params; - if (self.roomInfo == nil || self.roomInfo.roomID == nil) { - if (completion) { - completion(-1, @"roomID is nil", nil); - } - } else { - params = @{@"roomID": self.roomInfo.roomID}; - } - [self requestWithName:kHttpServerAddr_GetAnchors params:params completion:^(MLVBLiveRoom *self, int errCode, NSString *errMsg, NSDictionary *responseObject) { - if (errCode == 0) { - NSArray * anchorList = [self parseAnchorsFromJsonArray:responseObject[@"pushers"]]; - self.roomStatusCode = responseObject[@"roomStatusCode"]; - if (completion) { - completion(errCode, errMsg, anchorList); - } - } else { - if (completion) { - completion(errCode, errMsg, nil); - } - } - }]; - }]; -} - -- (void)doCreateRoom:(void (^)(int errCode, NSString *errMsg, NSString * roomID))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - NSDictionary *params = @{@"userID": self->_currentUser.userID, - @"roomID": self.roomInfo.roomID ?: @"", - @"roomInfo":self.roomInfo.roomInfo}; - [self requestWithName:kHttpServerAddr_CreateRoom params:params completion:^(MLVBLiveRoom *self, int errCode, NSString *errMsg, NSDictionary *responseObject) { - if (errCode == 0) { - NSString *roomID = responseObject[@"roomID"]; - self.roomInfo.roomID = roomID; - self.roomInfo.roomCreator = self->_currentUser.userID; - if (completion) { - completion(errCode, errMsg, roomID); - } - } else { - if (completion) { - completion(ROOM_ERR_CREATE_ROOM, [NSString stringWithFormat:@"%@[%d]", errMsg, errCode], nil); - } - } - }]; - }]; -} - -- (void)doAddAnchor:(NSString*)roomID completion:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - MLVBLoginInfo *user = self->_currentUser; - NSDictionary *params = @{@"roomID": roomID, @"userID": user.userID, @"userName": user.userName, @"userAvatar": user.userAvatar, @"pushURL": self->_pushUrl}; - [self requestWithName:kHttpServerAddr_AddAnchor params:params completion:^(MLVBLiveRoom *self, int errCode, NSString *errMsg, NSDictionary *responseObject) { - if (completion) { - if (errCode == 0) { - completion(errCode, errMsg); - } else { - completion(ROOM_ERR_ENTER_ROOM, [NSString stringWithFormat:@"%@[%d]", errMsg, errCode]); - } - } - }]; - }]; -} - -- (void)doDeleteAnchorWithRoomID:(NSString *)roomID userID:(NSString *)userID completion:(void(^)(int,NSString*))completion { - // 作为连麦者退出房间(不区分大、小主播、普通观众) - [self asyncRun:^(MLVBLiveRoom *self) { - NSDictionary *params = @{@"roomID": roomID, @"userID": userID}; - [self requestWithName:kHttpServerAddr_DeleteAnchor params:params completion:^(MLVBLiveRoom *self, int errCode, NSString *errMsg, NSDictionary *responseObject) { - if (errCode == 0) { - [self notifyAnchorChange]; - } - if (completion) { - completion(errCode, errMsg); - } - }]; - }]; -} - -- (void)doAddAudience:(NSString*)roomID userID:(NSString*)userID userInfo:(NSString*)userInfo completion:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - NSDictionary *params = @{@"roomID": roomID, @"userID": userID, @"userInfo": userInfo}; - [self requestWithName:kHttpServerAddr_AddAudience params:params completion:^(MLVBLiveRoom *self, int errCode, NSString *errMsg, NSDictionary *responseObject) { - if (completion) { - if (errCode == 0) { - completion(errCode, errMsg); - } else { - completion(ROOM_ERR_ENTER_ROOM, [NSString stringWithFormat:@"%@[%d]", errMsg, errCode]); - } - } - }]; - }]; -} - -- (void)doDeleteAudience:(NSString*)roomID userID:(NSString*)userID completion:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^(MLVBLiveRoom *self) { - NSDictionary *params = @{@"roomID": roomID, @"userID": userID}; - [self requestWithName:kHttpServerAddr_DeleteAudience params:params completion:^(MLVBLiveRoom *self, int errCode, NSString *errMsg, NSDictionary *responseObject) { - if (completion) { - if (errCode == 0) { - completion(errCode, errMsg); - } else { - completion(ROOM_ERR_ENTER_ROOM, [NSString stringWithFormat:@"%@[%d]", errMsg, errCode]); - } - } - }]; - }]; -} - --(void) sendMergeStreamRequest:(NSDictionary*)mergeParams retryCount:(NSInteger)retryCount -{ - NSLog(@"MergeVideoStream: sendRequest, retryIndex = %d\n%@", (int)retryCount, mergeParams); - [self asyncRun:^(MLVBLiveRoom *self) { - [self requestWithName:kHttpServerAddr_MergeStream params:mergeParams completion:^(MLVBLiveRoom *self, int errCode, NSString *errMsg, NSDictionary *responseObject) { - if (errCode == ROOM_ERR_REQUEST_TIMEOUT) { - // 因网络原因失败 - [self sendDebugMsg:LocalizeReplaceXX(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.requestfailedxx"), [NSString stringWithFormat:@"%@",errMsg])]; - return; - } - - int merge_code = [responseObject[@"merge_code"] intValue]; - NSString *merge_msg = responseObject[@"merge_message"]; - NSNumber *timestamp = responseObject[@"timestamp"]; - [self sendDebugMsg:LocalizeReplaceFiveCharacter(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.appsvrmsgrequestxxyyzzmmnn"), [NSString stringWithFormat:@"%d",errCode],[NSString stringWithFormat:@"%@",errMsg], [NSString stringWithFormat:@"%d",merge_code], [NSString stringWithFormat:@"%@",merge_msg], [NSString stringWithFormat:@"%@",[timestamp stringValue]])]; - - if (merge_code != 0) { - if (retryCount > 0) { - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_global_queue(QOS_CLASS_DEFAULT, 0), ^{ - [self sendMergeStreamRequest:mergeParams retryCount:retryCount-1]; - }); - } - } - }]; - }]; -} - -#pragma mark - Response Parser -- (NSArray *)parseRoomListFromResponse:(NSDictionary *)responseObject { - NSArray *rooms = responseObject[@"rooms"]; - NSMutableArray *roomInfos = [[NSMutableArray alloc] init]; - for (id room in rooms) { - MLVBRoomInfo *roomInfo = [[MLVBRoomInfo alloc] init]; - roomInfo.roomID = room[@"roomID"]; - roomInfo.roomInfo = room[@"roomInfo"]; - roomInfo.roomCreator = room[@"roomCreator"]; - roomInfo.mixedPlayURL = room[@"mixedPlayURL"]; - roomInfo.custom = room[@"custom"]; - NSDictionary *anchorDict = [[room[@"pushers"] filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"userID = %@", roomInfo.roomCreator]] firstObject]; - MLVBAnchorInfo *anchor = [[MLVBAnchorInfo alloc] init]; - anchor.userID = anchorDict[@"userID"]; - anchor.userName = anchorDict[@"userName"]; - anchor.userAvatar = anchorDict[@"userAvatar"]; - roomInfo.anchor = anchor; - roomInfo.audienceInfoArray = [self parseAudiencesFromJsonObject:room[@"audiences"]]; - - [roomInfos addObject:roomInfo]; - } - return roomInfos; -} - -// 1. 找到房主加速流地址保存到 self.roomCreatorPlayerURL -// 2. 返回小主播列表 -- (NSArray *)parseAnchorsFromJsonArray:(NSArray *)anchorList { - if (anchorList == nil) { - return nil; - } - - NSMutableArray *anchorInfoArray = [[NSMutableArray alloc] init]; - for (id anchor in anchorList) { - MLVBAnchorInfo *anchorInfo = [[MLVBAnchorInfo alloc] init]; - anchorInfo.accelerateURL = anchor[@"accelerateURL"]; - anchorInfo.userID = anchor[@"userID"]; - anchorInfo.userName = anchor[@"userName"]; - anchorInfo.userAvatar = anchor[@"userAvatar"]; - - // 注意:这里将自己过滤掉 (为了上层使用方便) - if ([anchorInfo.userID isEqualToString:_currentUser.userID]) { - continue; - } - - // 注意:这里将大主播过滤掉 (为了上层使用方便) - // 内部使用时需要过滤,如果是外面调用getRoomList接口时则不能过滤,不然显示在线人数有问题 - if ([anchorInfo.userID isEqualToString:self.roomInfo.roomCreator]) { - self.roomCreatorPlayerURL = anchorInfo.accelerateURL; - continue; - } - - [anchorInfoArray addObject:anchorInfo]; - } - - return anchorInfoArray; -} - -- (NSMutableArray *)parseAudiencesFromJsonObject:(NSDictionary *)audiences { - if (audiences == nil) { - return nil; - } - - NSMutableArray *audienceInfoArray = [[NSMutableArray alloc] init]; - NSArray * array = audiences[@"audiences"]; - if (array != nil && array.count > 0) { - for (id item in array) { - MLVBAudienceInfo * audienceInfo = [[MLVBAudienceInfo alloc] init]; - audienceInfo.userID = item[@"userID"]; - audienceInfo.userInfo = item[@"userInfo"]; - - // 注意:这里将自己过滤掉 (为了上层使用方便) - if ([audienceInfo.userID isEqualToString:_currentUser.userID]) { - continue; - } - - [audienceInfoArray addObject:audienceInfo]; - } - } - - return audienceInfoArray; -} - -#pragma mark - IRoomLivePlayListener --(void)onLivePlayNetStatus:(NSString*) userID withParam: (NSDictionary*) param { - if (self.roomInfo.roomCreator != nil && [self.roomInfo.roomCreator isEqualToString:userID]) { - if (param) { - int renderMode = RENDER_MODE_FILL_SCREEN; - int width = [(NSNumber*)[param valueForKey:NET_STATUS_VIDEO_WIDTH] intValue]; - int height = [(NSNumber*)[param valueForKey:NET_STATUS_VIDEO_HEIGHT] intValue]; - if (width > 0 && height > 0) { - //pc上混流后的宽高比为4:5,这种情况下填充模式会把左右的小主播窗口截掉一部分,用适应模式比较合适 - float ratio = (float) height / width; - if (ratio > 1.3f) { - renderMode = RENDER_MODE_FILL_SCREEN; - } - else { - renderMode = RENDER_MODE_FILL_EDGE; - } - if (_renderMode != renderMode) { - _renderMode = renderMode; - TXLivePlayer * livePlayer = _playerWrapperDic[self.roomInfo.roomCreator].player; - if (livePlayer) { - [livePlayer setRenderMode:_renderMode]; - } - } - } - } - } -} - -#pragma mark - RoomMsgListener - -- (void)onRecvGroupTextMsg:(NSString *)groupID userID:(NSString *)userID textMsg:(NSString *)textMsg userName:(NSString *)userName userAvatar:(NSString *)userAvatar { - if (![groupID isEqualToString:self.roomInfo.roomID]) { - return; - } - - dispatch_async(self.delegateQueue, ^{ - if ([self.delegate respondsToSelector:@selector(onRecvRoomTextMsg:userID:userName:userAvatar:message:)]) { - [self.delegate onRecvRoomTextMsg:groupID userID:userID userName:userName userAvatar:userAvatar message:textMsg]; - } - }); -} - -- (void)onMemberChange:(NSString *)groupID { - if (![groupID isEqualToString:self.roomInfo.roomID]) { - return; - } - if (_roomRole == RoomRoleMember) { // 普通观众不需要关注这个消息 - return; - } - if (_inBackground == YES) { //切后台期间,忽略这个消息 - return; - } - [self _updateAnchorList:^(int errCode, NSString *errMsg, NSArray *updatedAnchorList) { - [self handleUpdatedAnchorList:updatedAnchorList]; - }]; -} - -- (void)onGroupDelete:(NSString *)groupID { - [self sendDebugMsg:LocalizeReplaceXX(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.roomxxxwasdisbanded"), [NSString stringWithFormat:@"%@",groupID])]; - dispatch_async(self.delegateQueue, ^{ - if ([groupID isEqualToString:self.roomInfo.roomID]) { - if ([self.delegate respondsToSelector:@selector(onRoomDestroy:)]) { - [self.delegate onRoomDestroy:groupID]; - } - } - }); -} - -// 接收到小主播的连麦请求 -- (void)onRecvJoinAnchorRequest:(NSString *)roomID userID:(NSString *)userID userName:(NSString *)userName userAvatar:(NSString *)userAvatar reason:(NSString *)reason { - if (![roomID isEqualToString:self.roomInfo.roomID]) { - return; - } - [self sendDebugMsg:LocalizeReplace(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.rogerthehostxxyy"),[NSString stringWithFormat:@"%@",userID],[NSString stringWithFormat:@"%@",userName])]; - [self asyncRun:^(MLVBLiveRoom *self) { - dispatch_async(self.delegateQueue, ^{ - if ([self.delegate respondsToSelector:@selector(onRequestJoinAnchor:reason:)]) { - MLVBAnchorInfo *anchor = [[MLVBAnchorInfo alloc] init]; - anchor.userID = userID; - anchor.userName = userName; - anchor.userAvatar = userAvatar; - [self.delegate onRequestJoinAnchor:anchor reason:reason]; - } - }); - }]; -} - -// 接收到大主播的连麦回应, result为YES表示同意连麦,为NO表示拒绝连麦 -- (void)onRecvJoinAnchorResponse:(NSString *)roomID result:(BOOL)result message:(NSString *)message { - if (![roomID isEqualToString:self.roomInfo.roomID]) { - return; - } - [self sendDebugMsg:LocalizeReplace(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.receivethebiganchortorespondxxyy"), [NSString stringWithFormat:@"%d",result],[NSString stringWithFormat:@"%@",message])]; - dispatch_async(dispatch_get_main_queue(), ^{ - [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(handleRequestJoinAnchorTimeOut:) object:self]; - if (self.requestAnchorCompletion) { - self.requestAnchorCompletion(result ? 0 : ROOM_ERR_USER_REJECTED, message); - self.requestAnchorCompletion = nil; - } - }); -} - -// 接收到被大主播的踢出连麦的消息 -- (void)onRecvJoinAnchorKickout:(NSString *)roomID { - if (![roomID isEqualToString:self.roomInfo.roomID]) { - return; - } - - [self sendDebugMsg:LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.receiveanchorkickoutthenewsofevenwheat")]; - dispatch_async(self.delegateQueue, ^{ - if ([self.delegate respondsToSelector:@selector(onKickoutJoinAnchor)]) { - [self.delegate onKickoutJoinAnchor]; - } - }); -} - -// 接收群自定义消息,cmd为自定义命令字,msg为自定义消息体(这里统一使用json字符串) -- (void)onRecvGroupCustomMsg:(NSString *)groupID userID:(NSString *)userID cmd:(NSString *)cmd msg:(NSString *)msg userName:(NSString *)userName userAvatar:(NSString *)userAvatar { - if (![groupID isEqualToString:self.roomInfo.roomID]) { - return; - } - - dispatch_async(self.delegateQueue, ^{ - if ([self.delegate respondsToSelector:@selector(onRecvRoomCustomMsg:userID:userName:userAvatar:cmd:message:)]) { - [self.delegate onRecvRoomCustomMsg:groupID userID:userID userName:userName userAvatar:userAvatar cmd:cmd message:msg]; - } - }); -} - -// 接收到PK请求 -- (void)onRequestRoomPK:(NSString *)roomID userID:(NSString *)userID userName:(NSString *)userName userAvatar:(NSString *)userAvatar streamUrl:(NSString *)streamUrl { - [self sendDebugMsg:LocalizeReplace(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.receiveroomanchorpkrequestxxyy"),[NSString stringWithFormat:@"%@",roomID],[NSString stringWithFormat:@"%@",userID])]; - dispatch_async(self.delegateQueue, ^{ - if ([self.delegate respondsToSelector:@selector(onRequestRoomPK:)]) { - MLVBAnchorInfo *info = [[MLVBAnchorInfo alloc] init]; - info.userID = userID; - info.userName = userName; - info.userAvatar = userAvatar; - info.accelerateURL = streamUrl; - [self.delegate onRequestRoomPK:info]; - } - }); -} - -// 接收到PK请求回应, result为YES表示同意PK,为NO表示拒绝PK,若同意,则streamUrl为对方的播放流地址 -- (void)onRecvPKResponse:(NSString *)roomID userID:(NSString *)userID result:(BOOL)result message:(NSString *)message streamUrl:(NSString *)streamUrl { - [self sendDebugMsg:LocalizeReplaceFourCharacter(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.pushstreamdisconnectedxxyyzzmm"), [NSString stringWithFormat:@"%@",roomID],[NSString stringWithFormat:@"%@",userID], [NSString stringWithFormat:@"%d",result],[NSString stringWithFormat:@"%@",message])]; - MLVBAnchorInfo *anchor = [[MLVBAnchorInfo alloc] init]; - anchor.userID = userID; - anchor.accelerateURL = streamUrl; - __weak __typeof(self) wself = self; - dispatch_async(dispatch_get_main_queue(), ^{ - __strong __typeof(wself) self = wself; - [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(handleRequestPKTimeout:) object:nil]; - [self asyncRun:^(MLVBLiveRoom *self) { - self->_mixMode = StreamMixModePK; - self.pkAnchor = anchor; - dispatch_async(self.delegateQueue, ^{ - if (self->_requestPKCompletion) { - if (result) { - self.requestPKCompletion(0, message, streamUrl); - } else { - self.requestPKCompletion(ROOM_ERR_USER_REJECTED, message, nil); - } - self->_requestPKCompletion = nil; - } - }); - }]; - - }); -} - -// 接收PK结束消息 -- (void)onRecvPKFinishRequest:(NSString *)roomID userID:(NSString *)userID { - [self sendDebugMsg:LocalizeReplace(LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.receiveroomanchorpkendmsgxxyy"),[NSString stringWithFormat:@"%@",roomID],[NSString stringWithFormat:@"%@",userID])]; - // 判断当前pk的人是不是userID - if (self.pkAnchor == nil || ![self.pkAnchor.userID isEqualToString:userID]) { - return; - } - - [self asyncRun:^(MLVBLiveRoom *self) { - self.pkAnchor = nil; - }]; - dispatch_async(self.delegateQueue, ^{ - if ([self.delegate respondsToSelector:@selector(onQuitRoomPK)]) { - [self.delegate onQuitRoomPK]; - } - }); -} - -- (void)updateAnchorList { - if ([_reachabilityManager networkReachabilityStatus] == AFNetworkReachabilityStatusNotReachable) { - //无网状态时需要情况之前的小主播列表,待有网时重新请求当前房间的小主播列表,否则不会更新小主播UI窗口 - _roomInfo.anchorInfoArray = @[]; - __weak __typeof(self)weakSelf = self; - [self startNetworkReachability:^(BOOL hasNetwork) { - __strong __typeof(weakSelf)strongSelf = weakSelf; - if (hasNetwork) { - [strongSelf _updateAnchorList:^(int errCode, NSString *errMsg, NSArray *updatedAnchorList) { - [strongSelf handleUpdatedAnchorList:updatedAnchorList]; - }]; - } else { - [strongSelf updateAnchorList]; - } - }]; - } else { - __weak __typeof(self)weakSelf = self; - [self _updateAnchorList:^(int errCode, NSString *errMsg, NSArray *updatedAnchorList) { - __strong __typeof(weakSelf)strongSelf = weakSelf; - [strongSelf handleUpdatedAnchorList:updatedAnchorList]; - }]; - } -} - -- (void)startNetworkReachability:(void (^)(BOOL hasNetwork)) block { - [_reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { - switch (status) { - case AFNetworkReachabilityStatusUnknown: - block(false); - break; - case AFNetworkReachabilityStatusNotReachable: - block(false); - break; - case AFNetworkReachabilityStatusReachableViaWWAN: - block(true); - break; - case AFNetworkReachabilityStatusReachableViaWiFi: - block(true); - break; - default: - break; - } - }]; -} - -- (void)sendDebugMsg:(NSString *)msg { - NSLog(@"%@", msg); - dispatch_async(self.delegateQueue, ^{ - if ([self.delegate respondsToSelector:@selector(onDebugLog:)]) { - [self.delegate onDebugLog:msg]; - } - }); -} - -#pragma mark - 连麦混流 - -// mode: 1 表示连麦模式 2 表示PK模式, 二者画面布局不同 -// playUrlArray 表示待混流的播放地址(自己除外) -// https://cloud.tencent.com/document/product/267/8832 -- (void)requestMergeStreamWithPlayUrlArray:(NSArray *)playUrlArray withMode:(StreamMixMode)mode { - [self requestMergeStream:5 playUrlArray:playUrlArray withMode:mode]; -} - -- (void)requestMergeStream: (int)retryCount playUrlArray:(NSArray *)playUrlArray withMode:(StreamMixMode)mode { - NSDictionary *mergeParams = nil; - if (mode == StreamMixModePK && playUrlArray.count > 0) { - mergeParams = [self createPKMergeParams:playUrlArray]; - } else { - mergeParams = [self createJoinAnchorMergeParams:playUrlArray]; - } - NSDictionary *param = @{@"userID": _currentUser.userID, @"roomID": self.roomInfo.roomID, @"mergeParams": mergeParams}; - dispatch_async(dispatch_get_global_queue(QOS_CLASS_DEFAULT, 0), ^{ - [self sendMergeStreamRequest:param retryCount:retryCount]; - }); -} - -// 连麦合流参数 -- (NSDictionary*)createJoinAnchorMergeParams:(NSArray *)playUrlArray { - NSString *mainStreamId = [self getStreamIDByStreamUrl:_pushUrl]; - - NSMutableArray * inputStreamList = [NSMutableArray new]; - - //大主播 - NSDictionary * mainStream = @{ - @"input_stream_id": mainStreamId, - @"layout_params": @{@"image_layer": [NSNumber numberWithInt:1]} - }; - [inputStreamList addObject:mainStream]; - - NSString * streamInfo = [NSString stringWithFormat:@"mainStream: %@", mainStreamId]; - - - int mainStreamWidth = 540; - int mainStreamHeight = 960; - int subWidth = 160; - int subHeight = 240; - int offsetHeight = 90; - if (mainStreamWidth < 540 || mainStreamHeight < 960) { - subWidth = 120; - subHeight = 180; - offsetHeight = 60; - } - int subLocationX = mainStreamWidth - subWidth; - int subLocationY = mainStreamHeight - subHeight - offsetHeight; - - NSMutableArray *subStreamIds = [[NSMutableArray alloc] init]; - for (NSString *playUrl in playUrlArray) { - [subStreamIds addObject:[self getStreamIDByStreamUrl:playUrl]]; - } - - //小主播 - int index = 0; - for (NSString * item in subStreamIds) { - NSDictionary * subStream = @{ - @"input_stream_id": item, - @"layout_params": @{ - @"image_layer": [NSNumber numberWithInt:(index + 2)], - @"image_width": [NSNumber numberWithInt: subWidth], - @"image_height": [NSNumber numberWithInt: subHeight], - @"location_x": [NSNumber numberWithInt:subLocationX], - @"location_y": [NSNumber numberWithInt:(subLocationY - index * subHeight)] - } - }; - ++index; - [inputStreamList addObject:subStream]; - - streamInfo = [NSString stringWithFormat:@"%@ subStream%d: %@", streamInfo, index, item]; - } - - NSLog(@"MergeVideoStream: %@", streamInfo); - - //para - NSDictionary * para = @{ - @"app_id": @(_currentUser.sdkAppID) , - @"interface": @"mix_streamv2.start_mix_stream_advanced", - @"mix_stream_session_id": mainStreamId, - @"output_stream_id": mainStreamId, - @"input_stream_list": inputStreamList - }; - - //interface - NSDictionary * interface = @{ - @"interfaceName":@"Mix_StreamV2", - @"para":para - }; - - - //mergeParams - NSDictionary * mergeParams = @{ - @"timestamp": [NSNumber numberWithLong: (long)[[NSDate date] timeIntervalSince1970]], - @"eventId": [NSNumber numberWithLong: (long)[[NSDate date] timeIntervalSince1970]], - @"interface": interface - }; - return mergeParams; -} - -// PK合流参数 -- (NSDictionary*)createPKMergeParams:(NSArray *)playUrlArray { - NSString *mainStreamId = [self getStreamIDByStreamUrl:_pushUrl]; - NSString *pkStreamId = @""; - for (NSString *playUrl in playUrlArray) { // 目前只会有一个主播PK - pkStreamId = [self getStreamIDByStreamUrl:playUrl]; - break; - } - - NSMutableArray * inputStreamList = [NSMutableArray new]; - - //画布 - NSDictionary * canvasStream = @{ - @"input_stream_id": mainStreamId, - @"layout_params": @{ - @"image_layer": @(1), - @"input_type": @(3), - @"image_width": @(720), - @"image_height": @(640) - } - }; - [inputStreamList addObject:canvasStream]; - - // mainStream - NSDictionary * mainStream = @{ - @"input_stream_id": mainStreamId, - @"layout_params": @{ - @"image_layer": @(2), - @"image_width": @(360), - @"image_height": @(640), - @"location_x": @(0), - @"location_y": @(0) - } - }; - [inputStreamList addObject:mainStream]; - - // pkStream - NSDictionary * pkStream = @{ - @"input_stream_id": pkStreamId, - @"layout_params": @{ - @"image_layer": @(3), - @"image_width": @(360), - @"image_height": @(640), - @"location_x": @(360), - @"location_y": @(0) - } - }; - [inputStreamList addObject:pkStream]; - - - //para - NSDictionary * para = @{ - @"app_id": @(_currentUser.sdkAppID) , - @"interface": @"mix_streamv2.start_mix_stream_advanced", - @"mix_stream_session_id": mainStreamId, - @"output_stream_id": mainStreamId, - @"input_stream_list": inputStreamList - }; - - //interface - NSDictionary * interface = @{ - @"interfaceName":@"Mix_StreamV2", - @"para":para - }; - - - //mergeParams - NSDictionary * mergeParams = @{ - @"timestamp": [NSNumber numberWithLong: (long)[[NSDate date] timeIntervalSince1970]], - @"eventId": [NSNumber numberWithLong: (long)[[NSDate date] timeIntervalSince1970]], - @"interface": interface - }; - return mergeParams; -} - -- (NSString*) getStreamIDByStreamUrl:(NSString*) strStreamUrl { - if (strStreamUrl == nil || strStreamUrl.length == 0) { - return nil; - } - - //推流地址格式:rtmp://8888.livepush.myqcloud.com/path/8888_test_12345_test?txSecret=aaaa&txTime=bbbb - //拉流地址格式:rtmp://8888.liveplay.myqcloud.com/path/8888_test_12345_test - // http://8888.liveplay.myqcloud.com/path/8888_test_12345_test.flv - // http://8888.liveplay.myqcloud.com/path/8888_test_12345_test.m3u8 - - NSString * strSubString = strStreamUrl; - - { - //1 截取第一个 ?之前的子串 - NSString * strFind = @"?"; - NSRange range = [strSubString rangeOfString:strFind]; - if (range.location != NSNotFound) { - strSubString = [strSubString substringToIndex:range.location]; - } - if (strSubString == nil || strSubString.length == 0) { - return nil; - } - } - - { - //2 截取最后一个 / 之后的子串 - NSString * strFind = @"/"; - NSRange range = [strSubString rangeOfString:strFind options:NSBackwardsSearch]; - if (range.location != NSNotFound) { - strSubString = [strSubString substringFromIndex:range.location + range.length]; - } - if (strSubString == nil || strSubString.length == 0) { - return nil; - } - } - - { - //3 截取第一个 . 之前的子串 - NSString * strFind = @"."; - NSRange range = [strSubString rangeOfString:strFind]; - if (range.location != NSNotFound) { - strSubString = [strSubString substringToIndex:range.location]; - } - if (strSubString == nil || strSubString.length == 0) { - return nil; - } - } - - return strSubString; -} - --(int)getPlayType:(NSString*)playUrl { - if ([playUrl hasPrefix:@"rtmp:"]) { - return PLAY_TYPE_LIVE_RTMP; - } - else if (([playUrl hasPrefix:@"https:"] || [playUrl hasPrefix:@"http:"]) && ([playUrl rangeOfString:@".flv"].length > 0)) { - return PLAY_TYPE_LIVE_FLV; - } - else{ - return PLAY_TYPE_LIVE_FLV; - } -} -@end - -@implementation MLVBProxy -+ (Class)class { - return [MLVBLiveRoom class]; -} - -- (instancetype)initWithInstance:(MLVBLiveRoom *)object -{ - _object = object; - return self; -} -- (void)destroy { - _object = nil; -} - -- (NSMethodSignature *)methodSignatureForSelector:(SEL)sel { - return [MLVBLiveRoom instanceMethodSignatureForSelector:sel]; -} - -- (void)forwardInvocation:(NSInvocation *)invocation { - if (_object) { - [invocation invokeWithTarget:_object]; - } else { - NSLog(@"Calling method on destroyed MLVBLiveRoom: %p, %s", self, [NSStringFromSelector(invocation.selector) UTF8String]); - } -} -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoomDef.h b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoomDef.h deleted file mode 100644 index c8ee0e2d..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoomDef.h +++ /dev/null @@ -1,177 +0,0 @@ -// -// RoomDef.h -// TXLiteAVDemo -// -// Created by lijie on 2017/11/21. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import - -// 用户账号信息 -@interface MLVBLoginInfo : NSObject -@property (nonatomic, assign) int sdkAppID; -@property (nonatomic, copy) NSString* userID; -@property (nonatomic, copy) NSString* userName; -@property (nonatomic, copy) NSString* userAvatar; -@property (nonatomic, copy) NSString* userSig; -@end - -// 推流者信息 -@interface MLVBAnchorInfo : NSObject -/// 用户 ID -@property (nonatomic, strong) NSString *userID; -/// 用户昵称 -@property (nonatomic, strong) NSString *userName; -/// 用户头像地址 -@property (nonatomic, strong) NSString *userAvatar; -/// 低时延拉流地址(带防盗链key) -@property (nonatomic, strong) NSString *accelerateURL; -@end - -/** 普通观众信息 - * - * 如果 userInfo 是 JSON 字符串,userName 和 userAvatar 会从 userInfo 中的 "userName","userAvatar" 中提取。 - * 如果 MLVBAudienceInfo 从 IM 用户信息中创建,则 userInfo 为空。 - */ -@interface MLVBAudienceInfo : NSObject -@property (nonatomic, copy) NSString* userID; -@property (nonatomic, copy) NSString* userAvatar; -@property (nonatomic, copy) NSString* userName; -@property (nonatomic, copy) NSString* userInfo; -@end - -// 房间信息 -@interface MLVBRoomInfo : NSObject -@property (nonatomic, copy) NSString* roomID; -@property (nonatomic, copy) NSString* roomInfo; -@property (nonatomic, copy) NSString* roomCreator; // 房间创建者的userID -@property (nonatomic, copy) NSString* mixedPlayURL; // 房间混流播放地址 -@property (nonatomic, copy) NSString* custom; -@property (nonatomic, strong) MLVBAnchorInfo* anchor; // 大主播 -@property (nonatomic, strong) NSArray* anchorInfoArray; ///< 小主播列表 -@property (nonatomic, strong) NSNumber *audienceCount; -@property (nonatomic, strong) NSMutableArray* audienceInfoArray; -@end - - -// 视频分辨率比例 -typedef NS_ENUM(NSInteger, RoomVideoRatio) { - ROOM_VIDEO_RATIO_9_16 = 1, // 视频分辨率为9:16 - ROOM_VIDEO_RATIO_3_4 = 2, // 视频分辨率为3:4 - ROOM_VIDEO_RATIO_1_1 = 3, // 视频分辨率为1:1 -}; - -/// 后台错误码 -typedef NS_ENUM(NSInteger, RoomServerError) { - //推流和拉流错误码,请查看 TXLiteAVCode.h - //IM 错误码,请查看 https://cloud.tencent.com/document/product/269/1671 - - /*msg处理错误*/ - ERROR_CODE_INVALID_MSG = 200100, - ERROR_CODE_INVALID_JSON = 200101, - /*参数校验错误*/ - ERROR_CODE_INCOMPLETE_PARAM = 201000, - ERROR_CODE_INCOMPLETE_LOGIN_PARAM = 201001, - ERROR_CODE_NO_USERID = 201002, - ERROR_CODE_USERID_NOT_EQUAL = 201003, - ERROR_CODE_NO_ROOMID = 201004, - ERROR_CODE_NO_COUNT = 201005, - ERROR_CODE_NO_MERGE_STREAM_PARAM = 201006, - ERROR_CODE_OPERATION_EMPTY = 201007, - ERROR_CODE_UNSUPPORT_OPERATION = 201008, - ERROR_CODE_SET_FIELD_VALUE_EMPTY = 201009, - /*鉴权错误*/ - ERROR_CODE_VERIFY = 202000, - ERROR_CODE_VERIFY_FAILED = 202001, - ERROR_CODE_CONNECTED_TO_IM_SERVER = 202002, - ERROR_CODE_INVALID_RSP = 202003, - ERROR_CODE_LOGOUT = 202004, - ERROR_CODE_APPID_RELATION = 202005, - /*房间操作错误*/ - ERROR_CODE_ROOM_MGR = 203000, - ERROR_CODE_GET_ROOM_ID = 203001, - ERROR_CODE_CREATE_ROOM = 203002, - ERROR_CODE_DESTROY_ROOM = 203003, - ERROR_CODE_GET_ROOM_LIST = 203004, - ERROR_CODE_UPDATE_ROOM_MEMBER = 203005, - ERROR_CODE_ENTER_ROOM = 203006, - ERROR_CODE_ROOM_PUSHER_TOO_MUCH = 203007, - ERROR_CODE_INVALID_PUSH_URL = 203008, - ERROR_CODE_ROOM_NAME_TOO_LONG = 203009, - ERROR_CODE_USER_NOT_IN_ROOM = 203010, - - /*pusher操作错误*/ - ERROR_CODE_PUSHER_MGR = 204000, - ERROR_CODE_GET_PUSH_URL = 204001, - ERROR_CODE_GET_PUSHERS = 204002, - ERROR_CODE_LEAVE_ROOM = 204003, - ERROR_CODE_GET_PUSH_AND_ACC_URL = 204004, - - /*观众操作错误*/ - ERROR_CODE_AUDIENCE_MGR = 205000, - ERROR_CODE_AUDIENCE_NUM_FULL = 205001, - ERROR_CODE_ADD_AUDIENCE = 205002, - ERROR_CODE_DEL_AUDIENCE = 205003, - ERROR_CODE_GET_AUDIENCES = 205004, - - /*心跳处理错误*/ - ERROR_CODE_HEARTBEAT = 206000, - ERROR_CODE_SET_HEARTBEAT = 206001, - ERROR_CODE_DEL_HEARTBEAT = 206002, - /*其他错误*/ - ERROR_CODE_OTHER = 207000, - ERROR_CODE_DB_FAILED = 207001, - ERROR_CODE_MIX_FAILED = 207002, - ERROR_CODE_SET_CUSTOM_FIELD = 207003, - ERROR_CODE_GET_CUSTOM_FIELD = 207004, - ERROR_CODE_UNSUPPORT_ACTION = 207005, - ERROR_CODE_UNSUPPORT_ROOM_TYPE = 207006, -}; - -// 错误码列表 -typedef NS_ENUM(NSInteger, RoomErrCode) { - ROOM_SUCCESS = 0, // 成功 - ROOM_ERR_REQUEST_TIMEOUT = -1, // 请求超时 - ROOM_ERR_IM_LOGIN = -2, // IM登录失败 - ROOM_ERR_CREATE_ROOM = -3, // 创建房间失败 - ROOM_ERR_ENTER_ROOM = -4, // 加入房间失败 - ROOM_ERR_INVALID_LICENSE = -5, // License校验失败 - ROOM_ERR_CANCELED = -6, // 用户取消(如退房) - ROOM_ERR_INSTANCE_RELEASED = -7, // 异步操作返回时 MLVBLiveRoom 已经被释放 - ROOM_ERR_USER_REJECTED = -8, // 请求被对方拒绝 - ROOM_ERR_IM_FORCE_OFFLINE = -9, // IM被强制下线(如多端登录) - ROOM_ERR_PUSH_DISCONNECT = -10, // 推流连接断开 - ROOM_ERR_INVALID_PARAM = -11, // 参数错误 -}; - -/// 自定义字段设置操作 -typedef NS_ENUM(NSInteger, MLVBCustomFieldOp) { - MLVBCustomFieldOpSet, ///< 设置值 - MLVBCustomFieldOpInc, ///< 加计数 - MLVBCustomFieldOpDec ///< 减计数 -}; - -/** - 主播发起PK请求的回调 - @param errCode 0表示成功,1表示拒绝,-1表示超时 - @param errMsg 消息说明 - @param streamUrl 若errCode为0,则streamUrl表示对方主播的播放流地址 - */ -typedef void (^IRequestPKCompletionHandler)(int errCode, NSString *errMsg, NSString *streamUrl); - -/** - 获取房间列表的回调 - @param roomInfoArray 请求的房间列表信息 - */ -typedef void (^IGetRoomListCompletionHandler)(int errCode, NSString *errMsg, NSArray *roomInfoArray); - -/** - 播放开始的回调 - */ -typedef void (^IPlayBegin)(void); - -/** - 播放过程中发生错误时的回调 - */ -typedef void (^IPlayError)(int errCode, NSString *errMsg); diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoomDef.m b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoomDef.m deleted file mode 100644 index 8abc8b6b..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoomDef.m +++ /dev/null @@ -1,68 +0,0 @@ -// -// RoomDef.m -// TXLiteAVDemo -// -// Created by lijie on 2017/11/21. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import "MLVBLiveRoomDef.h" - -@implementation MLVBLoginInfo -- (instancetype)copyWithZone:(NSZone *)zone -{ - MLVBLoginInfo *loginInfo = [[MLVBLoginInfo alloc] init]; - loginInfo.userID = self.userID; - loginInfo.userName = self.userName; - loginInfo.userAvatar = self.userAvatar; - loginInfo.sdkAppID = self.sdkAppID; - loginInfo.userSig = self.userSig; - return loginInfo; -} -@end - -@implementation MLVBAnchorInfo -- (BOOL)isEqual:(MLVBAnchorInfo *)object { - if (object == nil) return NO; - if (![object isKindOfClass:[MLVBAnchorInfo class]]) return NO; - return self.userID == object.userID || [self.userID isEqualToString:object.userID]; -} -- (NSString *)description { - return [NSString stringWithFormat:@"userID[%@] accelerateURL:[%@]", _userID, _accelerateURL]; -} -@end - -@implementation MLVBAudienceInfo -- (BOOL)isEqual:(MLVBAudienceInfo *)object { - if (object == nil) return NO; - if (![object isKindOfClass:[MLVBAudienceInfo class]]) return NO; - return self.userID == object.userID || [self.userID isEqualToString:object.userID]; -} - -- (void)setUserInfo:(NSString *)userInfo { - if (_userInfo == userInfo) return; - _userInfo = userInfo; - if (userInfo.length > 0) { - NSData *data = [userInfo dataUsingEncoding:NSUTF8StringEncoding]; - NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; - if ([jsonDict isKindOfClass:[NSDictionary class]]) { - _userName = jsonDict[@"userName"]; - _userAvatar = jsonDict[@"userAvatar"]; - } - } -} - -@end - -@implementation MLVBRoomInfo -- (instancetype)init { - if (self = [super init]) { - _anchorInfoArray = [[NSMutableArray alloc] init]; - } - return self; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"roomID[%@] roomName[%@] roomCreator[%@] mixedPlayURL[%@] anchorInfoArray[%@]", _roomID, _roomInfo, _roomCreator, _mixedPlayURL, _anchorInfoArray]; -} -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoomDelegate.h b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoomDelegate.h deleted file mode 100644 index c10af510..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoom/MLVBLiveRoomDelegate.h +++ /dev/null @@ -1,178 +0,0 @@ -// -// LiveRoomDelegate.h -// TXLiteAVDemo -// -// Created by cui on 2019/4/15. -// Copyright © 2019 Tencent. All rights reserved. -// - -#import "MLVBLiveRoomDef.h" - -/** - * MLVBLiveRoom 事件回调 - * - * 包括房间关闭、Debug 事件信息、出错说明等。 - */ -@protocol MLVBLiveRoomDelegate -#pragma mark - 通用事件回调 -/// @name 通用事件回调 -/// @{ -/** - * 错误回调 - * - * SDK 不可恢复的错误,一定要监听,并分情况给用户适当的界面提示 - * - * @param errCode 错误码 - * @param errMsg 错误信息 - * @param extraInfo 额外信息,如错误发生的用户,一般不需要关注,默认是本地错误 - */ -- (void)onError:(int)errCode errMsg:(NSString*)errMsg extraInfo:(NSDictionary *)extraInfo; - -@optional - -/** - * 警告回调 - * - * @param warningCode 错误码 TRTCWarningCode - * @param warningMsg 警告信息 - * @param extraInfo 额外信息,如警告发生的用户,一般不需要关注,默认是本地错误 - */ -- (void)onWarning:(int)warningCode warningMsg:(NSString *)warningMsg extraInfo:(NSDictionary *)extraInfo; - -/** - * Log 回调 - * - * @param log LOG 信息 - */ -- (void)onDebugLog:(NSString *)log; - -/// @} - -#pragma mark - 房间事件回调 -/// @name 房间事件回调 -/// @{ -/** - * 房间被销毁的回调 - * - * 主播退房时,房间内的所有用户都会收到此通知 - * - * @param roomID 房间 ID - */ -- (void)onRoomDestroy:(NSString *)roomID; -/// @} - - -#pragma mark - 主播和观众的进出事件回调 -/// @name 主播和观众的进出事件回调 -/// @{ -/** - * 收到新主播进房通知 - * - * 房间内的主播(和连麦中的观众)会收到新主播的进房事件,您可以调用 MLVBLiveRoom#startRemoteView() 显示该主播的视频画面。 - * - * @param anchorInfo 新进房用户信息 - * - * @note 直播间里的普通观众不会收到主播加入和推出的通知。 - */ -- (void)onAnchorEnter:(MLVBAnchorInfo *)anchorInfo; - -/** - * 收到主播退房通知 - * - * 房间内的主播(和连麦中的观众)会收到新主播的退房事件,您可以调用 MLVBLiveRoom#stopRemoteView: 关闭该主播的视频画面。 - * - * @param anchorInfo 退房用户信息 - * - * @note 直播间里的普通观众不会收到主播加入和推出的通知。 - */ -- (void)onAnchorExit:(MLVBAnchorInfo *)anchorInfo; - -/** - * 收到观众进房通知 - * - * @param audienceInfo 进房观众信息 - */ -- (void)onAudienceEnter:(MLVBAudienceInfo *)audienceInfo; - -/** - * 收到观众退房通知 - * - * @param audienceInfo 退房观众信息 - */ -- (void)onAudienceExit:(MLVBAudienceInfo *)audienceInfo; -/// @} - -#pragma mark - 主播和观众连麦事件回调 -/// @name 主播和观众连麦事件回调 -/// @{ - -/** - * 主播收到观众连麦请求时的回调 - * - * @param anchorInfo 观众信息 - * @param reason 连麦原因描述 - */ -- (void)onRequestJoinAnchor:(MLVBAnchorInfo *)anchorInfo reason:(NSString *)reason; - -/** - * 连麦观众收到被踢出连麦的通知 - * - * 连麦观众收到被主播踢除连麦的消息,您需要调用 MLVBLiveRoom#kickoutJoinAnchor: 来退出连麦 - */ -- (void)onKickoutJoinAnchor; - -/// @} - - -#pragma mark - 主播 PK 事件回调 -/// @name 主播 PK 事件回调 -/// @{ - -/** - * 收到请求跨房 PK 通知 - * - * 主播收到其他房间主播的 PK 请求 - * 如果同意 PK ,您需要调用 MLVBLiveRoom#startRemoteView() 接口播放邀约主播的流 - * - * @param anchorInfo 发起跨房连麦的主播信息 - */ -- (void)onRequestRoomPK:(MLVBAnchorInfo *)anchorInfo; - -/** - * 收到断开跨房 PK 通知 - */ -- (void)onQuitRoomPK; - -/// @} - -#pragma mark - 消息事件回调 -/// @name 消息事件回调 -/// @{ - -/** - * 收到文本消息 - * - * @param roomID 房间 ID - * @param userID 发送者 ID - * @param userName 发送者昵称 - * @param userAvatar 发送者头像 - * @param message 文本消息 - */ -- (void)onRecvRoomTextMsg:(NSString *)roomID userID:(NSString *)userID userName:(NSString *)userName userAvatar:(NSString *)userAvatar message:(NSString *)message; - -/** - * 收到自定义消息 - * - * @param roomID 房间 ID - * @param userID 发送者 ID - * @param userName 发送者昵称 - * @param userAvatar 发送者头像 - * @param cmd 自定义 cmd - * @param message 自定义消息内容 - */ -- (void)onRecvRoomCustomMsg:(NSString *)roomID userID:(NSString *)userID userName:(NSString *)userName userAvatar:(NSString *)userAvatar cmd:(NSString *)cmd message:(NSString *)message; - - -/// @} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomAccPlayerView.h b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomAccPlayerView.h deleted file mode 100644 index 2a900749..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomAccPlayerView.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// LiveRoomAccPlayerView.h -// TXLiteAVDemo -// -// Created by cui on 2019/5/7. -// Copyright © 2019 Tencent. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface LiveRoomAccPlayerView : UIView -@property (nonatomic, assign) BOOL loading; -@property (nonatomic, assign) BOOL closeEnabled; -@property (nonatomic, copy) void(^onClose)(LiveRoomAccPlayerView *view); -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomAccPlayerView.m b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomAccPlayerView.m deleted file mode 100644 index 6f0b9c72..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomAccPlayerView.m +++ /dev/null @@ -1,113 +0,0 @@ -// -// LiveRoomAccPlayerView.m -// TXLiteAVDemo -// -// Created by cui on 2019/5/7. -// Copyright © 2019 Tencent. All rights reserved. -// - -#import "LiveRoomAccPlayerView.h" - -@interface LiveRoomPlayerItemView : UIView - -- (void)startLoadingAnimation; -- (void)stopLoadingAnimation; - -@end - -@implementation LiveRoomAccPlayerView { - LiveRoomPlayerItemView *_loadingView; - UIButton *_closeButton; -} -- (instancetype)initWithFrame:(CGRect)frame -{ - self = [super initWithFrame:frame]; - if (self) { - self.layer.borderColor = [UIColor whiteColor].CGColor; - self.layer.borderWidth = 1; - _loading = YES; - _loadingView = [[LiveRoomPlayerItemView alloc] initWithFrame:self.bounds]; - _loadingView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - [_loadingView startLoadingAnimation]; - [self addSubview:_loadingView]; - } - return self; -} - -- (void)setLoading:(BOOL)loading { - if (_loading == loading) return; - _loading = loading; - _loadingView.hidden = !loading; - if (loading) { - [_loadingView startLoadingAnimation]; - } else { - [_loadingView stopLoadingAnimation]; - } -} - -- (void)setCloseEnabled:(BOOL)closeEnabled { - if (_closeEnabled == closeEnabled) return; - if (closeEnabled) { - if (_closeButton == nil) { - UIButton *btnKick = [UIButton buttonWithType:UIButtonTypeCustom]; - btnKick.frame = CGRectMake(CGRectGetWidth(self.bounds) - 18, 2, 16, 16); - btnKick.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin; - [btnKick setBackgroundImage:[UIImage imageNamed:@"linkmic_kickout"] forState:UIControlStateNormal]; - [btnKick setTitleColor:[UIColor clearColor] forState:UIControlStateNormal]; - [btnKick addTarget:self action:@selector(onTapClose:) forControlEvents:UIControlEventTouchUpInside]; - [self addSubview:btnKick]; - _closeButton = btnKick; - } - } - _closeButton.hidden = !closeEnabled; -} - -- (void)onTapClose:(UIButton *)sender { - if (self.onClose) { - self.onClose(self); - } -} - -@end - -@implementation LiveRoomPlayerItemView -{ - UIImageView *_loadingImageView; -} - -- (id)initWithFrame:(CGRect)frame { - if (self = [super initWithFrame:frame]) { - //loading imageview - NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:[UIImage imageNamed:@"loading_1.png"],[UIImage imageNamed:@"loading_2.png"],[UIImage imageNamed:@"loading_3.png"],[UIImage imageNamed:@"loading_4.png"],[UIImage imageNamed:@"loading_5.png"],[UIImage imageNamed:@"loading_6.png"],[UIImage imageNamed:@"loading_7.png"],[UIImage imageNamed:@"loading_8.png"],[UIImage imageNamed:@"loading_9.png"],[UIImage imageNamed:@"loading_10.png"],[UIImage imageNamed:@"loading_11.png"],[UIImage imageNamed:@"loading_12.png"],[UIImage imageNamed:@"loading_13.png"],[UIImage imageNamed:@"loading_14.png"], nil]; - _loadingImageView = [[UIImageView alloc] initWithFrame:CGRectZero]; - _loadingImageView.animationImages = array; - _loadingImageView.animationDuration = 1; - _loadingImageView.hidden = YES; - [self addSubview:_loadingImageView]; - } - return self; -} - -- (void)layoutSubviews { - float width = 45; - float height = 45; - float offsetX = (self.frame.size.width - width) / 2; - float offsetY = (self.frame.size.height - height) / 2; - _loadingImageView.frame = CGRectMake(offsetX, offsetY, width, height); -} - -- (void)startLoadingAnimation { - if (_loadingImageView != nil) { - _loadingImageView.hidden = NO; - [_loadingImageView startAnimating]; - } -} - -- (void)stopLoadingAnimation { - if (_loadingImageView != nil) { - _loadingImageView.hidden = YES; - [_loadingImageView stopAnimating]; - } -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomListViewController.h b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomListViewController.h deleted file mode 100644 index 27aa190d..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomListViewController.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// LiveRoomListViewController.h -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import - -@interface LiveRoomListViewController : UIViewController - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomListViewController.m b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomListViewController.m deleted file mode 100644 index c2b2282c..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomListViewController.m +++ /dev/null @@ -1,389 +0,0 @@ -// -// LiveRoomListViewController.m -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import "LiveRoomListViewController.h" -#import "MLVBLiveRoom.h" -#import "UIView+Additions.h" -#import "LiveRoomPlayerViewController.h" -#import "AFNetworking.h" -#import "ColorMacro.h" -#import "LiveRoomTableViewCell.h" -#import "LiveRoomNewViewController.h" -#import "AppDelegate.h" -#import "TXLiteAVDemo-Swift.h" -#import "GenerateTestUserSig.h" -#import "AppLocalized.h" - -// 正式使用时需要换成您自己的 User Sig 签发接口 -// 请参考 https://cloud.tencent.com/document/product/454/14548 -static NSString * const kAPPID = @"1252463788"; - -@interface LiveRoomListViewController () { - NSArray *_roomInfoArray; - - UILabel *_tipLabel; - UITableView *_roomlistView; - UIButton *_createBtn; - UIButton *_helpBtn; - - UIButton *_btnLog; - UITextView *_logView; - BOOL _log_switch; - UIView *_coverView; - - NSArray *_userNameArray; - NSString *_userName; - NSString *_userID; -} - -@property (nonatomic, strong) MLVBLiveRoom *liveRoom; -@property (nonatomic, assign) BOOL initSucc; - -@end - -@implementation LiveRoomListViewController - -- (void)dealloc -{ - [_liveRoom logout]; - [MLVBLiveRoom destorySharedInstance]; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - - _liveRoom = [MLVBLiveRoom sharedInstance]; - [_liveRoom setCameraMuteImage:[UIImage imageNamed:@"pause_publish.jpg"]]; - _liveRoom.delegate = self; - - _roomInfoArray = [[NSArray alloc] init]; - _userNameArray = [[NSArray alloc] initWithObjects:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.lyf"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.lb"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.mq"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.wzj"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.zy"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.lb"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.hy"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.aql"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.as"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.cc"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.blsy"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.dhty"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.hml"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.zgl"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.hz"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.bzhw"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.zk"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.lb"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.nkll"), - LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.zf"), nil]; - - _userName = [[NSUserDefaults standardUserDefaults] objectForKey:@"userName"]; - if (_userName == nil || _userName.length == 0) { - _userName = _userNameArray[arc4random() % _userNameArray.count]; - [[NSUserDefaults standardUserDefaults] setObject:_userName forKey:@"userName"]; - } - _initSucc = NO; - - [self initUI]; - [self login]; -} -#pragma mark - Login -- (void)login { - NSString *userID = [[ProfileManager shared] curUserID]; - NSString *userSig = [[ProfileManager shared] curUserSig]; - - MLVBLoginInfo *loginInfo = [MLVBLoginInfo new]; - loginInfo.sdkAppID = SDKAPPID; - loginInfo.userID = userID; - loginInfo.userName = _userName; - loginInfo.userAvatar = @"headpic.png"; - loginInfo.userSig = userSig; - _userID = userID; - // 初始化LiveRoom - _createBtn.enabled = NO; - __weak __typeof(self) weakSelf = self; - [self.liveRoom loginWithInfo:loginInfo completion:^(int errCode, NSString *errMsg) { - __strong __typeof(weakSelf) self = weakSelf; if (nil == self) return; - dispatch_async(dispatch_get_main_queue(), ^{ - self->_createBtn.enabled = YES; - }); - NSLog(@"init LiveRoom errCode[%d] errMsg[%@]", errCode, errMsg); - if (errCode == 0) { - [self onLoginSucceed]; - weakSelf.initSucc = YES; - } else { - [self onLoginFailed]; - [weakSelf alertTips:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.liveRoominitfailure") msg:errMsg]; - } - }]; -} - -#pragma mark - -- (void)onLoginSucceed { - dispatch_async(dispatch_get_main_queue(), ^{ - [_createBtn setTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.createliveroom") forState:UIControlStateNormal]; - _createBtn.enabled = YES; - [self requestRoomList]; - }); -} - -- (void)onLoginFailed { - dispatch_async(dispatch_get_main_queue(), ^{ - [_createBtn setTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.login") forState:UIControlStateNormal]; - _createBtn.enabled = YES; - }); -} - -#pragma mark - - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - [self.navigationController setNavigationBarHidden:NO animated:NO]; - [self requestRoomList]; -} - -- (void)viewDidAppear:(BOOL)animated { - [super viewDidAppear:animated]; - - [_liveRoom setDelegate:self]; -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - [self.navigationController setNavigationBarHidden:YES animated:NO]; -} - -- (void)viewDidDisappear:(BOOL)animated { - [super viewDidDisappear:animated]; -} - -- (void)initUI { - self.title = @"MLVBLiveRoom"; - [self.view setBackgroundColor:UIColorFromRGB(0x333333)]; - - _tipLabel = [[UILabel alloc] initWithFrame:CGRectMake(70*kScaleX, 200*kScaleY, self.view.width - 140*kScaleX, 60*kScaleY)]; - _tipLabel.textColor = UIColorFromRGB(0x999999); - _tipLabel.text = [NSString stringWithFormat:@"%@\n%@",LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.thereisnolivebroadcastinprogress"),LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.pleaseclickonthenewbroadcastroom")]; - _tipLabel.textAlignment = NSTextAlignmentCenter; - _tipLabel.numberOfLines = 2; - _tipLabel.font = [UIFont systemFontOfSize:16]; - [self.view addSubview:_tipLabel]; - - _roomlistView = [[UITableView alloc] initWithFrame:CGRectMake(12*kScaleX, 120*kScaleY, self.view.width - 24*kScaleX, 400*kScaleY)]; - _roomlistView.delegate = self; - _roomlistView.dataSource = self; - _roomlistView.backgroundColor = [UIColor clearColor]; - _roomlistView.allowsMultipleSelection = NO; - _roomlistView.separatorStyle = UITableViewCellSeparatorStyleNone; - [_roomlistView registerClass:[LiveRoomTableViewCell class] forCellReuseIdentifier:@"LiveRoomTableViewCell"]; - [self.view addSubview:_roomlistView]; - - UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; - [refreshControl addTarget:self action:@selector(refreshClick:) forControlEvents:UIControlEventValueChanged]; - [_roomlistView addSubview:refreshControl]; - //[refreshControl beginRefreshing]; - //[self refreshClick:refreshControl]; - - _createBtn = [UIButton buttonWithType:UIButtonTypeCustom]; - _createBtn.frame = CGRectMake(40*kScaleX, self.view.height - 100*kScaleY, self.view.width - 80*kScaleX, 50*kScaleY); - _createBtn.layer.cornerRadius = 8; - _createBtn.layer.masksToBounds = YES; - _createBtn.layer.shadowOffset = CGSizeMake(1, 1); - _createBtn.layer.shadowColor = UIColorFromRGB(0x019b5c).CGColor; - _createBtn.layer.shadowOpacity = 0.8; - _createBtn.backgroundColor = UIColorFromRGB(0x05a764); - [_createBtn setTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.createliveroom") forState:UIControlStateNormal]; - [_createBtn setTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.inthelogin") forState:UIControlStateDisabled]; - [_createBtn addTarget:self action:@selector(onCreateBtnClicked:) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:_createBtn]; - - - HelpBtnUI(MLVBLiveRoom) - - // LOG界面 - _log_switch = NO; - _logView = [[UITextView alloc] initWithFrame:CGRectMake(0, 80*kScaleY, self.view.size.width, self.view.size.height - 150*kScaleY)]; - _logView.backgroundColor = [UIColor clearColor]; - _logView.alpha = 1; - _logView.textColor = [UIColor whiteColor]; - _logView.editable = NO; - _logView.hidden = YES; - [self.view addSubview:_logView]; - - // 半透明浮层,用于方便查看log - _coverView = [[UIView alloc] init]; - _coverView.frame = _logView.frame; - _coverView.backgroundColor = [UIColor whiteColor]; - _coverView.alpha = 0.5; - _coverView.hidden = YES; - [self.view addSubview:_coverView]; - [self.view sendSubviewToBack:_coverView]; -} - -- (void)requestRoomList { - if (!_initSucc) { - return; - } - - [_liveRoom getRoomList:0 count:100 completion:^(int errCode, NSString *errMsg, NSArray *roomInfoArray) { - NSLog(@"getRoomList errCode[%d] errMsg[%@]", errCode, errMsg); - self->_roomInfoArray = roomInfoArray; - - dispatch_async(dispatch_get_main_queue(), ^{ - [self->_roomlistView reloadData]; - if (self->_roomInfoArray.count) { - self->_tipLabel.text = LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.selectthebroadcastroomandclickin"); - self->_tipLabel.frame = CGRectMake(14*kScaleX, 80*kScaleY, self.view.width, 30*kScaleY); - self->_tipLabel.textAlignment = NSTextAlignmentLeft; - } else { - self->_tipLabel.text = [NSString stringWithFormat:@"%@\r\n%@",LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.thereisnolivebroadcastinprogress"),LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.pleaseclickonthenewbroadcastroom")]; - self->_tipLabel.frame = CGRectMake(70*kScaleX, 200*kScaleY, self.view.width - 140*kScaleX, 60*kScaleY); - self->_tipLabel.textAlignment = NSTextAlignmentCenter; - } - }); - }]; -} - -- (void)refreshClick:(UIRefreshControl *)refreshControl { - [refreshControl endRefreshing]; - - [self requestRoomList]; -} - -- (void)onCreateBtnClicked:(UIButton *)sender { - if (!_initSucc) { - [self login]; - return; - } - - LiveRoomNewViewController *newRoomController = [[LiveRoomNewViewController alloc] init]; - newRoomController.liveRoom = _liveRoom; - newRoomController.userID = _userID; - newRoomController.userName = _userName; - [self.navigationController pushViewController:newRoomController animated:YES]; -} - -- (void)clickLog:(UIButton *)sender { - if (!_log_switch) { - _log_switch = YES; - _logView.hidden = NO; - _coverView.hidden = NO; - [self.view bringSubviewToFront:_logView]; - } - else { - _log_switch = NO; - _logView.hidden = YES; - _coverView.hidden = YES; - } -} - -- (void)appendLog:(NSString *)msg { - NSDateFormatter *format = [[NSDateFormatter alloc] init]; - format.dateFormat = @"hh:mm:ss"; - NSString *time = [format stringFromDate:[NSDate date]]; - NSString *log = [NSString stringWithFormat:@"[%@] %@", time, msg]; - NSString *logMsg = [NSString stringWithFormat:@"%@\n%@", _logView.text, log]; - [_logView setText:logMsg]; -} - - -#pragma mark - LiveRoomListener - -- (void)onAnchorEnter:(MLVBAnchorInfo *)anchorInfo { - -} - -- (void)onAnchorExit:(MLVBAnchorInfo *)anchorInfo { - -} - - -- (void)onRoomDestroy:(NSString *)roomID { - -} - -- (void)onDebugLog:(NSString *)msg { - dispatch_async(dispatch_get_main_queue(), ^{ - [self appendLog:msg]; - }); -} - -- (void)onError:(int)errCode errMsg:(NSString *)errMsg extraInfo:(NSDictionary *)extraInfo { - -} - -- (void)alertTips:(NSString *)title msg:(NSString *)msg { - dispatch_async(dispatch_get_main_queue(), ^{ - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:msg preferredStyle:UIAlertControllerStyleAlert]; - [alertController addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.determine") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - }]]; - - [self.navigationController presentViewController:alertController animated:YES completion:nil]; - }); -} - - -#pragma mark - UITableViewDataSource - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 1; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return _roomInfoArray.count; -} - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - static NSString *identify = @"LiveRoomTableViewCell"; - LiveRoomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identify]; - if (cell == nil) { - cell = [[LiveRoomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identify]; - } - if (indexPath.row >= _roomInfoArray.count) { - return cell; - } - - MLVBRoomInfo *roomInfo = _roomInfoArray[indexPath.row]; - - //cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; - //cell.textLabel.text = roomInfo.roomName; - //cell.detailTextLabel.text = [NSString stringWithFormat:@"%lu人在线", roomInfo.memberInfos.count]; - //cell.detailTextLabel.textColor = [UIColor colorWithWhite:0.52 alpha:1.0]; - - NSUInteger memberNum = [roomInfo.audienceInfoArray count]; - - cell.roomInfo = roomInfo.roomInfo; - cell.roomID = roomInfo.roomID; - cell.memberNum = memberNum == 0 ? 1 : memberNum; - - return cell; -} - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - if (indexPath.row >= _roomInfoArray.count) { - return; - } - MLVBRoomInfo *roomInfo = _roomInfoArray[indexPath.row]; - - // 视图跳转 - LiveRoomPlayerViewController *vc = [[LiveRoomPlayerViewController alloc] init]; - vc.roomID = roomInfo.roomID; - vc.roomName = roomInfo.roomInfo; - vc.userName = _userName; - vc.liveRoom = _liveRoom; - _liveRoom.delegate = vc; - - [self.navigationController pushViewController:vc animated:YES]; -} - -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - return 130; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomMsgListTableView.h b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomMsgListTableView.h deleted file mode 100644 index 4b03b1c0..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomMsgListTableView.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// LiveRoomMsgListTableView.h -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import -#import "LiveRoomMsgListTableViewCell.h" - -@interface LiveRoomMsgListTableView : UITableView - -// 给消息列表发送一条消息用于展示 -- (void)appendMsg:(LiveRoomMsgModel *)msgModel; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomMsgListTableView.m b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomMsgListTableView.m deleted file mode 100644 index 11556d15..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomMsgListTableView.m +++ /dev/null @@ -1,156 +0,0 @@ -// -// LiveRoomMsgListTableView.m -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import "LiveRoomMsgListTableView.h" -#import "UIView+Additions.h" - -@implementation LiveRoomMsgListTableView -{ - NSMutableArray *_msgArray; - BOOL _beginScroll; - BOOL _canScrollToBottom; - BOOL _canReload; -} - -- (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style { - if (self = [super initWithFrame:frame style:style]) { - [self initTableView]; - _msgArray = [NSMutableArray array]; - _beginScroll = NO; - _canScrollToBottom = YES; - _canReload = YES; - } - return self; -} - -- (void)initTableView { - self.delegate = self; - self.dataSource = self; - self.backgroundView = nil; - self.backgroundColor = [UIColor blackColor]; - self.separatorStyle = UITableViewCellSeparatorStyleNone; - self.showsVerticalScrollIndicator = NO; -} - -- (void)appendMsg:(LiveRoomMsgModel *)msgModel { - if (!msgModel) { - return; - } - - if (_msgArray.count > 1000) { - [_msgArray removeObjectsInRange:NSMakeRange(0, 100)]; - } - - msgModel.attributedMsgText = [LiveRoomMsgListTableViewCell getAttributedStringFromModel:msgModel]; - msgModel.msgHeight = [self calCellHeight:msgModel.attributedMsgText]; - [_msgArray addObject:msgModel]; - - if (_canReload) { - _canReload = NO; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5*NSEC_PER_SEC), dispatch_get_main_queue(), ^{ - _canReload = YES; - [self reloadData]; - - if (!_beginScroll) { - if ([self calculateTotalCellHeight] >= self.height) { - [self scrollToBottom]; - _beginScroll = YES; - } - } else { - [self scrollToBottom]; - } - }); - } -} - - -- (void)scrollToBottom { - if (_canScrollToBottom) { - NSUInteger n = MIN(_msgArray.count, [self numberOfRowsInSection:0]); - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0), dispatch_get_main_queue(), ^{ - [self scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:n - 1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:NO]; - }); - } -} - -- (CGFloat)calCellHeight:(NSAttributedString *)attribText { - CGRect rect = [attribText boundingRectWithSize:CGSizeMake(250, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin context:nil]; - CGFloat cellHeight = rect.size.height + 5; - return cellHeight; -} - -- (CGFloat)calculateTotalCellHeight { - CGFloat totalCellHeight = 0; - for (LiveRoomMsgModel *model in _msgArray) { - totalCellHeight += model.msgHeight; - } - return totalCellHeight; -} - -#pragma mark UITableViewDelegate - -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - if (indexPath.row < _msgArray.count) { - LiveRoomMsgModel *msgModel = _msgArray[indexPath.row]; - return msgModel.msgHeight; - } - return 20; -} - -- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath { - return 20; -} - -- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { - return 0.01; -} - -- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { - return 0.01; -} - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - -} - -#pragma mark UITableViewDataSource - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return _msgArray.count; -} - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - static NSString *cellID =@"MsgListCell"; - LiveRoomMsgListTableViewCell *cell = (LiveRoomMsgListTableViewCell *)[self dequeueReusableCellWithIdentifier:cellID]; - if (cell == nil) { - cell = [[LiveRoomMsgListTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID]; - cell.accessoryType = UITableViewCellAccessoryNone; - cell.backgroundColor = [UIColor clearColor]; - cell.selectionStyle = UITableViewCellSelectionStyleNone; - } - - if (indexPath.row < _msgArray.count) { - LiveRoomMsgModel *msgModel = _msgArray[indexPath.row]; - [cell refreshWithModel:msgModel]; - } - - return cell; -} - -- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { - _canScrollToBottom = NO; -} - -- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { - CGFloat tableViewOffset = self.contentOffset.y + self.frame.size.height; - if (tableViewOffset + 50 >= [self calculateTotalCellHeight]) { - _canScrollToBottom = YES; - } -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomMsgListTableViewCell.h b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomMsgListTableViewCell.h deleted file mode 100644 index 947dbb7e..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomMsgListTableViewCell.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// LiveRoomMsgListTableViewCell.h -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import - -typedef NS_ENUM(NSInteger, LiveRoomMsgModeType) { - LiveRoomMsgModeTypeSystem = 1, // 系统消息 - LiveRoomMsgModeTypeOneself = 2, // 自己端发送的消息 - LiveRoomMsgModeTypeOther = 3, // 其他人发送的消息 -}; - - -/** - 消息列表用到 - */ -@interface LiveRoomMsgModel : NSObject -@property (nonatomic, assign) LiveRoomMsgModeType type; // 消息类型 -@property (nonatomic, assign) NSTimeInterval time; // 时间戳 -@property (nonatomic, strong) NSString* userName; // 用户昵称 -@property (nonatomic, strong) NSString* userMsg; // 用户消息 -@property (nonatomic, assign) NSInteger msgHeight; // 布局时的消息高度 -@property (nonatomic, strong) NSAttributedString* attributedMsgText; -@end - - -/** - 消息列表cell,用于展示消息 - */ -@interface LiveRoomMsgListTableViewCell : UITableViewCell - -// 刷新cell内容信息 -- (void)refreshWithModel:(LiveRoomMsgModel *)msgModel; - -// 通过msgModel 获取消息列表每行的内容信息,通过返回的AttributedString计算cell的高度 -+ (NSAttributedString *)getAttributedStringFromModel:(LiveRoomMsgModel *)msgModel; - - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomMsgListTableViewCell.m b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomMsgListTableViewCell.m deleted file mode 100644 index 85c7952e..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomMsgListTableViewCell.m +++ /dev/null @@ -1,119 +0,0 @@ -// -// LiveRoomMsgListTableViewCell.m -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import "LiveRoomMsgListTableViewCell.h" -#import "UIView+Additions.h" -#import "ColorMacro.h" -#import "AppLocalized.h" - -@implementation LiveRoomMsgModel - -@end - - -@implementation LiveRoomMsgListTableViewCell -{ - UIView *_msgView; - UILabel *_msgLabel; - - LiveRoomMsgModeType _msgModeType; -} - -- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { - if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { - _msgView = [[UIView alloc] initWithFrame:CGRectZero]; - _msgView.layer.cornerRadius = 10; - _msgView.layer.masksToBounds = YES; - - _msgLabel = [[UILabel alloc] initWithFrame:CGRectZero]; - _msgLabel.numberOfLines = 0; - _msgLabel.font = [UIFont systemFontOfSize:14]; - - [_msgView addSubview:_msgLabel]; - - [self.contentView addSubview:_msgView]; - } - return self; -} - -- (void)layoutSubviews { - [super layoutSubviews]; - - if (_msgModeType == LiveRoomMsgModeTypeOneself) { - _msgLabel.frame = CGRectMake(6, 0, _msgLabel.width, _msgLabel.height); - _msgView.frame = CGRectMake(self.width - _msgLabel.width - 12, 0, _msgLabel.width + 12, _msgLabel.height); - _msgLabel.textAlignment = NSTextAlignmentRight; - } else { - _msgLabel.frame = CGRectMake(6, 0, _msgLabel.width, _msgLabel.height); - _msgView.frame = CGRectMake(0, 0, _msgLabel.width + 12, _msgLabel.height); - _msgLabel.textAlignment = NSTextAlignmentLeft; - } -} - -- (void)refreshWithModel:(LiveRoomMsgModel *)msgModel { - _msgLabel.attributedText = msgModel.attributedMsgText; - _msgLabel.width = 250; - [_msgLabel sizeToFit]; - - _msgModeType = msgModel.type; -} - -+ (NSAttributedString *)getAttributedStringFromModel:(LiveRoomMsgModel *)msgModel { - NSMutableAttributedString *attributed = [[NSMutableAttributedString alloc] init]; - - // 系统消息 - if (msgModel.type == LiveRoomMsgModeTypeSystem) { - NSMutableAttributedString *msg = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@: %@\r\n", LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomMsgList.systemmessage"), msgModel.userMsg]]; - [attributed appendAttributedString:msg]; - - [attributed addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14] range:NSMakeRange(0, attributed.length)]; - [attributed addAttribute:NSForegroundColorAttributeName value:UIColorFromRGB(0x666666) range:NSMakeRange(0, attributed.length)]; - - return attributed; - } - - // 判断自己还是别人 - NSMutableAttributedString *userName = nil; - UIColor *color = nil; - if (msgModel.type == LiveRoomMsgModeTypeOneself) { - userName = [[NSMutableAttributedString alloc] initWithString:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomMsgList.me")]; - color = UIColorFromRGB(0x999999); - } else { - userName = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@ ", msgModel.userName]]; - color = UIColorFromRGB(0xffffff); - } - - // 昵称 - [attributed appendAttributedString:userName]; - - // 时间 - NSDate *date = [NSDate dateWithTimeIntervalSince1970:msgModel.time]; - NSDateFormatter *format = [[NSDateFormatter alloc] init]; - format.dateFormat = @"hh:mm:ss"; - NSString *strTime = [format stringFromDate:date]; - NSMutableAttributedString *time = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@\r\n", strTime]]; - [attributed appendAttributedString:time]; - - // 文本消息 - NSMutableAttributedString *userMsg = [[NSMutableAttributedString alloc] initWithString:msgModel.userMsg]; - [attributed appendAttributedString:userMsg]; - - // 字体 - [attributed addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14] range:NSMakeRange(0, userName.length)]; - [attributed addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:10] range:NSMakeRange(userName.length, time.length)]; - [attributed addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14] range:NSMakeRange(userName.length + time.length, userMsg.length)]; - - // 颜色 - [attributed addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange(0, userName.length)]; - [attributed addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange(userName.length, time.length)]; - [attributed addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange(userName.length + time.length, userMsg.length)]; - - return attributed; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomNewViewController.h b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomNewViewController.h deleted file mode 100644 index 2ae3aaad..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomNewViewController.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// LiveRoomNewViewController.h -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import -#import "MLVBLiveRoom.h" - -@interface LiveRoomNewViewController : UIViewController - -@property (nonatomic, weak) MLVBLiveRoom* liveRoom; -@property (nonatomic, copy) NSString* userID; -@property (nonatomic, copy) NSString* userName; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomNewViewController.m b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomNewViewController.m deleted file mode 100644 index 70e4beac..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomNewViewController.m +++ /dev/null @@ -1,113 +0,0 @@ -// -// LiveRoomNewViewController.m -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import "LiveRoomNewViewController.h" -#import "UIView+Additions.h" -#import "ColorMacro.h" -#import "LiveRoomPusherViewController.h" -#import "AppLocalized.h" - -@interface LiveRoomNewViewController() { - UILabel *_tipLabel; - UITextField *_roomNameTextField; - UIButton *_createBtn; -} -@end - -@implementation LiveRoomNewViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - - self.title = LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.createliveroom"); - [self.view setBackgroundColor:UIColorFromRGB(0x333333)]; - - _tipLabel = [[UILabel alloc] initWithFrame:CGRectMake(18, 100, 200, 30)]; - _tipLabel.textColor = UIColorFromRGB(0x999999); - _tipLabel.text = LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.liveroomname"); - _tipLabel.textAlignment = NSTextAlignmentLeft; - _tipLabel.font = [UIFont systemFontOfSize:16]; - [self.view addSubview:_tipLabel]; - - UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 18, 40)]; - _roomNameTextField = [[UITextField alloc] initWithFrame:CGRectMake(0, 136, self.view.width, 40)]; - _roomNameTextField.delegate = self; - _roomNameTextField.leftView = paddingView; - _roomNameTextField.leftViewMode = UITextFieldViewModeAlways; - _roomNameTextField.placeholder = LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.enterthenameofthestudio"); - _roomNameTextField.backgroundColor = UIColorFromRGB(0x4a4a4a); - _roomNameTextField.textColor = UIColorFromRGB(0x939393); - - [self.view addSubview:_roomNameTextField]; - - _createBtn = [UIButton buttonWithType:UIButtonTypeCustom]; - _createBtn.frame = CGRectMake(40, self.view.height - 70, self.view.width - 80, 50); - _createBtn.layer.cornerRadius = 8; - _createBtn.layer.masksToBounds = YES; - _createBtn.layer.shadowOffset = CGSizeMake(1, 1); - _createBtn.layer.shadowColor = UIColorFromRGB(0x019b5c).CGColor; - _createBtn.layer.shadowOpacity = 0.8; - _createBtn.backgroundColor = UIColorFromRGB(0x05a764); - [_createBtn setTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.beginlive") forState:UIControlStateNormal]; - [_createBtn addTarget:self action:@selector(onCreateBtnClicked:) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:_createBtn]; -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - [self.navigationController setNavigationBarHidden:NO animated:NO]; -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - [self.navigationController setNavigationBarHidden:YES animated:NO]; -} - -- (void)onCreateBtnClicked:(UIButton *)sender { - NSString *roomName = _roomNameTextField.text; - if (roomName.length == 0) { - [self alertTips:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.prompt") msg:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.nameoftheliveroomcannotbeempty")]; - return; - } - if (roomName.length > 30) { - [self alertTips:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.prompt") msg:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.liveroomnamelengthexceedslimit")]; - return; - } - - LiveRoomPusherViewController *vc = [[LiveRoomPusherViewController alloc] init]; - vc.roomName = roomName; - vc.userID = _userID; - vc.userName = _userName; - vc.liveRoom = _liveRoom; - _liveRoom.delegate = vc; - [self.navigationController pushViewController:vc animated:YES]; - -} - -- (void)alertTips:(NSString *)title msg:(NSString *)msg { - dispatch_async(dispatch_get_main_queue(), ^{ - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:msg preferredStyle:UIAlertControllerStyleAlert]; - [alertController addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.determine") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - }]]; - - [self.navigationController presentViewController:alertController animated:YES completion:nil]; - }); -} - - -#pragma mark - UITextFieldDelegate -- (BOOL)textFieldShouldReturn:(UITextField *)textField { - [textField resignFirstResponder]; - return YES; -} - -- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { - [_roomNameTextField resignFirstResponder]; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomPlayerViewController.h b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomPlayerViewController.h deleted file mode 100644 index 1a0b327a..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomPlayerViewController.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// LiveRoomPlayerViewController.h -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import -#import "MLVBLiveRoom.h" - -/** - 这个类用于直播模式的普通观众和小主播 - */ -@interface LiveRoomPlayerViewController : UIViewController - -@property (nonatomic, weak) MLVBLiveRoom* liveRoom; -@property (nonatomic, copy) NSString* roomName; -@property (nonatomic, copy) NSString* roomID; -@property (nonatomic, copy) NSString* userName; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomPlayerViewController.m b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomPlayerViewController.m deleted file mode 100644 index ee14b2ba..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomPlayerViewController.m +++ /dev/null @@ -1,629 +0,0 @@ -// -// LiveRoomPlayerViewController.m -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import "LiveRoomPlayerViewController.h" -#import "UIView+Additions.h" -#import "TXLiveSDKTypeDef.h" -#import -#import "ColorMacro.h" -#import "LiveRoomMsgListTableView.h" -#import "LiveRoomAccPlayerView.h" -#import "TXLiteAVDemo-Swift.h" -#import "AppLocalized.h" - -#if DEBUG -# define Log NSLog -#else -# define Log(...) -#endif - -typedef NS_ENUM(NSInteger, LinkMicStatus) { - LinkMicStatus_IDEL, // 空闲状态 - LinkMicStatus_REQUESTING, // 请求连麦过程中 - LinkMicStatus_BEING, // 连麦中 -}; - -@interface LiveRoomPlayerViewController () { - UIView *_playerView; // 大画面(大主播) - UIView *_pusherView; // 自己作为小主播时的推流画面 - NSMutableDictionary *_playerViewDic; // 其他小主播的画面,[userID, view] -// NSMutableDictionary *_playerItemDic; // 小主播的loading画面,[userID, playerItem] - - UIButton *_btnChat; - UIButton *_btnLinkMic; - UIButton *_btnLog; - - LinkMicStatus _linkMicStatus; // 连麦状态 - - BOOL _appIsInterrupt; - BOOL _appIsInActive; - BOOL _appIsBackground; - - UITextView *_logView; - UIView *_coverView; - NSInteger _log_switch; // 0:隐藏log 1:显示SDK内部的log 2:显示业务层log - - // 消息列表展示和输入 - LiveRoomMsgListTableView *_msgListView; - UIView *_msgInputView; - UITextField *_msgInputTextField; - UIButton *_msgSendBtn; - - CGPoint _touchBeginLocation; -} -@end - -@implementation LiveRoomPlayerViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - - _playerViewDic = [[NSMutableDictionary alloc] init]; -// _playerItemDic = [[NSMutableDictionary alloc] init]; - - _appIsInterrupt = NO; - _appIsInActive = NO; - _appIsBackground = NO; - - [self initUI]; - [self initRoomLogic]; -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - [self.navigationController setNavigationBarHidden:NO animated:NO]; - self.navigationController.interactivePopGestureRecognizer.enabled = NO; -} - -- (void)viewDidAppear:(BOOL)animated { - [super viewDidAppear:animated]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleInterruption:) name:AVAudioSessionInterruptionNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppDidEnterBackGround:) name:UIApplicationDidEnterBackgroundNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppWillEnterForeground:) name:UIApplicationWillEnterForegroundNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppWillResignActive:) name:UIApplicationWillResignActiveNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppDidBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardFrameDidChange:) name:UIKeyboardWillChangeFrameNotification object:nil]; -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - - [self.navigationController setNavigationBarHidden:YES animated:NO]; - self.navigationController.interactivePopGestureRecognizer.enabled = YES; -} - -- (void)viewDidDisappear:(BOOL)animated { - [super viewDidDisappear:animated]; - - if (_liveRoom) { - [_liveRoom exitRoom:^(int errCode, NSString *errMsg) { - Log(@"exitRoom: errCode[%d] errMsg[%@]", errCode, errMsg); - }]; - } - - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -- (void)initUI { - self.title = [NSString stringWithFormat:@"%@(%@)", _roomName, _userName];; - [self.view setBackgroundColor:UIColorFromRGB(0x333333)]; - - CGSize size = [[UIScreen mainScreen] bounds].size; - int ICON_SIZE = size.width / 10; - - float startSpace = 30; - float centerInterVal = (size.width - 2 * startSpace - ICON_SIZE) / 2; - float iconY = size.height - ICON_SIZE / 2 - 10; - if (@available(iOS 11, *)) { - CGFloat bottomInset = [UIApplication sharedApplication].keyWindow.safeAreaInsets.bottom; - iconY -= bottomInset; - } - - // 聊天 - _btnChat = [UIButton buttonWithType:UIButtonTypeCustom]; - _btnChat.center = CGPointMake(startSpace + ICON_SIZE/2, iconY); - _btnChat.bounds = CGRectMake(0, 0, ICON_SIZE, ICON_SIZE); - [_btnChat setImage:[UIImage imageNamed:@"mlvb_comment"] forState:UIControlStateNormal]; - [_btnChat addTarget:self action:@selector(clickChat:) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:_btnChat]; - - // 请求连麦按钮 - _linkMicStatus = LinkMicStatus_IDEL; - _btnLinkMic = [UIButton buttonWithType:UIButtonTypeCustom]; - _btnLinkMic.center = CGPointMake(startSpace + ICON_SIZE/2 + centerInterVal * 1, iconY); - _btnLinkMic.bounds = CGRectMake(0, 0, ICON_SIZE, ICON_SIZE); - [_btnLinkMic setImage:[UIImage imageNamed:@"linkmic_start"] forState:UIControlStateNormal]; - [_btnLinkMic addTarget:self action:@selector(clickLinkMic:) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:_btnLinkMic]; - - // log按钮 - _btnLog = [UIButton buttonWithType:UIButtonTypeCustom]; - _btnLog.center = CGPointMake(startSpace + ICON_SIZE/2 + centerInterVal * 2, iconY); - _btnLog.bounds = CGRectMake(0, 0, ICON_SIZE, ICON_SIZE); - [_btnLog setImage:[UIImage imageNamed:@"log"] forState:UIControlStateNormal]; - [_btnLog addTarget:self action:@selector(clickLog:) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:_btnLog]; - - // LOG界面 - _log_switch = 0; - _logView = [[UITextView alloc] initWithFrame:CGRectMake(0, 80*kScaleY, size.width, size.height - 150*kScaleY)]; - _logView.backgroundColor = [UIColor clearColor]; - _logView.alpha = 1; - _logView.textColor = [UIColor whiteColor]; - _logView.editable = NO; - _logView.hidden = YES; - [self.view addSubview:_logView]; - - // 半透明浮层,用于方便查看log - _coverView = [[UIView alloc] init]; - _coverView.frame = _logView.frame; - _coverView.backgroundColor = [UIColor whiteColor]; - _coverView.alpha = 0.5; - _coverView.hidden = YES; - [self.view addSubview:_coverView]; - [self.view sendSubviewToBack:_coverView]; - - // 消息列表展示和输入 - _msgListView = [[LiveRoomMsgListTableView alloc] initWithFrame:CGRectMake(10, self.view.height/3, 300, self.view.height/2) style:UITableViewStyleGrouped]; - _msgListView.backgroundColor = [UIColor clearColor]; - [self.view addSubview:_msgListView]; - - _msgInputView = [[UIView alloc] initWithFrame:CGRectMake(0, self.view.height, self.view.width, 50)]; - _msgInputView.backgroundColor = [UIColor clearColor]; - - UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 18, _msgInputView.height)]; - _msgInputTextField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, _msgInputView.width - 80, _msgInputView.height)]; - _msgInputTextField.backgroundColor = UIColorFromRGB(0xfdfdfd); - _msgInputTextField.returnKeyType = UIReturnKeySend; - _msgInputTextField.placeholder = LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPlayer.entertextcontent"); - _msgInputTextField.delegate = self; - _msgInputTextField.leftView = paddingView; - _msgInputTextField.leftViewMode = UITextFieldViewModeAlways; - _msgInputTextField.textColor = [UIColor blackColor]; - _msgInputTextField.font = [UIFont systemFontOfSize:14]; - - _msgSendBtn = [UIButton buttonWithType:UIButtonTypeCustom]; - _msgSendBtn.frame = CGRectMake(_msgInputView.width - 80, 0, 80, _msgInputView.height); - [_msgSendBtn setTitle: LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPlayer.send") forState:UIControlStateNormal]; - [_msgSendBtn.titleLabel setFont:[UIFont systemFontOfSize:16]]; - [_msgSendBtn setTitleColor:UIColorFromRGB(0x05a764) forState:UIControlStateNormal]; - [_msgSendBtn setBackgroundColor:UIColorFromRGB(0xfdfdfd)]; - [_msgSendBtn addTarget:self action:@selector(clickSend:) forControlEvents:UIControlEventTouchUpInside]; - - UIView *vertical_line = [[UIView alloc] initWithFrame:CGRectMake(_msgSendBtn.left - 1, 6, 1, _msgInputView.height - 12)]; - vertical_line.backgroundColor = UIColorFromRGB(0xd8d8d8); - - [_msgInputView addSubview:_msgInputTextField]; - [_msgInputView addSubview:vertical_line]; - [_msgInputView addSubview:_msgSendBtn]; - [self.view addSubview:_msgInputView]; - - // 播放大主播画面 - _playerView = [[UIView alloc] initWithFrame:self.view.frame]; - [_playerView setBackgroundColor:UIColorFromRGB(0x262626)]; - [self.view insertSubview:_playerView atIndex:0]; - - // 自己作为小主播时的推流画面 - _pusherView = [[UIView alloc] initWithFrame:CGRectZero]; - [_pusherView setBackgroundColor:UIColorFromRGB(0x262626)]; - [self.view addSubview:_pusherView]; - _pusherView.hidden = YES; -} - -- (void)relayout { - // 重新布局自己的推流画面和其他小主播画面 - int index = 1; - int originX = self.view.width - 110; - int originY = self.view.height - 250; - int videoViewWidth = 100; - int videoViewHeight = 150; - int spacing = 3; - _pusherView.frame = CGRectMake(originX, originY, videoViewWidth, videoViewHeight); - - for (id userID in _playerViewDic) { - UIView *playerView = [_playerViewDic objectForKey:userID]; - playerView.frame = CGRectMake(originX, originY - (spacing+videoViewHeight) * index, videoViewWidth, videoViewHeight); - ++ index; - } -} - -- (void)initRoomLogic { - [_liveRoom enterRoom:_roomID view:_playerView completion:^(int errCode, NSString *errMsg) { - Log(@"enterRoom: errCode[%d] errMsg[%@]", errCode, errMsg); - dispatch_async(dispatch_get_main_queue(), ^{ - if (errCode == 0) { - [self appendSystemMsg:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPlayer.connectionsuccessful")]; - - } else { - [self alertTips:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPlayer.enterliveroomfailed") msg:errMsg completion:^{ - [self.navigationController popViewControllerAnimated:YES]; - }]; - } - }); - }]; -} - -// 聊天 -- (void)clickChat:(UIButton *)btn { - [_msgInputTextField becomeFirstResponder]; -} - -- (void)clickLinkMic:(UIButton *)btn { - if (_linkMicStatus == LinkMicStatus_IDEL) { // 空闲状态 - _linkMicStatus = LinkMicStatus_REQUESTING; // 请求连麦中 - - [_liveRoom requestJoinAnchor:@"" completion:^(int errCode, NSString *errMsg) { - dispatch_async(dispatch_get_main_queue(), ^{ - if (errCode == 0) { - [[AppUtils shared] alertUserTips:self]; - self->_pusherView.hidden = NO; - [self->_liveRoom startLocalPreview:YES view:self->_pusherView]; - [self relayout]; - - self->_linkMicStatus = LinkMicStatus_BEING; // 连麦中 - [btn setImage:[UIImage imageNamed:@"linkmic_stop"] forState:UIControlStateNormal]; - - [self->_liveRoom joinAnchor:^(int errCode, NSString *errMsg) { - dispatch_async(dispatch_get_main_queue(), ^{ - if (errCode != 0) { - [self alertTips:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.prompt") msg:errMsg completion:^{ - [self onKickoutJoinAnchor]; - }]; - } - }); - - }]; - - } else { - self->_linkMicStatus = LinkMicStatus_IDEL; // 空闲状态 - [self alertTips:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.prompt") msg:errMsg completion:nil]; - } - }); - }]; - - } else if (_linkMicStatus == LinkMicStatus_BEING) { // 连麦中 - [self onKickoutJoinAnchor]; - } -} - -// 设置log显示 -- (void)clickLog:(UIButton *)btn { - switch (_log_switch) { - case 0: - _log_switch = 1; - [_liveRoom showVideoDebugLog:YES]; - _logView.hidden = YES; - _coverView.hidden = YES; - [btn setImage:[UIImage imageNamed:@"log2"] forState:UIControlStateNormal]; - break; - case 1: - _log_switch = 2; - [_liveRoom showVideoDebugLog:NO]; - _logView.hidden = NO; - _coverView.hidden = NO; - [self.view bringSubviewToFront:_logView]; - [btn setImage:[UIImage imageNamed:@"log2"] forState:UIControlStateNormal]; - break; - case 2: - _log_switch = 0; - [_liveRoom showVideoDebugLog:NO]; - _logView.hidden = YES; - _coverView.hidden = YES; - [btn setImage:[UIImage imageNamed:@"log"] forState:UIControlStateNormal]; - break; - default: - break; - } -} - -// 发送消息 -- (void)clickSend:(UIButton *)btn { - [self textFieldShouldReturn:_msgInputTextField]; -} - -// 监听键盘高度变化 -- (void)keyboardFrameDidChange:(NSNotification *)notice { - NSDictionary * userInfo = notice.userInfo; - NSValue * endFrameValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]; - CGRect endFrame = endFrameValue.CGRectValue; - [UIView animateWithDuration:0.25 animations:^{ - if (endFrame.origin.y == self.view.height) { - self->_msgInputView.y = endFrame.origin.y; - } else { - self->_msgInputView.y = endFrame.origin.y - _msgInputView.height; - } - }]; -} - -- (void)appendLog:(NSString *)msg { - NSDateFormatter *format = [[NSDateFormatter alloc] init]; - format.dateFormat = @"hh:mm:ss"; - NSString *time = [format stringFromDate:[NSDate date]]; - NSString *log = [NSString stringWithFormat:@"[%@] %@", time, msg]; - NSString *logMsg = [NSString stringWithFormat:@"%@\n%@", _logView.text, log]; - [_logView setText:logMsg]; -} - -- (void)appendSystemMsg:(NSString *)msg { - LiveRoomMsgModel *msgMode = [[LiveRoomMsgModel alloc] init]; - msgMode.type = LiveRoomMsgModeTypeSystem; - msgMode.userMsg = msg; - [_msgListView appendMsg:msgMode]; -} - -#pragma mark - LiveRoomListener - -- (void)onRoomDestroy:(NSString *)roomID { - [self alertTips:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.prompt") msg:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPlayer.liveroomhasbeendisbanded") completion:^{ - [self.navigationController popViewControllerAnimated:YES]; - }]; -} - -- (void)onDebugLog:(NSString *)msg { - dispatch_async(dispatch_get_main_queue(), ^{ - [self appendLog:msg]; - }); -} - -- (void)onRecvRoomTextMsg:(NSString *)roomID userID:(NSString *)userID userName:(NSString *)userName userAvatar:(NSString *)userAvatar message:(NSString *)message { - LiveRoomMsgModel *msgMode = [[LiveRoomMsgModel alloc] init]; - msgMode.type = LiveRoomMsgModeTypeOther; - msgMode.time = [[NSDate date] timeIntervalSince1970]; - msgMode.userName = userName; - msgMode.userMsg = message; - - [_msgListView appendMsg:msgMode]; -} - -- (LiveRoomAccPlayerView *)accPlayerViewForUID:(NSString *)uid { - LiveRoomAccPlayerView *view = _playerViewDic[uid]; - if (view == nil) { - view = [[LiveRoomAccPlayerView alloc] initWithFrame:self.view.bounds]; - [view setBackgroundColor:UIColorFromRGB(0x262626)]; - _playerViewDic[uid] = view; - } - return view; -} - -- (void)removeAccViewForUID:(NSString *)uid { - LiveRoomAccPlayerView *view = _playerViewDic[uid]; - if (view) { - [view removeFromSuperview]; - [_playerViewDic removeObjectForKey:uid]; - } -} -/** - 获取房间pusher列表的回调通知 - */ -- (void)onGetPusherList:(NSArray *)pusherInfoArray { - dispatch_async(dispatch_get_main_queue(), ^{ - // 播放其他小主播的画面 - for (MLVBAnchorInfo *anchorInfo in pusherInfoArray) { - LiveRoomAccPlayerView *playerView = [self accPlayerViewForUID:anchorInfo.userID]; - [self.view addSubview:playerView]; - - // 重新布局 - [self relayout]; - - [self->_liveRoom startRemoteView:anchorInfo view:playerView onPlayBegin:^{ - playerView.loading = NO; - } onPlayError:^(int errCode, NSString *errMsg) { - [self onAnchorExit:anchorInfo]; - } playEvent:nil]; - //LOG - [self appendLog:LocalizeReplaceThreeCharacter(LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPlayer.playxx"), [NSString stringWithFormat:@"%@",anchorInfo.userID], [NSString stringWithFormat:@"%@",anchorInfo.userName], [NSString stringWithFormat:@"%@",anchorInfo.accelerateURL])]; - } - }); -} - -/** - 新的pusher加入直播(连麦) - */ -- (void)onAnchorEnter:(MLVBAnchorInfo *)anchorInfo { - dispatch_async(dispatch_get_main_queue(), ^{ - LiveRoomAccPlayerView *playerView = [self accPlayerViewForUID:anchorInfo.userID]; - [self.view addSubview:playerView]; - - // 重新布局 - [self relayout]; - - [self->_liveRoom startRemoteView:anchorInfo view:playerView onPlayBegin:^{ - playerView.loading = NO; - } onPlayError:^(int errCode, NSString *errMsg) { - [self onAnchorExit:anchorInfo]; - } playEvent:nil]; - }); -} - -/** - pusher退出直播(连麦)的通知 - */ -- (void)onAnchorExit:(MLVBAnchorInfo *)anchorInfo { - dispatch_async(dispatch_get_main_queue(), ^{ - [self removeAccViewForUID:anchorInfo.userID]; - [self relayout]; - }); -} - -/** - 小主播收到被大主播踢出连麦的通知 - */ -- (void)onKickoutJoinAnchor { - // UI及状态 - _pusherView.hidden = YES; - [_btnLinkMic setImage:[UIImage imageNamed:@"linkmic_start"] forState:UIControlStateNormal]; - _linkMicStatus = LinkMicStatus_IDEL; - - // 关闭本地推流和预览,并退出pusher房间 - [_liveRoom stopLocalPreview]; - [_liveRoom quitJoinAnchor:^(int errCode, NSString *errMsg) { - - }]; - - // 关闭播放器画面 - for (id userID in _playerViewDic) { - UIView *playerView = [_playerViewDic objectForKey:userID]; - [playerView removeFromSuperview]; - } - [_playerViewDic removeAllObjects]; -} - -- (void)onError:(int)errCode errMsg:(NSString *)errMsg extraInfo:(NSDictionary *)extraInfo { - [self alertTips:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.prompt") msg:errMsg completion:^{ - [self.navigationController popViewControllerAnimated:YES]; - }]; -} - - -- (void)alertTips:(NSString *)title msg:(NSString *)msg completion:(void(^)())completion { - dispatch_async(dispatch_get_main_queue(), ^{ - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:msg preferredStyle:UIAlertControllerStyleAlert]; - [alertController addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.determine") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - if (completion) { - completion(); - } - }]]; - - [self.navigationController presentViewController:alertController animated:YES completion:nil]; - }); -} - -#pragma NSNotification - -- (void)handleInterruption:(NSNotification *)notification { - AVAudioSessionInterruptionType type = [notification.userInfo[AVAudioSessionInterruptionTypeKey] intValue]; - if (AVAudioSessionInterruptionTypeBegan == type) { - _appIsInterrupt = YES; - if (_liveRoom) { - } - } - if (AVAudioSessionInterruptionTypeEnded == type) { - _appIsInterrupt = NO; - if (!_appIsBackground && !_appIsInActive && !_appIsInterrupt) { - if (_liveRoom) { - } - } - } -} - -- (void)onAppWillResignActive:(NSNotification*)notification { - _appIsInActive = YES; - if (_liveRoom) { - } -} - -- (void)onAppDidBecomeActive:(NSNotification*)notification { - _appIsInActive = NO; - if (!_appIsBackground && !_appIsInActive && !_appIsInterrupt) { - if (_liveRoom) { - } - } -} - -- (void)onAppDidEnterBackGround:(NSNotification *)notification { - [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ - - }]; - - _appIsBackground = YES; - if (_liveRoom) { - } -} - -- (void)onAppWillEnterForeground:(NSNotification *)notification { - _appIsBackground = NO; - if (!_appIsBackground && !_appIsInActive && !_appIsInterrupt) { - if (_liveRoom) { - } - } -} - -#pragma mark UITextFieldDelegate - -- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ - _msgInputTextField.text = @""; - return YES; -} - -- (void)textFieldDidEndEditing:(UITextField *)textField { - _msgInputTextField.text = textField.text; -} -- (BOOL)textFieldShouldReturn:(UITextField *)textField { - NSString *textMsg = [textField.text stringByTrimmingCharactersInSet:[NSMutableCharacterSet whitespaceCharacterSet]]; - if (textMsg.length <= 0) { - textField.text = @""; - [self alertTips:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.prompt") msg:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPlayer.messagecannotbeempty") completion:nil]; - return YES; - } - - LiveRoomMsgModel *msgMode = [[LiveRoomMsgModel alloc] init]; - msgMode.type = LiveRoomMsgModeTypeOther; - msgMode.time = [[NSDate date] timeIntervalSince1970]; - msgMode.userName = _userName; - msgMode.userMsg = textMsg; - - [_msgListView appendMsg:msgMode]; - - _msgInputTextField.text = @""; - [_msgInputTextField resignFirstResponder]; - - // 发送 - [_liveRoom sendRoomTextMsg:textMsg completion:nil]; - - return YES; -} - -- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { - [_msgInputTextField resignFirstResponder]; - - _touchBeginLocation = [[[event allTouches] anyObject] locationInView:self.view]; -} - -- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { - CGPoint location = [[[event allTouches] anyObject] locationInView:self.view]; - [self endMove:location.x - _touchBeginLocation.x]; -} - -// 滑动隐藏UI控件 -- (void)endMove:(CGFloat)moveX { - // 目前只需要隐藏消息列表控件 - [UIView animateWithDuration:0.2 animations:^{ - if (moveX > 10) { - for (UIView *view in self.view.subviews) { - if (![view isEqual:self->_msgListView]) { - continue; - } - - CGRect rect = view.frame; - if (rect.origin.x >= 0 && rect.origin.x < [UIScreen mainScreen].bounds.size.width) { - rect = CGRectOffset(rect, self.view.width, 0); - view.frame = rect; - } - } - - } else if (moveX < -10) { - for (UIView *view in self.view.subviews) { - if (![view isEqual:self->_msgListView]) { - continue; - } - - CGRect rect = view.frame; - if (rect.origin.x >= [UIScreen mainScreen].bounds.size.width) { - rect = CGRectOffset(rect, -self.view.width, 0); - view.frame = rect; - } - } - } - }]; -} - -@end - diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomPusherViewController.h b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomPusherViewController.h deleted file mode 100644 index c6dfc275..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomPusherViewController.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// LiveRoomPusherViewController.h -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import -#import "MLVBLiveRoom.h" - -/** - 这个类用于直播模式的大主播 - */ -@interface LiveRoomPusherViewController : UIViewController - -@property (nonatomic, weak) MLVBLiveRoom* liveRoom; -@property (nonatomic, copy) NSString* roomName; -@property (nonatomic, copy) NSString* userID; -@property (nonatomic, copy) NSString* userName; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomPusherViewController.m b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomPusherViewController.m deleted file mode 100644 index 2c55aaff..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomPusherViewController.m +++ /dev/null @@ -1,1038 +0,0 @@ -// -// LiveRoomPusherViewController.m -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import "LiveRoomPusherViewController.h" -#import "UIView+Additions.h" -#import "TXLiveSDKTypeDef.h" -#import -#import "ColorMacro.h" -#import "LiveRoomMsgListTableView.h" -#import "ThemeConfigurator.h" -#import "UIViewController+BackButtonHandler.h" -#import "LiveRoomListViewController.h" -#import "LiveRoomAccPlayerView.h" -#import "TXLiteAVDemo-Swift.h" -#import "AppLocalized.h" - -typedef NS_ENUM(NSInteger, PKStatus) { - PKStatus_IDLE, // 空闲状态 - PKStatus_REQUESTING, // 请求PK中 - PKStatus_BEING, // PK中 -}; - -@interface LiveRoomPusherViewController () < - MLVBLiveRoomDelegate, - UITextFieldDelegate, - UITableViewDelegate, - UITableViewDataSource - > { - UIView *_pusherView; - NSMutableDictionary *_playerViewDic; // 小主播的画面,[userID, view] - - TCBeautyPanel *_vBeauty; // 美颜界面组件 - - UIButton *_btnChat; - UIButton *_btnCamera; - UIButton *_btnBeauty; - UIButton *_btnMute; - UIButton *_btnPK; - UIButton *_btnLog; - - BOOL _camera_switch; - BOOL _beauty_switch; - BOOL _mute_switch; - - BOOL _appIsInActive; - BOOL _appIsBackground; - BOOL _hasPendingRequest; - - UITextView *_logView; - UIView *_coverView; - NSInteger _log_switch; // 0:隐藏log 1:显示SDK内部的log 2:显示业务层log - - // 消息列表展示和输入 - LiveRoomMsgListTableView *_msgListView; - UIView *_msgListCoverView; // 用于盖在消息列表上以监听点击事件 - UIView *_msgInputView; - UITextField *_msgInputTextField; - UIButton *_msgSendBtn; - - CGPoint _touchBeginLocation; - UITextView *_toastView; - - PKStatus _pkStatus; // PK状态 - NSArray *_roomCreatorList; // 所有的房间主播列表(不包括自己),用于作为PK的目标 - UITableView *_roomCreatorListView; // 用于展示主播列表 -} -@property (strong, nonatomic) MLVBAnchorInfo *pkAnchor; -@end - -@implementation LiveRoomPusherViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - - _playerViewDic = [[NSMutableDictionary alloc] init]; - _roomCreatorList = [[NSArray alloc] init]; - - _appIsInActive = NO; - _appIsBackground = NO; - _hasPendingRequest = NO; - - [self initUI]; - [self initRoomLogic]; - if (@available(iOS 13.0, *)) { - self.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; - } -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - [self.navigationController setNavigationBarHidden:NO animated:NO]; - self.navigationController.interactivePopGestureRecognizer.enabled = NO; -} - -- (void)viewDidAppear:(BOOL)animated { - [super viewDidAppear:animated]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppDidEnterBackGround:) name:UIApplicationDidEnterBackgroundNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppWillEnterForeground:) name:UIApplicationWillEnterForegroundNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppWillResignActive:) name:UIApplicationWillResignActiveNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppDidBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardFrameDidChange:) name:UIKeyboardWillChangeFrameNotification object:nil]; -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - - [self.navigationController setNavigationBarHidden:YES animated:NO]; - self.navigationController.interactivePopGestureRecognizer.enabled = YES; -} - -- (void)viewDidDisappear:(BOOL)animated { - [super viewDidDisappear:animated]; - - if (_liveRoom) { - // 正在PK中就结束PK - if (_pkStatus == PKStatus_BEING) { - [_liveRoom quitRoomPK:nil]; - } - - [_liveRoom exitRoom:^(int errCode, NSString *errMsg) { - NSLog(@"exitRoom: errCode[%d] errMsg[%@]", errCode, errMsg); - }]; - } - - // 美颜初始化为默认值 - [_vBeauty resetAndApplyValues]; - - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -// 跳转到列表页 -- (BOOL)navigationShouldPopOnBackButton { - UIViewController *targetVC = nil; - for (UIViewController *vc in self.navigationController.viewControllers) { - if ([vc isKindOfClass:[LiveRoomListViewController class]]) { - targetVC = vc; - break; - } - } - if (targetVC) { - [self.navigationController popToViewController:targetVC animated:YES]; - if (_mute_switch == true) { - [self clickMute:nil]; - } - return NO; - } - return YES; -} - -- (void)initUI { - self.title = [NSString stringWithFormat:@"%@(%@)", _roomName, _userName]; - [self.view setBackgroundColor:UIColorFromRGB(0x333333)]; - - CGSize size = [[UIScreen mainScreen] bounds].size; - int ICON_SIZE = 46; - - float startSpace = 30; - float centerInterVal = (size.width - 2 * startSpace - ICON_SIZE) / 5; - float iconY = size.height - ICON_SIZE / 2 - 10; - - if (@available(iOS 11, *)) { - iconY -= [UIApplication sharedApplication].keyWindow.safeAreaInsets.bottom; - } - - // 在控制按钮下方加入菜单容器视图,防止误触聚焦 - UIView *buttonContainer = [[UIView alloc] initWithFrame:CGRectMake(0, iconY - ICON_SIZE / 2, self.view.frame.size.width, self.view.frame.size.height - (iconY - ICON_SIZE / 2))]; - [self.view addSubview:buttonContainer]; - - // 聊天 - _btnChat = [UIButton buttonWithType:UIButtonTypeCustom]; - _btnChat.center = CGPointMake(startSpace + ICON_SIZE/2, iconY); - _btnChat.bounds = CGRectMake(0, 0, ICON_SIZE, ICON_SIZE); - [_btnChat setImage:[UIImage imageNamed:@"mlvb_comment"] forState:UIControlStateNormal]; - [_btnChat addTarget:self action:@selector(clickChat:) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:_btnChat]; - - // 前置后置摄像头切换 - _camera_switch = NO; - _btnCamera = [UIButton buttonWithType:UIButtonTypeCustom]; - _btnCamera.center = CGPointMake(startSpace + ICON_SIZE/2 + centerInterVal * 1, iconY); - _btnCamera.bounds = CGRectMake(0, 0, ICON_SIZE, ICON_SIZE); - [_btnCamera setImage:[UIImage imageNamed:@"mlvb_camera_front"] forState:UIControlStateNormal]; - [_btnCamera addTarget:self action:@selector(clickCamera:) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:_btnCamera]; - - // 美颜开关按钮 - _beauty_switch = YES; - _btnBeauty = [UIButton buttonWithType:UIButtonTypeCustom]; - _btnBeauty.center = CGPointMake(startSpace + ICON_SIZE/2 + centerInterVal * 2, iconY); - _btnBeauty.bounds = CGRectMake(0, 0, ICON_SIZE, ICON_SIZE); - [_btnBeauty setImage:[UIImage imageNamed:@"mlvb_beauty"] forState:UIControlStateNormal]; - [_btnBeauty addTarget:self action:@selector(clickBeauty:) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:_btnBeauty]; - - // 推流端静音(纯视频推流) - _mute_switch = NO; - _btnMute = [UIButton buttonWithType:UIButtonTypeCustom]; - _btnMute.center = CGPointMake(startSpace + ICON_SIZE/2 + centerInterVal * 3, iconY); - _btnMute.bounds = CGRectMake(0, 0, ICON_SIZE, ICON_SIZE); - [_btnMute setImage:[UIImage imageNamed:@"mic"] forState:UIControlStateNormal]; - [_btnMute addTarget:self action:@selector(clickMute:) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:_btnMute]; - - // PK按钮 - _pkStatus = PKStatus_IDLE; - _btnPK = [UIButton buttonWithType:UIButtonTypeCustom]; - _btnPK.center = CGPointMake(startSpace + ICON_SIZE/2 + centerInterVal * 4, iconY); - _btnPK.bounds = CGRectMake(0, 0, ICON_SIZE, ICON_SIZE); - [_btnPK setImage:[UIImage imageNamed:@"mlvb_pk"] forState:UIControlStateNormal]; - [_btnPK addTarget:self action:@selector(clickPK:) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:_btnPK]; - - // log按钮 - _btnLog = [UIButton buttonWithType:UIButtonTypeCustom]; - _btnLog.center = CGPointMake(startSpace + ICON_SIZE/2 + centerInterVal * 5, iconY); - _btnLog.bounds = CGRectMake(0, 0, ICON_SIZE, ICON_SIZE); - [_btnLog setImage:[UIImage imageNamed:@"log"] forState:UIControlStateNormal]; - [_btnLog addTarget:self action:@selector(clickLog:) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:_btnLog]; - - // LOG界面 - _log_switch = 0; - _logView = [[UITextView alloc] initWithFrame:CGRectMake(0, 80*kScaleY, size.width, size.height - 150*kScaleY)]; - _logView.backgroundColor = [UIColor clearColor]; - _logView.alpha = 1; - _logView.textColor = [UIColor whiteColor]; - _logView.editable = NO; - _logView.hidden = YES; - [self.view addSubview:_logView]; - - // 半透明浮层,用于方便查看log - _coverView = [[UIView alloc] init]; - _coverView.frame = _logView.frame; - _coverView.backgroundColor = [UIColor whiteColor]; - _coverView.alpha = 0.5; - _coverView.hidden = YES; - [self.view addSubview:_coverView]; - [self.view sendSubviewToBack:_coverView]; - - // 消息列表展示和输入 - _msgListView = [[LiveRoomMsgListTableView alloc] initWithFrame:CGRectMake(10, self.view.height/3, 300, self.view.height/2) style:UITableViewStyleGrouped]; - _msgListView.backgroundColor = [UIColor clearColor]; - [self.view addSubview:_msgListView]; - - _msgListCoverView = [[UIView alloc] initWithFrame:_msgListView.frame]; - _msgListCoverView.backgroundColor = [UIColor clearColor]; - [self.view addSubview:_msgListCoverView]; - UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(clickMsgListCoverView:)]; - [_msgListCoverView addGestureRecognizer:tapGesture]; - - _msgInputView = [[UIView alloc] initWithFrame:CGRectMake(0, self.view.height, self.view.width, 50)]; - _msgInputView.backgroundColor = [UIColor clearColor]; - - UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 18, _msgInputView.height)]; - _msgInputTextField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, _msgInputView.width - 80, _msgInputView.height)]; - _msgInputTextField.backgroundColor = UIColorFromRGB(0xfdfdfd); - _msgInputTextField.returnKeyType = UIReturnKeySend; - _msgInputTextField.placeholder = LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPlayer.entertextcontent"); - _msgInputTextField.delegate = self; - _msgInputTextField.leftView = paddingView; - _msgInputTextField.leftViewMode = UITextFieldViewModeAlways; - _msgInputTextField.textColor = [UIColor blackColor]; - _msgInputTextField.font = [UIFont systemFontOfSize:14]; - - _msgSendBtn = [UIButton buttonWithType:UIButtonTypeCustom]; - _msgSendBtn.frame = CGRectMake(_msgInputView.width - 80, 0, 80, _msgInputView.height); - [_msgSendBtn setTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPlayer.send") forState:UIControlStateNormal]; - [_msgSendBtn.titleLabel setFont:[UIFont systemFontOfSize:16]]; - [_msgSendBtn setTitleColor:UIColorFromRGB(0x05a764) forState:UIControlStateNormal]; - [_msgSendBtn setBackgroundColor:UIColorFromRGB(0xfdfdfd)]; - [_msgSendBtn addTarget:self action:@selector(clickSend:) forControlEvents:UIControlEventTouchUpInside]; - - UIView *vertical_line = [[UIView alloc] initWithFrame:CGRectMake(_msgSendBtn.left - 1, 6, 1, _msgInputView.height - 12)]; - vertical_line.backgroundColor = UIColorFromRGB(0xd8d8d8); - - [_msgInputView addSubview:_msgInputTextField]; - [_msgInputView addSubview:vertical_line]; - [_msgInputView addSubview:_msgSendBtn]; - [self.view addSubview:_msgInputView]; - - // 主播列表(用于PK) - _roomCreatorListView = [[UITableView alloc] initWithFrame:CGRectMake((_btnPK.left + _btnPK.right) / 2.0 - 50, _btnPK.top-250, 128, 230)]; - _roomCreatorListView.hidden = YES; - _roomCreatorListView.delegate = self; - _roomCreatorListView.dataSource = self; - _roomCreatorListView.backgroundColor = UIColorFromRGB(0X333333); - _roomCreatorListView.allowsMultipleSelection = NO; - _roomCreatorListView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; - _roomCreatorListView.separatorInset = UIEdgeInsetsMake(0, 0, 2, 0); - [self.view addSubview:_roomCreatorListView]; - - // 提示 - _toastView = [[UITextView alloc] init]; - _toastView.editable = NO; - _toastView.selectable = NO; - - // 开启推流和本地预览 - [[AppUtils shared] alertUserTips:self]; - _pusherView = [[UIView alloc] initWithFrame:self.view.frame]; - [_pusherView setBackgroundColor:UIColorFromRGB(0x262626)]; - [self.view insertSubview:_pusherView atIndex:0]; - [_liveRoom startLocalPreview:YES view:_pusherView]; - - CGFloat bottomOffset = 0; - if (@available(iOS 11, *)) { - bottomOffset = UIApplication.sharedApplication.keyWindow.safeAreaInsets.bottom; - } - // 美颜 - NSUInteger controlHeight = [TCBeautyPanel getHeight] + bottomOffset; - - _vBeauty =[TCBeautyPanel beautyPanelWithFrame:CGRectMake(0, self.view.frame.size.height - controlHeight, self.view.frame.size.width, controlHeight) - SDKObject:_liveRoom]; - [ThemeConfigurator configBeautyPanelTheme:_vBeauty]; - _vBeauty.hidden = YES; - _vBeauty.bottomOffset = bottomOffset; - [self.view addSubview:_vBeauty]; - - // 美颜初始化为默认值 - [_vBeauty resetAndApplyValues]; -} - -- (LiveRoomAccPlayerView *)accPlayerViewForUID:(NSString *)uid { - LiveRoomAccPlayerView *view = _playerViewDic[uid]; - if (view == nil) { - view = [[LiveRoomAccPlayerView alloc] initWithFrame:self.view.bounds]; - [view setBackgroundColor:UIColorFromRGB(0x262626)]; - _playerViewDic[uid] = view; - } - return view; -} - -- (void)removeAccViewForUID:(NSString *)uid { - LiveRoomAccPlayerView *view = _playerViewDic[uid]; - if (view) { - [view removeFromSuperview]; - [_playerViewDic removeObjectForKey:uid]; - } -} -- (void)relayout { - // 重新布局小主播的画面 - int index = 0; - int originX = self.view.width - 110; - int originY = self.view.height - 250; - int videoViewWidth = 100; - int videoViewHeight = 150; - - // 区分PK和普通直播(连麦) - if (_pkStatus == PKStatus_BEING) { - originX = self.view.width / 2.0; - originY = 0; - videoViewWidth = self.view.width / 2.0; - videoViewHeight = videoViewWidth * 16.0 / 9.0; - _pusherView.frame = CGRectMake(0, 0, videoViewWidth, videoViewHeight); // 9:16 - _msgListView.frame = CGRectMake(10, - videoViewHeight + 6, - self.view.width - 20, - self.view.height - videoViewHeight - self.view.width / 10 - 60); - - } else { - _pusherView.frame = CGRectMake(0, 0, self.view.width, self.view.height); - _msgListView.frame = CGRectMake(10, self.view.height/3, 300, self.view.height/2); - } - - for (id userID in _playerViewDic) { - UIView *playerView = [_playerViewDic objectForKey:userID]; - playerView.frame = CGRectMake(originX, originY - videoViewHeight * index, videoViewWidth, videoViewHeight); - ++ index; - } -} - -- (void)_onEnterRoom { - _vBeauty.actionPerformer = [TCBeautyPanelActionProxy proxyWithSDKObject:_liveRoom]; -} - -- (void)initRoomLogic { - [_liveRoom createRoom:@"" roomInfo:_roomName completion:^(int errCode, NSString *errMsg) { - NSLog(@"createRoom: errCode[%d] errMsg[%@]", errCode, errMsg); - dispatch_async(dispatch_get_main_queue(), ^{ - if (errCode == 0) { - [self appendSystemMsg: LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPlayer.connectionsuccessful")]; - } else if (errCode == 10036) { - UIAlertController *controller = [UIAlertController alertControllerWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.imaudioandvideochatrooms") - message:nil - preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *action = [UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.toopen") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - [self.navigationController popViewControllerAnimated:YES]; - [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://buy.cloud.tencent.com/avc"]]; - }]; - UIAlertAction *confirm = [UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.confirm") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - [self.navigationController popViewControllerAnimated:YES]; - }]; - [controller addAction:action]; - [controller addAction:confirm]; - [self presentViewController:controller animated:YES completion:nil]; - } else { - [self alertTips:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.failedtocreatealivebooth") msg:errMsg completion:^{ - [self.navigationController popViewControllerAnimated:YES]; - }]; - } - }); - - }]; -} - -// 聊天 -- (void)clickChat:(UIButton *)btn { - [_msgInputTextField becomeFirstResponder]; -} - -// 切换摄像头 -- (void)clickCamera:(UIButton *)btn { - _camera_switch = !_camera_switch; - btn.enabled = NO; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - btn.enabled = YES; - }); - if (_liveRoom) { - [_liveRoom switchCamera]; - } - [btn setImage:[UIImage imageNamed:(_camera_switch? @"mlvb_camera_back" : @"mlvb_camera_front")] forState:UIControlStateNormal]; -} - -// 设置美颜 -- (void)clickBeauty:(UIButton *)btn { - _vBeauty.hidden = NO; - [self.view bringSubviewToFront:_vBeauty]; - [self hideToolButtons:YES]; -} - -- (void)hideToolButtons:(BOOL)bHide { - _btnChat.hidden = bHide; - _btnCamera.hidden = bHide; - _btnBeauty.hidden = bHide; - _btnMute.hidden = bHide; - _btnLog.hidden = bHide; - _msgListCoverView.hidden = !bHide; -} - -// 静音 -- (void)clickMute:(UIButton *)btn { - _mute_switch = !_mute_switch; - if (_liveRoom) { - [_liveRoom muteLocalAudio:_mute_switch]; - } - [_btnMute setImage:[UIImage imageNamed:(_mute_switch ? @"mic_dis" : @"mic")] forState:UIControlStateNormal]; -} - -// PK -- (void)clickPK:(UIButton *)btn { - // 正在PK中就结束PK - if (_pkStatus == PKStatus_BEING) { - [_liveRoom quitRoomPK:^(int errCode, NSString *errMsg) { - if (errCode == 0) { - [self deletePKView]; - } - }]; - return; - } - - // 正在连麦中(判断有没有player即可),就返回 - if (_playerViewDic.count) { - return; - } - - _roomCreatorListView.hidden = !_roomCreatorListView.hidden; - [_roomCreatorListView reloadData]; - [self getOnlinePusherList:^(NSArray *pusherInfoArray) { - dispatch_async(dispatch_get_main_queue(), ^{ - self->_roomCreatorList = pusherInfoArray; - [self->_roomCreatorListView reloadData]; - }); - }]; -} - -/** - 获取在线的主播列表(不包括自己) - */ -- (void)getOnlinePusherList:(void(^)(NSArray *pusherInfoArray))completion { - [_liveRoom getRoomList:0 count:100 completion:^(int errCode, NSString *errMsg, NSArray *roomInfoArray) { - NSLog(@"getRoomList errCode[%d] errMsg[%@]", errCode, errMsg); - - NSMutableArray *pusherInfoArray = [[NSMutableArray alloc] init]; - NSMutableSet *userIDSet = [[NSMutableSet alloc] init]; - - for (MLVBRoomInfo *roomInfo in roomInfoArray) { - NSString *anchorID = roomInfo.roomCreator; - // 遍历房间的pusher,找出房间创建者,即为主播, 注意过滤掉自己 - if (![anchorID isEqualToString:self.userID]) { - // 注意过滤一下重复的userID,后台可能存在僵尸room,一个人是两个房间的创建者 - if (![userIDSet containsObject:anchorID]) { - [userIDSet addObject:anchorID]; - [pusherInfoArray addObject:roomInfo.anchor]; - } - } - } - - if (completion) { - completion(pusherInfoArray); - } - }]; -} - -// 设置log显示 -- (void)clickLog:(UIButton *)btn { - switch (_log_switch) { - case 0: - _log_switch = 1; - [_liveRoom showVideoDebugLog:YES]; - _logView.hidden = YES; - _coverView.hidden = YES; - [btn setImage:[UIImage imageNamed:@"log2"] forState:UIControlStateNormal]; - break; - case 1: - _log_switch = 2; - [_liveRoom showVideoDebugLog:NO]; - _logView.hidden = NO; - _coverView.hidden = NO; - [self.view bringSubviewToFront:_logView]; - [btn setImage:[UIImage imageNamed:@"log2"] forState:UIControlStateNormal]; - break; - case 2: - _log_switch = 0; - [_liveRoom showVideoDebugLog:NO]; - _logView.hidden = YES; - _coverView.hidden = YES; - [btn setImage:[UIImage imageNamed:@"log"] forState:UIControlStateNormal]; - break; - default: - break; - } -} - -// 发送消息 -- (void)clickSend:(UIButton *)btn { - [self textFieldShouldReturn:_msgInputTextField]; -} - -// 监听键盘高度变化 -- (void)keyboardFrameDidChange:(NSNotification *)notice { - NSDictionary * userInfo = notice.userInfo; - NSValue * endFrameValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]; - CGRect endFrame = endFrameValue.CGRectValue; - [UIView animateWithDuration:0.25 animations:^{ - if (endFrame.origin.y == self.view.height) { - self->_msgInputView.y = endFrame.origin.y; - } else { - self->_msgInputView.y = endFrame.origin.y - self->_msgInputView.height; - } - }]; -} - -- (void)appendLog:(NSString *)msg { - NSDateFormatter *format = [[NSDateFormatter alloc] init]; - format.dateFormat = @"hh:mm:ss"; - NSString *time = [format stringFromDate:[NSDate date]]; - NSString *log = [NSString stringWithFormat:@"[%@] %@", time, msg]; - NSString *logMsg = [NSString stringWithFormat:@"%@\n%@", _logView.text, log]; - [_logView setText:logMsg]; -} - -- (void)appendSystemMsg:(NSString *)msg { - LiveRoomMsgModel *msgMode = [[LiveRoomMsgModel alloc] init]; - msgMode.type = LiveRoomMsgModeTypeSystem; - msgMode.userMsg = msg; - [_msgListView appendMsg:msgMode]; -} - -#pragma mark - LiveRoomListener - -- (void)onRoomDestroy:(NSString *)roomID { - [self alertTips:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.prompt") msg:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPlayer.liveroomhasbeendisbanded") completion:^{ - [self.navigationController popViewControllerAnimated:YES]; - }]; -} - -- (void)onDebugLog:(NSString *)msg { - dispatch_async(dispatch_get_main_queue(), ^{ - [self appendLog:msg]; - }); -} - -- (void)onError:(int)errCode errMsg:(NSString *)errMsg extraInfo:(NSDictionary *)extraInfo { - [self alertTips:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.prompt") msg:errMsg completion:^{ - [self.navigationController popViewControllerAnimated:YES]; - }]; -} - -- (void)onRecvRoomTextMsg:(NSString *)roomID userID:(NSString *)userID userName:(NSString *)userName userAvatar:(NSString *)userAvatar message:(NSString *)message { - LiveRoomMsgModel *msgMode = [[LiveRoomMsgModel alloc] init]; - msgMode.type = LiveRoomMsgModeTypeOther; - msgMode.time = [[NSDate date] timeIntervalSince1970]; - msgMode.userName = userName; - msgMode.userMsg = message; - - [_msgListView appendMsg:msgMode]; -} - -/** - 新的pusher加入直播(连麦) - */ -- (void)onAnchorEnter:(MLVBAnchorInfo *)anchorInfo { - NSLog(@"%@ joined", anchorInfo.userID); - dispatch_async(dispatch_get_main_queue(), ^{ - // 如果正在PK中,则将小主播踢出去 - if (self->_pkStatus == PKStatus_BEING) { - [self->_liveRoom kickoutJoinAnchor:anchorInfo.userID]; - return; - } - if (self->_playerViewDic.count >= 3) { - [self->_liveRoom kickoutJoinAnchor:anchorInfo.userID]; - return; - } - NSString *userID = anchorInfo.userID; - LiveRoomAccPlayerView *playerView = [self accPlayerViewForUID:userID]; - playerView.closeEnabled = YES; - __weak __typeof(self) wself = self; - playerView.onClose = ^(LiveRoomAccPlayerView * _Nonnull view) { - [wself kickout:userID]; - }; - [self.view addSubview:playerView]; - - // 重新布局 - [self relayout]; - - [self->_liveRoom startRemoteView:anchorInfo view:playerView onPlayBegin:^{ - playerView.loading = NO; - } onPlayError:^(int errCode, NSString *errMsg) { - [wself kickout:userID]; - } playEvent:nil]; - }); -} - -/** - pusher退出直播(连麦)的通知 - */ -- (void)onAnchorExit:(MLVBAnchorInfo *)pusherInfo { - dispatch_async(dispatch_get_main_queue(), ^{ - if (pusherInfo != nil && pusherInfo.userID != nil) { - [self removeAccViewForUID:pusherInfo.userID]; - [self relayout]; - } - }); -} - -/** - 大主播收到连麦请求 - */ -- (void)onRequestJoinAnchor:(MLVBAnchorInfo *)anchor reason:(NSString *)reason { - NSString *userID = anchor.userID; - NSString *userName = anchor.userName; - if (_hasPendingRequest || _pkStatus != PKStatus_IDLE) { - [_liveRoom responseJoinAnchor:userID agree:NO reason:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.pleasewaithostisbusy")]; - return; - } - - if (_playerViewDic.count >= 3) { - [_liveRoom responseJoinAnchor:userID agree:NO reason:@"当前连麦人数已满"]; - return; - } - - _hasPendingRequest = YES; - dispatch_async(dispatch_get_main_queue(), ^{ - - NSString *msg = LocalizeReplaceXX(LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.xxrequestwheat"), [NSString stringWithFormat:@"%@",userName]); - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.prompt") message:msg preferredStyle:UIAlertControllerStyleAlert]; - [alertController addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.refusedto") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - self->_hasPendingRequest = NO; - [self->_liveRoom responseJoinAnchor:userID agree:NO reason:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.anchordoesnotyourconnection")]; - }]]; - [alertController addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.accept") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - self->_hasPendingRequest = NO; - [self->_liveRoom responseJoinAnchor:userID agree:YES reason:nil]; - }]]; - - [self.navigationController presentViewController:alertController animated:YES completion:nil]; - - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t) (10 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - self->_hasPendingRequest = NO; - [alertController dismissViewControllerAnimated:NO completion:nil]; - }); - }); -} - -/** - 主播收到PK请求 - */ -- (void)onRequestRoomPK:(MLVBAnchorInfo *)anchor { - if (_hasPendingRequest || _pkStatus != PKStatus_IDLE || _playerViewDic.count) { - [_liveRoom responseRoomPK:anchor agree:NO reason:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.pleasewaithostisbusy")]; - return; - } - - _hasPendingRequest = YES; - dispatch_async(dispatch_get_main_queue(), ^{ - - NSString *msg = LocalizeReplaceXX(LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.xxrequestpk"), [NSString stringWithFormat:@"%@",anchor.userName]); - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.prompt") message:msg preferredStyle:UIAlertControllerStyleAlert]; - [alertController addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.refusedto") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - self->_hasPendingRequest = NO; - [self->_liveRoom responseRoomPK:anchor agree:NO reason:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.anchordoesnotyourpk")]; - }]]; - [alertController addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.accept") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - self.pkAnchor = anchor; - self->_hasPendingRequest = NO; - [self->_liveRoom responseRoomPK:anchor agree:YES reason:nil]; - [self addPKView:anchor]; - }]]; - - [self.navigationController presentViewController:alertController animated:YES completion:nil]; - - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t) (10 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - self->_hasPendingRequest = NO; - [alertController dismissViewControllerAnimated:NO completion:nil]; - }); - }); -} - -/** - 主播收到结束PK的请求 - */ -- (void)onQuitRoomPK { - [self deletePKView]; - [self toastTip:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.theendpk") time:2]; -} - -// 播放PK主播的画面 -- (void)addPKView:(MLVBAnchorInfo *)anchor { - LiveRoomAccPlayerView *playerView = [self accPlayerViewForUID:anchor.userID]; - [self.view addSubview:playerView]; - - _pkStatus = PKStatus_BEING; // PK中 - [_btnPK setImage:[UIImage imageNamed:@"mlvb_pk_stop_button"] forState:UIControlStateNormal]; - - // 重新布局 - _roomCreatorListView.hidden = YES; - [self relayout]; - [_liveRoom startRemoteView:anchor - view:playerView - onPlayBegin:^{ - playerView.loading = NO; - } onPlayError:^(int errCode, NSString *errMsg) { - [self->_liveRoom quitRoomPK:nil]; - [self deletePKView]; - } playEvent:nil]; -} - -// 删除PK主播的画面 -- (void)deletePKView { - [_liveRoom stopRemoteView:self.pkAnchor]; - - for (id userID in _playerViewDic) { - UIView *playerView = [_playerViewDic objectForKey:userID]; - [playerView removeFromSuperview]; - } - - [_playerViewDic removeAllObjects]; - - _pkStatus = PKStatus_IDLE; // 空闲状态 - [_btnPK setImage:[UIImage imageNamed:@"mlvb_pk"] forState:UIControlStateNormal]; - [self relayout]; -} - -// 连麦模式,大主播踢掉小主播 -- (void)clickKickoutBtn:(UIButton *)btn { - NSString *userID = btn.titleLabel.text; - [self kickout:userID]; // TODO: FIx -} - -- (void)kickout:(NSString *)userID { - [_liveRoom kickoutJoinAnchor:userID]; - [self removeAccViewForUID:userID]; - [self relayout]; -} - -- (void)alertTips:(NSString *)title msg:(NSString *)msg completion:(void(^)())completion { - dispatch_async(dispatch_get_main_queue(), ^{ - UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:msg preferredStyle:UIAlertControllerStyleAlert]; - [alertController addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.determine") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - if (completion) { - completion(); - } - }]]; - - [self.navigationController presentViewController:alertController animated:YES completion:nil]; - }); -} - -#pragma NSNotification -- (void)onAppWillResignActive:(NSNotification*)notification { - _appIsInActive = YES; - if (_liveRoom) { - } -} - -- (void)onAppDidBecomeActive:(NSNotification*)notification { - _appIsInActive = NO; - if (!_appIsBackground && !_appIsInActive) { - if (_liveRoom) { - [_liveRoom muteLocalAudio:_mute_switch]; - } - } -} - -- (void)onAppDidEnterBackGround:(NSNotification *)notification { - [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ - - }]; - - _appIsBackground = YES; - if (_liveRoom) { - } -} - -- (void)onAppWillEnterForeground:(NSNotification *)notification { - _appIsBackground = NO; - if (!_appIsBackground && !_appIsInActive) { - if (_liveRoom) { - } - } -} - -#pragma mark UITextFieldDelegate - -- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ - _msgInputTextField.text = @""; - return YES; -} - -- (void)textFieldDidEndEditing:(UITextField *)textField { - _msgInputTextField.text = textField.text; -} - -- (BOOL)textFieldShouldReturn:(UITextField *)textField { - NSString *textMsg = [textField.text stringByTrimmingCharactersInSet:[NSMutableCharacterSet whitespaceCharacterSet]]; - if (textMsg.length <= 0) { - textField.text = @""; - [self alertTips:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.prompt") msg:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPlayer.messagecannotbeempty") completion:nil]; - return YES; - } - - LiveRoomMsgModel *msgMode = [[LiveRoomMsgModel alloc] init]; - msgMode.type = LiveRoomMsgModeTypeOther; - msgMode.time = [[NSDate date] timeIntervalSince1970]; - msgMode.userName = _userName; - msgMode.userMsg = textMsg; - - [_msgListView appendMsg:msgMode]; - - _msgInputTextField.text = @""; - [_msgInputTextField resignFirstResponder]; - - // 发送 - [_liveRoom sendRoomTextMsg:textMsg completion:nil]; - - return YES; -} - -- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { - [_msgInputTextField resignFirstResponder]; - _vBeauty.hidden = YES; - _roomCreatorListView.hidden = YES; - [self hideToolButtons:NO]; - - _touchBeginLocation = [[[event allTouches] anyObject] locationInView:self.view]; -} - -- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { - CGPoint location = [[[event allTouches] anyObject] locationInView:self.view]; - [self endMove:location.x - _touchBeginLocation.x]; -} - -// 滑动隐藏UI控件 -- (void)endMove:(CGFloat)moveX { - // 目前只需要隐藏消息列表控件 - [UIView animateWithDuration:0.2 animations:^{ - if (moveX > 10) { - for (UIView *view in self.view.subviews) { - if (![view isEqual:self->_msgListView]) { - continue; - } - - CGRect rect = view.frame; - if (rect.origin.x >= 0 && rect.origin.x < [UIScreen mainScreen].bounds.size.width) { - rect = CGRectOffset(rect, self.view.width, 0); - view.frame = rect; - } - } - - } else if (moveX < -10) { - for (UIView *view in self.view.subviews) { - if (![view isEqual:self->_msgListView]) { - continue; - } - - CGRect rect = view.frame; - if (rect.origin.x >= [UIScreen mainScreen].bounds.size.width) { - rect = CGRectOffset(rect, -self.view.width, 0); - view.frame = rect; - } - } - } - }]; -} - -- (void)clickMsgListCoverView:(UITapGestureRecognizer *)gestureRecognizer { - _msgListCoverView.hidden = YES; - - [_msgInputTextField resignFirstResponder]; - _vBeauty.hidden = YES; - _roomCreatorListView.hidden = YES; - [self hideToolButtons:NO]; -} - -#pragma mark - UITableViewDataSource - -- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { - return LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.selecttheanchor"); -} - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 1; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return _roomCreatorList.count; -} - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - static NSString *cellID = @"RoomCreatorCellID"; - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID]; - if (cell == nil) { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID]; - cell.textLabel.adjustsFontSizeToFitWidth = YES; - cell.textLabel.font = [UIFont systemFontOfSize:15]; - } - - if (indexPath.row >= _roomCreatorList.count) { - return cell; - } - - MLVBAnchorInfo *pusherInfo = _roomCreatorList[indexPath.row]; - cell.textLabel.text = LocalizeReplaceXX(LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.nicknamexx"),[NSString stringWithFormat:@"%@",pusherInfo.userName]); - cell.backgroundColor = [UIColor blackColor]; - cell.textLabel.textColor = [UIColor whiteColor]; - cell.textLabel.textAlignment = NSTextAlignmentLeft; - - return cell; -} - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - if (indexPath.row >= _roomCreatorList.count) { - return; - } - - _roomCreatorListView.hidden = !_roomCreatorListView.hidden; - - MLVBAnchorInfo *anchor = _roomCreatorList[indexPath.row]; - self.pkAnchor = anchor; - [self sendPKRequest:anchor]; -} - -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - return 20; -} - -- (void)sendPKRequest:(MLVBAnchorInfo *)anchor { - if (anchor.userID == nil) { - return; - } - - if (_pkStatus == PKStatus_IDLE) { // 空闲状态 - _pkStatus = PKStatus_REQUESTING; // 请求PK中 - [self toastTip:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.pkrequestsentwaiting") time:10]; - __weak __typeof(self) wself = self; - [_liveRoom requestRoomPK:anchor.userID completion:^(int errCode, NSString *errMsg, NSString *streamUrl) { - __strong __typeof(wself) self = wself; - if (self == nil) { - return; - } - if (errCode == 0) { - self->_pkStatus = PKStatus_BEING; // PK中 - anchor.accelerateURL = streamUrl; - [self addPKView:anchor]; - [self toastTip:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomPusher.yourrequestacceptedstartpk") time:2]; - } else { - self->_pkStatus = PKStatus_IDLE; // 空闲状态 - [self toastTip:errMsg time:2]; - } - }]; - } -} - -/** - @method 获取指定宽度width的字符串在UITextView上的高度 - @param textView 待计算的UITextView - @param width 限制字符串显示区域的宽度 - @result float 返回的高度 - */ -- (float)heightForString:(UITextView *)textView andWidth:(float)width { - CGSize sizeToFit = [textView sizeThatFits:CGSizeMake(width, MAXFLOAT)]; - return sizeToFit.height; -} - -- (void)toastTip:(NSString *)toastInfo time:(NSInteger)time { - dispatch_async(dispatch_get_main_queue(), ^{ - UITextView *toastView = self->_toastView; - [toastView removeFromSuperview]; - - CGRect frameRC = [[UIScreen mainScreen] bounds]; - frameRC.origin.y = frameRC.size.height - 110; - frameRC.size.height -= 110; - frameRC.size.height = [self heightForString:toastView andWidth:frameRC.size.width]; - - toastView.frame = frameRC; - - toastView.text = toastInfo; - toastView.backgroundColor = [UIColor whiteColor]; - toastView.alpha = 0.5; - - [self.view addSubview:toastView]; - - dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, time * NSEC_PER_SEC); - - dispatch_after(popTime, dispatch_get_main_queue(), ^() { - [toastView removeFromSuperview]; - }); - }); -} - -@end - diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomTableViewCell.h b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomTableViewCell.h deleted file mode 100644 index 3b30c415..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomTableViewCell.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// LiveRoomTableViewCell.h -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import - -@interface LiveRoomTableViewCell : UITableViewCell - -@property (nonatomic, copy) NSString *roomInfo; -@property (nonatomic, copy) NSString *roomID; -@property (nonatomic, assign) NSInteger memberNum; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomTableViewCell.m b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomTableViewCell.m deleted file mode 100644 index 6a89b962..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/LiveRoomUI/LiveRoomTableViewCell.m +++ /dev/null @@ -1,103 +0,0 @@ -// -// LiveRoomTableViewCell.m -// TXLiteAVDemo -// -// Created by lijie on 2017/11/22. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import "LiveRoomTableViewCell.h" -#import "ColorMacro.h" -#import "AppLocalized.h" - -@interface LiveRoomTableViewCell() { - UILabel *_roomNameLeftLabel; - UILabel *_roomNameRightLabel; - UILabel *_roomIDLeftLabel; - UILabel *_roomIDRightLabel; - UILabel *_memberNumLeftLabel; - UILabel *_memberNumRightLabel; -} -@end - -@implementation LiveRoomTableViewCell - -- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { - if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { - self.backgroundColor = UIColorFromRGB(0x262626); - - _roomNameLeftLabel = [UILabel new]; - _roomNameLeftLabel.text = [NSString stringWithFormat:@"%@:",LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.liveroomname")]; - _roomNameLeftLabel.font = [UIFont systemFontOfSize:16]; - _roomNameLeftLabel.textAlignment = NSTextAlignmentLeft; - _roomNameLeftLabel.textColor = UIColorFromRGB(0x999999); - - _roomIDLeftLabel = [UILabel new]; - _roomIDLeftLabel.text = LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomTableCell.liveroomid"); - _roomIDLeftLabel.font = [UIFont systemFontOfSize:16]; - _roomIDLeftLabel.textAlignment = NSTextAlignmentLeft; - _roomIDLeftLabel.textColor = UIColorFromRGB(0x999999); - - _memberNumLeftLabel = [UILabel new]; - _memberNumLeftLabel.text = LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomTableCell.onlinenumber"); - _memberNumLeftLabel.font = [UIFont systemFontOfSize:16]; - _memberNumLeftLabel.textAlignment = NSTextAlignmentLeft; - _memberNumLeftLabel.textColor = UIColorFromRGB(0x999999); - - _roomNameRightLabel = [UILabel new]; - _roomNameRightLabel.text = @""; - _roomNameRightLabel.font = [UIFont systemFontOfSize:16]; - _roomNameRightLabel.textAlignment = NSTextAlignmentLeft; - _roomNameRightLabel.textColor = UIColorFromRGB(0xffffff); - - _roomIDRightLabel = [UILabel new]; - _roomIDRightLabel.text = @""; - _roomIDRightLabel.font = [UIFont systemFontOfSize:16]; - _roomIDRightLabel.textAlignment = NSTextAlignmentLeft; - _roomIDRightLabel.textColor = UIColorFromRGB(0xffffff); - - _memberNumRightLabel = [UILabel new]; - _memberNumRightLabel.text = @""; - _memberNumRightLabel.font = [UIFont systemFontOfSize:16]; - _memberNumRightLabel.textAlignment = NSTextAlignmentLeft; - _memberNumRightLabel.textColor = UIColorFromRGB(0xffffff); - - [self.contentView addSubview:_roomNameLeftLabel]; - [self.contentView addSubview:_roomNameRightLabel]; - [self.contentView addSubview:_roomIDLeftLabel]; - [self.contentView addSubview:_roomIDRightLabel]; - [self.contentView addSubview:_memberNumLeftLabel]; - [self.contentView addSubview:_memberNumRightLabel]; - } - return self; -} - -- (void)layoutSubviews { - [super layoutSubviews]; - - _roomNameLeftLabel.frame = CGRectMake(20, 20, 200, 20); - _roomNameRightLabel.frame = CGRectMake(120, 20, 200, 20); - - _roomIDLeftLabel.frame = CGRectMake(20, 50, 200, 20); - _roomIDRightLabel.frame = CGRectMake(120, 50, 200, 20); - - _memberNumLeftLabel.frame = CGRectMake(20, 80, 200, 20); - _memberNumRightLabel.frame = CGRectMake(120, 80, 200, 20); - - _roomNameRightLabel.text = _roomInfo; - _roomIDRightLabel.text = _roomID; - _memberNumRightLabel.text = LocalizeReplaceXX(LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomTableCell.xxxpeople"), [NSString stringWithFormat:@"%d",(int)_memberNum]); -} - -- (void)setFrame:(CGRect)frame { - frame.size.height -= 10; - [super setFrame:frame]; -} - -- (void)setSelected:(BOOL)selected animated:(BOOL)animated { - [super setSelected:selected animated:animated]; - - // Configure the view for the selected state -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/RoomUtil/IMMsgManager.h b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/RoomUtil/IMMsgManager.h deleted file mode 100644 index df415eb6..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/RoomUtil/IMMsgManager.h +++ /dev/null @@ -1,127 +0,0 @@ -// -// RoomMsgMgr.h -// TXLiteAVDemo -// -// Created by lijie on 2017/11/1. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import -#import "MLVBLiveRoomDef.h" - -@protocol IMMsgManagerDelegate - -// 接收群文本消息 -- (void)onRecvGroupTextMsg:(NSString *)groupID userID:(NSString *)userID textMsg:(NSString *)textMsg userName:(NSString *)userName userAvatar:(NSString *)userAvatar; - -// 接收到群成员变更消息 -- (void)onMemberChange:(NSString *)groupID; - -// 接收到房间解散消息 -- (void)onGroupDelete:(NSString *)groupID; - -// 接收到房间成员加入信息 -- (void)onGroupMemberEnter:(NSString *)group user:(MLVBAudienceInfo *)audienceInfo; - -// 接收到房间成员离开信息 -- (void)onGroupMemberLeave:(NSString *)group user:(MLVBAudienceInfo *)audienceInfo; - - -@optional - -// 被踢掉线 -- (void)onForceOffline; - -// 接收到小主播的连麦请求 -- (void)onRecvJoinAnchorRequest:(NSString *)roomID userID:(NSString *)userID userName:(NSString *)userName userAvatar:(NSString *)userAvatar reason:(NSString *)reason; - -// 接收到大主播的连麦回应, result为YES表示同意连麦,为NO表示拒绝连麦 -- (void)onRecvJoinAnchorResponse:(NSString *)roomID result:(BOOL)result message:(NSString *)message; - -// 接收到被大主播的踢出连麦的消息 -- (void)onRecvJoinAnchorKickout:(NSString *)roomID; - -// 接收群自定义消息,cmd为自定义命令字,msg为自定义消息体(这里统一使用json字符串) -- (void)onRecvGroupCustomMsg:(NSString *)groupID userID:(NSString *)userID cmd:(NSString *)cmd msg:(NSString *)msg userName:(NSString *)userName userAvatar:(NSString *)userAvatar; - -// 接收到PK请求 -- (void)onRequestRoomPK:(NSString *)roomID userID:(NSString *)userID userName:(NSString *)userName userAvatar:(NSString *)userAvatar streamUrl:(NSString *)streamUrl; - -// 接收到PK请求回应, result为YES表示同意PK,为NO表示拒绝PK,若同意,则streamUrl为对方的播放流地址 -- (void)onRecvPKResponse:(NSString *)roomID userID:(NSString *)userID result:(BOOL)result message:(NSString *)message streamUrl:(NSString *)streamUrl; - -// 接收PK结束消息 -- (void)onRecvPKFinishRequest:(NSString *)roomID userID:(NSString *)userID; - -@end - - -@interface IMMsgManager : NSObject - -@property (nonatomic, weak) id delegate; -@property (nonatomic, assign) uint64_t loginServerTime; -@property (nonatomic, assign, readonly) uint64_t loginUptime; - -- (instancetype)initWithConfig:(MLVBLoginInfo *)config; - -// 释放前必须调用此方法 -- (void)prepareToDealloc; - -- (void)setLoginServerTime:(uint64_t)loginServerTime; - -// 登录 -- (void)loginWithCompletion:(void (^)(int errCode, NSString *errMsg))completion; - -// 登出 -- (void)logout:(void (^)(int errCode, NSString *errMsg))completion; - -// 创建群 -- (void)createGroupWithID:(NSString *)groupID name:(NSString *)groupName completion:(void (^)(int errCode, NSString *errMsg))completion; - -// 删除群 -- (void)deleteGroupWithID:(NSString *)groupID completion:(void (^)(int errCode, NSString *errMsg))completion; - -// 获取群成员 -- (void)getGroupMemberList:(NSString *)groupID completion:(void(^)(int code, NSString *msg, NSArray * members))completion; - -// 加入房间 -- (void)enterRoom:(NSString *)groupID completion:(void (^)(int errCode, NSString *errMsg))completion; - -// 退出房间 -- (void)quitGroup:(NSString *)groupID completion:(void (^)(int errCode, NSString *errMsg))completion; - -- (void)sendNotifyMessage; - -// 发送群自定义消息 -- (void)sendRoomCustomMsg:(NSString *)cmd msg:(NSString *)msg completion:(void (^)(int errCode, NSString *errMsg))completion; - -// 发送群文本消息 -- (void)sendGroupTextMsg:(NSString *)textMsg completion:(void (^)(int errCode, NSString *errMsg))completion;; - -#pragma mark - 连麦 - -// 向userID发起连麦请求 -- (void)sendJoinAnchorRequest:(NSString *)userID roomID:(NSString *)roomID; - -// 向userID发起连麦响应, result为YES表示接收,为NO表示拒绝 -- (void)sendJoinAnchorResponseWithUID:(NSString *)userID roomID:(NSString*)roomID result:(BOOL)result reason:(NSString *)reason; - -// 群主向userID发出踢出连麦消息 -- (void)sendJoinAnchorKickout:(NSString *)userID roomID:(NSString*)roomID; - -// 向userID发起PK请求 -- (void)sendPKRequest:(NSString *)userID roomID:(NSString *)roomID withAccelerateURL:(NSString *)accelerateURL; - -// 请求结束PK -- (void)sendPKFinishRequest:(NSString *)userID roomID:(NSString *)roomID completion:(void(^)(int errCode, NSString *errMsg))completion; - -// 接收PK -- (void)acceptPKRequest:(NSString *)userID roomID:(NSString *)roomID withAccelerateURL:(NSString *)accelerateURL; - -// 拒绝PK -- (void)rejectPKRequest:(NSString *)userID roomID:(NSString *)roomID reason:(NSString *)reason; - -#pragma mark - 个人信息 --(void)setSelfProfile:(NSString *)userName avatarURL:(NSString*)avatarURL completion:(void(^)(int code, NSString *msg))completion; -- (void)getProfile:(void(^)(int code, NSString *msg, NSString *nickname, NSString *avatar))completion; -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/RoomUtil/IMMsgManager.m b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/RoomUtil/IMMsgManager.m deleted file mode 100644 index 30f4c235..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/RoomUtil/IMMsgManager.m +++ /dev/null @@ -1,673 +0,0 @@ -// -// IMMsgManager.m -// TXLiteAVDemo -// -// Created by lijie on 2017/11/1. -// Copyright © 2017年 Tencent. All rights reserved. -// -#import "IMMsgManager.h" -#import "ImSDK/ImSDK.h" -#import -#import - -#define CMD_PUSHER_CHANGE @"notifyPusherChange" -#define CMD_CUSTOM_TEXT_MSG @"CustomTextMsg" -#define CMD_CUSTOM_CMD_MSG @"CustomCmdMsg" -#define CMD_LINK_MIC @"linkmic" -#define CMD_PK @"pk" - -#define ErrMsg(x) [@"[IM] " stringByAppendingString:x] - -#if DEBUG -# define Log NSLog -#else -# define Log(...) -#endif - -@interface IMMsgManager() { - MLVBLoginInfo *_config; - dispatch_queue_t _queue; - - NSString *_groupID; // 群ID - TIMConversation *_groupConversation; // 群会话上下文 -} - -@property (nonatomic, assign) BOOL isOwner; // 是否是群主 -@property (nonatomic, copy) NSString *ownerGroupID; - -@end - -@implementation IMMsgManager -- (instancetype)initWithConfig:(MLVBLoginInfo *)config { - if (self = [super init]) { - _config = config; - _queue = dispatch_queue_create("RoomMsgMgrQueue", DISPATCH_QUEUE_SERIAL); - - [[V2TIMManager sharedInstance] addAdvancedMsgListener:self]; - [[V2TIMManager sharedInstance] setGroupListener:self]; - _groupID = @"0"; - _isOwner = NO; - } - return self; -} - -- (void)prepareToDealloc { - [[V2TIMManager sharedInstance] removeAdvancedMsgListener:self]; -} - -- (void)asyncRun:(void(^)(void))block { - dispatch_async(_queue, ^{ - block(); - }); -} - -- (void)syncRun:(void(^)(void))block { - dispatch_sync(_queue, ^{ - block(); - }); -} - -- (void)switchGroup:(NSString *)groupID { - _groupID = groupID; - _groupConversation = [[TIMManager sharedInstance] getConversation:TIM_GROUP receiver:groupID]; -} - -#pragma mark - Time -double getSystemUptime(void) -{ - struct timeval boottime; - int mib[2] = {CTL_KERN, KERN_BOOTTIME}; - size_t size = sizeof(boottime); - time_t now; - time_t uptime = -1; - - (void)time(&now); - - if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1 && boottime.tv_sec != 0) { - uptime = now - boottime.tv_sec; - } - - // 这里对精度要求只到秒,为方便处理统一转换为毫秒 - return uptime*1000; -} - -- (void)setLoginServerTime:(uint64_t)loginServerTime { - _loginServerTime = loginServerTime; - _loginUptime = getSystemUptime(); - Log(@"[IM] setLoginServerTime: %llu, %llu", _loginServerTime, _loginUptime); -} - -- (uint64_t)currentTimestamp { - uint64_t elapse = getSystemUptime() - _loginUptime; - return _loginServerTime + elapse; -} - -- (BOOL)isExpired:(uint64_t)timestamp { - uint64_t current = [self currentTimestamp]; - Log(@"current: %llu, timestamp: %llu", current, timestamp); - uint64_t diff; - if (current > timestamp) { - diff = current - timestamp; - } else { - diff = timestamp - current; - } - return diff > 10000; -} - -#pragma mark - -- (void)loginWithCompletion:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^{ - [[V2TIMManager sharedInstance] login:self->_config.userID userSig:self->_config.userSig succ:^{ - if (completion) { - completion(0, nil); - } - } fail:^(int code, NSString *msg) { - if (completion) { - completion(code, ErrMsg(msg)); - } - }]; - }]; -} - -- (void)logout:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^{ - [[V2TIMManager sharedInstance] logout:^{ - if (completion) { - completion(0, nil); - } - } fail:^(int code, NSString *msg) { - if (completion) { - completion(code, ErrMsg(msg)); - } - }]; - }]; -} - -- (void)enterRoom:(NSString *)groupID completion:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^{ - __weak __typeof(self) weakSelf = self; - [[V2TIMManager sharedInstance] joinGroup:groupID msg:nil succ:^{ - //切换群会话的上下文环境 - [weakSelf switchGroup:groupID]; - - if (completion) { - completion(0, nil); - } - - } fail:^(int code, NSString *msg) { - if (completion) { - completion(code, ErrMsg(msg)); - } - }]; - }]; -} - -- (void)quitGroup:(NSString *)groupID completion:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^{ - // 如果是群主,那么就解散该群,如果不是群主,那就退出该群 - if (self->_isOwner && [self->_ownerGroupID isEqualToString:groupID]) { - [[V2TIMManager sharedInstance] dismissGroup:groupID succ:^{ - if (completion) { - completion(0, nil); - } - } fail:^(int code, NSString *msg) { - if (completion) { - completion(code, ErrMsg(msg)); - } - }]; - - } else { - [[V2TIMManager sharedInstance] quitGroup:groupID succ:^{ - if (completion) { - completion(0, nil); - } - } fail:^(int code, NSString *msg) { - if (completion) { - completion(code, ErrMsg(msg)); - } - }]; - } - }]; -} - -- (void)sendNotifyMessage { - NSDictionary *data = @{@"cmd": CMD_PUSHER_CHANGE}; - if (_groupConversation) { - [[V2TIMManager sharedInstance] sendGroupCustomMessage:[self dictionary2JsonData:data] to:self->_groupConversation.getReceiver priority:V2TIM_PRIORITY_NORMAL succ:^{ - Log(@"sendCustomMessage success"); - } fail:^(int code, NSString *desc) { - Log(@"sendCustomMessage failed, data[%@]", data); - }]; - } -} - -// CustomElem{"cmd":"CustomCmdMsg", "data":{"userName":"xxx", "userAvatar":"xxx", "cmd":"xx", msg:"xx"}} -- (void)sendRoomCustomMsg:(NSString *)cmd msg:(NSString *)msg completion:(void (^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^{ - NSDictionary *data = @{@"cmd": cmd, - @"msg": msg == nil ? @"" : msg, - @"userName":self->_config.userName, - @"userAvatar":self->_config.userAvatar,}; - NSDictionary *customMsg = @{ @"cmd": CMD_CUSTOM_CMD_MSG, @"data": data}; - [[V2TIMManager sharedInstance] sendGroupCustomMessage:[self dictionary2JsonData:customMsg] to:self->_groupConversation.getReceiver priority:V2TIM_PRIORITY_NORMAL succ:^{ - Log(@"sendCustomMessage success"); - if (completion) completion(0, nil); - } fail:^(int code, NSString *desc) { - Log(@"sendCustomMessage failed, data[%@]", data); - if (completion) completion(code, desc); - }]; - }]; -} - -- (void)sendCCCustomMessage:(NSString *)userID data:(NSData *)data completion:(void(^)(int code, NSString *msg))completion { - [[V2TIMManager sharedInstance] sendC2CCustomMessage:data to:userID succ:^{ - Log(@"sendCCCustomMessage success"); - if (completion) { - completion(0, nil); - }; - } fail:^(int code, NSString *desc) { - Log(@"sendCCCustomMessage failed, data[%@]", data); - if (completion) { - completion(code, ErrMsg(desc)); - } - }]; -} - -// 一条消息两个Elem:CustomElem{“cmd”:”CustomTextMsg”, “data”:{nickName:“xx”, headPic:”xx”}} + TextElem -- (void)sendGroupTextMsg:(NSString *)textMsg completion:(void (^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^{ - TIMCustomElem *msgHead = [[TIMCustomElem alloc] init]; - NSDictionary *userInfo = @{@"nickName": self->_config.userName, @"headPic": self->_config.userAvatar}; - NSDictionary *headData = @{@"cmd": CMD_CUSTOM_TEXT_MSG, @"data": userInfo}; - msgHead.data = [self dictionary2JsonData:headData]; - - TIMTextElem *msgBody = [[TIMTextElem alloc] init]; - msgBody.text = textMsg; - - TIMMessage *msg = [[TIMMessage alloc] init]; - [msg addElem:msgHead]; - [msg addElem:msgBody]; - - if (self->_groupConversation) { - [self->_groupConversation sendMessage:msg succ:^{ - Log(@"sendGroupTextMsg success"); - if (completion) completion(0, nil); - } fail:^(int code, NSString *msg) { - Log(@"sendGroupTextMsg failed, textMsg[%@]", textMsg); - if (completion) completion(code, msg); - }]; - } - }]; -} - -#pragma mark - Group Management -- (void)createGroupWithID:(NSString *)groupID name:(NSString *)groupName completion:(void(^)(int errCode, NSString *errMsg))completion { - // TODO: Test if initialization finished - __weak __typeof(self) wself = self; - [[V2TIMManager sharedInstance] createGroup:@"AVChatRoom" groupID:groupID groupName:groupName succ:^(NSString *groupID) { - __strong __typeof(wself) self = wself; - [self switchGroup:groupID]; - if (completion) { - completion(0, nil); - } - } fail:^(int code, NSString *desc) { - if (code == 10025) { - code = 0; - Log(@"群组 %@ 已被使用,并且操作者为群主,可以直接使用", groupID); - [self switchGroup:groupID]; - } - completion(code, ErrMsg(desc)); - }]; -} - -- (void)deleteGroupWithID:(NSString *)groupID completion:(void(^)(int errCode, NSString *errMsg))completion { - [[V2TIMManager sharedInstance] dismissGroup:groupID succ:^{ - if (completion) { - completion(0, nil); - } - } fail:^(int code, NSString *msg) { - if (completion) { - completion(code, ErrMsg(msg)); - } - }]; -} - -- (void)getGroupMemberList:(NSString *)groupID completion:(void(^)(int code, NSString *msg, NSArray * members))completion -{ - [[V2TIMManager sharedInstance] getGroupMemberList:groupID filter:V2TIM_GROUP_MEMBER_FILTER_COMMON nextSeq:0 succ:^(uint64_t nextSeq, NSArray *memberList) { - NSMutableArray *result = [[NSMutableArray alloc] initWithCapacity:memberList.count]; - for (V2TIMGroupMemberFullInfo *memberInfo in memberList) { - MLVBAudienceInfo *info = [[MLVBAudienceInfo alloc] init]; - info.userID = memberInfo.userID; - info.userName = memberInfo.nickName ?: @""; - info.userAvatar = memberInfo.faceURL; - [result addObject:info]; - } - completion(0, nil, result); - } fail:^(int code, NSString *desc) { - completion(code, ErrMsg(desc), nil); - }]; -} -#pragma mark - V2TIMAdvancedMsgListener - -- (void)onRecvNewMessage:(V2TIMMessage *)msg { - if (msg.userID.length > 0) { - [self onRecvC2CMsg:msg]; - } else if (msg.groupID.length > 0) { - // 目前只处理当前群消息 - if ([msg.groupID isEqualToString:self->_groupID]) { - [self onRecvGroupMsg:msg]; - } - } -} - -- (void)onRecvC2CMsg:(V2TIMMessage *)msg { - if (msg.elemType == V2TIM_ELEM_TYPE_CUSTOM) { - V2TIMCustomElem *customElem = msg.customElem; - NSDictionary *dict = [self jsonData2Dictionary:customElem.data]; - - NSString *cmd = nil; - id data = nil; - if (dict) { - cmd = dict[@"cmd"]; - data = dict[@"data"]; - } - - // 连麦相关的消息 - if (cmd && [cmd isEqualToString:CMD_LINK_MIC] && [data isKindOfClass:[NSDictionary class]]) { - NSString *type = data[@"type"]; - uint64_t timestamp = [data[@"timestamp"] unsignedLongLongValue]; - if ([self isExpired:timestamp]) { - return; - } - if (type && [type isEqualToString:@"request"]) { - NSString *message = data[@"reason"]; - if (_delegate && [_delegate respondsToSelector:@selector(onRecvJoinAnchorRequest:userID:userName:userAvatar:reason:)]) { - [_delegate onRecvJoinAnchorRequest:data[@"roomID"] userID:msg.sender userName:data[@"userName"] userAvatar:data[@"userAvatar"] reason:message]; - } - } else if (type && [type isEqualToString:@"response"]) { - NSString *resultStr = data[@"result"]; - NSString *message = data[@"reason"]; - NSString *roomID = data[@"roomID"]; - BOOL result = NO; - if (resultStr && [resultStr isEqualToString:@"accept"]) { - result = YES; - } - if (_delegate && [_delegate respondsToSelector:@selector(onRecvJoinAnchorResponse:result:message:)]) { - [_delegate onRecvJoinAnchorResponse:roomID result:result message:message]; - } - - } else if (type && [type isEqualToString:@"kickout"]) { - NSString *roomID = data[@"roomID"]; - if (_delegate && [_delegate respondsToSelector:@selector(onRecvJoinAnchorKickout:)]) { - [_delegate onRecvJoinAnchorKickout:roomID]; - } - } - } - // 跨房主播PK相关的消息 - else if (cmd && [cmd isEqualToString:CMD_PK] && [data isKindOfClass:[NSDictionary class]]) { - NSString *type = data[@"type"]; - uint64_t timestamp = [data[@"timestamp"] unsignedLongLongValue]; - if ([self isExpired:timestamp]) { - return; - } - - if (type && [type isEqualToString:@"request"]) { - NSString *action = data[@"action"]; - if (action && [action isEqualToString:@"start"]) { // 收到PK请求的消息 - if (_delegate && [_delegate respondsToSelector:@selector(onRequestRoomPK:userID:userName:userAvatar:streamUrl:)]) { - [_delegate onRequestRoomPK:data[@"roomID"] userID:msg.sender userName:data[@"userName"] userAvatar:data[@"userAvatar"] streamUrl:data[@"accelerateURL"]]; - } - - } else if (action && [action isEqualToString:@"stop"]) { // 收到PK结束的消息 - if (_delegate && [_delegate respondsToSelector:@selector(onRecvPKFinishRequest:userID:)]) { - [_delegate onRecvPKFinishRequest:data[@"roomID"] userID:msg.sender]; - } - } - - } else if (type && [type isEqualToString:@"response"]) { - NSString *result = data[@"result"]; - if (result && [result isEqualToString:@"accept"]) { // 收到接收PK的消息 - if (_delegate && [_delegate respondsToSelector:@selector(onRecvPKResponse:userID:result:message:streamUrl:)]) { - [_delegate onRecvPKResponse:data[@"roomID"] userID:msg.sender result:YES message:@"" streamUrl:data[@"accelerateURL"]]; - } - - } else if (result && [result isEqualToString:@"reject"]) { // 收到拒绝PK的消息 - if (_delegate && [_delegate respondsToSelector:@selector(onRecvPKResponse:userID:result:message:streamUrl:)]) { - [_delegate onRecvPKResponse:data[@"roomID"] userID:msg.sender result:NO message:data[@"reason"] streamUrl:nil]; - } - } - } - } - } -} - -- (void)onRecvGroupMsg:(V2TIMMessage *)msg { - NSString *cmd = nil; - id data = nil; - - if (msg.elemType == V2TIM_ELEM_TYPE_CUSTOM) { - V2TIMCustomElem *customElem = msg.customElem; - NSDictionary *dict = [self jsonData2Dictionary:customElem.data]; - if (dict) { - cmd = dict[@"cmd"]; - data = dict[@"data"]; - } - - // 群自定义消息处理 - if (cmd && [cmd isEqualToString:CMD_CUSTOM_CMD_MSG] && [data isKindOfClass:[NSDictionary class]]) { - if (_delegate && [_delegate respondsToSelector:@selector(onRecvGroupCustomMsg:userID:cmd:msg:userName:userAvatar:)]) { - [_delegate onRecvGroupCustomMsg:_groupID userID:msg.sender cmd:data[@"cmd"] msg:data[@"msg"] userName:data[@"userName"] userAvatar:data[@"userAvatar"]]; - } - } else if ([cmd isEqualToString:CMD_PUSHER_CHANGE]) { - [_delegate onMemberChange:_groupID]; - } - V2TIMElem *elem = customElem.nextElem; - if (!elem) { - return; - } - if ([elem isKindOfClass:[V2TIMTextElem class]]) { - V2TIMTextElem *textElem = (V2TIMTextElem *)elem; - NSString *msgText = textElem.text; - - // 群文本消息处理 - if ([cmd isEqualToString:CMD_CUSTOM_TEXT_MSG] && [data isKindOfClass:[NSDictionary class]]) { - NSDictionary *userInfo = (NSDictionary *)data; - NSString *nickName = nil; - NSString *headPic = nil; - if (userInfo) { - nickName = userInfo[@"nickName"]; - headPic = userInfo[@"headPic"]; - } - - if (_delegate) { - [_delegate onRecvGroupTextMsg:_groupID userID:msg.sender textMsg:msgText userName:nickName userAvatar:headPic]; - } - } else if ([cmd isEqualToString:CMD_PUSHER_CHANGE]) { - [_delegate onMemberChange:_groupID]; - } - } - } -} - -#pragma mark - V2TIMGroupListener -- (void)onMemberEnter:(NSString *)groupID memberList:(NSArray*)memberList { - if (![_groupID isEqualToString:groupID]) { - return; - } - V2TIMGroupMemberInfo *member = memberList.firstObject; - MLVBAudienceInfo *info = [[MLVBAudienceInfo alloc] init]; - info.userID = member.userID; - info.userName = member.nickName; - info.userAvatar = member.faceURL; - if (self.delegate) { - [self.delegate onGroupMemberEnter:groupID user:info]; - } -} - -- (void)onMemberLeave:(NSString *)groupID member:(V2TIMGroupMemberInfo *)member { - if (![_groupID isEqualToString:groupID]) { - return; - } - MLVBAudienceInfo *info = [[MLVBAudienceInfo alloc] init]; - info.userID = member.userID; - info.userName = member.nickName; - info.userAvatar = member.faceURL; - if (self.delegate) { - [self.delegate onGroupMemberLeave:groupID user:info]; - } -} - -- (void)onGroupDismissed:(NSString *)groupID opUser:(V2TIMGroupMemberInfo *)opUser { - if (![_groupID isEqualToString:groupID]) { - return; - } - if (self.delegate) { - [self.delegate onGroupDelete:_groupID]; - } -} - -- (void)onReceiveRESTCustomData:(NSString *)groupID data:(NSData *)data { - if (![_groupID isEqualToString:groupID]) { - return; - } - NSDictionary *dict = [self jsonData2Dictionary:data]; - if (dict == nil) { - return; - } - - NSString *cmd = dict[@"cmd"]; - if (cmd == nil) { - return; - } - // 群成员有变化 - if ([cmd isEqualToString:CMD_PUSHER_CHANGE]) { - if (self.delegate) { - [self.delegate onMemberChange:groupID]; - } - } -} - -#pragma mark - TIMUserStatusListener -/** - * 踢下线通知 - */ -- (void)onKickedOffline -{ - if ([self.delegate respondsToSelector:@selector(onForceOffline)]) { - [self.delegate onForceOffline]; - } -} - -#pragma mark - utils - -- (NSData *)dictionary2JsonData:(NSDictionary *)dict { - if ([NSJSONSerialization isValidJSONObject:dict]) { - NSError *error = nil; - NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error]; - if (error) { - Log(@"dictionary2JsonData failed: %@", dict); - return nil; - } - return data; - } - return nil; -} - -- (NSDictionary *)jsonData2Dictionary:(NSData *)jsonData { - if (jsonData == nil) { - return nil; - } - NSError *err = nil; - NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err]; - if (err) { - Log(@"JjsonData2Dictionary failed: %@", jsonData); - return nil; - } - return dic; -} - -#pragma mark - 连麦 - -// 向userID发起连麦请求 -// {cmd:"linkmic", data:{type: “request”, roomID:”xxx”, userID:"xxxx", userName:"xxxx", userAvatar:"xxxx"}} -- (void)sendJoinAnchorRequest:(NSString *)userID roomID:(NSString *)roomID { - [self asyncRun:^{ - NSDictionary *data = @{@"type": @"request", - @"roomID":roomID, - @"userID":self->_config.userID, - @"userName":self->_config.userName, - @"userAvatar":self->_config.userAvatar, - @"timestamp": @([self currentTimestamp]) - }; - NSDictionary *msgDic = @{@"cmd": CMD_LINK_MIC, @"data":data}; - - [self sendCCCustomMessage:userID data:[self dictionary2JsonData:msgDic] completion:nil]; - }]; -} - -// 向userID发起连麦响应,result为:"accept“ or "reject" -// {cmd:"linkmic", data:{type: “response”, roomID:”xxx”, result: "xxxx",message:"xxxx }} -- (void)sendJoinAnchorResponseWithUID:(NSString *)userID roomID:(NSString*)roomID result:(BOOL)result reason:(NSString *)reason { - [self asyncRun:^{ - NSString *resultStr = @"reject"; - if (result) { - resultStr = @"accept"; - } - NSDictionary *data = @{@"type": @"response", @"roomID":roomID, @"result":resultStr, @"reason":reason ?: @"", @"timestamp": @([self currentTimestamp])}; - NSDictionary *msgDic = @{@"cmd": CMD_LINK_MIC, @"data":data}; - - [self sendCCCustomMessage:userID data:[self dictionary2JsonData:msgDic] completion:nil]; - }]; -} - -// 群主向userID发出踢出连麦消息 -// {cmd:"linkmic", data:{type: "kickout”, roomID:”xxx”}} -- (void)sendJoinAnchorKickout:(NSString *)userID roomID:(NSString *)roomID { - [self asyncRun:^{ - NSDictionary *data = @{@"type": @"kickout", @"roomID":roomID, @"timestamp": @([self currentTimestamp])}; - NSDictionary *msgDic = @{@"cmd": CMD_LINK_MIC, @"data":data}; - - [self sendCCCustomMessage:userID data:[self dictionary2JsonData:msgDic] completion:nil]; - }]; -} - -// 向userID发起PK请求 -// {"cmd":"pk", "data":{"roomID":"XXX", "type":"request", "action":"start", "userID":"XXX", "userName":"XXX", "userAvatar":"XXX", "accelerateURL":"XXX"} } -- (void)sendPKRequest:(NSString *)userID roomID:(NSString *)roomID withAccelerateURL:(NSString *)accelerateURL { - [self asyncRun:^{ - NSDictionary *data = @{@"roomID":roomID, @"type": @"request", @"action": @"start", @"userID": self->_config.userID, - @"userName": self->_config.userName, @"userAvatar": self->_config.userAvatar, - @"accelerateURL": accelerateURL, @"timestamp": @([self currentTimestamp])}; - NSDictionary *msgDic = @{@"cmd": CMD_PK, @"data": data}; - - [self sendCCCustomMessage:userID data:[self dictionary2JsonData:msgDic] completion:nil]; - }]; -} - -// 请求结束PK -// {"cmd":"pk", "data":{"roomID":"XXX", "type":"request", "action":"stop", "userID":"XXX", "userName":"XXX", "userAvatar":"XXX"} } -- (void)sendPKFinishRequest:(NSString *)userID roomID:(NSString *)roomID completion:(void(^)(int errCode, NSString *errMsg))completion { - [self asyncRun:^{ - NSDictionary *data = @{@"roomID":roomID, @"type": @"request", @"action": @"stop", @"userID": self->_config.userID, - @"userName": self->_config.userName, @"userAvatar": self->_config.userAvatar, - @"timestamp": @([self currentTimestamp])}; - NSDictionary *msgDic = @{@"cmd": CMD_PK, @"data": data}; - - [self sendCCCustomMessage:userID data:[self dictionary2JsonData:msgDic] completion:completion]; - }]; -} - -// 接收PK -// {"cmd":"pk", "data":{"roomID":"XXX", "type":"response", "result":"accept", "reason":"" , "accelerateURL":"XXX"} } -- (void)acceptPKRequest:(NSString *)userID roomID:(NSString *)roomID withAccelerateURL:(NSString *)accelerateURL { - [self asyncRun:^{ - NSDictionary *data = @{@"roomID":roomID, @"type": @"response", @"result": @"accept", @"reason": @"", - @"accelerateURL": accelerateURL, @"timestamp": @([self currentTimestamp])}; - NSDictionary *msgDic = @{@"cmd": CMD_PK, @"data": data}; - - [self sendCCCustomMessage:userID data:[self dictionary2JsonData:msgDic] completion:nil]; - }]; -} - -// 拒绝PK -// {"cmd":"pk", "data":{"roomID":"XXX", "type":"response", "result":"reject", "reason":"" } } -- (void)rejectPKRequest:(NSString *)userID roomID:(NSString *)roomID reason:(NSString *)reason { - [self asyncRun:^{ - NSDictionary *data = @{@"roomID":roomID, @"type": @"response", @"result": @"reject", @"reason": reason, @"timestamp": @([self currentTimestamp])}; - NSDictionary *msgDic = @{@"cmd": CMD_PK, @"data": data}; - - [self sendCCCustomMessage:userID data:[self dictionary2JsonData:msgDic] completion:nil]; - }]; -} - -#pragma mark - 个人信息 --(void)setSelfProfile:(NSString *)userName avatarURL:(NSString*)avatarURL completion:(void(^)(int code, NSString *msg))completion { - V2TIMUserFullInfo *info = [[V2TIMUserFullInfo alloc] init]; - info.nickName = userName; - info.faceURL = avatarURL; - [[V2TIMManager sharedInstance] setSelfInfo:info succ:^{ - Log(@"[IM} modifySelfProfile succeed"); - if (completion) { - completion(0, nil); - } - } fail:^(int code, NSString *desc) { - Log(@"[IM} modifySelfProfile failed: %d, %@", code, desc); - if (completion) { - completion(code, ErrMsg(desc)); - } - }]; -} - -- (void)getProfile:(void(^)(int code, NSString *msg, NSString *nickname, NSString *avatar))completion -{ - if (completion == nil) return; - NSString *loginUser = [[V2TIMManager sharedInstance] getLoginUser]; - [[V2TIMManager sharedInstance] getUsersInfo:@[loginUser] succ:^(NSArray *infoList) { - V2TIMUserFullInfo *profile = infoList.firstObject; - completion(0, nil, profile.nickName, profile.faceURL); - } fail:^(int code, NSString *desc) { - completion(code, desc, nil, nil); - }]; -} -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/RoomUtil/RoomUtil.h b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/RoomUtil/RoomUtil.h deleted file mode 100644 index f1bc1037..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/RoomUtil/RoomUtil.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// RoomUtil.h -// TXLiteAVDemo -// -// Created by lijie on 2017/12/11. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import -#import "TXLivePlayListener.h" -#import "TXLivePlayer.h" - -@interface RoomUtil : NSObject -+ (NSString *)getDeviceModelName; -@end - -/** - 播放开始的回调 - */ -typedef void (^IPlayBeginBlock)(void); - -/** - 播放过程中发生错误时的回调 - */ -typedef void (^IPlayErrorBlock)(int errCode, NSString *errMsg); - -/// 播放事件回调 -typedef void (^IPlayEventBlock)(int event, NSDictionary *param); - - -@protocol IRoomLivePlayListener -@optional --(void)onLivePlayNetStatus:(NSString*) userID withParam: (NSDictionary*) param; -@end - - -@interface RoomLivePlayerWrapper : NSObject -@property (nonatomic, strong) TXLivePlayer *player; -@property (nonatomic, strong) NSString *userID; -@property (nonatomic, weak) id delegate; -@property (nonatomic, copy) IPlayBeginBlock playBeginBlock; -@property (nonatomic, copy) IPlayErrorBlock playErrorBlock; -@property (nonatomic, copy) IPlayEventBlock playEventBlock; - -- (void)clear; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/RoomUtil/RoomUtil.m b/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/RoomUtil/RoomUtil.m deleted file mode 100644 index 059a8a8b..00000000 --- a/iOS/Demo/TXLiteAVDemo/LiveLinkMicDemoOld/RoomUtil/RoomUtil.m +++ /dev/null @@ -1,129 +0,0 @@ -// -// RoomUtil.m -// TXLiteAVDemo -// -// Created by lijie on 2017/12/11. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import "RoomUtil.h" -#import "TXLiveSDKTypeDef.h" -#import -#import "TXLiveBase.h" - -@implementation RoomUtil -+ (NSString *)getDeviceModelName -{ - struct utsname systemInfo; - uname(&systemInfo); - NSString *deviceModel = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; - - //iPhone 系列 - if ([deviceModel isEqualToString:@"iPhone1,1"]) return @"iPhone 1G"; - if ([deviceModel isEqualToString:@"iPhone1,2"]) return @"iPhone 3G"; - if ([deviceModel isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS"; - if ([deviceModel isEqualToString:@"iPhone3,1"]) return @"iPhone 4"; - if ([deviceModel isEqualToString:@"iPhone3,2"]) return @"Verizon iPhone 4"; - if ([deviceModel isEqualToString:@"iPhone4,1"]) return @"iPhone 4S"; - if ([deviceModel isEqualToString:@"iPhone5,1"]) return @"iPhone 5"; - if ([deviceModel isEqualToString:@"iPhone5,2"]) return @"iPhone 5"; - if ([deviceModel isEqualToString:@"iPhone5,3"]) return @"iPhone 5C"; - if ([deviceModel isEqualToString:@"iPhone5,4"]) return @"iPhone 5C"; - if ([deviceModel isEqualToString:@"iPhone6,1"]) return @"iPhone 5S"; - if ([deviceModel isEqualToString:@"iPhone6,2"]) return @"iPhone 5S"; - if ([deviceModel isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus"; - if ([deviceModel isEqualToString:@"iPhone7,2"]) return @"iPhone 6"; - if ([deviceModel isEqualToString:@"iPhone8,1"]) return @"iPhone 6s"; - if ([deviceModel isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus"; - if ([deviceModel isEqualToString:@"iPhone9,1"]) return @"iPhone 7 (CDMA)"; - if ([deviceModel isEqualToString:@"iPhone9,3"]) return @"iPhone 7 (GSM)"; - if ([deviceModel isEqualToString:@"iPhone9,2"]) return @"iPhone 7 Plus (CDMA)"; - if ([deviceModel isEqualToString:@"iPhone9,4"]) return @"iPhone 7 Plus (GSM)"; - - //iPod 系列 - if ([deviceModel isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G"; - if ([deviceModel isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G"; - if ([deviceModel isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G"; - if ([deviceModel isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G"; - if ([deviceModel isEqualToString:@"iPod5,1"]) return @"iPod Touch 5G"; - - //iPad 系列 - if ([deviceModel isEqualToString:@"iPad1,1"]) return @"iPad"; - if ([deviceModel isEqualToString:@"iPad2,1"]) return @"iPad 2 (WiFi)"; - if ([deviceModel isEqualToString:@"iPad2,2"]) return @"iPad 2 (GSM)"; - if ([deviceModel isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)"; - if ([deviceModel isEqualToString:@"iPad2,4"]) return @"iPad 2 (32nm)"; - if ([deviceModel isEqualToString:@"iPad2,5"]) return @"iPad mini (WiFi)"; - if ([deviceModel isEqualToString:@"iPad2,6"]) return @"iPad mini (GSM)"; - if ([deviceModel isEqualToString:@"iPad2,7"]) return @"iPad mini (CDMA)"; - - if ([deviceModel isEqualToString:@"iPad3,1"]) return @"iPad 3(WiFi)"; - if ([deviceModel isEqualToString:@"iPad3,2"]) return @"iPad 3(CDMA)"; - if ([deviceModel isEqualToString:@"iPad3,3"]) return @"iPad 3(4G)"; - if ([deviceModel isEqualToString:@"iPad3,4"]) return @"iPad 4 (WiFi)"; - if ([deviceModel isEqualToString:@"iPad3,5"]) return @"iPad 4 (4G)"; - if ([deviceModel isEqualToString:@"iPad3,6"]) return @"iPad 4 (CDMA)"; - - if ([deviceModel isEqualToString:@"iPad4,1"]) return @"iPad Air"; - if ([deviceModel isEqualToString:@"iPad4,2"]) return @"iPad Air"; - if ([deviceModel isEqualToString:@"iPad4,3"]) return @"iPad Air"; - if ([deviceModel isEqualToString:@"iPad5,3"]) return @"iPad Air 2"; - if ([deviceModel isEqualToString:@"iPad5,4"]) return @"iPad Air 2"; - if ([deviceModel isEqualToString:@"i386"]) return @"Simulator"; - if ([deviceModel isEqualToString:@"x86_64"]) return @"Simulator"; - - if ([deviceModel isEqualToString:@"iPad4,4"] - ||[deviceModel isEqualToString:@"iPad4,5"] - ||[deviceModel isEqualToString:@"iPad4,6"]) return @"iPad mini 2"; - - if ([deviceModel isEqualToString:@"iPad4,7"] - ||[deviceModel isEqualToString:@"iPad4,8"] - ||[deviceModel isEqualToString:@"iPad4,9"]) return @"iPad mini 3"; - - return deviceModel; -} -@end - - -@implementation RoomLivePlayerWrapper - -- (instancetype)init -{ - self = [super init]; - if (self) { - _player = [[TXLivePlayer alloc] init]; - _player.delegate = self; - } - return self; -} - -- (void)clear { - _userID = nil; - _delegate = nil; - _playBeginBlock = nil; - _playErrorBlock = nil; -} - -- (void)onPlayEvent:(int)EvtID withParam:(NSDictionary*)param { - if (EvtID == PLAY_EVT_PLAY_BEGIN) { - if (_playBeginBlock) { - _playBeginBlock(); - _playBeginBlock = nil; - } - } else if (EvtID == PLAY_ERR_NET_DISCONNECT || EvtID == PLAY_ERR_GET_RTMP_ACC_URL_FAIL) { // 在实时模式下(连麦或者PK模式)下拉取加速流失败,将其当做网络断开来处理 - if (_playErrorBlock) { - _playErrorBlock(PLAY_ERR_NET_DISCONNECT, [param valueForKey:EVT_MSG]); - _playErrorBlock = nil; - } - } else if (_playEventBlock) { - _playEventBlock(EvtID, param); - } -} - -- (void)onNetStatus:(NSDictionary*)param { - if ([self.delegate respondsToSelector:@selector(onLivePlayNetStatus:withParam:)]) { - [self.delegate onLivePlayNetStatus:self.userID withParam:param]; - } -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePlayerDemo/PlayViewController.h b/iOS/Demo/TXLiteAVDemo/LivePlayerDemo/PlayViewController.h deleted file mode 100644 index e8915d09..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePlayerDemo/PlayViewController.h +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Module: PlayViewController - * - * Function: 使用LiteAVSDK完成直播播放 - */ - -#import - -@interface PlayViewController : UIViewController - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePlayerDemo/PlayViewController.m b/iOS/Demo/TXLiteAVDemo/LivePlayerDemo/PlayViewController.m deleted file mode 100644 index 8e434029..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePlayerDemo/PlayViewController.m +++ /dev/null @@ -1,533 +0,0 @@ -/** - * Module: PlayViewController - * - * Function: 使用LiteAVSDK完成直播播放 - */ - -#import "PlayViewController.h" -#import "V2TXLivePlayer.h" -#import "AppDelegate.h" -#import "ScanQRController.h" -#import "AFNetworkReachabilityManager.h" -#import "UIView+Additions.h" -#import "UIImage+Additions.h" -#import "AddressBarController.h" -#import "TCHttpUtil.h" -#import "AppLocalized.h" -#import "NSString+Common.h" - -#define PLAY_URL @"LivePlayerDemo.PlayViewController.pleaseenterorscantheqrcode" -#define V2Log(_format_, ...) \ - NSLog(@"[%@ %p %s %d] %@", NSStringFromClass(self.class), self, __func__, __LINE__, [NSString stringWithFormat:_format_, ##__VA_ARGS__]); - -#define CACHE_TIME_FAST 1.0f -#define CACHE_TIME_SMOOTH 5.0f - -typedef NS_ENUM(NSInteger, ENUM_TYPE_CACHE_STRATEGY) { - CACHE_STRATEGY_FAST = 1, // 极速 - CACHE_STRATEGY_SMOOTH = 2, // 流畅 - CACHE_STRATEGY_AUTO = 3, // 自动 -}; - -@interface ToastTextView : UITextView -@property (nonatomic, strong) NSString *url; -@end - -@interface PlayViewController() < - V2TXLivePlayerObserver, - AddressBarControllerDelegate, - ScanQRDelegate, - UITextFieldDelegate - > -{ - - AddressBarController *_addressBarController; // 播放地址/二维码扫描 工具栏 - UIImageView *_loadingImageView; // 菊花 - UIView *_videoView; // 视频画面 - - UIButton *_btnPlay; // 开始/停止播放 - UIButton *_btnLog; // 显示日志 - UIButton *_btnPortrait; // 横屏/竖屏 - UIButton *_btnRenderMode; // 渲染模式:(a) 图像铺满屏幕,不留黑边 (b) 图像适应屏幕,保持画面完整 - UIButton *_btnStrategy; // 播放缓存策略(延时调整) - UIButton *_btnRealtime; // 低延时播放 - - NSString *_addressBeforeSwith; // 切换低延时前的地址 -} - -@property (nonatomic, strong) V2TXLivePlayer *player; -@property (nonatomic, strong) NSString *playUrl; - -@end - -@implementation PlayViewController - -- (void)dealloc { - [self stopPlay]; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - - // 创建播放器 - _player = [[V2TXLivePlayer alloc] init]; - - // 界面布局 - [self initUI]; - if (@available(iOS 13.0, *)) { - self.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; - } -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - [self.navigationController setNavigationBarHidden:NO animated:NO]; -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - [self.navigationController setNavigationBarHidden:YES animated:NO]; -} - -- (void)initUI { - self.title = LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.livestreamingplayer"); - [self.view setBackgroundImage:[UIImage imageNamed:@"background"]]; - - int buttonCount = 4; // 底部一排按钮的数量 - CGSize size = [[UIScreen mainScreen] bounds].size; - int ICON_WITH = size.width / (buttonCount + 1); - ICON_WITH = MIN(ICON_WITH, 40); /// 最大40*40 - int ICON_HEIGHT = ICON_WITH; - - // 设置推流地址输入、二维码扫描工具栏 - _addressBarController = [[AddressBarController alloc] initWithButtonOption:AddressBarButtonOptionQRScan]; - _addressBarController.qrPresentView = self.view; - CGFloat topOffset = [UIApplication sharedApplication].statusBarFrame.size.height; - topOffset += (self.navigationController.navigationBar.height + 5); - _addressBarController.view.frame = CGRectMake(10, topOffset, self.view.width-20, ICON_HEIGHT); - NSDictionary *dic = @{NSForegroundColorAttributeName:[UIColor blackColor], NSFontAttributeName:[UIFont systemFontOfSize:[NSString isCurrentLanguageEnglish] ? 13 : 15]}; - _addressBarController.view.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:LivePlayerLocalize(PLAY_URL) attributes:dic]; - _addressBarController.delegate = self; - [self.view addSubview:_addressBarController.view]; - - // 右上角Help按钮 - HelpBtnUI(直播播放器) - - // 创建底部的功能按钮 - float startSpace = 12; - float centerInterVal = (size.width - 2 * startSpace - ICON_WITH) / (buttonCount - 1); - float iconY = size.height - ICON_HEIGHT / 2 - 10; - if (@available(iOS 11, *)) { - iconY -= [UIApplication sharedApplication].keyWindow.safeAreaInsets.bottom; - } - - int index = 0; - CGSize iconSize = CGSizeMake(ICON_WITH, ICON_HEIGHT); - _btnPlay = [self createButton:@"start" action:@selector(clickPlay:) - center:CGPointMake(startSpace + ICON_WITH / 2 + centerInterVal*index++, iconY) size:iconSize]; - _btnLog = [self createButton:@"log" action:@selector(clickLog:) - center:CGPointMake(startSpace + ICON_WITH / 2 + centerInterVal*index++, iconY) size:iconSize]; - _btnPortrait = [self createButton:@"portrait" action:@selector(clickPortrait:) - center:CGPointMake(startSpace + ICON_WITH / 2 + centerInterVal*index++, iconY) size:iconSize]; - _btnRenderMode = [self createButton:@"fill" action:@selector(clickRenderMode:) - center:CGPointMake(startSpace + ICON_WITH / 2 + centerInterVal*index++, iconY) size:iconSize]; -// _btnRealtime = [self createButton:@"jisu_off" action:@selector(clickRealtime:) -// center:CGPointMake(startSpace + ICON_WITH / 2 + centerInterVal*index++, iconY) size:iconSize]; - - // 菊花 - float width = 34; - float height = 34; - float offsetX = (self.view.frame.size.width - width) / 2; - float offsetY = (self.view.frame.size.height - height) / 2; - NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:[UIImage imageNamed:@"loading_image0.png"],[UIImage imageNamed:@"loading_image1.png"],[UIImage imageNamed:@"loading_image2.png"],[UIImage imageNamed:@"loading_image3.png"],[UIImage imageNamed:@"loading_image4.png"],[UIImage imageNamed:@"loading_image5.png"],[UIImage imageNamed:@"loading_image6.png"],[UIImage imageNamed:@"loading_image7.png"], nil]; - _loadingImageView = [[UIImageView alloc] initWithFrame:CGRectMake(offsetX, offsetY, width, height)]; - _loadingImageView.animationImages = array; - _loadingImageView.animationDuration = 1; - _loadingImageView.hidden = YES; - - // 视频画面显示 - CGRect videoFrame = self.view.bounds; - _videoView = [[UIView alloc] initWithFrame:CGRectMake(videoFrame.size.width, 0, videoFrame.size.width, videoFrame.size.height)]; - [self.view insertSubview:_videoView atIndex:0]; - - // 默认播放地址 - _addressBarController.text = @"http://liteavapp.qcloud.com/live/liteavdemoplayerstreamid.flv"; -} - -- (UIButton *)createButton:(NSString*)icon action:(SEL)action center:(CGPoint)center size:(CGSize)size { - UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom]; - btn.center = center; - btn.bounds = CGRectMake(0, 0, size.width, size.height); - btn.tag = 0; // 用这个来记录按钮的状态,默认0 - [btn setImage:[UIImage imageNamed:icon] forState:UIControlStateNormal]; - [btn addTarget:self action:action forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:btn]; - return btn; -} - -#pragma mark - 控件响应函数 - -- (void)clickPlay:(UIButton *)btn { - if (_btnPlay.tag == 0) { - if (![self startPlay]) { - return; - } - - [_btnPlay setImage:[UIImage imageNamed:@"suspend"] forState:UIControlStateNormal]; - _btnPlay.tag = 1; - [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; - - } else { - [self stopPlay]; - - [_btnPlay setImage:[UIImage imageNamed:@"start"] forState:UIControlStateNormal]; - _btnPlay.tag = 0; - [[UIApplication sharedApplication] setIdleTimerDisabled:NO]; - } -} - -- (void)clickLog:(UIButton *)btn { - if (_btnLog.tag == 0) { - [_player showDebugView:YES]; - - [_btnLog setImage:[UIImage imageNamed:@"log2"] forState:UIControlStateNormal]; - _btnLog.tag = 1; - - } else { - [_player showDebugView:NO]; - - [_btnLog setImage:[UIImage imageNamed:@"log"] forState:UIControlStateNormal]; - _btnLog.tag = 0; - } -} - -- (void)clickPortrait:(UIButton *)btn { - if (_btnPortrait.tag == 1) { - [_player setRenderRotation:V2TXLiveRotation0]; - - [_btnPortrait setImage:[UIImage imageNamed:@"portrait"] forState:UIControlStateNormal]; - _btnPortrait.tag = 0; - - } else { - [_player setRenderRotation:V2TXLiveRotation90]; - - [_btnPortrait setImage:[UIImage imageNamed:@"landscape"] forState:UIControlStateNormal]; - _btnPortrait.tag = 1; - } -} - -- (void)clickRenderMode:(UIButton *)btn { - if (_btnRenderMode.tag == 1) { - [_player setRenderFillMode:V2TXLiveFillModeFit]; - - [_btnRenderMode setImage:[UIImage imageNamed:@"fill"] forState:UIControlStateNormal]; - _btnRenderMode.tag = 0; - - } else { - [_player setRenderFillMode:V2TXLiveFillModeFill]; - - [_btnRenderMode setImage:[UIImage imageNamed:@"adjust"] forState:UIControlStateNormal]; - _btnRenderMode.tag = 1; - } -} - -- (void)clickRealtime:(UIButton *)btn { - if (_btnRealtime.tag == 0) { - [_btnRealtime setImage:[UIImage imageNamed:@"jisu_on"] forState:UIControlStateNormal]; - _btnRealtime.tag = 1; - _addressBeforeSwith = _addressBarController.text; - [self fetchAccURL]; - self.title = LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.lowdelayplayback"); - - } else { - [_btnRealtime setImage:[UIImage imageNamed:@"jisu_off"] forState:UIControlStateNormal]; - _btnRealtime.tag = 0; - _addressBarController.text = _addressBeforeSwith; - self.title = LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.livestreamingplayer"); - } -} - --(BOOL)checkPlayUrl:(NSString*)playUrl { - BOOL isRealtime = _btnRealtime.tag; - if (isRealtime) { - if (!([playUrl containsString:@"txSecret"] || [playUrl containsString:@"txTime"])) { - ToastTextView *toast = [self toastTip:LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.lowdelaypullstreamaddress")]; - toast.url = @"https://cloud.tencent.com/document/product/454/7880#RealTimePlay"; - return NO; - } - - } - else { - if ([playUrl hasPrefix:@"rtmp:"]) { - } else if (([playUrl hasPrefix:@"https:"] || [playUrl hasPrefix:@"http:"]) && ([playUrl rangeOfString:@".flv"].length > 0)) { - } else if (([playUrl hasPrefix:@"https:"] || [playUrl hasPrefix:@"http:"]) && [playUrl rangeOfString:@".m3u8"].length > 0) { - #ifdef LIVE - [self toastTip:LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.playaddressisnotlegal")]; - return NO; - #endif - } else { - [self toastTip:LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.playaddressisnotlegal")]; - return NO; - } - } - - return YES; -} - -- (BOOL)startPlay { - [_loadingImageView removeFromSuperview]; - NSString *playUrl = _addressBarController.text; - if (![self checkPlayUrl:playUrl]) { - return NO; - } - - _videoView.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height); - [_player setObserver:self]; - [_player setRenderView:_videoView]; - [self.view addSubview:_loadingImageView]; - - V2TXLiveCode ret = [_player startPlay:playUrl]; - if (ret != V2TXLIVE_OK) { - NSLog(@"%@", LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.playerstartfailed")); - return NO; - } - - // 播放参数初始化 - [_player showDebugView:(_btnLog.tag == 1)]; - [_player setRenderRotation:(_btnPortrait.tag == 0)?V2TXLiveRotation0:V2TXLiveRotation90]; - [_player setRenderFillMode:(_btnRenderMode.tag == 0)?V2TXLiveFillModeFit:V2TXLiveFillModeFill]; - - [self startLoadingAnimation]; - _playUrl = playUrl; - - return YES; -} - -- (void)stopPlay { - [self stopLoadingAnimation]; - if (_player) { - [_player setObserver:nil]; - [_player setRenderView:nil]; - [_player stopPlay]; - } -} - -- (void)startLoadingAnimation { - if (_loadingImageView != nil) { - _loadingImageView.hidden = NO; - [_loadingImageView startAnimating]; - } -} - -- (void)stopLoadingAnimation { - if (_loadingImageView != nil) { - _loadingImageView.hidden = YES; - [_loadingImageView stopAnimating]; - } -} - -/// 检查网络 -- (void)checkNet { - BOOL isWifi = [AFNetworkReachabilityManager sharedManager].reachableViaWiFi; - if (!isWifi) { - __weak __typeof(self) weakSelf = self; - [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { - if (weakSelf.playUrl.length == 0) { - return; - } - if (status == AFNetworkReachabilityStatusReachableViaWiFi) { - UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"" - message:LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.changewifitosee") - preferredStyle:UIAlertControllerStyleAlert]; - [alert addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.yes") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - [alert dismissViewControllerAnimated:YES completion:nil]; - - // 先停止,再重新播放 - [weakSelf stopPlay]; - [weakSelf startPlay]; - }]]; - [alert addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.no") style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { - [alert dismissViewControllerAnimated:YES completion:nil]; - }]]; - [weakSelf presentViewController:alert animated:YES completion:nil]; - } - }]; - } -} - -#pragma mark - V2TXLivePlayerObserver - -- (void)onAudioPlayStatusUpdate:(id)player status:(V2TXLivePlayStatus)status reason:(V2TXLiveStatusChangeReason)reason extraInfo:(NSDictionary *)extraInfo { - switch (status) { - case V2TXLivePlayStatusPlaying: - //self.hasRecvFirstFrame = YES; - [self stopLoadingAnimation]; - break; - case V2TXLivePlayStatusLoading: - [self startLoadingAnimation]; - break; - case V2TXLivePlayStatusStopped: - if (reason == V2TXLiveStatusChangeReasonRemoteOffline) { - [self clickPlay:_btnPlay]; - } - break; - default: - break; - } -} - -- (void)onVideoPlayStatusUpdate:(id)player status:(V2TXLivePlayStatus)status reason:(V2TXLiveStatusChangeReason)reason extraInfo:(NSDictionary *)extraInfo { - switch (status) { - case V2TXLivePlayStatusPlaying: - //self.hasRecvFirstFrame = YES; - [self stopLoadingAnimation]; - if (reason == V2TXLiveStatusChangeReasonBufferingEnd) { - [self checkNet]; - } - break; - case V2TXLivePlayStatusLoading: - [self startLoadingAnimation]; - break; - default: - break; - } -} - -- (void)onPlayoutVolumeUpdate:(id)player - volume:(NSInteger)volume { - V2Log(@"volume:%ld", volume); -} - -- (void)onError:(id)player - code:(V2TXLiveCode)code - message:(NSString *)msg - extraInfo:(NSDictionary *)extraInfo { - [self stopPlay]; - V2Log(@"code:%ld msg:%@ extraInfo:%@", (long)code, msg, extraInfo); -} - -- (void)onWarning:(id)player code:(V2TXLiveCode)code message:(NSString *)msg extraInfo:(NSDictionary *)extraInfo { - V2Log(@"code:%ld msg:%@ extraInfo:%@", (long)code, msg, extraInfo); -} - -- (void)onSnapshotComplete:(id)player image:(TXImage *)image { - V2Log(@"image:%@", image); -} - -- (void)onNetStatus:(NSDictionary *)param { - -} - -#pragma mark - AddressBarControllerDelegate - -- (void)addressBarControllerTapScanQR:(AddressBarController *)controller { - if (_btnPlay.tag == 1) { - [self clickPlay:_btnPlay]; - } - - ScanQRController* vc = [[ScanQRController alloc] init]; - vc.delegate = self; - [self.navigationController pushViewController:vc animated:NO]; -} - -#pragma mark - ScanQRDelegate - -- (void)onScanResult:(NSString *)result { - _addressBarController.text = result; -} - -- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { - [self.view endEditing:YES]; -} - -#pragma mark - 辅助函数 - -/** - * @method 获取指定宽度width的字符串在UITextView上的高度 - * @param textView 待计算的UITextView - * @param width 限制字符串显示区域的宽度 - * @return 返回的高度 - */ -- (float)heightForString:(UITextView *)textView andWidth:(float)width{ - CGSize sizeToFit = [textView sizeThatFits:CGSizeMake(width, MAXFLOAT)]; - return sizeToFit.height + 30; -} - -- (ToastTextView *)toastTip:(NSString*)toastInfo { - CGRect frameRC = [[UIScreen mainScreen] bounds]; - frameRC.origin.y = frameRC.size.height - 150; - frameRC.size.height -= 150; - __block ToastTextView * toastView = [[ToastTextView alloc] init]; - - toastView.editable = NO; - toastView.selectable = NO; - - frameRC.size.height = [self heightForString:toastView andWidth:frameRC.size.width]; - - toastView.frame = frameRC; - - toastView.text = toastInfo; - toastView.backgroundColor = [UIColor whiteColor]; - toastView.alpha = 0.5; - - [self.view addSubview:toastView]; - - dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 3 * NSEC_PER_SEC); - - dispatch_after(popTime, dispatch_get_main_queue(), ^(){ - [toastView removeFromSuperview]; - toastView = nil; - }); - return toastView; -} - -- (void)fetchAccURL { - __weak __typeof(self) wself = self; - [TCHttpUtil asyncSendHttpRequest:@"get_test_rtmpaccurl" httpServerAddr:kHttpServerAddr HTTPMethod:@"GET" param:nil handler:^(int result, NSDictionary *resultDict) { - __strong __typeof(wself) self = wself; - if (self == nil) { - return; - } - if (result != 0) { - [self toastTip:LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.failedtogetlowdelayplaybackaddress")]; - } else if (self->_btnRealtime.tag) { - NSString* playUrl = nil; - if (resultDict) - { - playUrl = resultDict[@"url_rtmpacc"]; - } - self->_addressBarController.text = playUrl; - [self toastTip:LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.testaddressfromonline")]; - } - }]; -} -@end - - -@implementation ToastTextView - -- (void)setUrl:(NSString *)url { - _url = url; - - NSRange r = [self.text rangeOfString:url]; - if (r.location != NSNotFound) { - NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:self.text]; - [str addAttribute:NSLinkAttributeName value:url range:r]; - self.attributedText = str; - } -} - -- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { - UITouch *touch = [touches anyObject]; //assume just 1 touch - if(touch.tapCount == 1) { - //single tap occurred - if (self.url) { - UIApplication *myApp = [UIApplication sharedApplication]; - if ([myApp canOpenURL:[NSURL URLWithString:self.url]]) { - [myApp openURL:[NSURL URLWithString:self.url]]; - } - } - } -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/CameraPushViewController.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/CameraPushViewController.h deleted file mode 100644 index d225bf10..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/CameraPushViewController.h +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Module: CameraPushViewController - * - * Function: 使用LiteAVSDK完成rtmp推流 - */ - -#import - -@interface CameraPushViewController : UIViewController - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/CameraPushViewController.m b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/CameraPushViewController.m deleted file mode 100644 index 98fb86f9..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/CameraPushViewController.m +++ /dev/null @@ -1,798 +0,0 @@ -/** - * Module: CameraPushViewController - * - * Function: 使用LiteAVSDK完成rtmp推流 - */ - -#import "CameraPushViewController.h" -#import "PushSettingViewController.h" -#import "PushMoreSettingViewController.h" -#import "V2TXLivePusher.h" -#import "UIView+Additions.h" -#import "AppDelegate.h" -#import "ScanQRController.h" -#import "AddressBarController.h" -#import "ThemeConfigurator.h" -#import "PushBgmControl.h" -#import "PushLogView.h" -#import "TCHttpUtil.h" -#import "MBProgressHUD.h" -#import "AFNetworkReachabilityManager.h" -#import "CWStatusBarNotification.h" -// 音效设置面板 -#import -#import "AppLocalized.h" -#import "NSString+Common.h" - -#define RTMP_PUBLISH_URL @"LivePusherDemo.CameraPush.pleaseinputthepushstream" - -@interface CameraPushViewController () < - V2TXLivePusherObserver, - ScanQRDelegate, - BeautyLoadPituDelegate, - PushSettingDelegate, - PushMoreSettingDelegate, - AddressBarControllerDelegate, - PushBgmControlDelegate, - AudioEffectViewDelegate - > -{ - AddressBarController *_addressBarController; // 推流地址/二维码扫描 工具栏 - CWStatusBarNotification *_notification; - - UIView *_localView; // 本地预览 - BOOL _appIsInActive; - BOOL _appIsBackground; - BOOL _isMute; - - TCBeautyPanel *_beautyPanel; // 美颜控件 - PushMoreSettingViewController *_moreSettingVC; // 更多设置 - PushLogView *_logView; // 显示app日志 - - UIButton *_btnPush; // 开始/停止推流 - UIButton *_btnCamera; // 切换前后摄像头 - UIButton *_btnBeauty; // 美颜 - UIButton *_btnBgm; // 背景音乐 - UIButton *_btnLog; // 日志信息 - UIButton *_btnSetting; // 主要设置 - UIButton *_btnMoreSetting; // 更多设置 -} - -@property (nonatomic, strong) V2TXLivePusher *pusher; -@property (nonatomic, strong) NSString *pushUrl; - -@property (nonatomic, strong) AudioEffectSettingView *audioEffectView; // 新BGM面板 - -@end - -@implementation CameraPushViewController - -- (instancetype)init { - if (self = [super init]) { - _appIsInActive = NO; - _appIsBackground = NO; - _isMute = NO; - } - return self; -} - -- (void)dealloc { - [self.audioEffectView resetAudioSetting]; - [self stopPush]; - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppDidEnterBackGround:) name:UIApplicationDidEnterBackgroundNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppWillEnterForeground:) name:UIApplicationWillEnterForegroundNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppWillResignActive:) name:UIApplicationWillResignActiveNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppDidBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil]; - - // 创建推流器 - _pusher = [self createPusher]; - _isMute = [PushMoreSettingViewController isMuteAudio]; - // 界面布局 - [self initUI]; - if (@available(iOS 13.0, *)) { - self.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; - } -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - [self.navigationController setNavigationBarHidden:NO animated:NO]; - self.navigationController.interactivePopGestureRecognizer.enabled = NO; -} - -- (void)viewDidAppear:(BOOL)animated { - [super viewDidAppear:animated]; -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - - [self.navigationController setNavigationBarHidden:YES animated:NO]; - self.navigationController.interactivePopGestureRecognizer.enabled = YES; -} - -- (void)viewDidDisappear:(BOOL)animated { - [super viewDidDisappear:animated]; -} - - - -- (void)onAppWillResignActive:(NSNotification *)notification { - _appIsInActive = YES; - [_pusher startVirtualCamera:[UIImage imageNamed:@"pause_publish"]]; -} - -- (void)onAppDidBecomeActive:(NSNotification *)notification { - _appIsInActive = NO; - if (!_appIsBackground && !_appIsInActive) { - if (![PushMoreSettingViewController isDisableVideo]) { - [_pusher stopVirtualCamera]; - [self pauseAudio:_isMute]; - } - } -} - -- (void)onAppDidEnterBackGround:(NSNotification *)notification { - [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ - [_pusher startVirtualCamera:[UIImage imageNamed:@"background"]]; - }]; - _appIsBackground = YES; - [_pusher startVirtualCamera:[UIImage imageNamed:@"pause_publish"]]; -} - -- (void)onAppWillEnterForeground:(NSNotification *)notification { - _appIsBackground = NO; - if (!_appIsBackground && !_appIsInActive) { - if (![PushMoreSettingViewController isDisableVideo]) { - [_pusher stopVirtualCamera]; - [self pauseAudio:_isMute]; - } - } -} - -- (void)pauseAudio:(BOOL)isMute { - if (isMute) { - [_pusher pauseAudio]; - } else { - [_pusher resumeAudio]; - } -} - -- (void)initUI { - self.title = LivePlayerLocalize(@"LivePusherDemo.CameraPush.rtmppullstream"); - [self.view setBackgroundImage:[UIImage imageNamed:@"background"]]; - - _notification = [CWStatusBarNotification new]; - _notification.notificationLabelBackgroundColor = [UIColor redColor]; - _notification.notificationLabelTextColor = [UIColor whiteColor]; - - int buttonCount = 7; // 底部一排按钮的数量 - CGSize size = [[UIScreen mainScreen] bounds].size; - int ICON_SIZE = size.width / 8; - - // 设置推流地址输入、二维码扫描工具栏 - _addressBarController = [[AddressBarController alloc] initWithButtonOption:AddressBarButtonOptionNew | AddressBarButtonOptionQRScan]; - _addressBarController.qrPresentView = self.view; - CGFloat topOffset = [UIApplication sharedApplication].statusBarFrame.size.height; - topOffset += (self.navigationController.navigationBar.height + 5); - _addressBarController.view.frame = CGRectMake(10, topOffset, self.view.width-20, ICON_SIZE); - NSDictionary *dic = @{NSForegroundColorAttributeName:[UIColor blackColor], NSFontAttributeName:[UIFont systemFontOfSize:[NSString isCurrentLanguageEnglish] ? 13 : 15]}; - _addressBarController.view.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:LivePlayerLocalize(RTMP_PUBLISH_URL) attributes:dic]; - _addressBarController.delegate = self; - [self.view addSubview:_addressBarController.view]; - - // 右上角Help按钮 - HelpBtnUI(rtmp推流) - - // 创建底部的功能按钮 - float startSpace = 6; - float centerInterVal = (size.width - 2 * startSpace - ICON_SIZE) / (buttonCount - 1); - float iconY = size.height - ICON_SIZE / 2 - 10; - if (@available(iOS 11, *)) { - iconY -= [UIApplication sharedApplication].keyWindow.safeAreaInsets.bottom; - } - - // 在控制按钮下方加入透明视图,防止误触聚焦 - UIView *buttonContainer = [[UIView alloc] initWithFrame:CGRectMake(0, iconY - ICON_SIZE / 2, self.view.frame.size.width, self.view.frame.size.height - (iconY - ICON_SIZE / 2))]; - [self.view addSubview:buttonContainer]; - - _btnPush = [self createButton:@"start2" action:@selector(clickPush:) - center:CGPointMake(startSpace + ICON_SIZE / 2, iconY) size:ICON_SIZE]; - _btnCamera = [self createButton:@"mlvb_camera_front" action:@selector(clickCamera:) - center:CGPointMake(startSpace + ICON_SIZE / 2 + centerInterVal * 1, iconY) size:ICON_SIZE]; - _btnBeauty = [self createButton:@"mlvb_beauty" action:@selector(clickBeauty:) - center:CGPointMake(startSpace + ICON_SIZE / 2 + centerInterVal * 2, iconY) size:ICON_SIZE]; - _btnBgm = [self createButton:@"music" action:@selector(clickBgm:) - center:CGPointMake(startSpace + ICON_SIZE / 2 + centerInterVal * 3, iconY) size:ICON_SIZE]; - _btnLog = [self createButton:@"log2" action:@selector(clickLog:) - center:CGPointMake(startSpace + ICON_SIZE / 2 + centerInterVal * 4, iconY) size:ICON_SIZE]; - _btnSetting = [self createButton:@"set" action:@selector(clickSetting:) - center:CGPointMake(startSpace + ICON_SIZE / 2 + centerInterVal * 5, iconY) size:ICON_SIZE]; - _btnMoreSetting = [self createButton:@"more_b" action:@selector(clickMoreSetting:) - center:CGPointMake(startSpace + ICON_SIZE / 2 + centerInterVal * 6, iconY) size:ICON_SIZE]; - - // 美颜控件 - NSUInteger controlHeight = [TCBeautyPanel getHeight]; - UIWindow *keyWindow = UIApplication.sharedApplication.keyWindow; - CGFloat bottomOffset = 0; - if (@available(iOS 11, *)) { - bottomOffset = keyWindow.safeAreaInsets.bottom; - } - CGRect frame = CGRectMake(0, self.view.frame.size.height - controlHeight - bottomOffset, - self.view.frame.size.width, controlHeight + bottomOffset); - _beautyPanel = [TCBeautyPanel beautyPanelWithFrame:frame - SDKObject:_pusher]; - _beautyPanel.bottomOffset = bottomOffset; - [ThemeConfigurator configBeautyPanelTheme:_beautyPanel]; - _beautyPanel.hidden = YES; - _beautyPanel.pituDelegate = self; - [self.view addSubview:_beautyPanel]; - [_beautyPanel resetAndApplyValues]; // 美颜设置初始值 - - // BGM 控件 - _audioEffectView = [[AudioEffectSettingView alloc] initWithType:AudioEffectSettingViewDefault]; - [_audioEffectView setAudioEffectManager:[_pusher getAudioEffectManager]]; - _audioEffectView.delegate = self; - _audioEffectView.backgroundColor = [UIColor.blackColor colorWithAlphaComponent:0.8]; - [_audioEffectView hide]; - [self.view addSubview:_audioEffectView]; - - // log控件 - _logView = [[PushLogView alloc] initWithFrame:CGRectMake(0, self.view.height * 0.2, self.view.width, self.view.height * 0.7)]; - _logView.backgroundColor = [UIColor.whiteColor colorWithAlphaComponent:0.6]; - _logView.hidden = YES; - [self.view addSubview:_logView]; - - // 本地视频预览view - _localView = [[UIView alloc] initWithFrame:self.view.bounds]; - [self.view insertSubview:_localView atIndex:0]; - _localView.center = self.view.center; - -#if TARGET_IPHONE_SIMULATOR - [self toastTip:LivePlayerLocalize(@"LivePusherDemo.CameraPush.iosemulatordoesnotsupport")]; -#endif -} - -- (UIButton *)createButton:(NSString*)icon action:(SEL)action center:(CGPoint)center size:(int)size { - UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom]; - btn.bounds = CGRectMake(0, 0, size, size); - btn.center = center; - btn.tag = 0; // 用这个来记录按钮的状态,默认0 - [btn setImage:[UIImage imageNamed:icon] forState:UIControlStateNormal]; - [btn addTarget:self action:action forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:btn]; - return btn; -} - -// 创建推流器,并使用本地配置初始化它 -- (V2TXLivePusher *)createPusher { - // 推流器初始化 - V2TXLivePusher *pusher = [[V2TXLivePusher alloc] initWithLiveMode:V2TXLiveMode_RTMP]; - [pusher.getDeviceManager enableCameraTorch:[PushMoreSettingViewController isOpenTorch]]; - [pusher setEncoderMirror:[PushMoreSettingViewController isMirrorVideo]]; - [self pauseAudio:[PushMoreSettingViewController isMuteAudio]]; - [pusher setVideoQuality:[PushSettingViewController getVideoQuality] - resolutionMode:V2TXLiveVideoResolutionModePortrait]; - [pusher setRenderRotation:V2TXLiveRotation0]; - [pusher setProperty:@"setDebugViewMargin" value:@{ - @"top":@(120), - @"left":@(10), - @"bottom":@(60), - @"right":@(10) - }]; - [pusher showDebugView:[PushMoreSettingViewController isShowDebugLog]]; - NSInteger audioQuality = [PushSettingViewController getAudioQuality]; - [pusher setAudioQuality:audioQuality]; - if ([PushMoreSettingViewController isEnableWaterMark]) { - [pusher setWatermark:[UIImage imageNamed:@"watermark"] x:0.05 y:0.05 scale:1]; - } - return pusher; -} - -#pragma mark - 控件响应函数 - -- (void)clickPush:(UIButton *)btn { - if (_btnPush.tag == 0) { - if (![self startPush]) { - return; - } - [_btnPush setImage:[UIImage imageNamed:@"stop2"] forState:UIControlStateNormal]; - _btnPush.tag = 1; - [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; - - } else { - [self stopPush]; - [_logView clear]; - [self.audioEffectView resetBgmSelectItemStatus]; - [_btnPush setImage:[UIImage imageNamed:@"start2"] forState:UIControlStateNormal]; - _btnPush.tag = 0; - [[UIApplication sharedApplication] setIdleTimerDisabled:NO]; - } -} - -- (void)clickCamera:(UIButton *)btn { - btn.enabled = NO; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - btn.enabled = YES; - }); - if (_btnCamera.tag == 0) { - [_pusher.getDeviceManager switchCamera:NO]; - _btnCamera.tag = 1; - [_btnCamera setImage:[UIImage imageNamed:@"mlvb_camera_back"] forState:UIControlStateNormal]; - } - else { - [_pusher.getDeviceManager switchCamera:YES]; - _btnCamera.tag = 0; - [_btnCamera setImage:[UIImage imageNamed:@"mlvb_camera_front"] forState:UIControlStateNormal]; - } -} - -- (void)clickBeauty:(UIButton *)btn { - _beautyPanel.hidden = NO; - [self hideToolButtons:YES]; - if (_moreSettingVC) { - [_moreSettingVC willMoveToParentViewController:self]; - [_moreSettingVC.view removeFromSuperview]; - [_moreSettingVC removeFromParentViewController]; - _moreSettingVC.delegate = nil; - _moreSettingVC = nil; - } -} - -- (void)clickBgm:(UIButton *)btn { - [_audioEffectView show]; - if (_moreSettingVC) { - [_moreSettingVC willMoveToParentViewController:self]; - [_moreSettingVC.view removeFromSuperview]; - [_moreSettingVC removeFromParentViewController]; - - [_moreSettingVC setDelegate:nil]; - _moreSettingVC = nil; - } -} - -- (void)clickLog:(UIButton *)btn { - _logView.hidden = !_logView.hidden; -} - -- (void)clickSetting:(UIButton *)btn { - PushSettingViewController *vc = [[PushSettingViewController alloc] init]; - [vc setDelegate:self]; - [self.navigationController pushViewController:vc animated:YES]; -} - -- (void)clickMoreSetting:(UIButton *)btn { - if (!_moreSettingVC) { - _moreSettingVC = [[PushMoreSettingViewController alloc] init]; - _moreSettingVC.delegate = self; - - [self addChildViewController:_moreSettingVC]; - _moreSettingVC.view.frame = CGRectMake(0, self.view.height * 0.2, self.view.width, self.view.height * 0.7); - - [self.view addSubview:_moreSettingVC.view]; - [_moreSettingVC didMoveToParentViewController:self]; - } - else { - [_moreSettingVC willMoveToParentViewController:self]; - [_moreSettingVC.view removeFromSuperview]; - [_moreSettingVC removeFromParentViewController]; - _moreSettingVC.delegate = nil; - _moreSettingVC = nil; - } -} - - -// 隐藏按钮 -- (void)hideToolButtons:(BOOL)hide { - _btnPush.hidden = hide; - _btnCamera.hidden = hide; - _btnBeauty.hidden = hide; - _btnBgm.hidden = hide; - _btnLog.hidden = hide; - _btnSetting.hidden = hide; - _btnMoreSetting.hidden = hide; -} - -- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { - [self.view endEditing:YES]; - _beautyPanel.hidden = YES; - UITouch *touch = [touches.allObjects lastObject]; - BOOL result = [touch.view isDescendantOfView:_audioEffectView]; - if (!result) { - [_audioEffectView hide]; - } - if (![_audioEffectView isShow]) { - [self hideToolButtons:NO]; - } - -} - -#pragma mark - 推流逻辑 - -- (BOOL)startPush { - NSString *rtmpUrl = _addressBarController.text; - if (!([rtmpUrl hasPrefix:@"rtmp://"])) { - rtmpUrl = LivePlayerLocalize(RTMP_PUBLISH_URL); - } - if (!([rtmpUrl hasPrefix:@"rtmp://"])) { - [self toastTip:LivePlayerLocalize(@"LivePusherDemo.CameraPush.pushstreamaddressisnotvalid")]; - [_logView setPushUrlValid:NO]; - return NO; - } - [_logView setPushUrlValid:YES]; - - // 检查摄像头权限 - AVAuthorizationStatus statusVideo = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]; - if (statusVideo == AVAuthorizationStatusDenied) { - [self toastTip:LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.failedtogetcamerapermission")]; - return NO; - } - - // 检查麦克风权限 - AVAuthorizationStatus statusAudio = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio]; - if (statusAudio == AVAuthorizationStatusDenied) { - [self toastTip:LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.failedtogetmicrophonepermission")]; - return NO; - } - - // 设置delegate - [_pusher setObserver:self]; - - // 开启预览 - [_pusher setRenderView:_localView]; - [_pusher startCamera:_btnCamera.tag == 0]; - [_pusher startMicrophone]; - [self pauseAudio:_isMute]; - if ([PushMoreSettingViewController isDisableVideo]) { - [_pusher startVirtualCamera:[UIImage imageNamed:@"pause_publish"]]; - } else { - [_pusher stopVirtualCamera]; - } - // 开始推流 - V2TXLiveCode ret = [_pusher startPush:rtmpUrl]; - if (ret != V2TXLIVE_OK) { - [self toastTip:[NSString stringWithFormat:@"%@: %ld",LivePlayerLocalize(@"LivePusherDemo.CameraPush.thethrusterfailedtostart"), (long)ret]]; - NSLog(@"%@",LivePlayerLocalize(@"LivePusherDemo.CameraPush.thethrusterfailedtostart")); - return NO; - } - - // 保存推流地址,其他地方需要 - _pushUrl = rtmpUrl; - - return YES; -} - -- (void)stopPush { - if (_pusher) { - [_pusher setObserver:nil]; - [_pusher setRenderView:nil]; - [_pusher stopPush]; - } -} - -#pragma mark - HUD -- (void)showInProgressText:(NSString *)text -{ - MBProgressHUD *hud = [MBProgressHUD HUDForView:self.view]; - if (hud == nil) { - hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; - } - hud.mode = MBProgressHUDModeIndeterminate; - hud.label.text = text; - hud.userInteractionEnabled = NO; - [hud showAnimated:YES]; -} - -- (void)showText:(NSString *)text { - [self showText:text withDetailText:nil]; -} - -- (void)showText:(NSString *)text withDetailText:(NSString *)detail { - MBProgressHUD *hud = [MBProgressHUD HUDForView:self.view]; - hud.mode = MBProgressHUDModeText; - hud.label.text = text; - hud.detailsLabel.text = detail; - [hud showAnimated:YES]; - [hud hideAnimated:YES afterDelay:2]; -} - -- (void)onCloseHUD:(id)sender { - [[MBProgressHUD HUDForView:self.view] hideAnimated:YES]; -} - -- (void)checkNet { - BOOL isWifi = [AFNetworkReachabilityManager sharedManager].reachableViaWiFi; - if (!isWifi) { - __weak __typeof(self) weakSelf = self; - [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { - if (weakSelf.pushUrl.length == 0) { - return; - } - if (status == AFNetworkReachabilityStatusReachableViaWiFi) { - UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"" - message:LivePlayerLocalize(@"LivePusherDemo.CameraPush.changetowifipushstream") - preferredStyle:UIAlertControllerStyleAlert]; - [alert addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.yes") style:UIAlertActionStyleDefault handler:^(UIAlertAction *_Nonnull action) { - [alert dismissViewControllerAnimated:YES completion:nil]; - - // 先暂停,再重新推流 - [self stopPush]; - [self startPush]; - }]]; - [alert addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LivePlayerDemo.PlayViewController.no") style:UIAlertActionStyleCancel handler:^(UIAlertAction *_Nonnull action) { - [alert dismissViewControllerAnimated:YES completion:nil]; - }]]; - [weakSelf presentViewController:alert animated:YES completion:nil]; - } - }]; - } -} - -#pragma mark - AddressBarControllerDelegate -// 从业务后台获取推流地址 -- (void)addressBarControllerTapCreateURL:(AddressBarController *)controller { - if (_btnPush.tag == 1) { - [self clickPush:_btnPush]; - } - - [self showInProgressText:LivePlayerLocalize(@"LivePusherDemo.CameraPush.addressacquisitioninprocess")]; - - [TCHttpUtil asyncSendHttpRequest:@"get_test_pushurl" httpServerAddr:kHttpServerAddr HTTPMethod:@"GET" param:nil handler:^(int result, NSDictionary *resultDict) { - if (result != 0 || resultDict == nil) { - [self showText:LivePlayerLocalize(@"LivePusherDemo.CameraPush.failedtogetpushstreamaddress")]; - } else { - NSString *pusherUrl = resultDict[@"url_push"]; - NSString *rtmpPlayUrl = resultDict[@"url_play_rtmp"]; - NSString *flvPlayUrl = resultDict[@"url_play_flv"]; - NSString *hlsPlayUrl = resultDict[@"url_play_hls"]; - NSString *accPlayUrl = resultDict[@"url_play_acc"]; - - controller.text = pusherUrl; - NSString *(^c)(NSString *x, NSString *y) = ^(NSString *x, NSString *y) { - return [NSString stringWithFormat:@"%@,%@", x, y]; - }; - NSString *lebUrl = [rtmpPlayUrl stringByReplacingOccurrencesOfString:@"rtmp://" withString:@"webrtc://"]; - controller.qrStrings = @[c(@"rtmp", rtmpPlayUrl), - c(@"flv", flvPlayUrl), - c(@"hls", hlsPlayUrl), - c(LivePlayerLocalize(@"LivePusherDemo.CameraPush.lowlatency"), accPlayUrl), - c(LivePlayerLocalize(@"LivePusherDemo.CameraPush.lebUrl"), lebUrl)]; - NSString* playUrls = LocalizeReplaceFourCharacter(LivePlayerLocalize(@"LivePusherDemo.CameraPush.rtmpaddressxxflvaddressyyhlsaddresszz"), [NSString stringWithFormat:@"%@",rtmpPlayUrl], [NSString stringWithFormat:@"%@",flvPlayUrl], [NSString stringWithFormat:@"%@",hlsPlayUrl], [NSString stringWithFormat:@"%@",accPlayUrl]); - UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; - pasteboard.string = playUrls; - - [self showText:LivePlayerLocalize(@"LivePusherDemo.CameraPush.getaddresssuccess") withDetailText:LivePlayerLocalize(@"LivePusherDemo.CameraPush.playbackaddresshasbeencopiedtotheclipboard")]; - } - }]; -} - -- (void)addressBarControllerTapScanQR:(AddressBarController *)controller { - if (_btnPush.tag == 1) { - [self clickPush:_btnPush]; - } - - ScanQRController *vc = [[ScanQRController alloc] init]; - vc.delegate = self; - [self.navigationController pushViewController:vc animated:NO]; -} - -#pragma mark - ScanQRDelegate - -- (void)onScanResult:(NSString *)result { - _addressBarController.text = result; -} - -#pragma mark - V2TXLivePusherObserver - -- (void)onError:(V2TXLiveCode)code - message:(NSString *)msg - extraInfo:(NSDictionary *)extraInfo { - if (code == V2TXLIVE_ERROR_REQUEST_TIMEOUT) { - [self toastTip:LivePlayerLocalize(@"LiveLinkMicDemoOld.MLVBLiveRoom.networktimeout")]; - dispatch_async(dispatch_get_main_queue(), ^{ - [self stopPush]; - }); - } -} - -- (void)onWarning:(V2TXLiveCode)code - message:(NSString *)msg - extraInfo:(NSDictionary *)extraInfo { - NSLog(@"code:%ld, msg:%@, extraInfo:%@", (long)code, msg, extraInfo); -} - -- (void)onCaptureFirstAudioFrame { - NSLog(@"onCaptureFirstAudioFrame"); -} - -- (void)onCaptureFirstVideoFrame { - NSLog(@"onCaptureFirstVideoFrame"); -} - -- (void)onMicrophoneVolumeUpdate:(NSInteger)volume { - NSLog(@"volume:%ld", (long)volume); -} - -- (void)onStatisticsUpdate:(V2TXLivePusherStatistics *)statistics { - // 这里可以上报相关推流信息到业务服务器 - // 比如:码率,分辨率,帧率,cpu使用,缓存等信息 - // 字段请在TXLiveSDKTypeDef.h中定义 - NSDictionary *param = @{ - @"CPU_USAGE" : @(statistics.systemCpu/100.0), - @"CPU_USAGE_DEVICE" : @(statistics.appCpu/100.0), - @"VIDEO_FPS" : @(statistics.fps), - @"VIDEO_WIDTH" : @(statistics.width), - @"VIDEO_HEIGHT" : @(statistics.height), - @"VIDEO_BITRATE" : @(statistics.videoBitrate), - @"AUDIO_BITRATE" : @(statistics.audioBitrate) - }; - dispatch_async(dispatch_get_main_queue(), ^{ - [self->_logView setNetStatus:param]; - }); -} - -- (void)onPushStatusUpdate:(V2TXLivePushStatus)state message:(NSString *)msg extraInfo:(NSDictionary *)extraInfo { - if (state == V2TXLivePushStatusDisconnected) { - [self clickPush:self->_btnPush]; - } else if (state == V2TXLivePushStatusConnectSuccess) { - [self checkNet]; - } -} - -- (void)onSnapshotComplete:(TXImage *)img { - if (img != nil) { - NSArray *images = @[img]; - UIActivityViewController *vc = [[UIActivityViewController alloc] initWithActivityItems:images applicationActivities:nil]; - [self.navigationController presentViewController:vc animated:YES completion:nil]; - } -} - -#pragma mark - AudioEffectViewDelegate --(void)onEffectViewHidden:(BOOL)isHidden { - [self hideToolButtons:!isHidden]; -} - -#pragma mark - BeautyLoadPituDelegate - -- (void)onLoadPituStart { - dispatch_async(dispatch_get_main_queue(), ^{ - [self showInProgressText:LivePlayerLocalize(@"LivePusherDemo.CameraPush.startloadingassets")]; - }); -} - -- (void)onLoadPituProgress:(CGFloat)progress { - dispatch_async(dispatch_get_main_queue(), ^{ - [self showInProgressText:LocalizeReplaceXX(LivePlayerLocalize(@"LivePusherDemo.CameraPush.loadingxx"), [NSString stringWithFormat:@"%d",(int)(progress * 100)])]; - }); -} - -- (void)onLoadPituFinished { - dispatch_async(dispatch_get_main_queue(), ^{ - [self showText:LivePlayerLocalize(@"LivePusherDemo.CameraPush.assetsloadsuccess")]; - }); -} - -- (void)onLoadPituFailed { - dispatch_async(dispatch_get_main_queue(), ^{ - [self showText:LivePlayerLocalize(@"LivePusherDemo.CameraPush.assetsloadfailed")]; - }); -} - -#pragma mark - PushSettingDelegate -// 是否开启耳返 -- (void)onPushSetting:(PushSettingViewController *)vc enableAudioPreview:(BOOL)enableAudioPreview { - [_pusher.getAudioEffectManager enableVoiceEarMonitor:enableAudioPreview]; -} - -// 画质类型 -- (void)onPushSetting:(PushSettingViewController *)vc videoQuality:(V2TXLiveVideoResolution)videoQuality { - [_pusher setVideoQuality:videoQuality - resolutionMode:V2TXLiveVideoResolutionModePortrait]; -} - -- (void)onPushSetting:(PushSettingViewController *)vc audioQuality:(NSInteger)qulity { - [_pusher setAudioQuality:qulity]; -} - -#pragma mark - PushMoreSettingDelegate -// 是否开启隐私模式(停止上行摄像头数据,并发送pauseImg图片) -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc disableVideo:(BOOL)disable { - if (_pusher.isPushing) { - if (disable) { - [_pusher startVirtualCamera:[UIImage imageNamed:@"pause_publish"]]; - } - else { - [_pusher stopVirtualCamera]; - [self pauseAudio:_isMute]; - } - } -} - -// 是否开启静音模式(发送静音数据,但是不关闭麦克风) -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc muteAudio:(BOOL)mute { - [self pauseAudio:mute]; - _isMute = mute; -} - -// 是否开启观看端镜像 -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc mirrorVideo:(BOOL)mirror { - [_pusher setEncoderMirror:mirror]; -} - -// 是否开启后置闪光灯 -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc openTorch:(BOOL)open { - [_pusher.getDeviceManager enableCameraTorch:open]; -} - -// 是否开启调试信息 -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc debugLog:(BOOL)show { - [_pusher showDebugView:show]; -} - -// 是否添加图像水印 -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc waterMark:(BOOL)enable { - if (enable) { - [_pusher setWatermark:[UIImage imageNamed:@"watermark"] x:0.03 y:0.015 scale:1]; - } else { - [_pusher setWatermark:nil x:0.03 y:0.015 scale:1]; - } -} - -// 是否开启手动点击曝光对焦 -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc touchFocus:(BOOL)enable { - [_pusher.getDeviceManager enableCameraAutoFocus:!enable]; -} - -// 本地截图 -- (void)onPushMoreSettingSnapShot:(PushMoreSettingViewController *)vc { - [_pusher snapshot]; -} - -#pragma mark - 辅助函数 - -/** - * @method 获取指定宽度width的字符串在UITextView上的高度 - * @param textView 待计算的UITextView - * @param width 限制字符串显示区域的宽度 - * @return 返回的高度 - */ -- (float)heightForString:(UITextView *)textView andWidth:(float)width { - CGSize sizeToFit = [textView sizeThatFits:CGSizeMake(width, MAXFLOAT)]; - return sizeToFit.height; -} - -- (void)toastTip:(NSString *)toastInfo { - CGRect frameRC = [[UIScreen mainScreen] bounds]; - frameRC.origin.y = frameRC.size.height - 110; - frameRC.size.height -= 110; - __block UITextView *toastView = [[UITextView alloc] init]; - - toastView.editable = NO; - toastView.selectable = NO; - - frameRC.size.height = [self heightForString:toastView andWidth:frameRC.size.width]; - - toastView.frame = frameRC; - - toastView.text = toastInfo; - toastView.backgroundColor = [UIColor whiteColor]; - toastView.alpha = 0.5; - - [self.view addSubview:toastView]; - - dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC); - - dispatch_after(popTime, dispatch_get_main_queue(), ^() { - [toastView removeFromSuperview]; - toastView = nil; - }); -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushBgmControl.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushBgmControl.h deleted file mode 100644 index 6324c955..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushBgmControl.h +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Module: PushBgmControl - * - * Function: BGM控制组件 - */ - -#import - -@class PushBgmControl; - -@protocol PushBgmControlDelegate -/** - * 开始播放 - * @param loopTimes 单曲循环播放次数 - * @param online YES: 播放在线音乐 NO: 播放本地音乐 - */ -- (void)onBgmStart:(int)loopTimes online:(BOOL)online; - -- (void)onBgmStop; - -- (void)onBgmPause; - -- (void)onBgmResume; - -- (void)onMicVolume:(float)volume; - -- (void)onBgmVolume:(float)volume; - -- (void)onBgmPitch:(float)pitch; - -@end - - -@interface PushBgmControl : UIView - -@property (nonatomic, weak) id delegate; - -- (void)notifyBgmIsEnded; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushBgmControl.m b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushBgmControl.m deleted file mode 100644 index 6ccb51c8..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushBgmControl.m +++ /dev/null @@ -1,180 +0,0 @@ -/** - * Module: PushBgmControl - * - * Function: BGM控制组件 - */ - -#import "PushBgmControl.h" -#import "UIView+Additions.h" -#import "AppLocalized.h" - -@interface PushBgmControl() { - UISwitch *_onlineSwitch; - UITextField *_loopTimesFiled; - UIButton *_pauseBtn; - UIButton *_startBtn; -} -@end - -@implementation PushBgmControl - -- (instancetype)initWithFrame:(CGRect)frame { - if (self = [super initWithFrame:frame]) { - self.backgroundColor = [UIColor.blackColor colorWithAlphaComponent:0.3]; - - int offsetX = 5; - int offsetY = 5; - int height = 30; - - UILabel *loopTimesLabel = [[UILabel alloc] initWithFrame:CGRectMake(offsetX, offsetY, 100, height)]; - loopTimesLabel.text = LivePlayerLocalize(@"LivePusherDemo.PushBgm.numberofcycles"); - loopTimesLabel.textColor = [UIColor whiteColor]; - _loopTimesFiled = [[UITextField alloc] initWithFrame:CGRectMake(loopTimesLabel.right, loopTimesLabel.top, - 50, height)]; - _loopTimesFiled.text = @"1"; - _loopTimesFiled.textColor = [UIColor whiteColor]; - _loopTimesFiled.delegate = self; - - UILabel *onlineLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.width - 160, loopTimesLabel.top, - 100, height)]; - onlineLabel.text = LivePlayerLocalize(@"LivePusherDemo.PushBgm.onlinemusic"); - onlineLabel.textColor = [UIColor whiteColor]; - _onlineSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(self.width - 55, loopTimesLabel.top, 50, height)]; - _onlineSwitch.on = NO; - - UILabel *micVolumeLabel = [[UILabel alloc] initWithFrame:CGRectMake(offsetX, loopTimesLabel.bottom + 10, loopTimesLabel.width, height)]; - micVolumeLabel.text = LivePlayerLocalize(@"LivePusherDemo.PushBgm.micvolume"); - micVolumeLabel.textColor = [UIColor whiteColor]; - UISlider *micVolumeSlider = [[UISlider alloc] initWithFrame:CGRectMake(micVolumeLabel.right, micVolumeLabel.top, - self.width - micVolumeLabel.right - offsetX, height)]; - micVolumeSlider.minimumValue = 0; - micVolumeSlider.maximumValue = 2; - micVolumeSlider.value = 1; - [micVolumeSlider addTarget:self action:@selector(micVolume:) forControlEvents:UIControlEventTouchUpInside]; - - UILabel *bgmVolumeLabel = [[UILabel alloc] initWithFrame:CGRectMake(offsetX, micVolumeLabel.bottom + 10, - micVolumeLabel.width, height)]; - bgmVolumeLabel.text = LivePlayerLocalize(@"LivePusherDemo.PushBgm.bgmvolume"); - bgmVolumeLabel.textColor = [UIColor whiteColor]; - UISlider *bgmVolumeSlider = [[UISlider alloc] initWithFrame:CGRectMake(bgmVolumeLabel.right, bgmVolumeLabel.top, - self.width - bgmVolumeLabel.right - offsetX, height)]; - bgmVolumeSlider.minimumValue = 0; - bgmVolumeSlider.maximumValue = 2; - bgmVolumeSlider.value = 1; - [bgmVolumeSlider addTarget:self action:@selector(bgmVolume:) forControlEvents:UIControlEventTouchUpInside]; - - UILabel *bgmPitchLabel = [[UILabel alloc] initWithFrame:CGRectMake(offsetX, bgmVolumeLabel.bottom + 10, - bgmVolumeLabel.width, height)]; - bgmPitchLabel.text = LivePlayerLocalize(@"LivePusherDemo.PushBgm.bgmtone"); - bgmPitchLabel.textColor = [UIColor whiteColor]; - UISlider *bgmPitchSlider = [[UISlider alloc] initWithFrame:CGRectMake(bgmPitchLabel.right, bgmPitchLabel.top, - self.width - bgmVolumeLabel.right - offsetX, height)]; - bgmPitchSlider.minimumValue = -1; - bgmPitchSlider.maximumValue = 1; - bgmPitchSlider.value = 0; - [bgmPitchSlider addTarget:self action:@selector(bgmPitch:) forControlEvents:UIControlEventTouchUpInside]; - - UIButton *startBtn = [[UIButton alloc] initWithFrame:CGRectMake(60, bgmPitchLabel.bottom + 10, - 60, height)]; - [startBtn setTitle:LivePlayerLocalize(@"LivePusherDemo.PushBgm.start") forState:UIControlStateNormal]; - [startBtn setTitleColor:[UIColor greenColor] forState:UIControlStateNormal]; - [startBtn addTarget:self action:@selector(clickStart:) forControlEvents:UIControlEventTouchUpInside]; - startBtn.tag = 0; - _startBtn = startBtn; - - _pauseBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.width - 120, startBtn.top, startBtn.width, startBtn.height)]; - [_pauseBtn setTitle:LivePlayerLocalize(@"LivePusherDemo.PushBgm.pause") forState:UIControlStateNormal]; - [_pauseBtn setTitleColor:[UIColor greenColor] forState:UIControlStateNormal]; - [_pauseBtn addTarget:self action:@selector(clickPause:) forControlEvents:UIControlEventTouchUpInside]; - _pauseBtn.tag = 0; - - - [self addSubview:loopTimesLabel]; - [self addSubview:_loopTimesFiled]; - [self addSubview:onlineLabel]; - [self addSubview:_onlineSwitch]; - [self addSubview:micVolumeLabel]; - [self addSubview:micVolumeSlider]; - [self addSubview:bgmVolumeLabel]; - [self addSubview:bgmVolumeSlider]; - [self addSubview:bgmPitchLabel]; - [self addSubview:bgmPitchSlider]; - [self addSubview:startBtn]; - [self addSubview:_pauseBtn]; - } - return self; -} - -- (void)notifyBgmIsEnded { - [_startBtn setTitle:LivePlayerLocalize(@"LivePusherDemo.PushBgm.start") forState:UIControlStateNormal]; - _startBtn.tag = 0; -} - -- (void)clickStart:(UIButton *)btn { - if (btn.tag == 0) { - [btn setTitle:LivePlayerLocalize(@"LivePusherDemo.PushBgm.end") forState:UIControlStateNormal]; - btn.tag = 1; - - if (self.delegate && [self.delegate respondsToSelector:@selector(onBgmStart:online:)]) { - int loopTimes = 0; - if ([_loopTimesFiled.text length]) { - loopTimes = [_loopTimesFiled.text intValue]; - } - [self.delegate onBgmStart:loopTimes online:_onlineSwitch.on]; - } - - } else { - [btn setTitle: LivePlayerLocalize(@"LivePusherDemo.PushBgm.start") forState:UIControlStateNormal]; - btn.tag = 0; - [_pauseBtn setTitle:LivePlayerLocalize(@"LivePusherDemo.PushBgm.pause") forState:UIControlStateNormal]; - _pauseBtn.tag = 0; - - if (self.delegate && [self.delegate respondsToSelector:@selector(onBgmStop)]) { - [self.delegate onBgmStop]; - } - } -} - -- (void)clickPause:(UIButton *)btn { - if (btn.tag == 0) { - [btn setTitle:LivePlayerLocalize(@"LivePusherDemo.PushBgm.restore") forState:UIControlStateNormal]; - btn.tag = 1; - - if (self.delegate && [self.delegate respondsToSelector:@selector(onBgmPause)]) { - [self.delegate onBgmPause]; - } - - } else { - [btn setTitle:LivePlayerLocalize(@"LivePusherDemo.PushBgm.pause") forState:UIControlStateNormal]; - btn.tag = 0; - - if (self.delegate && [self.delegate respondsToSelector:@selector(onBgmResume)]) { - [self.delegate onBgmResume]; - } - } -} - -- (void)micVolume:(UISlider *)slider { - if (self.delegate && [self.delegate respondsToSelector:@selector(onMicVolume:)]) { - [self.delegate onMicVolume:slider.value]; - } -} - -- (void)bgmVolume:(UISlider *)slider { - if (self.delegate && [self.delegate respondsToSelector:@selector(onBgmVolume:)]) { - [self.delegate onBgmVolume:slider.value]; - } -} - -- (void)bgmPitch:(UISlider *)slider { - if (self.delegate && [self.delegate respondsToSelector:@selector(onBgmPitch:)]) { - [self.delegate onBgmPitch:slider.value]; - } -} - -- (BOOL)textFieldShouldReturn:(UITextField *)textField { - [_loopTimesFiled resignFirstResponder]; - return YES; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushLogView.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushLogView.h deleted file mode 100644 index 6ee34d2c..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushLogView.h +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Module: PushLogView - * - * Function: 用来显示App层的关键日志 - */ - -#import - -/** - * (1)检查地址合法性 - * (2)连接到云服务器 - * (3)摄像头打开成功 - * (4)编码器正常启动 - * (5)开始进入推流中 - */ -@interface PushLogView : UIView - -// 设置推流地址是否合法 -- (void)setPushUrlValid:(BOOL)valid; - -- (void)setNetStatus:(NSDictionary *)param; - -// 清除所有状态 -- (void)clear; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushLogView.m b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushLogView.m deleted file mode 100644 index 62610433..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushLogView.m +++ /dev/null @@ -1,108 +0,0 @@ -/** - * Module: PushLogView - * - * Function: 用来显示App层的关键日志 - */ - -#import "PushLogView.h" -#import "AppLocalized.h" - -@interface PushLogView() { - NSMutableArray *_stepImgViews; - UILabel *_sysCpuLabel; - UILabel *_appCpuLabel; - UILabel *_videoBitrateLabel; - UILabel *_audioBitrateLabel; - UILabel *_fpsLabel; - UILabel *_videoWidthLabel; - UILabel *_videoHeightLabel; -} -@end - -@implementation PushLogView - -- (instancetype)initWithFrame:(CGRect)frame { - if (self = [super initWithFrame:frame]) { - int height = 20; - int labelCount = 0; - - int statusOffsetX = 40, statusOffsetY = 10, statusIntervalY = 40; - [self addLabel:@"sysCpu:" withFrame:CGRectMake(statusOffsetX, statusOffsetY + statusIntervalY * labelCount, 100, height)]; - _sysCpuLabel = [self addLabel:@"0" withFrame:CGRectMake(statusOffsetX + 100, statusOffsetY + statusIntervalY * labelCount, 50, height)]; - - labelCount++; - [self addLabel:@"appCpu:" withFrame:CGRectMake(statusOffsetX, statusOffsetY + statusIntervalY * labelCount, 100, height)]; - _appCpuLabel = [self addLabel:@"0" withFrame:CGRectMake(statusOffsetX + 100, statusOffsetY + statusIntervalY * labelCount, 50, height)]; - - labelCount++; - [self addLabel:@"FPS:" withFrame:CGRectMake(statusOffsetX, statusOffsetY + statusIntervalY * labelCount, 100, height)]; - _fpsLabel = [self addLabel:@"0" withFrame:CGRectMake(statusOffsetX + 100, statusOffsetY + statusIntervalY * labelCount, 50, height)]; - - labelCount++; - [self addLabel:@"video Width:" withFrame:CGRectMake(statusOffsetX, statusOffsetY + statusIntervalY * labelCount, 100, height)]; - _videoWidthLabel = [self addLabel:@"0" withFrame:CGRectMake(statusOffsetX + 100, statusOffsetY + statusIntervalY * labelCount, 50, height)]; - - labelCount++; - [self addLabel:@"video Height:" withFrame:CGRectMake(statusOffsetX, statusOffsetY + statusIntervalY * labelCount, 100, height)]; - _videoHeightLabel = [self addLabel:@"0" withFrame:CGRectMake(statusOffsetX + 100, statusOffsetY + statusIntervalY * labelCount, 50, height)]; - - labelCount++; - [self addLabel:LivePlayerLocalize(@"LivePusherDemo.PushLogView.videobitrate") withFrame:CGRectMake(statusOffsetX, statusOffsetY + statusIntervalY * labelCount, 100, height)]; - _videoBitrateLabel = [self addLabel:@"0kbps" withFrame:CGRectMake(statusOffsetX + 100, statusOffsetY + statusIntervalY * labelCount, 100, height)]; - - labelCount++; - [self addLabel:LivePlayerLocalize(@"LivePusherDemo.PushLogView.audiobitrate") withFrame:CGRectMake(statusOffsetX, statusOffsetY + statusIntervalY * labelCount, 100, height)]; - _audioBitrateLabel = [self addLabel:@"0kbps" withFrame:CGRectMake(statusOffsetX + 100, statusOffsetY + statusIntervalY * labelCount, 100, height)]; - } - return self; -} - -- (UILabel *)addLabel:(NSString *)text withFrame:(CGRect)frame { - UILabel *label = [[UILabel alloc] initWithFrame:frame]; - label.text = text; - label.adjustsFontSizeToFitWidth = true; - [self addSubview:label]; - return label; -} - -- (UIImageView *)addImageView:(NSString *)imageName withFrame:(CGRect)frame { - UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imageName]]; - imgView.frame = frame; - [self addSubview:imgView]; - return imgView; -} - -- (void)setPushUrlValid:(BOOL)valid { - if (valid) { - } -} - -- (void)setNetStatus:(NSDictionary *)param { - CGFloat sysCpu = [(NSNumber *) [param valueForKey:@"CPU_USAGE"] floatValue]; - CGFloat appCpu = [(NSNumber *) [param valueForKey:@"CPU_USAGE_DEVICE"] floatValue]; - NSInteger fps = [(NSNumber *) [param valueForKey:@"VIDEO_FPS"] intValue]; - NSInteger videoWidth = [(NSNumber *) [param valueForKey:@"VIDEO_WIDTH"] intValue]; - NSInteger videoHeight = [(NSNumber *) [param valueForKey:@"VIDEO_HEIGHT"] intValue]; - NSInteger videoBitrate = [(NSNumber *) [param valueForKey:@"VIDEO_BITRATE"] intValue]; - NSInteger audioBitrate = [(NSNumber *) [param valueForKey:@"AUDIO_BITRATE"] intValue]; - - _sysCpuLabel.text = [NSString stringWithFormat:@"%.02f",sysCpu]; - _appCpuLabel.text =[NSString stringWithFormat:@"%.02f",appCpu]; - _fpsLabel.text = [NSString stringWithFormat:@"%ld", fps]; - _videoWidthLabel.text = [NSString stringWithFormat:@"%ld", videoWidth]; - _videoHeightLabel.text = [NSString stringWithFormat:@"%ld", videoHeight]; - _videoBitrateLabel.text = [NSString stringWithFormat:@"%ldkbps", videoBitrate]; - _audioBitrateLabel.text = [NSString stringWithFormat:@"%ldkbps", audioBitrate]; -} - -- (void)clear { - _sysCpuLabel.text = @"0"; - _appCpuLabel.text = @"0"; - _fpsLabel.text = @"0"; - _videoWidthLabel.text = @"0"; - _videoHeightLabel.text = @"0"; - _videoBitrateLabel.text = @"0kbps"; - _audioBitrateLabel.text = @"0kbps"; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushMoreSettingViewController.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushMoreSettingViewController.h deleted file mode 100644 index 58fcfd5a..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushMoreSettingViewController.h +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Module: PushMoreSettingViewController - * - * Function: 推流相关的更多设置项 - */ - -#import - -@class PushMoreSettingViewController; - -@protocol PushMoreSettingDelegate - -// 是否开启隐私模式(关闭摄像头,并发送pauseImg图片) -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc disableVideo:(BOOL)disable; - -// 是否开启静音模式(发送静音数据,但是不关闭麦克风) -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc muteAudio:(BOOL)mute; - -// 是否开启观看端镜像 -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc mirrorVideo:(BOOL)mirror; - -// 是否开启后置闪光灯 -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc openTorch:(BOOL)open; - -// 是否开启调试信息 -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc debugLog:(BOOL)show; - -// 是否添加图像水印 -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc waterMark:(BOOL)enable; - -// 是否开启手动点击曝光对焦 -- (void)onPushMoreSetting:(PushMoreSettingViewController *)vc touchFocus:(BOOL)enable; - -// 本地截图 -- (void)onPushMoreSettingSnapShot:(PushMoreSettingViewController *)vc; - -@end - -@interface PushMoreSettingViewController : UITableViewController -@property (nonatomic, weak) id delegate; - -/*** 从文件中读取配置 ***/ -+ (BOOL)isDisableVideo; -+ (BOOL)isMuteAudio; -+ (BOOL)isMirrorVideo; -+ (BOOL)isOpenTorch; -+ (BOOL)isShowDebugLog; -+ (BOOL)isEnableDelayCheck; -+ (BOOL)isEnableWaterMark; -+ (BOOL)isEnableTouchFocus; - -/*** 写配置文件 ***/ -+ (void)setDisableVideo:(BOOL)disable; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushMoreSettingViewController.m b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushMoreSettingViewController.m deleted file mode 100644 index 11edfd39..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushMoreSettingViewController.m +++ /dev/null @@ -1,298 +0,0 @@ -/** - * Module: PushMoreSettingViewController - * - * Function: 推流相关的更多设置项 - */ - -#import "PushMoreSettingViewController.h" -#import "UIView+Additions.h" -#import "AppLocalized.h" - -/* 列表项 */ -#define CELL_DISABLE_VIDEO 0 -#define CELL_MUTE_AUDIO 1 -#define CELL_DEBUG_LOG 2 -#define CELL_WARTERMARK 3 -#define CELL_MIRROR 4 -#define CELL_TORCH 5 -#define CELL_TOUCH_FOCUS 6 -#define CELL_SNAPSHOT 7 - - -/* 编号,请不要修改,写配置文件依赖这个 */ -#define TAG_DISABLE_VIDEO 1000 -#define TAG_MUTE_AUDIO 1001 -#define TAG_DEBUG_LOG 1003 -#define TAG_WARTERMARK 1004 -#define TAG_MIRROR 1005 -#define TAG_TORCH 1006 -#define TAG_TOUCH_FOCUS 1008 - - -@interface PushMoreSettingViewController () { - UISwitch *_disableVideoSwitch; - UISwitch *_muteAudioSwitch; - UISwitch *_mirrorSwitch; - UISwitch *_torchSwitch; - UISwitch *_debugLogSwitch; - UISwitch *_watermarkSwitch; - UISwitch *_touchFocusSwitch; - UISwitch *_pureAudioSwitch; - UIButton *_snapShotButton; - - UIColor *_tintColor; -} -@end - -@implementation PushMoreSettingViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - - self.view.backgroundColor = [UIColor.blackColor colorWithAlphaComponent:0.3]; - self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; - - _tintColor = [[UISegmentedControl alloc] init].tintColor; - - _disableVideoSwitch = [self createUISwitch:TAG_DISABLE_VIDEO on:[PushMoreSettingViewController isDisableVideo]]; - _muteAudioSwitch = [self createUISwitch:TAG_MUTE_AUDIO on:[PushMoreSettingViewController isMuteAudio]]; - _mirrorSwitch = [self createUISwitch:TAG_MIRROR on:[PushMoreSettingViewController isMirrorVideo]]; - _torchSwitch = [self createUISwitch:TAG_TORCH on:[PushMoreSettingViewController isOpenTorch]]; - _debugLogSwitch = [self createUISwitch:TAG_DEBUG_LOG on:[PushMoreSettingViewController isShowDebugLog]]; - _watermarkSwitch = [self createUISwitch:TAG_WARTERMARK on:[PushMoreSettingViewController isEnableWaterMark]]; - _touchFocusSwitch = [self createUISwitch:TAG_TOUCH_FOCUS on:[PushMoreSettingViewController isEnableTouchFocus]]; - - _snapShotButton = [self createButtonWithTitle:LivePlayerLocalize(@"LivePusherDemo.MoreSetting.screenshots") action:@selector(onSnapShot:)]; -} - -- (UIButton*)createButtonWithTitle:(NSString*)title action:(SEL)action -{ - UIButton* newBtn = [UIButton new]; - newBtn.frame = CGRectMake(0, 0, 50, 30); - newBtn.layer.cornerRadius = 5; - newBtn.layer.shadowOffset = CGSizeMake(1, 1); - newBtn.layer.shadowOpacity = 0.8; - newBtn.layer.shadowColor = [UIColor whiteColor].CGColor; - newBtn.backgroundColor = [_tintColor colorWithAlphaComponent:0.6]; - newBtn.titleLabel.font = [UIFont systemFontOfSize:14]; - [newBtn setTitle:title forState:UIControlStateNormal]; - [newBtn addTarget:self action:action forControlEvents:UIControlEventTouchUpInside]; - - return newBtn; -} - -- (UISwitch *)createUISwitch:(NSInteger)tag on:(BOOL)on { - UISwitch *sw = [[UISwitch alloc] initWithFrame:CGRectZero]; - sw.tag = tag; - sw.on = on; - sw.tintColor = _tintColor; - sw.onTintColor = _tintColor; - [sw addTarget:self action:@selector(onSwitchTap:) forControlEvents:UIControlEventTouchUpInside]; - return sw; -} - -- (void)onSwitchTap:(UISwitch *)switchBtn { - [PushMoreSettingViewController saveSetting:switchBtn.tag value:switchBtn.on]; - if (switchBtn.tag == TAG_DISABLE_VIDEO) { - if (self.delegate && [self.delegate respondsToSelector:@selector(onPushMoreSetting:disableVideo:)]) { - [self.delegate onPushMoreSetting:self disableVideo:switchBtn.on]; - } - } - else if (switchBtn.tag == TAG_MUTE_AUDIO) { - if (self.delegate && [self.delegate respondsToSelector:@selector(onPushMoreSetting:muteAudio:)]) { - [self.delegate onPushMoreSetting:self muteAudio:switchBtn.on]; - } - } - else if (switchBtn.tag == TAG_MIRROR) { - if (self.delegate && [self.delegate respondsToSelector:@selector(onPushMoreSetting:mirrorVideo:)]) { - [self.delegate onPushMoreSetting:self mirrorVideo:switchBtn.on]; - } - - } - else if (switchBtn.tag == TAG_TORCH) { - if (self.delegate && [self.delegate respondsToSelector:@selector(onPushMoreSetting:openTorch:)]) { - [self.delegate onPushMoreSetting:self openTorch:switchBtn.on]; - } - } - else if (switchBtn.tag == TAG_DEBUG_LOG) { - if (self.delegate && [self.delegate respondsToSelector:@selector(onPushMoreSetting:debugLog:)]) { - [self.delegate onPushMoreSetting:self debugLog:switchBtn.on]; - } - } - else if (switchBtn.tag == TAG_WARTERMARK) { - if (self.delegate && [self.delegate respondsToSelector:@selector(onPushMoreSetting:waterMark:)]) { - [self.delegate onPushMoreSetting:self waterMark:switchBtn.on]; - } - - } - else if (switchBtn.tag == TAG_TOUCH_FOCUS) { - if (self.delegate && [self.delegate respondsToSelector:@selector(onPushMoreSetting:touchFocus:)]) { - [self.delegate onPushMoreSetting:self touchFocus:switchBtn.on]; - } - } -} - -- (void)onSnapShot:(UIButton *)btn { - if (self.delegate && [self.delegate respondsToSelector:@selector(onPushMoreSettingSnapShot:)]) { - [self.delegate onPushMoreSettingSnapShot:self]; - } -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return 13; -} - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 1; -} - -- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - UITableViewCell *cell = [[UITableViewCell alloc] initWithFrame:CGRectMake(0, 0, self.tableView.width, self.tableView.height / 10)]; - cell.backgroundColor = UIColor.clearColor; - cell.selectionStyle = UITableViewCellSelectionStyleNone; - cell.textLabel.textColor = UIColor.whiteColor; - cell.textLabel.font = [UIFont systemFontOfSize:16]; - - switch (indexPath.row) { - case CELL_DISABLE_VIDEO: { - cell.textLabel.text = LivePlayerLocalize(@"LivePusherDemo.MoreSetting.enableprivacymode"); - cell.accessoryView = _disableVideoSwitch; - - break; - } - - case CELL_MUTE_AUDIO: { - cell.textLabel.text = LivePlayerLocalize(@"LivePusherDemo.MoreSetting.turnonmutemode"); - cell.accessoryView = _muteAudioSwitch; - - break; - } - - case CELL_MIRROR: { - cell.textLabel.text = LivePlayerLocalize(@"LivePusherDemo.MoreSetting.turnonviewmirror"); - cell.accessoryView = _mirrorSwitch; - - break; - } - - case CELL_TORCH: { - cell.textLabel.text = LivePlayerLocalize(@"LivePusherDemo.MoreSetting.turnontherearflash"); - cell.accessoryView = _torchSwitch; - - break; - } - - case CELL_DEBUG_LOG: { - cell.textLabel.text = LivePlayerLocalize(@"LivePusherDemo.MoreSetting.openingdebuglog"); - cell.accessoryView = _debugLogSwitch; - - break; - } - - case CELL_WARTERMARK: { - cell.textLabel.text = LivePlayerLocalize(@"LivePusherDemo.MoreSetting.addwatermark"); - cell.accessoryView = _watermarkSwitch; - - break; - } - - case CELL_TOUCH_FOCUS: { - cell.textLabel.text = LivePlayerLocalize(@"LivePusherDemo.MoreSetting.manuallyclickexposureandfocus"); - cell.accessoryView = _touchFocusSwitch; - - break; - } - case CELL_SNAPSHOT: { - cell.textLabel.text = LivePlayerLocalize(@"LivePusherDemo.MoreSetting.localscreenshots"); - cell.accessoryView = _snapShotButton; - - break; - } - - default: - break; - } - - return cell; -} - -#pragma mark - 读写配置文件 - -+ (NSString *)getKey:(NSInteger)tag { - return [NSString stringWithFormat:@"PUSH_MORE_SETTING_%ld", tag]; -} - -+ (void)saveSetting:(NSInteger)tag value:(NSInteger)value { - NSString *key = [PushMoreSettingViewController getKey:tag]; - [[NSUserDefaults standardUserDefaults] setObject:@(value) forKey:key]; - [[NSUserDefaults standardUserDefaults] synchronize]; -} - -+ (BOOL)isDisableVideo { - NSString *key = [PushMoreSettingViewController getKey:TAG_DISABLE_VIDEO]; - NSNumber *d = [[NSUserDefaults standardUserDefaults] objectForKey:key]; - if (d != nil) { - return [d intValue]; - } - return NO; -} - -+ (BOOL)isMuteAudio { - NSString *key = [PushMoreSettingViewController getKey:TAG_MUTE_AUDIO]; - NSNumber *d = [[NSUserDefaults standardUserDefaults] objectForKey:key]; - if (d != nil) { - return [d intValue]; - } - return NO; -} - -+ (BOOL)isMirrorVideo { - NSString *key = [PushMoreSettingViewController getKey:TAG_MIRROR]; - NSNumber *d = [[NSUserDefaults standardUserDefaults] objectForKey:key]; - if (d != nil) { - return [d intValue]; - } - return NO; -} - -+ (BOOL)isOpenTorch { - NSString *key = [PushMoreSettingViewController getKey:TAG_TORCH]; - NSNumber *d = [[NSUserDefaults standardUserDefaults] objectForKey:key]; - if (d != nil) { - return [d intValue]; - } - return NO; -} - -+ (BOOL)isShowDebugLog { - NSString *key = [PushMoreSettingViewController getKey:TAG_DEBUG_LOG]; - NSNumber *d = [[NSUserDefaults standardUserDefaults] objectForKey:key]; - if (d != nil) { - return [d intValue]; - } - return NO; -} - -+ (BOOL)isEnableWaterMark { - NSString *key = [PushMoreSettingViewController getKey:TAG_WARTERMARK]; - NSNumber *d = [[NSUserDefaults standardUserDefaults] objectForKey:key]; - if (d != nil) { - return [d intValue]; - } - return NO; -} - -+ (BOOL)isEnableTouchFocus { - NSString *key = [PushMoreSettingViewController getKey:TAG_TOUCH_FOCUS]; - NSNumber *d = [[NSUserDefaults standardUserDefaults] objectForKey:key]; - if (d != nil) { - return [d intValue]; - } - return YES; -} - -+ (void)setDisableVideo:(BOOL)disable { - [PushMoreSettingViewController saveSetting:TAG_DISABLE_VIDEO value:disable]; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushSettingViewController.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushSettingViewController.h deleted file mode 100644 index 1b2ae205..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushSettingViewController.h +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Module: PushSettingViewController - * - * Function: 推流相关的主要设置项 - */ - -#import -#import "V2TXLiveDef.h" - -@class PushSettingViewController; - -@protocol PushSettingDelegate - -// 是否开启耳返 -- (void)onPushSetting:(PushSettingViewController *)vc enableAudioPreview:(BOOL)enableAudioPreview; - -// 画质类型 -- (void)onPushSetting:(PushSettingViewController *)vc videoQuality:(V2TXLiveVideoResolution)videoQuality; - -// 音质类型 -- (void)onPushSetting:(PushSettingViewController *)vc audioQuality:(V2TXLiveAudioQuality)qulity; - -@end - - -@interface PushSettingViewController : UIViewController -@property (nonatomic, weak) id delegate; - -/*** 从文件中读取配置 ***/ -+ (BOOL)getBandWidthAdjust; -+ (BOOL)getEnableHWAcceleration; -+ (BOOL)getEnableAudioPreview; -+ (NSInteger)getAudioQuality; -+ (V2TXLiveVideoResolution)getVideoQuality; - -@end - diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushSettingViewController.m b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushSettingViewController.m deleted file mode 100644 index 899621ff..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/PushSettingViewController.m +++ /dev/null @@ -1,276 +0,0 @@ -/** - * Module: PushSettingViewController - * - * Function: 推流相关的主要设置项 - */ - -#import "PushSettingViewController.h" -#import "UIView+Additions.h" -#import "ColorMacro.h" -#import "AppLocalized.h" -#import "V2TXLiveDef.h" - -/* 列表项 */ -#define SECTION_QUALITY 0 -#define SECTION_AUDIO_QUALITY 1 -#define SECTION_AUDIO_PREVIEW 2 - -/* 编号,请不要修改,写配置文件依赖这个 */ -#define TAG_QUALITY 1000 -#define TAG_HW 1004 -#define TAG_AUDIO_PREVIEW 1005 -#define TAG_AUDIO_QUALITY 1006 - -@interface PushSettingQuality : NSObject -@property (copy, nonatomic) NSString *title; -@property (assign, nonatomic) V2TXLiveVideoResolution value; -@end - -@implementation PushSettingQuality -@end - -@interface PushSettingViewController () { - UISwitch *_audioPreviewSwitch; - - NSArray *_qualities; - NSArray *_audioQualities; -} -@property (strong, nonatomic) UITableView *mainTableView; - -@end - -@implementation PushSettingViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - self.title = LivePlayerLocalize(@"LivePusherDemo.PushSetting.setting"); - - NSArray * titleArray = @[LivePlayerLocalize(@"LivePusherDemo.PushSetting.bluray"), - LivePlayerLocalize(@"LivePusherDemo.PushSetting.superclear"), - LivePlayerLocalize(@"LivePusherDemo.PushSetting.hd"), - LivePlayerLocalize(@"LivePusherDemo.PushSetting.standarddefinition"), - ]; - V2TXLiveVideoResolution qualityArray[] = { - V2TXLiveVideoResolution1920x1080, - V2TXLiveVideoResolution1280x720, - V2TXLiveVideoResolution960x540, - V2TXLiveVideoResolution640x360, - }; - NSMutableArray *qualities = [[NSMutableArray alloc] initWithCapacity:titleArray.count]; - for (int i = 0; i < titleArray.count; ++i) { - PushSettingQuality *quality = [[PushSettingQuality alloc] init]; - quality.title = titleArray[i]; - quality.value = qualityArray[i]; - [qualities addObject:quality]; - } - _qualities = qualities; - _audioQualities = @[LivePlayerLocalize(@"LivePusherDemo.PushSetting.voice"), LivePlayerLocalize(@"LivePusherDemo.PushSetting.standard"), LivePlayerLocalize(@"LivePusherDemo.PushSetting.music")]; - self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:LivePlayerLocalize(@"LivePusherDemo.PushSetting.back") style:UIBarButtonItemStylePlain target:self action:@selector(onClickedCancel:)]; - //self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"完成" style:UIBarButtonItemStylePlain target:self action:@selector(onClickedOK:)]; - - _audioPreviewSwitch = [self createUISwitch:TAG_AUDIO_PREVIEW on:[PushSettingViewController getEnableAudioPreview]]; - - _mainTableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped]; - _mainTableView.delegate = self; - _mainTableView.dataSource = self; - _mainTableView.separatorColor = [UIColor darkGrayColor]; - [self.view addSubview:_mainTableView]; - [_mainTableView setContentInset:UIEdgeInsetsMake(0, 0, 34, 0)]; -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - self.navigationController.navigationBar.translucent = NO; - [self.navigationController setNavigationBarHidden:NO animated:NO]; -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - [self.navigationController setNavigationBarHidden:YES animated:NO]; - self.navigationController.navigationBar.translucent = YES; -} - -- (void)onClickedCancel:(id)sender { - [self.navigationController popViewControllerAnimated:YES]; -} - -- (void)onClickedOK:(id)sender { - [self.navigationController popViewControllerAnimated:YES]; -} - -- (UISwitch *)createUISwitch:(NSInteger)tag on:(BOOL)on { - UISwitch *sw = [[UISwitch alloc] initWithFrame:CGRectZero]; - sw.tag = tag; - sw.on = on; - [sw addTarget:self action:@selector(onSwitchTap:) forControlEvents:UIControlEventTouchUpInside]; - return sw; -} - -- (void)onSwitchTap:(UISwitch *)switchBtn { - [PushSettingViewController saveSetting:switchBtn.tag value:switchBtn.on]; - - if (switchBtn.tag == TAG_AUDIO_PREVIEW) { - if (self.delegate && [self.delegate respondsToSelector:@selector(onPushSetting:enableAudioPreview:)]) { - [self.delegate onPushSetting:self enableAudioPreview:switchBtn.on]; - } - - } -} - -- (NSString *)getQualityStr { - V2TXLiveAudioQuality quality = [PushSettingViewController getVideoQuality]; - for (PushSettingQuality *q in _qualities) { - if (q.value == quality) { - return q.title; - } - } - return _qualities.firstObject.title; -} - -- (NSString *)getAudioQualityStr { - NSInteger value = [PushSettingViewController getAudioQuality]; - return [_audioQualities objectAtIndex:value]; -} - -+ (UIView *)buildAccessoryView { - return [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrow"]]; -} - -- (void)_showQualityActionSheet { - UIAlertController *controller = [UIAlertController alertControllerWithTitle:LivePlayerLocalize(@"LivePusherDemo.PushSetting.imagequality") - message:nil - preferredStyle:UIAlertControllerStyleActionSheet]; - __weak __typeof(self) wself = self; - for (PushSettingQuality *q in _qualities) { - UIAlertAction *action = [UIAlertAction actionWithTitle:q.title - style:UIAlertActionStyleDefault - handler:^(UIAlertAction * _Nonnull action) { - __strong __typeof(wself) self = wself; if (nil == self) return; - [PushSettingViewController saveSetting:TAG_QUALITY value:q.value]; - id delegate = self.delegate; - if ([delegate respondsToSelector:@selector(onPushSetting:videoQuality:)]) { - [delegate onPushSetting:self videoQuality:q.value]; - } - [self.mainTableView reloadData]; - }]; - [controller addAction:action]; - } - [controller addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LivePusherDemo.PushSetting.cancel") - style:UIAlertActionStyleCancel - handler:nil]]; - [self presentViewController:controller animated:YES completion:nil]; -} - -- (void)_showAudioQualityActionSheet { - UIAlertController *controller = [UIAlertController alertControllerWithTitle:LivePlayerLocalize(@"LivePusherDemo.PushSetting.thesoundquality") - message:nil - preferredStyle:UIAlertControllerStyleActionSheet]; - __weak typeof(self) wsself = self; - for (NSString *title in _audioQualities) { - UIAlertAction *action = [UIAlertAction actionWithTitle:title style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - __strong typeof(wsself) self = wsself; - if (self == nil) { - return; - } - NSInteger qualityValue = [self->_audioQualities indexOfObject:title]; - [PushSettingViewController saveSetting:TAG_AUDIO_QUALITY value:qualityValue]; - id delegate = self.delegate; - if ([delegate respondsToSelector:@selector(onPushSetting:videoQuality:)]) { - [delegate onPushSetting:self audioQuality:qualityValue]; - } - [self.mainTableView reloadData]; - }]; - [controller addAction:action]; - } - [controller addAction:[UIAlertAction actionWithTitle:LivePlayerLocalize(@"LivePusherDemo.PushSetting.cancel") - style:UIAlertActionStyleCancel - handler:nil]]; - [self presentViewController:controller animated:YES completion:nil]; -} - -#pragma mark - UITableView delegate - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 3; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return 1; -} - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - UITableViewCell *cell = [[UITableViewCell alloc] initWithFrame:CGRectMake(0, 0, self.view.width, 40)]; - - if (indexPath.section == SECTION_QUALITY) { - cell.textLabel.text = [self getQualityStr]; - cell.accessoryView = [PushSettingViewController buildAccessoryView]; - } else if (indexPath.section == SECTION_AUDIO_QUALITY) { - cell.textLabel.text = [self getAudioQualityStr]; - cell.accessoryView = [PushSettingViewController buildAccessoryView]; - } else if (indexPath.section == SECTION_AUDIO_PREVIEW) { - cell.textLabel.text = LivePlayerLocalize(@"LivePusherDemo.PushSetting.opentheearsback"); - cell.accessoryView = _audioPreviewSwitch; - } - - return cell; -} - -- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { - if (section == SECTION_QUALITY) { - return LivePlayerLocalize(@"LivePusherDemo.PushSetting.qualitypreference"); - } - if (section == SECTION_AUDIO_QUALITY) { - return LivePlayerLocalize(@"LivePusherDemo.PushSetting.thesoundqualitychoice"); - } - return @""; -} - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - if (indexPath.section == SECTION_QUALITY) { - [self _showQualityActionSheet]; - } - if (indexPath.section == SECTION_AUDIO_QUALITY) { - [self _showAudioQualityActionSheet]; - } -} - -#pragma mark - 读写配置文件 - -+ (NSString *)getKey:(NSInteger)tag { - return [NSString stringWithFormat:@"PUSH_SETTING_%ld", tag]; -} - -+ (void)saveSetting:(NSInteger)tag value:(NSInteger)value { - NSString *key = [PushSettingViewController getKey:tag]; - [[NSUserDefaults standardUserDefaults] setObject:@(value) forKey:key]; - [[NSUserDefaults standardUserDefaults] synchronize]; -} - -+ (BOOL)getEnableAudioPreview { - NSString *key = [PushSettingViewController getKey:TAG_AUDIO_PREVIEW]; - NSNumber *d = [[NSUserDefaults standardUserDefaults] objectForKey:key]; - if (d != nil) { - return [d intValue]; - } - return NO; -} - -+ (V2TXLiveVideoResolution)getVideoQuality { - NSString *key = [PushSettingViewController getKey:TAG_QUALITY]; - NSNumber *d = [[NSUserDefaults standardUserDefaults] objectForKey:key]; - if (d != nil) { - return [d intValue]; - } - return V2TXLiveVideoResolution1280x720; -} - -+ (NSInteger)getAudioQuality { - NSString *key = [PushSettingViewController getKey:TAG_AUDIO_QUALITY]; - NSNumber *value = [[NSUserDefaults standardUserDefaults] objectForKey:key]; - if (value != nil) { - return [value integerValue]; - } - return 2; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/TXCAudioCustomRecorder.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/TXCAudioCustomRecorder.h deleted file mode 100644 index 9635d414..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/TXCAudioCustomRecorder.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// TXCAudioCustomRecorder.h -// TXLiteAVDemo_Professional -// -// Created by realingzhou on 2018/1/15. -// Copyright © 2018年 Tencent. All rights reserved. -// - -#ifndef TXCAudioCustomRecorder_h -#define TXCAudioCustomRecorder_h - -@protocol TXCAudioCustomRecorderDelegate - -- (void)onRecordPcm:(NSData *)pcmData; - -@end - -#import - -@interface TXCAudioCustomRecorder : NSObject - -@property(nonatomic, strong)id delegate; - -+ (instancetype) sharedInstance; - -- (void)startRecord:(int)sampleRate nChannels:(int)channels nSampleLen:(int)sampleLen; - -- (void)stopRecord; - -- (void)setAudioSession; - -- (void)sendPcmData:(unsigned char *)pcmData len:(int)pcmDataLen; - -@end - -#endif /* TXCAudioCustomRecorder_h */ diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/TXCAudioCustomRecorder.m b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/TXCAudioCustomRecorder.m deleted file mode 100644 index 8a1c7244..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/CameraPushDemo/TXCAudioCustomRecorder.m +++ /dev/null @@ -1,243 +0,0 @@ -// -// TXCAudioCustomRecorder.m -// TXLiteAVDemo_Professional -// -// Created by realingzhou on 2018/1/15. -// Copyright © 2018年 Tencent. All rights reserved. -// - -#import -#import -#import "TXCAudioCustomRecorder.h" - -static const int kNumberBuffers = 3; -typedef struct _AQRecorderState { - AudioStreamBasicDescription mDataFormat; - AudioQueueRef mQueue; - AudioQueueBufferRef mBuffers[kNumberBuffers]; - AudioFileID mAudioFile; - UInt32 bufferByteSize; - SInt64 mCurrentPacket; - bool mIsRunning; -}AQRecorderState; - -static void HandleInputBuffer ( - void *aqData, - AudioQueueRef inAQ, - AudioQueueBufferRef inBuffer, - const AudioTimeStamp *inStartTime, - UInt32 inNumPackets, - const AudioStreamPacketDescription *inPacketDesc - ) { - AQRecorderState *pAqData = (AQRecorderState *) aqData; // 1 - - if (inNumPackets == 0 && // 2 - pAqData->mDataFormat.mBytesPerPacket != 0) - inNumPackets = - inBuffer->mAudioDataByteSize / pAqData->mDataFormat.mBytesPerPacket; - - [[TXCAudioCustomRecorder sharedInstance] sendPcmData:inBuffer->mAudioData len:inBuffer->mAudioDataByteSize]; - - pAqData->mCurrentPacket += inNumPackets; // 4 - - if (pAqData->mIsRunning == 0) // 5 - return; - - AudioQueueEnqueueBuffer ( // 6 - pAqData->mQueue, - inBuffer, - 0, - NULL - ); -} - -static void DeriveBufferSize ( - AudioQueueRef audioQueue, // 1 - AudioStreamBasicDescription *asbDescription, // 2 - Float64 seconds, // 3 - UInt32 *outBufferSize // 4 -) { - static const int maxBufferSize = 0x50000; // 5 - - int maxPacketSize = asbDescription->mBytesPerPacket; // 6 - if (maxPacketSize == 0) { // 7 - UInt32 maxVBRPacketSize = sizeof(maxPacketSize); - AudioQueueGetProperty ( - audioQueue, - kAudioQueueProperty_MaximumOutputPacketSize, - // in Mac OS X v10.5, instead use - // kAudioConverterPropertyMaximumOutputPacketSize - &maxPacketSize, - &maxVBRPacketSize - ); - } - - Float64 numBytesForTime = - asbDescription->mSampleRate * maxPacketSize * seconds; // 8 - *outBufferSize = - (UInt32) (numBytesForTime < maxBufferSize ? - numBytesForTime : maxBufferSize); // 9 -} - -@implementation TXCAudioCustomRecorder -{ - AQRecorderState aqData; - - unsigned char *_sendBuf; - int _sendBufLen; - - int _sampleLen; -} - -static TXCAudioCustomRecorder *_instance; - -+ (instancetype)sharedInstance { - static dispatch_once_t predicate; - dispatch_once(&predicate, ^{ - _instance = [[TXCAudioCustomRecorder alloc] initPrivate]; - }); - return _instance; -} - -- (instancetype)initPrivate { - self = [super init]; - if (nil != self) { - //do init - } - return self; -} - -- (void)startRecord:(int)sampleRate nChannels:(int)channels nSampleLen:(int)sampleLen { - aqData.mDataFormat.mFormatID = kAudioFormatLinearPCM; // 2 - aqData.mDataFormat.mSampleRate = sampleRate; // 3 - aqData.mDataFormat.mChannelsPerFrame = channels; // 4 - aqData.mDataFormat.mBitsPerChannel = 16; // 5 - aqData.mDataFormat.mBytesPerPacket = // 6 - aqData.mDataFormat.mBytesPerFrame = - aqData.mDataFormat.mChannelsPerFrame * sizeof (SInt16); - aqData.mDataFormat.mFramesPerPacket = 1; // 7 - aqData.mDataFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked; - - _sendBuf = malloc(sampleLen); - _sendBufLen = 0; - - _sampleLen = sampleLen; - - [self setAudioSession]; - - AudioQueueNewInput ( // 1 - &aqData.mDataFormat, // 2 - HandleInputBuffer, // 3 - &aqData, // 4 - NULL, // 5 - kCFRunLoopCommonModes, // 6 - 0, // 7 - &aqData.mQueue // 8 - ); - - UInt32 dataFormatSize = sizeof (aqData.mDataFormat); // 1 - - AudioQueueGetProperty ( // 2 - aqData.mQueue, // 3 - kAudioQueueProperty_StreamDescription, // 4 - // in Mac OS X, instead use - // kAudioConverterCurrentInputStreamDescription - &aqData.mDataFormat, // 5 - &dataFormatSize // 6 - ); - - DeriveBufferSize ( // 1 - aqData.mQueue, // 2 - &aqData.mDataFormat, // 3 - 0.03, // 4 - &aqData.bufferByteSize // 5 - ); - - for (int i = 0; i < kNumberBuffers; ++i) { // 1 - AudioQueueAllocateBuffer ( // 2 - aqData.mQueue, // 3 - aqData.bufferByteSize, // 4 - &aqData.mBuffers[i] // 5 - ); - - AudioQueueEnqueueBuffer ( // 6 - aqData.mQueue, // 7 - aqData.mBuffers[i], // 8 - 0, // 9 - NULL // 10 - ); - } - - aqData.mCurrentPacket = 0; // 1 - aqData.mIsRunning = true; // 2 - - AudioQueueStart ( // 3 - aqData.mQueue, // 4 - NULL // 5 - ); -} - -- (void)stopRecord { - // Wait, on user interface thread, until user stops the recording - AudioQueueStop ( // 6 - aqData.mQueue, // 7 - true // 8 - ); - - aqData.mIsRunning = false; // 9 - - AudioQueueDispose ( // 1 - aqData.mQueue, // 2 - true // 3 - ); - - free(_sendBuf); - _sendBuf = NULL; -} - -- (void) setAudioSession { - NSError *error; - AVAudioSession *session = [AVAudioSession sharedInstance]; - - [session setActive:YES error:&error]; // should not invoke every time - if (nil != error) { - NSLog(@"AudioSession setActive error:%@", error.localizedDescription); - return; - } - - error = nil; - NSString *category; - category = AVAudioSessionCategoryPlayAndRecord; - [[AVAudioSession sharedInstance] setCategory:category error:&error]; - if (nil != error) { - NSLog(@"AudioSession setCategory(AVAudioSessionCategoryPlayAndRecord) error:%@", error.localizedDescription); - return; - } else { - NSLog(@"set category to %@", category); - } -} - -- (void)sendPcmData:(unsigned char *)pcmData len:(int)pcmDataLen { - unsigned char *orgData = pcmData; - int orgDataLen = pcmDataLen; - while (orgDataLen) { - if (_sendBufLen + orgDataLen < _sampleLen) { - memcpy(_sendBuf+_sendBufLen, orgData, orgDataLen); - _sendBufLen += orgDataLen; - orgDataLen = 0; - } else { - int cpyLen = _sampleLen-_sendBufLen; - memcpy(_sendBuf+_sendBufLen, orgData, cpyLen); - orgData += cpyLen; - orgDataLen -= cpyLen; - _sendBufLen += cpyLen; - - if (self.delegate) { - [self.delegate onRecordPcm:[NSData dataWithBytes:_sendBuf length:_sendBufLen]]; - _sendBufLen = 0; - } - } - } -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/AddressBar.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/AddressBar.h deleted file mode 100644 index 900a981d..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/AddressBar.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// AddressBar.h -// TXLiteAVDemo -// -// Created by shengcui on 2018/6/14. -// Copyright © 2018年 Tencent. All rights reserved. -// - -#import - -typedef NS_OPTIONS(NSUInteger, AddressBarButtonOption) { - AddressBarButtonOptionQRScan = 1, - AddressBarButtonOptionNew = 1 << 1 -}; - -@interface AddressBar : UIView -@property (strong, readonly, nonatomic) UITextField *textField; -@property (strong, readonly, nonatomic) UIButton *showQRButton; -@property (strong, readonly, nonatomic) UIButton *scanQRButton; -@property (strong, readonly, nonatomic) UIButton *createAddressButton; -@property (assign, nonatomic) BOOL showQRCode; -- (instancetype)initWithFrame:(CGRect)frame buttons:(AddressBarButtonOption)buttons; -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/AddressBar.m b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/AddressBar.m deleted file mode 100644 index 62228851..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/AddressBar.m +++ /dev/null @@ -1,95 +0,0 @@ -// -// AddressBar.m -// TXLiteAVDemo -// -// Created by shengcui on 2018/6/14. -// Copyright © 2018年 Tencent. All rights reserved. -// - -#import "AddressBar.h" -#import "SmallButton.h" -#import - -@implementation AddressBar -{ - -} -- (instancetype)initWithFrame:(CGRect)frame -{ - return [self initWithFrame:frame buttons:0xffffff]; -} - -- (instancetype)initWithFrame:(CGRect)frame buttons:(AddressBarButtonOption)buttons -{ - if (self = [super initWithFrame:frame]) { - UITextField *textField = [[UITextField alloc] initWithFrame:CGRectZero]; - textField.borderStyle = UITextBorderStyleRoundedRect; - textField.text = @""; - textField.backgroundColor = UIColor.whiteColor; - textField.alpha = 0.5; - textField.autocapitalizationType = UITextAutocorrectionTypeNo; - [self addSubview:textField]; - - [textField mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.equalTo(self.mas_left); - make.height.equalTo(self.mas_height); - make.top.equalTo(self.mas_top); - }]; - _textField = textField; - UIView *prevLayoutItem = textField; - - if (buttons & AddressBarButtonOptionQRScan) { - UIButton *btnScan = [UIButton buttonWithType:UIButtonTypeCustom]; - [btnScan setImage:[UIImage imageNamed:@"QR_code"] forState:UIControlStateNormal]; - [self addSubview:btnScan]; - _scanQRButton = btnScan; - [btnScan mas_makeConstraints:^(MASConstraintMaker *make) { - make.height.equalTo(self.mas_height); - make.width.equalTo(self.mas_height); - make.top.equalTo(self.mas_top); - make.left.equalTo(prevLayoutItem.mas_right).with.offset(3); - }]; - prevLayoutItem = btnScan; - } - - if (buttons & AddressBarButtonOptionNew) { - UIButton *btn = [SmallButton buttonWithType:UIButtonTypeCustom]; - [btn setImage:[UIImage imageNamed:@"QR_code"] forState:UIControlStateNormal]; - _showQRButton = btn; - - UIButton *btnNewUrl = [UIButton buttonWithType:UIButtonTypeCustom]; - [btnNewUrl setImage:[UIImage imageNamed:@"new"] forState:UIControlStateNormal]; - [self addSubview:btnNewUrl]; - _createAddressButton = btnNewUrl; - [btnNewUrl mas_makeConstraints:^(MASConstraintMaker *make) { - make.left.equalTo(prevLayoutItem.mas_right).with.offset(3); - make.height.equalTo(self.mas_height); - make.width.equalTo(self.mas_height); - make.top.equalTo(self.mas_top); - }]; - prevLayoutItem = btnNewUrl; - } - - [prevLayoutItem mas_makeConstraints:^(MASConstraintMaker *make) { - make.right.equalTo(self.mas_right); - }]; - } - return self; -} - -- (void)setShowQRCode:(BOOL)showQRCode -{ - _showQRCode = showQRCode; - if (showQRCode) { - CGFloat size = _textField.frame.size.height - 4; - _showQRButton.frame = CGRectMake(0, 0, size, size); - _showQRButton.transform = CGAffineTransformMakeScale(0.8, 0.8); - _textField.leftView = _showQRButton; - _textField.leftViewMode = UITextFieldViewModeAlways; - } else { - _textField.leftView = nil; - _textField.leftViewMode = UITextFieldViewModeNever; - } -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/AddressBarController.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/AddressBarController.h deleted file mode 100644 index 6d298625..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/AddressBarController.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// AddressBarController.h -// TXLiteAVDemo -// -// Created by shengcui on 2018/6/14. -// Copyright © 2018年 Tencent. All rights reserved. -// - -#import -#import "AddressBar.h" - -@protocol AddressBarControllerDelegate; - -/** - UI组件: 显示地址栏、QR扫描、获取地址三个控件,并在地址栏上可以显示展示QR码的按钮,方便在其它设备上扫描对应地址 - */ -@interface AddressBarController : NSObject -@property (readonly, nonatomic) AddressBar *view; -/// 界面上的控件事件回调处理对象 -@property (weak, nonatomic) id delegate; -/// 设置后可以此View上展示QR码 -@property (weak, nonatomic) UIView *qrPresentView; -/// 地址栏内容 -@property (copy, nonatomic) NSString *text; -/// 二维码内容, 每个字符串格式为 "标题,qr内容" -@property (strong, nonatomic) NSArray* qrStrings; - -/** - @param option 有AddressBarButtonOptionQRScan 和 AddressBarButtonOptionNew两个选项,用逻辑或来设置 - */ -- (instancetype)initWithButtonOption:(AddressBarButtonOption)option; -@end - -@protocol AddressBarControllerDelegate -@optional -- (void)addressBarControllerTapCreateURL:(AddressBarController *)controller; -- (void)addressBarControllerTapShowQR:(AddressBarController *)controller; -- (void)addressBarControllerTapScanQR:(AddressBarController *)controller; -- (BOOL)addressBarControllerTextFieldShouldReturn:(AddressBarController *)controller; -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/AddressBarController.m b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/AddressBarController.m deleted file mode 100644 index 2e6e93a4..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/AddressBarController.m +++ /dev/null @@ -1,183 +0,0 @@ -// -// AddressBarController.m -// TXLiteAVDemo -// -// Created by shengcui on 2018/6/14. -// Copyright © 2018年 Tencent. All rights reserved. -// - -#import "AddressBarController.h" -#import "QRCode.h" - -static NSString * const CellIdentifier = @"Cell"; - -@interface AddressBarController() -{ - AddressBarButtonOption _buttonOption; -} -@end - -@implementation AddressBarController - -@synthesize view = _view; - -- (instancetype)initWithButtonOption:(AddressBarButtonOption)option -{ - self = [super init]; - if (self) { - _buttonOption = option; - } - return self; -} - -- (UIView *)view { - if (!_view) { - _view = [[AddressBar alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 44) buttons:_buttonOption]; - _view.textField.delegate = self; - [_view.scanQRButton addTarget:self action:@selector(onScan:) forControlEvents:UIControlEventTouchUpInside]; - [_view.createAddressButton addTarget:self action:@selector(onCreateAddress:) forControlEvents:UIControlEventTouchUpInside]; - [_view.showQRButton addTarget:self action:@selector(onShowQR:) forControlEvents:UIControlEventTouchUpInside]; - } - return _view; -} - -- (void)setText:(NSString *)text -{ - [self.view.textField setText:text]; -} - -- (NSString *)text -{ - return self.view.textField.text; -} - -- (IBAction)onCreateAddress:(id)sender { - if ([self.delegate respondsToSelector:@selector(addressBarControllerTapCreateURL:)]) { - [self.delegate addressBarControllerTapCreateURL:self]; - } -} - -- (IBAction)onScan:(id)sender { - if ([self.delegate respondsToSelector:@selector(addressBarControllerTapScanQR:)]) { - [self.delegate addressBarControllerTapScanQR:self]; - } -} - -- (void)setQrStrings:(NSArray *)qrStrings { - _qrStrings = qrStrings; - self.view.showQRCode = qrStrings.count > 0; -} - -- (IBAction)onShowQR:(id)sender { - if (self.qrPresentView) { - CGRect frame = UIEdgeInsetsInsetRect(self.qrPresentView.bounds, UIEdgeInsetsMake(90, 15, 80, 15)); - UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; - CGFloat h_size = (CGRectGetWidth(frame) - 30) / 3; - CGFloat v_size = (CGRectGetHeight(frame) - 30) / 3; - CGFloat size = MIN(h_size, v_size); - layout.itemSize = CGSizeMake(size, size); - layout.minimumInteritemSpacing = 10; - layout.minimumLineSpacing = 10; - - CGFloat height = ceil(self.qrStrings.count / 2) * (size + 20) - 20; - frame.size.height = MIN(height, frame.size.height); - - UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:frame collectionViewLayout:layout]; - [collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:CellIdentifier]; - collectionView.dataSource = self; - - UIButton *wrapper = [[UIButton alloc] initWithFrame:self.qrPresentView.bounds]; - [wrapper addTarget:self action:@selector(onDismissQRCode:) forControlEvents:UIControlEventTouchUpInside]; - wrapper.backgroundColor = [UIColor clearColor]; - collectionView.center = CGPointMake(CGRectGetMidX(wrapper.bounds), CGRectGetMidY(wrapper.bounds)); - collectionView.autoresizingMask = ~(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth); - [wrapper addSubview:collectionView]; - [self.qrPresentView addSubview:wrapper]; - wrapper.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - - wrapper.alpha = 0; - [UIView animateWithDuration:0.3 animations:^{ - wrapper.alpha = 1; - } completion:^(BOOL finished) { - if ([self.delegate respondsToSelector:@selector(addressBarControllerTapShowQR:)]) { - [self.delegate addressBarControllerTapScanQR:self]; - } - }]; - } else { - if ([self.delegate respondsToSelector:@selector(addressBarControllerTapShowQR:)]) { - [self.delegate addressBarControllerTapScanQR:self]; - } - } -} - -- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section -{ - return self.qrStrings.count; -} - -- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath -{ - UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath]; - UIImageView *imageView = [cell.contentView viewWithTag:1234]; - if (!imageView) { - imageView = [[UIImageView alloc] initWithFrame:cell.contentView.bounds]; - imageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - imageView.tag = 1234; - [cell.contentView addSubview:imageView]; - } - UILabel *label = [cell.contentView viewWithTag:4321]; - if (!label) { - CGRect frame = cell.contentView.bounds; - frame.size.height = 20; - frame.size.width /= 2; - label = [[UILabel alloc] initWithFrame:frame]; - label.font = [UIFont boldSystemFontOfSize:12]; - label.backgroundColor = [UIColor whiteColor]; - label.textColor = [UIColor blueColor]; - label.tag = 4321; - [cell.contentView addSubview:label]; - label.translatesAutoresizingMaskIntoConstraints = NO; - [cell.contentView addConstraint:[NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:cell.contentView attribute:NSLayoutAttributeCenterX multiplier:1 constant:0]]; - [cell.contentView addConstraint:[NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:cell.contentView attribute:NSLayoutAttributeCenterY multiplier:1 constant:0]]; - } - NSString *content = self.qrStrings[indexPath.row]; - NSString *title = nil; - UIImage *image = nil; - CGSize qrCodeImageSize = CGSizeMake(300, 300); - NSRange r = [content rangeOfString:@"," options:NSLiteralSearch]; - if (r.location == NSNotFound) { - image = [QRCode qrCodeWithString:content size:qrCodeImageSize]; - } else { - title = [content substringToIndex:r.location]; - NSString *qrString = [content substringFromIndex:NSMaxRange(r)]; - image = [QRCode qrCodeWithString:qrString size:qrCodeImageSize]; - } - if (title.length > 0) { - label.text = title; - label.hidden = NO; - } else { - label.hidden = YES; - } - imageView.image = image; - return cell; -} - -- (void)onDismissQRCode:(UIButton *)sender { - UIView *container = sender.superview; - [sender removeFromSuperview]; - CATransition *anim = [CATransition animation]; - anim.type = kCATransitionFade; - [container.layer addAnimation:anim forKey:@"dismiss"]; -} - -- (BOOL)textFieldShouldReturn:(UITextField *)textField -{ - if ([self.delegate respondsToSelector:@selector(addressBarControllerTextFieldShouldReturn:)]) { - return [self.delegate addressBarControllerTextFieldShouldReturn:self]; - } else { - [textField resignFirstResponder]; - } - return YES; -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/QRCode.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/QRCode.h deleted file mode 100644 index 0d48f287..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/QRCode.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// QRCode.h -// TXLiteAVDemo -// -// Created by shengcui on 2018/6/14. -// Copyright © 2018年 Tencent. All rights reserved. -// - -#import - -@interface QRCode : NSObject -+ (UIImage *)qrCodeWithString:(NSString *)string size:(CGSize)outputSize; -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/QRCode.m b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/QRCode.m deleted file mode 100644 index 512fb4be..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/AddressBar/QRCode.m +++ /dev/null @@ -1,23 +0,0 @@ -// -// QRCode.m -// TXLiteAVDemo -// -// Created by shengcui on 2018/6/14. -// Copyright © 2018年 Tencent. All rights reserved. -// - -#import "QRCode.h" - -@implementation QRCode -+ (UIImage *)qrCodeWithString:(NSString *)string size:(CGSize)outputSize -{ - NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; - CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; - [filter setValue:data forKey: @"inputMessage"]; - [filter setValue:@"Q" forKey: @"inputCorrectionLevel"]; - CIImage *qrCodeImage = filter.outputImage; - CGRect imageSize = CGRectIntegral(qrCodeImage.extent); - CIImage *ciImage = [qrCodeImage imageByApplyingTransform:CGAffineTransformMakeScale(outputSize.width/CGRectGetWidth(imageSize), outputSize.height/CGRectGetHeight(imageSize))]; - return [UIImage imageWithCIImage:ciImage]; -} -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/QRScan/ScanQRController.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/QRScan/ScanQRController.h deleted file mode 100644 index 147dfd09..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/QRScan/ScanQRController.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// ScanQRController.h -// RTMPiOSDemo -// -// Created by 蓝鲸 on 16/4/1. -// Copyright © 2016年 tencent. All rights reserved. -// - -#import -#import - -@protocol ScanQRDelegate - -- (void)onScanResult:(NSString *)result; -- (void)cancelScanQR; - -@end - -@interface ScanQRController : UIViewController -{ - BOOL _qrResult; - AVCaptureSession * _captureSession; - AVCaptureVideoPreviewLayer *_videoPreviewLayer; - - -} - -@property (nonatomic, weak) id delegate; -@property (nonatomic, retain) UITextField* textField; - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/QRScan/ScanQRController.mm b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/QRScan/ScanQRController.mm deleted file mode 100644 index aa092a90..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/QRScan/ScanQRController.mm +++ /dev/null @@ -1,175 +0,0 @@ -// -// ScanQRController.m -// RTMPiOSDemo -// -// Created by 蓝鲸 on 16/4/1. -// Copyright © 2016年 tencent. All rights reserved. -// - -#import "ScanQRController.h" - -static const char *kScanQRCodeQueueName = "ScanQRCodeQueue"; - - -@interface ScanQRController () -{ - CGRect _interestRect; -} - -@end - -@implementation ScanQRController -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view. - _qrResult = NO; - - CGSize size = [[UIScreen mainScreen] bounds].size; - int c_x = size.width/2; - int c_y = size.height/2; - int roi = size.width * 0.4; - - _interestRect = CGRectMake(c_x - roi, c_y - roi, roi*2, roi*2); - - [self startScan]; - - UIView* top = [[UIView alloc] initWithFrame:CGRectMake(0, 0, size.width, c_y - roi)]; - top.backgroundColor = [UIColor blackColor]; - top.alpha = 0.8; - [self.view addSubview:top]; - - - UIView* left = [[UIView alloc] initWithFrame:CGRectMake(0, c_y - roi, c_x - roi, 2*roi)]; - left.backgroundColor = [UIColor blackColor]; - left.alpha = 0.8; - [self.view addSubview:left]; - - UIView* right = [[UIView alloc] initWithFrame:CGRectMake(c_x + roi , c_y-roi, c_x - roi+1, 2*roi)]; - right.backgroundColor = [UIColor blackColor]; - right.alpha = 0.8; - [self.view addSubview:right]; - - UIView* bottom = [[UIView alloc] initWithFrame:CGRectMake(0, c_y + roi, size.width, c_y - roi)]; - bottom.backgroundColor = [UIColor blackColor]; - bottom.alpha = 0.8; - [self.view addSubview:bottom]; -} - -- (void)didReceiveMemoryWarning { - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -- (void)startScan -{ - NSError * error; - AVCaptureDevice *captureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; - - - if ([captureDevice lockForConfiguration:nil]) { - //对焦模式,自动对焦 - if (captureDevice && [captureDevice isFocusModeSupported:AVCaptureFocusModeContinuousAutoFocus]) { - [captureDevice setFocusMode:AVCaptureFocusModeContinuousAutoFocus]; - } - else if(captureDevice && [captureDevice isFocusModeSupported:AVCaptureFocusModeAutoFocus]){ - [captureDevice setFocusMode:AVCaptureFocusModeAutoFocus]; - } - - // 自动白平衡 - if (captureDevice && [captureDevice isWhiteBalanceModeSupported:AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance]) { - captureDevice.whiteBalanceMode = AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance; - } - else if (captureDevice && [captureDevice isWhiteBalanceModeSupported:AVCaptureWhiteBalanceModeAutoWhiteBalance]) { - captureDevice.whiteBalanceMode = AVCaptureWhiteBalanceModeAutoWhiteBalance; - } - - if (captureDevice && [captureDevice isExposureModeSupported:AVCaptureExposureModeContinuousAutoExposure]) { - captureDevice.exposureMode = AVCaptureExposureModeContinuousAutoExposure; - } - else if (captureDevice && [captureDevice isExposureModeSupported:AVCaptureExposureModeAutoExpose]) { - captureDevice.exposureMode = AVCaptureExposureModeAutoExpose; - } - - [captureDevice unlockForConfiguration]; - } - - - AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:captureDevice error:&error]; - if (!input) { - NSLog(@"%@", [error localizedDescription]); - return ; - } - - // 创建会话 - _captureSession = [[AVCaptureSession alloc] init]; - // 添加输入流 - [_captureSession addInput:input]; - // 初始化输出流 - AVCaptureMetadataOutput *captureMetadataOutput = [[AVCaptureMetadataOutput alloc] init]; - // 添加输出流 - [_captureSession addOutput:captureMetadataOutput]; - - // 创建dispatch queue. - dispatch_queue_t dispatchQueue; - dispatchQueue = dispatch_queue_create(kScanQRCodeQueueName, NULL); - [captureMetadataOutput setMetadataObjectsDelegate:self queue:dispatchQueue]; - // 设置元数据类型 AVMetadataObjectTypeQRCode - [captureMetadataOutput setMetadataObjectTypes:[NSArray arrayWithObject:AVMetadataObjectTypeQRCode]]; - // 创建输出对象 - _videoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:_captureSession]; - [_videoPreviewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill]; - [_videoPreviewLayer setFrame:self.view.layer.bounds]; - [self.view.layer addSublayer:_videoPreviewLayer]; - - [_captureSession startRunning]; - - captureMetadataOutput.rectOfInterest = [_videoPreviewLayer metadataOutputRectOfInterestForRect:_interestRect]; -} - - -- (void)stopScanQRCode { - [_captureSession stopRunning]; - _captureSession = nil; - - [_videoPreviewLayer removeFromSuperlayer]; - _videoPreviewLayer = nil; -} - - - -- (void)handleScanResult:(NSString *)result -{ - [self stopScanQRCode]; - if (_qrResult) { - return; - } - _qrResult = YES; - - if ([self.delegate respondsToSelector:@selector(onScanResult:)]) { - [self.delegate onScanResult:result]; - } - -// [self.navigationController popToViewController:self.pvc animated:NO]; - [self.navigationController popViewControllerAnimated:NO]; -} - -- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection { - if (metadataObjects.count>0) { - AVMetadataMachineReadableCodeObject *metadataObj = [metadataObjects objectAtIndex:0]; - if ([[metadataObj type] isEqualToString:AVMetadataObjectTypeQRCode]) { - [self performSelectorOnMainThread:@selector(handleScanResult:) withObject:metadataObj.stringValue waitUntilDone:NO]; - } - - } -} - -- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event -{ - [self stopScanQRCode]; - [self.navigationController popViewControllerAnimated:NO]; - if (self.delegate && [self.delegate respondsToSelector:@selector(cancelScanQR)]) { - [self.delegate cancelScanQR]; - } -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/SmallButton/SmallButton.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/SmallButton/SmallButton.h deleted file mode 100644 index a51b81e8..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/SmallButton/SmallButton.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// SmallButton.h -// -// Created by stcui on 15/7/14. -// Copyright © 2015年 Tencent. All rights reserved. -// - -#import - -// extend hitTest area when rect width is smaller than 44px -@interface SmallButton : UIButton - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/SmallButton/SmallButton.m b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/SmallButton/SmallButton.m deleted file mode 100644 index 1bbe5ea4..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/SmallButton/SmallButton.m +++ /dev/null @@ -1,29 +0,0 @@ -// -// SmallButton.m -// -// Created by stcui on 15/7/14. -// Copyright © 2015年 Tencent. All rights reserved. -// - -#import "SmallButton.h" - -@implementation SmallButton - -- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event -{ - if (!self.enabled || self.hidden) return [super pointInside:point withEvent:event]; - CGRect area = self.frame; - area.origin = CGPointZero; - if (CGRectGetWidth(area) < 44) { - area.origin.x = CGRectGetMidX(area) - 22; - area.size.width = 44; - } - if (CGRectGetHeight(area) < 44) { - area.origin.y = CGRectGetMidY(area) - 22; - area.size.height = 44; - } - - return CGRectContainsPoint(area, point); -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/TCHttpUtil/TCHttpUtil.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/TCHttpUtil/TCHttpUtil.h deleted file mode 100644 index 40995125..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/TCHttpUtil/TCHttpUtil.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// TCHttpUtil.h -// TXLiteAVDemo -// -// Created by rushanting on 2017/11/10. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#define kHttpTimeout 30 - -#define kHttpServerAddr @"https://lvb.qcloud.com/weapp/utils" -#define kHttpUGCServerAddr @"http://demo.vod2.myqcloud.com/shortvideo" //@"http://119.29.189.135:8000" -#define UGCAppid @"1256468886" -#define UGCAppKey @"1973fcc2b70445af8b51053d4f9022bb" - -//错误码 -#define kError_InvalidParam -10001 -#define kError_ConvertJsonFailed -10002 -#define kError_HttpError -10003 - -#import - -@interface TCHttpUtil : NSObject - -+ (NSData *)dictionary2JsonData:(NSDictionary *)dict; -+ (NSDictionary *)jsonData2Dictionary:(NSString *)jsonData; -+ (void)asyncSendHttpRequest:(NSString*)request - httpServerAddr:(NSString *)httpServerAddr - HTTPMethod:(NSString *)HTTPMethod - param:(NSDictionary *)param - handler:(void (^)(int result, NSDictionary* resultDict))handler; -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/TCHttpUtil/TCHttpUtil.m b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/TCHttpUtil/TCHttpUtil.m deleted file mode 100644 index 11ecb8bb..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/TCHttpUtil/TCHttpUtil.m +++ /dev/null @@ -1,100 +0,0 @@ -// -// TCHttpUtil.m -// TXLiteAVDemo -// -// Created by rushanting on 2017/11/10. -// Copyright © 2017年 Tencent. All rights reserved. -// - -#import "TCHttpUtil.h" -#import "NSString+Common.h" - -@implementation TCHttpUtil - -+ (NSData *)dictionary2JsonData:(NSDictionary *)dict -{ - // 转成Json数据 - if ([NSJSONSerialization isValidJSONObject:dict]) - { - NSError *error = nil; - NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error]; - if(error) - { - NSLog(@"[%@] Post Json Error", [self class]); - } - return data; - } - else - { - NSLog(@"[%@] Post Json is not valid", [self class]); - } - return nil; -} - -+ (NSDictionary *)jsonData2Dictionary:(NSString *)jsonData -{ - if (jsonData == nil) { - return nil; - } - NSData *data = [jsonData dataUsingEncoding:NSUTF8StringEncoding]; - NSError *err = nil; - NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err]; - if (err) { - NSLog(@"Json parse failed: %@", jsonData); - return nil; - } - return dic; -} - -+ (void)asyncSendHttpRequest:(NSString*)request - httpServerAddr:(NSString *)httpServerAddr - HTTPMethod:(NSString *)HTTPMethod - param:(NSDictionary *)param - handler:(void (^)(int result, NSDictionary* resultDict))handler -{ - dispatch_async(dispatch_get_global_queue(0, 0), ^{ - NSString* strUrl = @""; - if ([httpServerAddr isEqualToString:kHttpUGCServerAddr]) { - NSDate* date = [NSDate dateWithTimeIntervalSinceNow:0]; - UInt64 timestamp= (UInt64)[date timeIntervalSince1970]; - UInt64 msTimestamp = (UInt64)([date timeIntervalSince1970] * 1000); - NSString *nonce = [[NSString stringWithFormat:@"%llu",msTimestamp] md5]; - NSString *sig = [[NSString stringWithFormat:@"%@%llu%@%@",UGCAppid,timestamp,nonce,UGCAppKey] md5]; - strUrl = [NSString stringWithFormat:@"%@/%@?timestamp=%llu&nonce=%@&sig=%@&appid=%@", httpServerAddr, request,timestamp,nonce,sig,UGCAppid]; - }else{ - strUrl = [NSString stringWithFormat:@"%@/%@", httpServerAddr, request]; - } - - NSURL *URL = [NSURL URLWithString:strUrl]; - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; - - [request setHTTPMethod:HTTPMethod]; - [request setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; - [request setTimeoutInterval:kHttpTimeout]; - for (NSString *key in param.allKeys) { - [request setValue:param[key] forHTTPHeaderField:key]; - } - - NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - if (error != nil) - { - NSLog(@"internalSendRequest failed,NSURLSessionDataTask return error code:%ld, des:%@", [error code], [error description]); - dispatch_async(dispatch_get_main_queue(), ^{ - handler(kError_HttpError, nil); - }); - } - else - { - NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; - NSDictionary* resultDict = [TCHttpUtil jsonData2Dictionary:responseString]; - dispatch_async(dispatch_get_main_queue(), ^{ - handler(0, resultDict); - }); - } - }]; - - [task resume]; - }); -} - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/ThemeConfigurator.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/ThemeConfigurator.h deleted file mode 100644 index 3902c8ec..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/ThemeConfigurator.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// ThemeConfigurator.h -// TXLiteAVDemo -// -// Created by cui on 2019/12/24. -// Copyright © 2019 Tencent. All rights reserved. -// - -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface ThemeConfigurator : NSObject -+ (void)configBeautyPanelTheme:(TCBeautyPanel *)panel; -@end - -NS_ASSUME_NONNULL_END diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/ThemeConfigurator.m b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/ThemeConfigurator.m deleted file mode 100644 index 22435256..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushCommon/ThemeConfigurator.m +++ /dev/null @@ -1,24 +0,0 @@ -// -// ThemeConfigurator.m -// TXLiteAVDemo -// -// Created by cui on 2019/12/24. -// Copyright © 2019 Tencent. All rights reserved. -// - -#import "ThemeConfigurator.h" - -@implementation ThemeConfigurator -+ (void)configBeautyPanelTheme:(TCBeautyPanel *)panel -{ - TCBeautyPanelTheme *theme = [[TCBeautyPanelTheme alloc] init]; - theme.beautyPanelSelectionColor = [UIColor colorWithRed:0 - green:109/255.0 - blue:1.0 - alpha:1.0]; - theme.sliderValueColor = theme.beautyPanelSelectionColor; - theme.beautyPanelMenuSelectionBackgroundImage = [UIImage imageNamed:@"beautyPanelMenuSelectionBackgroundImage"]; - theme.sliderThumbImage = [UIImage imageNamed:@"slider"]; - panel.theme = theme; -} -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushResource/bgm_demo.mp3 b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushResource/bgm_demo.mp3 deleted file mode 100644 index eb7db077..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/LivePushResource/bgm_demo.mp3 and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/ScreenPushDemo/ScreenPushViewController.h b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/ScreenPushDemo/ScreenPushViewController.h deleted file mode 100644 index 3a105bf0..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/ScreenPushDemo/ScreenPushViewController.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// ScreenPushViewController.h -// TXLiteAVDemo -// -// Created by rushanting on 2018/5/24. -// Copyright © 2018年 Tencent. All rights reserved. -// - -#import - -@interface ScreenPushViewController : UIViewController - -@end diff --git a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/ScreenPushDemo/ScreenPushViewController.m b/iOS/Demo/TXLiteAVDemo/LivePusherDemo/ScreenPushDemo/ScreenPushViewController.m deleted file mode 100644 index 504cb248..00000000 --- a/iOS/Demo/TXLiteAVDemo/LivePusherDemo/ScreenPushDemo/ScreenPushViewController.m +++ /dev/null @@ -1,535 +0,0 @@ -// -// ScreenPushViewController.m -// TXLiteAVDemo -// -// Created by rushanting on 2018/5/24. -// Copyright © 2018年 Tencent. All rights reserved. -// - -#import "ScreenPushViewController.h" -#import "UIView+Additions.h" -#import "MBProgressHUD.h" -#import "TCHttpUtil.h" -#import -#import "ScanQRController.h" -#import "ReplayKit2Define.h" -#ifndef DISABLE_VOD -#import "TXVodPlayer.h" -#endif -#import "V2TXLivePusher.h" -#import "AddressBarController.h" -#import "AppDelegate.h" -#import "AppLocalized.h" -#import "NSString+Common.h" -#import - -@interface ScreenPushViewController () -@property (nonatomic, retain) UISegmentedControl* rotateSelector; -@property (nonatomic, retain) UISegmentedControl* resolutionSelector; -@property (nonatomic, retain) UIButton* btnReplaykit; -@property (nonatomic, copy) NSString *playFlvUrl; -@property (nonatomic, retain) UIView* playerView; -@property (nonatomic, strong) V2TXLivePusher *livePusher; -#ifndef DISABLE_VOD -@property (nonatomic, retain) TXVodPlayer* vodPlayer; -#endif -@property (nonatomic, retain) UIButton* playBtn; -@property (nonatomic, retain) UIButton* fullScreenBtn; -@property (nonatomic, strong) AddressBarController *addressBarController; - -@end - -@implementation ScreenPushViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onReplayKit2RecordStop:) name:kCocoaNotificationNameReplayKit2Stop object:nil]; - [self initUI]; - [self startMonitoringNetwork]; -} - -- (void)dealloc -{ - [self stopMonitoringNetwork]; - [self.livePusher stopPush]; -#ifndef DISABLE_VOD - [_vodPlayer stopPlay]; -#endif - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -- (void)viewWillAppear:(BOOL)animated -{ - [super viewWillAppear:animated]; - [self.navigationController setNavigationBarHidden:NO animated:NO]; -} - -- (void)viewWillDisappear:(BOOL)animated -{ - [super viewWillDisappear:animated]; - [self.navigationController setNavigationBarHidden:YES animated:NO]; -} - -/// 检查网络 -- (void)startMonitoringNetwork { - [[AFNetworkReachabilityManager sharedManager] startMonitoring]; - __weak __typeof(self) weakSelf = self; - [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { - __strong typeof(weakSelf) strongSelf = weakSelf; - if (status == AFNetworkReachabilityStatusNotReachable) { - UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomNew.prompt") message:LivePlayerLocalize(@"LiveLinkMicDemoOld.Live.LinkMicNew.checknetworkandtry") preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction *action = [UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.determine") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - if (![strongSelf.btnReplaykit.currentTitle isEqualToString:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.startpushstream")]) { - [self.livePusher stopPush]; - [strongSelf.btnReplaykit setTitle:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.startpushstream") forState:UIControlStateNormal]; - } - }]; - [alertVC addAction:action]; - [strongSelf presentViewController:alertVC animated:true completion:nil]; - } - }]; -} - -- (void)stopMonitoringNetwork { - [[AFNetworkReachabilityManager sharedManager] stopMonitoring]; -} - - -- (void)initUI -{ - //主界面排版 - self.title = LivePlayerLocalize(@"LivePusherDemo.ScreenPush.recordthelivescreen"); - - // self.view.backgroundColor = UIColor.blackColor; - [self.view setBackgroundImage:[UIImage imageNamed:@"background.jpg"]]; - - HelpBtnUI(录屏直播) - - _addressBarController = [[AddressBarController alloc] initWithButtonOption:AddressBarButtonOptionNew | AddressBarButtonOptionQRScan]; - _addressBarController.qrPresentView = self.view; - CGSize size = [[UIScreen mainScreen] bounds].size; - int ICON_SIZE = (int) (size.width / 8); - CGFloat topOffset = [UIApplication sharedApplication].statusBarFrame.size.height; - topOffset += self.navigationController.navigationBar.height+5; - _addressBarController.view.frame = CGRectMake(10, topOffset, self.view.width-20, ICON_SIZE); - - NSDictionary *dic = @{NSForegroundColorAttributeName:[UIColor blackColor], NSFontAttributeName:[UIFont systemFontOfSize:[NSString isCurrentLanguageEnglish] ? 11 : 15]}; - _addressBarController.view.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.scantheqrcodeorclick") attributes:dic]; - _addressBarController.delegate = self; - [self.view addSubview:_addressBarController.view]; - - NSArray* rotations = @[LivePlayerLocalize(@"LivePusherDemo.ScreenPush.verticalscreen"),LivePlayerLocalize(@"LivePusherDemo.ScreenPush.landscape")]; - self.rotateSelector = [[UISegmentedControl alloc] initWithItems:rotations]; - self.rotateSelector.center = CGPointMake(self.view.center.x, _addressBarController.view.bottom + 60); - self.rotateSelector.bounds = CGRectMake(0, 0, self.view.width - 100, 40); - self.rotateSelector.tintColor = UIColor.whiteColor; - self.rotateSelector.backgroundColor = [UIColor.whiteColor colorWithAlphaComponent:0.5]; - self.rotateSelector.selectedSegmentIndex = 0; - [self.view addSubview:self.rotateSelector]; - [self.rotateSelector addTarget:self action:@selector(onSwitchRotation:) forControlEvents:UIControlEventValueChanged]; - - NSArray* resolutions = @[LivePlayerLocalize(@"LivePusherDemo.PushSetting.superclear"), LivePlayerLocalize(@"LivePusherDemo.PushSetting.hd"), LivePlayerLocalize(@"LivePusherDemo.PushSetting.standarddefinition")]; - self.resolutionSelector = [[UISegmentedControl alloc] initWithItems:resolutions]; - self.resolutionSelector.center = CGPointMake(self.view.center.x, self.rotateSelector.bottom + 50); - self.resolutionSelector.bounds = CGRectMake(0, 0, self.view.width - 100, 40); - self.resolutionSelector.tintColor = UIColor.whiteColor; - self.resolutionSelector.backgroundColor = [UIColor.whiteColor colorWithAlphaComponent:0.5]; - self.resolutionSelector.selectedSegmentIndex = 0; - [self.resolutionSelector addTarget:self action:@selector(onSwitchresolution:) forControlEvents:UIControlEventValueChanged]; - - [self.view addSubview:self.resolutionSelector]; - - self.btnReplaykit = [UIButton buttonWithType:UIButtonTypeCustom]; - self.btnReplaykit.center = CGPointMake(self.view.center.x, self.resolutionSelector.bottom + 60); - self.btnReplaykit.bounds = CGRectMake(0, 0, 100, 50); - self.btnReplaykit.backgroundColor = UIColor.lightTextColor; - self.btnReplaykit.layer.cornerRadius = 5; - [self.btnReplaykit setTitle:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.startpushstream") forState:UIControlStateNormal]; - [self.btnReplaykit addTarget:self action:@selector(clickStartReplaykit:) forControlEvents:UIControlEventTouchUpInside]; - [self.view addSubview:self.btnReplaykit]; - - UILabel* labelTipTitle = [[UILabel alloc] initWithFrame:CGRectMake(10, self.btnReplaykit.bottom + 20, 200, 15)]; - labelTipTitle.textAlignment = NSTextAlignmentLeft; - labelTipTitle.text = LivePlayerLocalize(@"LivePusherDemo.ScreenPush.instructionsforscreenrecording"); - labelTipTitle.textColor = UIColor.whiteColor; - [labelTipTitle sizeToFit]; - [self.view addSubview:labelTipTitle]; - UILabel* labelTip = [[UILabel alloc] initWithFrame:CGRectMake(10, labelTipTitle.bottom - 12 , self.view.width - self.rotateSelector.left - 20, 100)]; - labelTip.numberOfLines = 3; - labelTip.textAlignment = NSTextAlignmentLeft; - labelTip.textColor = UIColor.whiteColor; - labelTip.font = [UIFont systemFontOfSize:14]; - labelTip.text = LivePlayerLocalize(@"LivePusherDemo.ScreenPush.gotothecontrolcenterandlongpressthestartscreen"); - NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelTip.text]; - NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; - [paragraphStyle setLineSpacing:6.f];//设置行间距 - [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, labelTip.text.length)]; - labelTip.attributedText = attributedString; - [self.view addSubview:labelTip]; - - _playerView = [UIView new]; - _playerView.bounds = CGRectMake(0, 0, self.view.width, self.view.width * 9 / 16); - _playerView.center = CGPointMake(self.view.center.x, self.view.bottom - self.view.width * 9 / 16 / 2); - [self.view addSubview:_playerView]; - - _playBtn = [UIButton buttonWithType:UIButtonTypeCustom]; - [_playBtn setImage:[UIImage imageNamed:@"start"] forState:UIControlStateNormal]; - [_playBtn addTarget:self action:@selector(onPlayBtnClicked:) forControlEvents:UIControlEventTouchUpInside]; - _playBtn.center = CGPointMake(_playerView.width / 2, _playerView.height / 2); - _playBtn.bounds = CGRectMake(0, 0, 40, 40); - [_playerView addSubview:_playBtn]; - - _fullScreenBtn = [UIButton buttonWithType:UIButtonTypeCustom]; - [_fullScreenBtn setImage:[UIImage imageNamed:@"player_fullscreen"] forState:UIControlStateNormal]; - _fullScreenBtn.frame = CGRectMake(_playerView.width - 40, _playerView.height - 40, 40, 40); - [_fullScreenBtn addTarget:self action:@selector(onFullScreenClicked:) forControlEvents:UIControlEventTouchUpInside]; - [_playerView addSubview:_fullScreenBtn]; -#ifndef DISABLE_VOD - - //播放演示视频 - _vodPlayer = [TXVodPlayer new]; - [_vodPlayer setIsAutoPlay:YES]; - [_vodPlayer setupVideoWidget:_playerView insertIndex:0]; - [_vodPlayer setAudioPlayoutVolume:0]; - [_vodPlayer setMute:YES]; - [_vodPlayer startPlay:@"http://1252463788.vod2.myqcloud.com/95576ef5vodtransgzp1252463788/1bfa444e7447398156520498412/v.f30.mp4"]; - _vodPlayer.vodDelegate = self; -#endif -} - -- (void)viewDidAppear:(BOOL)animated -{ - [super viewDidAppear:animated]; -} - -- (void)onPlayBtnClicked:(UIButton*)button -{ -#ifndef DISABLE_VOD - - if (_vodPlayer.isPlaying) { - [_playBtn setImage:[UIImage imageNamed:@"start"] forState:UIControlStateNormal]; - [_vodPlayer pause]; - } - else { - [_playBtn setImage:[UIImage imageNamed:@"suspend"] forState:UIControlStateNormal]; - [_vodPlayer resume]; - } -#endif - -} - -- (void)onFullScreenClicked:(UIButton*)button -{ -#ifndef DISABLE_VOD - - if (_playerView.height != self.view.height) { - _playerView.frame = self.view.bounds; - [_vodPlayer setRenderRotation:HOME_ORIENTATION_RIGHT]; - _playBtn.center = self.view.center; - _fullScreenBtn.frame = CGRectMake(_playerView.width - 40, _playerView.height - 40, 40, 40); - _playBtn.transform = CGAffineTransformMakeRotation(M_PI / 2); - } - else { - _playerView.bounds = CGRectMake(0, 0, self.view.width, self.view.width * 9 / 16); - _playerView.center = CGPointMake(self.view.center.x, self.view.bottom - self.view.width * 9 / 16 / 2); - _fullScreenBtn.frame = CGRectMake(_playerView.width - 40, _playerView.height - 40, 40, 40); - _playBtn.center = CGPointMake(_playerView.width / 2, _playerView.height / 2); - _playBtn.bounds = CGRectMake(0, 0, 40, 40); - _playBtn.transform = CGAffineTransformIdentity; - [_vodPlayer setRenderRotation:HOME_ORIENTATION_DOWN]; - } -#endif - -} - -- (void)addressBarControllerTapScanQR:(AddressBarController *)controller { - - ScanQRController *vc = [[ScanQRController alloc] init]; - vc.delegate = self; - [self.navigationController pushViewController:vc animated:NO]; -} - -- (void)addressBarControllerTapCreateURL:(AddressBarController *)controller -{ - - MBProgressHUD* hub = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; - hub.mode = MBProgressHUDModeIndeterminate; - hub.label.text = LivePlayerLocalize(@"LivePusherDemo.ScreenPush.addressinprocess"); - [hub showAnimated:YES]; - __weak ScreenPushViewController* weakSelf = self; - [TCHttpUtil asyncSendHttpRequest:@"get_test_pushurl" httpServerAddr:kHttpServerAddr HTTPMethod:@"GET" param:nil handler:^(int result, NSDictionary *resultDict) { - if (result != 0) - { - dispatch_async(dispatch_get_main_queue(), ^{ - hub.mode = MBProgressHUDModeText; - hub.label.text = LivePlayerLocalize(@"LivePusherDemo.ScreenPush.failedtogetpushstreamaddress"); - [hub showAnimated:YES]; - [hub hideAnimated:YES afterDelay:2]; - }); - } - else - { - NSString* pusherUrl = nil; - NSString* rtmpPlayUrl = nil; - NSString* flvPlayUrl = nil; - NSString* hlsPlayUrl = nil; - NSString* accPlayUrl = nil; - if (resultDict) - { - pusherUrl = resultDict[@"url_push"]; - rtmpPlayUrl = resultDict[@"url_play_rtmp"]; - flvPlayUrl = resultDict[@"url_play_flv"]; - hlsPlayUrl = resultDict[@"url_play_hls"]; - accPlayUrl = resultDict[@"url_play_acc"]; - } - controller.text = pusherUrl; - NSString *(^c)(NSString *x, NSString *y) = ^(NSString *x, NSString *y) { - return [NSString stringWithFormat:@"%@,%@", x, y]; - }; - controller.qrStrings = @[c(@"rtmp", rtmpPlayUrl), - c(@"flv", flvPlayUrl), - c(@"hls", hlsPlayUrl), - c(LivePlayerLocalize(@"LivePusherDemo.CameraPush.lowlatency"), accPlayUrl)]; - - NSString* playUrls = LocalizeReplaceFourCharacter(LivePlayerLocalize(@"LivePusherDemo.CameraPush.rtmpaddressxxflvaddressyyhlsaddresszz"), [NSString stringWithFormat:@"%@",rtmpPlayUrl], [NSString stringWithFormat:@"%@",flvPlayUrl], [NSString stringWithFormat:@"%@",hlsPlayUrl], [NSString stringWithFormat:@"%@",accPlayUrl]); - UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; - pasteboard.string = playUrls; - weakSelf.playFlvUrl = flvPlayUrl; - dispatch_async(dispatch_get_main_queue(), ^{ - hub.mode = MBProgressHUDModeText; - hub.label.text = LivePlayerLocalize(@"LivePusherDemo.CameraPush.getaddresssuccess"); - hub.detailsLabel.text = LivePlayerLocalize(@"LivePusherDemo.CameraPush.playbackaddresshasbeencopiedtotheclipboard"); - [hub showAnimated:YES]; - [hub hideAnimated:YES afterDelay:2]; - }); - } - }]; -} - -- (void)clickStartReplaykit:(UIButton*)btn -{ - if ([UIDevice currentDevice].systemVersion.floatValue < 11.0) { - UIAlertController* alert = [UIAlertController alertControllerWithTitle:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.tencentcloudpushstream") message:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.systempleaseupgrade") preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction* action1 = [UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.determine") style:UIAlertActionStyleDefault handler:nil]; - [alert addAction:action1]; - [self presentViewController:alert animated:YES completion:nil]; - return; - } - - if (self.addressBarController.text.length < 1) { - NSString* message = LivePlayerLocalize(@"LivePusherDemo.ScreenPush.enterpushaddress"); - UIAlertController* alert = [UIAlertController alertControllerWithTitle:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.tencentcloudpushstream") message:message preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction* action1 = [UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.determine") style:UIAlertActionStyleDefault handler:nil]; - [alert addAction:action1]; - [self presentViewController:alert animated:YES completion:nil]; - return; - } - - NSString* btntitle = btn.currentTitle; - BOOL isStart = [btntitle isEqualToString:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.startpushstream")]; - - if (isStart) { - BOOL isCaptured = NO; - if (@available(iOS 11, *)) { - isCaptured = [UIScreen mainScreen].isCaptured; - } - if (!isCaptured) { - NSString* message = LivePlayerLocalize(@"LivePusherDemo.ScreenPush.gotothecontrolcenter"); - - UIAlertController* alert = [UIAlertController alertControllerWithTitle:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.tencentcloudpushstream") message:message preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction* action1 = [UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.determine") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - }]; - UIAlertAction* action2 = [UIAlertAction actionWithTitle:LivePlayerLocalize(@"LivePusherDemo.PushSetting.cancel") style:UIAlertActionStyleDefault handler:nil]; - [alert addAction:action1]; - [alert addAction:action2]; - [self presentViewController:alert animated:YES completion:nil]; - return; - } - else { - UIAlertController* alert = [UIAlertController alertControllerWithTitle:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.tencentcloudpushstream") message:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.turnonscreenrecordingpushstreams") preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction* action1 = [UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.determine") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - V2TXLiveMode mode = V2TXLiveMode_RTMP; - if ([self.addressBarController.text.lowercaseString hasPrefix:@"trtc://"]) { - mode = V2TXLiveMode_RTC; - } - self.livePusher = [[V2TXLivePusher alloc] initWithLiveMode:mode]; - [self.livePusher setObserver:self]; - if (@available(iOS 11.0, *)) { - [self.livePusher startScreenCapture:kReplayKit2AppGroupId]; - } - [self refreshResolutionAndRotation]; - [[self.livePusher getDeviceManager] setSystemVolumeType:TXSystemVolumeTypeMedia]; - [self.livePusher startMicrophone]; - [self.livePusher startPush:self.addressBarController.text]; - [btn setTitle:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.pushoverflow") forState:UIControlStateNormal]; - }]; - UIAlertAction *action2 = [UIAlertAction actionWithTitle:LivePlayerLocalize(@"LivePusherDemo.PushSetting.cancel") style:UIAlertActionStyleDefault handler:nil]; - - [alert addAction:action1]; - [alert addAction:action2]; - [self presentViewController:alert animated:YES completion:nil]; - } - } - else { - UIAlertController* alert = [UIAlertController alertControllerWithTitle:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.tencentcloudpushstream") message:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.closescreenpushstream") preferredStyle:UIAlertControllerStyleAlert]; - UIAlertAction* action1 = [UIAlertAction actionWithTitle:LivePlayerLocalize(@"LiveLinkMicDemoOld.RoomList.determine") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - [self.livePusher stopPush]; - [btn setTitle:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.startpushstream") forState:UIControlStateNormal]; - }]; - UIAlertAction *action2 = [UIAlertAction actionWithTitle:LivePlayerLocalize(@"LivePusherDemo.PushSetting.cancel") style:UIAlertActionStyleDefault handler:nil]; - - [alert addAction:action1]; - [alert addAction:action2]; - [self presentViewController:alert animated:YES completion:nil]; - } -} - - -- (void)onReplayKit2RecordStop:(NSNotification*)noti -{ - [_btnReplaykit setTitle:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.startpushstream") forState:UIControlStateNormal]; -} - -- (void)onSwitchRotation:(UISegmentedControl*)segment -{ - [self refreshResolutionAndRotation]; -} - -- (void)onSwitchresolution:(UISegmentedControl*)segment -{ - [self refreshResolutionAndRotation]; -} - -- (void)refreshResolutionAndRotation -{ - V2TXLiveVideoResolution resolution = V2TXLiveVideoResolution960x540; - if (2 == self.resolutionSelector.selectedSegmentIndex) { - resolution = V2TXLiveVideoResolution640x360; - } else if (1 == self.resolutionSelector.selectedSegmentIndex) { - resolution = V2TXLiveVideoResolution960x540; - } else { - resolution = V2TXLiveVideoResolution1280x720; - } - V2TXLiveVideoResolutionMode resMode = V2TXLiveVideoResolutionModePortrait; - if (self.rotateSelector.selectedSegmentIndex) { - resMode = V2TXLiveVideoResolutionModeLandscape; - } - [self.livePusher setVideoQuality:resolution resolutionMode:resMode]; -} - -#ifndef DISABLE_VOD -#pragma mark - VodDelegate -- (void) onPlayEvent:(TXVodPlayer *)player event:(int)EvtID withParam:(NSDictionary*)param -{ - if (EvtID == PLAY_EVT_PLAY_END) { - [_playBtn setImage:[UIImage imageNamed:@"start"] forState:UIControlStateNormal]; - [_vodPlayer pause]; - } - else if (EvtID == PLAY_EVT_RCV_FIRST_I_FRAME) { - [_vodPlayer pause]; - [_vodPlayer setMute:NO]; - } -} - --(void) onNetStatus:(TXVodPlayer *)player withParam:(NSDictionary*)param { -} -#endif - -#pragma mark -- V2TXLivePusherObserver -- (void)onError:(V2TXLiveCode)code - message:(NSString *)msg - extraInfo:(NSDictionary *)extraInfo { - if (code == V2TXLIVE_ERROR_REQUEST_TIMEOUT) { - dispatch_async(dispatch_get_main_queue(), ^{ - [self onScreenCaptureStoped:0]; - }); - } -} - -- (void)onPushStatusUpdate:(V2TXLivePushStatus)status message:(NSString *)msg extraInfo:(NSDictionary *)extraInfo { - if (status == V2TXLivePushStatusDisconnected) { - dispatch_async(dispatch_get_main_queue(), ^{ - [self onScreenCaptureStoped:0]; - }); - } -} - -#pragma mark - ScanQRDelegate -- (void)onScanResult:(NSString *)result { - self.addressBarController.text = result; -} - -#pragma mark - tool func -- (NSString *)dictionary2JsonString:(NSDictionary *)dict -{ - // 转成Json数据 - if ([NSJSONSerialization isValidJSONObject:dict]) - { - NSError *error = nil; - NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error]; - if(error) - { - NSLog(@"[%@] Post Json Error", [self class]); - } - NSString* jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; - return jsonString; - } - else - { - NSLog(@"[%@] Post Json is not valid", [self class]); - } - return nil; -} - -#pragma mark - TXLivePushListener -- (void)onPushEvent:(int)EvtID withParam:(NSDictionary *)param { - NSLog(@"onPushEvent %d", EvtID); -} - -- (void)onNetStatus:(NSDictionary *)param { -} - -- (void)onScreenCaptureStarted { -} - -- (void)onScreenCapturePaused:(int)reason { -} - -- (void)onScreenCaptureResumed:(int)reason { -} - -- (void)onScreenCaptureStoped:(int)reason { - [self.livePusher stopPush]; - [_btnReplaykit setTitle:LivePlayerLocalize(@"LivePusherDemo.ScreenPush.startpushstream") forState:UIControlStateNormal]; -} - -#pragma mark - localNotification -- (void)sendLocalNotificationToHostAppWithTitle:(NSString*)title msg:(NSString*)msg userInfo:(NSDictionary*)userInfo -{ - UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter]; - - UNMutableNotificationContent* content = [[UNMutableNotificationContent alloc] init]; - content.title = [NSString localizedUserNotificationStringForKey:title arguments:nil]; - content.body = [NSString localizedUserNotificationStringForKey:msg arguments:nil]; - content.sound = [UNNotificationSound defaultSound]; - content.userInfo = userInfo; - - // 在 设定时间 后推送本地推送 - UNTimeIntervalNotificationTrigger* trigger = [UNTimeIntervalNotificationTrigger - triggerWithTimeInterval:0.1f repeats:NO]; - - UNNotificationRequest* request = [UNNotificationRequest requestWithIdentifier:@"ReplayKit2Demo" - content:content trigger:trigger]; - - //添加推送成功后的处理! - [center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) { - - }]; -} - - -@end diff --git a/iOS/Demo/TXLiteAVDemo/Login/AppUtils.swift b/iOS/Demo/TXLiteAVDemo/Login/AppUtils.swift deleted file mode 100644 index 46376fdf..00000000 --- a/iOS/Demo/TXLiteAVDemo/Login/AppUtils.swift +++ /dev/null @@ -1,51 +0,0 @@ -// -// appUtil.swift -// trtcScenesDemo -// -// Created by xcoderliu on 12/24/19. -// Copyright © 2019 xcoderliu. All rights reserved. -// -// 用于TRTC_SceneDemo - -import Foundation - -//推送证书 ID -#if DEBUG - let timSdkBusiId: UInt32 = 18069 -#else - let timSdkBusiId: UInt32 = 18070 -#endif - -class AppUtils: NSObject { - @objc public static let shared = AppUtils() - private override init() {} - - @objc var appDelegate: AppDelegate { - return UIApplication.shared.delegate as! AppDelegate - } - - @objc var curUserId: String { - get { - #if NOT_LOGIN - return "" - #else - return TIMManager.sharedInstance()?.getLoginUser() ?? "" - #endif - } - } - - //MARK: - UI - - @objc func showMainController() { - appDelegate.showPortalConroller() - } - - @objc func showLoginController() { - appDelegate.showLoginController() - } - - @objc func alertUserTips(_ vc: UIViewController) { - // 提醒用户不要用Demo App来做违法的事情 - // 外发代码不需要提示 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/Login/CommonUtils.swift b/iOS/Demo/TXLiteAVDemo/Login/CommonUtils.swift deleted file mode 100644 index bf4d6e16..00000000 --- a/iOS/Demo/TXLiteAVDemo/Login/CommonUtils.swift +++ /dev/null @@ -1,113 +0,0 @@ -// -// CommonUtils.swift -// trtcScenesDemo -// -// Created by xcoderliu on 12/19/19. -// Copyright © 2019 xcoderliu. All rights reserved. -// - -import Foundation - -extension UIStackView { - - func safelyRemoveArrangedSubviews() { - - // Remove all the arranged subviews and save them to an array - let removedSubviews = arrangedSubviews.reduce([]) { (sum, next) -> [UIView] in - self.removeArrangedSubview(next) - return sum + [next] - } - - // Deactive all constraints at once - NSLayoutConstraint.deactivate(removedSubviews.flatMap({ $0.constraints })) - - // Remove the views from self - removedSubviews.forEach({ $0.removeFromSuperview() }) - } -} - -extension UIColor { - - @objc static var appTint: UIColor { - return UIColor(hex: "#00A66B") ?? UIColor(red: 54.0 / 255.0, green: 134.0 / 255.0, blue: 246.0 / 255.0, alpha: 1.0) - } - - @objc static var searchBarBackColor: UIColor { - return UIColor(hex: "#0D2C5B") ?? UIColor(red: 13.0 / 255.0, green: 44.0 / 255.0, blue: 91.0 / 255.0, alpha: 1.0) - } - - @objc static var placeholderBackColor: UIColor { - return UIColor(hex: "#6B82A8") ?? UIColor(red: 107.0 / 255.0, green: 130.0 / 255.0, blue: 168.0 / 255.0, alpha: 1.0) - } - - @objc static var pannelBackColor: UIColor { - return UIColor(hex: "#13233F") ?? UIColor(red: 19.0 / 255.0, green: 35.0 / 255.0, blue: 63.0 / 255.0, alpha: 1.0) - } - - @objc static var buttonBackColor: UIColor { - return UIColor(hex: "#0062E3") ?? UIColor(red: 0.12, green: 0.23, blue: 0.4, alpha: 1.0) - } - - @objc static var verifyCodeBackColor: UIColor { - return UIColor(hex: "#006EFD") ?? UIColor(red: 0.0, green: 110.0 / 255.0, blue: 253.0 / 255.0, alpha: 1.0) - } - - @objc static var appBackGround: UIColor { - return UIColor(hex: "#242424") ?? .black - } - - @objc static var inputImageBackColor: UIColor { - return UIColor(hex: "#092650") ?? UIColor(red: 9.0 / 255.0, green: 38.0 / 255.0, blue: 80.0 / 255.0, alpha: 1.0) - } - - // MARK: - Initialization - @objc convenience init?(hex: String) { - var hexSanitized = hex.trimmingCharacters(in: .whitespacesAndNewlines) - hexSanitized = hexSanitized.replacingOccurrences(of: "#", with: "") - var rgb: UInt64 = 0 - var r: CGFloat = 0.0 - var g: CGFloat = 0.0 - var b: CGFloat = 0.0 - var a: CGFloat = 1.0 - let length = hexSanitized.count - guard Scanner(string: hexSanitized).scanHexInt64(&rgb) else { return nil } - if length == 6 { - r = CGFloat((rgb & 0xFF0000) >> 16) / 255.0 - g = CGFloat((rgb & 0x00FF00) >> 8) / 255.0 - b = CGFloat(rgb & 0x0000FF) / 255.0 - - } else if length == 8 { - r = CGFloat((rgb & 0xFF000000) >> 24) / 255.0 - g = CGFloat((rgb & 0x00FF0000) >> 16) / 255.0 - b = CGFloat((rgb & 0x0000FF00) >> 8) / 255.0 - a = CGFloat(rgb & 0x000000FF) / 255.0 - - } else { - return nil - } - self.init(red: r, green: g, blue: b, alpha: a) - } -} - -extension Dictionary { - func toJsonString() -> String { - if let json = try? JSONSerialization.data(withJSONObject: self, options: []), - let jsonStr = String(data: json, encoding: .utf8) - { - return jsonStr - } - fatalError() - } -} - -extension String { - func toJson() -> [String: Any]? { - if let infoData = data(using: .utf8), - let dict = try? JSONSerialization.jsonObject(with: infoData, options: []) as? [String: Any] - { - return dict - } - return nil - } -} - diff --git a/iOS/Demo/TXLiteAVDemo/Login/LoginViewController+UI_Mock.swift b/iOS/Demo/TXLiteAVDemo/Login/LoginViewController+UI_Mock.swift deleted file mode 100644 index 4142c627..00000000 --- a/iOS/Demo/TXLiteAVDemo/Login/LoginViewController+UI_Mock.swift +++ /dev/null @@ -1,184 +0,0 @@ -// -// LoginViewController+UI.swift -// trtcScenesDemo -// -// Created by xcoderliu on 12/16/19. -// Copyright © 2019 xcoderliu. All rights reserved. -// - -import UIKit -import RxSwift -import RxCocoa -import SnapKit -import Material -import Toast_Swift - -extension LoginViewController { - - /// 绘制UI - func setupUI() { - ToastManager.shared.position = .center - navigationController?.setNavigationBarHidden(true, animated: false) - view.backgroundColor = .appBackGround - - view.addSubview(loading) - loading.snp.makeConstraints { (make) in - make.width.height.equalTo(40) - make.centerX.centerY.equalTo(view) - } - - view.addSubview(trtcTitle) - trtcTitle.snp.makeConstraints { (make) in - make.leading.equalTo(32) - make.top.equalTo(100) - make.trailing.equalTo(-32) - make.height.equalTo(30) - } - - view.addSubview(phoneTip) - phoneTip.snp.makeConstraints { (make) in - make.leading.equalTo(32) - make.top.equalTo(trtcTitle.snp.bottom).offset(60) - make.trailing.equalTo(-32) - make.height.equalTo(30) - } - - //UserID - let (phoneNumber, numberSignal) = getTextObservable(placeholder: V2Localize("V2.Live.LinkMicNew.enteruserid")) - phoneNumber.keyboardType = .numberPad - phoneNumber.delegate = self - view.addSubview(phoneNumber) - phoneNumber.snp.makeConstraints { (make) in - make.top.equalTo(phoneTip.snp.bottom).offset(2) - make.leading.equalTo(32) - make.trailing.equalTo(-32) - make.height.equalTo(34) - } - - numberSignal.subscribe(onNext: { (text) in - print("phoneNumber:\(String(describing: text))") - }, onError: nil, onCompleted: nil, onDisposed: nil).disposed(by: disposeBag) - numberSignal.bind(to: ProfileManager.shared.phone).disposed(by: disposeBag) - - let phoneValid = numberSignal - .map { - $0.count > 0 - }.share(replay: 1) - - view.addSubview(loginButton) - loginButton.snp.makeConstraints { (make) in - make.top.equalTo(phoneNumber.snp.bottom).offset(28) - make.height.equalTo(46) - make.leading.trailing.equalTo(phoneNumber) - } - - loginButton.rx.controlEvent(.touchUpInside).subscribe(onNext: { [weak self, weak phoneNumber] in - guard let self = self else {return} - self.loading.startAnimating() - - ProfileManager.shared.login(success: { - if ProfileManager.shared.curUserModel?.name.count == 0 { - self.showProfileVC() - } else { - self.loading.stopAnimating() - self.view.makeToast(V2Localize("V2.Live.LinkMicNew.loginsuccess")) - DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { - //show main vc - AppUtils.shared.showMainController() - } - } - }, failed: { err in - self.loading.stopAnimating() - self.view.makeToast(err) - }) - guard let phoneNumber = phoneNumber else {return} - phoneNumber.resignFirstResponder() - }, onError: nil, onCompleted: nil, onDisposed: nil).disposed(by: disposeBag) - - phoneValid.bind(to: loginButton.rx.isEnabled).disposed(by: disposeBag) - phoneValid.subscribe(onNext: { [weak button=loginButton](enabled) in - button?.alpha = enabled ? 1 : 0.8 - button?.isEnabled = enabled - }, onError: nil, onCompleted: nil, onDisposed: nil).disposed(by: disposeBag) - - view.addSubview(bottomTip) - bottomTip.snp.makeConstraints { (make) in - make.bottomMargin.equalTo(view).offset(-12) - make.leading.trailing.equalTo(view) - make.height.equalTo(30) - } - - view.addSubview(versionTip) - versionTip.snp.makeConstraints { (make) in - make.bottom.equalTo(bottomTip.snp.top).offset(-2) - make.height.equalTo(12) - make.leading.trailing.equalTo(view) - } - - /// auto login - if ProfileManager.shared.autoLogin(success: { [weak self] in - guard let self = self else {return} - if ProfileManager.shared.curUserModel?.name.count == 0 { - self.showProfileVC() - } else { - self.loading.stopAnimating() - self.view.makeToast(V2Localize("V2.Live.LinkMicNew.loginsuccess")) - DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { - //show main vc - AppUtils.shared.showMainController() - } - } - }, failed: { [weak self] (err) in - guard let self = self else {return} - self.loading.stopAnimating() - self.view.makeToast(err) - }) { - loading.startAnimating() - phoneNumber.text = ProfileManager.shared.curUserModel?.phone ?? "" - } - - // tap to resign - let tap = UITapGestureRecognizer.init() - tap.rx.event.subscribe(onNext: { [weak phoneNumber] _ in - guard let phoneNumber = phoneNumber else {return} - phoneNumber.resignFirstResponder() - }, onError: nil, onCompleted: nil, onDisposed: nil).disposed(by: disposeBag) - view.addGestureRecognizer(tap) - } - - //MARK: - inner functionnd - func getTextObservable( placeholder:String = "🐉" ) -> (TextField, ControlProperty) { - let edit = TextField() - edit.textColor = .white - edit.dividerThickness = 0.2 - edit.dividerNormalColor = .white - edit.dividerActiveColor = .appTint - edit.placeholderNormalColor = UIColor(red: 209.0 / 255.0, green: 209.0 / 255.0, blue: 209.0 / 255.0, alpha: 1.0) - edit.placeholderActiveColor = UIColor(red: 209.0 / 255.0, green: 209.0 / 255.0, blue: 209.0 / 255.0, alpha: 1.0) - edit.placeholderLabel.font = Font.boldSystemFont(ofSize: 14) - view.addSubview(edit) - edit.placeholder = placeholder - edit.placeholderAnimation = .hidden - return (edit, edit.rx.text.orEmpty) - } - - func showProfileVC() { - let profileVC = ProfileViewController.init() - navigationController?.pushViewController(profileVC, animated: true) - } -} - -//MARK: - UITextFieldDelegate - -extension LoginViewController: UITextFieldDelegate { - func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { - let maxCount = 11 - guard let textFieldText = textField.text, - let rangeOfTextToReplace = Range(range, in: textFieldText) else { - return false - } - let substringToReplace = textFieldText[rangeOfTextToReplace] - let count = textFieldText.count - substringToReplace.count + string.count - return count <= maxCount - } -} diff --git a/iOS/Demo/TXLiteAVDemo/Login/LoginViewController_Mock.swift b/iOS/Demo/TXLiteAVDemo/Login/LoginViewController_Mock.swift deleted file mode 100644 index 7a268a16..00000000 --- a/iOS/Demo/TXLiteAVDemo/Login/LoginViewController_Mock.swift +++ /dev/null @@ -1,97 +0,0 @@ -// -// LoginViewController.swift -// trtcScenesDemo -// -// Created by xcoderliu on 12/16/19. -// Copyright © 2019 xcoderliu. All rights reserved. -// - -import UIKit -import RxSwift -import NVActivityIndicatorView -import Toast_Swift - -class LoginViewController: UIViewController { - let disposeBag = DisposeBag() - let loading = NVActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 100, height: 60), - type: .ballBeat, - color: .appTint) - - /// verify code countdown time - @objc dynamic var verifyTime: UInt32 = 0 - - - /// trtc title - let trtcTitle: UILabel = { - let title = UILabel() - title.textColor = .appTint - title.font = UIFont.boldSystemFont(ofSize: 30) - title.text = V2Localize("V2.Live.LoginMock.tencentcloudtrtc") - title.textAlignment = .center - return title - }() - - /// 手机号 - let phoneTip: UILabel = { - let tip = UILabel() - tip.text = "UserID" - tip.textColor = .white - tip.font = UIFont.systemFont(ofSize: 16) - return tip - }() - - /// 登录按钮 - lazy var loginButton: UIButton = { - let sign = UIButton() - sign.backgroundColor = .appTint - sign.setTitle(V2Localize("V2.Live.LoginMock.login"), for: .normal) - sign.setTitleColor(.white, for: .normal) - sign.layer.cornerRadius = 4 - return sign - }() - - let versionTip: UILabel = { - let tip = UILabel() - tip.textAlignment = .center - tip.font = UIFont.systemFont(ofSize: 14) - tip.textColor = UIColor(hex: "525252") - let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") - let sdvVersionStr = TXLiveBase.getSDKVersionStr() - tip.text = "\(V2Localize("V2.Live.LoginMock.tencentcloudtrtc")) v\(version)(\(sdvVersionStr))" - tip.adjustsFontSizeToFitWidth = true - return tip - }() - - let bottomTip: UILabel = { - let tip = UILabel() - tip.textAlignment = .center - tip.font = UIFont.systemFont(ofSize: 14) - tip.textColor = UIColor(hex: "525252") - tip.text = V2Localize("This app demonstrates the features of Tencent Video Cloud terminal products.") - tip.adjustsFontSizeToFitWidth = true - return tip - }() - - override func viewDidLoad() { - super.viewDidLoad() - - // Do any additional setup after loading the view. - setupUI() - } - - deinit { - debugPrint("deinit \(self)") - } - - - /* - // MARK: - Navigation - - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. - } - */ - -} diff --git a/iOS/Demo/TXLiteAVDemo/Login/ProfileManager_Mock.swift b/iOS/Demo/TXLiteAVDemo/Login/ProfileManager_Mock.swift deleted file mode 100644 index 65303ff5..00000000 --- a/iOS/Demo/TXLiteAVDemo/Login/ProfileManager_Mock.swift +++ /dev/null @@ -1,333 +0,0 @@ -// -// profileManager.swift -// trtcScenesDemo -// -// Created by xcoderliu on 12/23/19. -// Copyright © 2019 xcoderliu. All rights reserved. -// - -import UIKit -import RxSwift -import RxRelay -import Alamofire - -let loginBaseUrl = "https://xxx.com/release/" - -//LoginModel -@objc class LoginModel: NSObject, Codable { - @objc var errorCode: Int = -1 - @objc var errorMessage: String = "" - var data: LoginResultModel? = nil -} - -@objc class LoginResultModel: NSObject, Codable { - @objc var token: String - @objc var phone: String - @objc var name: String - @objc var avatar: String - @objc var userId: String - @objc var userSig: String = "" - - public init(userID: String) { - userId = userID - token = userID - phone = userID - name = userID - userSig = GenerateTestUserSig.genTestUserSig(userID) - avatar = "https://imgcache.qq.com/qcloud/public/static//avatar1_100.20191230.png" - super.init() - } -} - -@objc class QueryModel: NSObject, Codable { - @objc var errorCode: Int = -1 - @objc var errorMessage: String = "" - var data: UserModel? = nil -} - -@objc class QueryBatchModel: NSObject, Codable { - @objc var errorCode: Int = -1 - @objc var errorMessage: String = "" - var data: [UserModel]? = nil -} - -@objc public class UserModel: NSObject, Codable { - @objc var phone: String? - @objc var name: String - @objc var avatar: String - @objc var userId: String - - public init(userID: String) { - userId = userID - name = userID - avatar = "https://imgcache.qq.com/qcloud/public/static//avatar1_100.20191230.png" - phone = userID - super.init() - } - - func copy() -> UserModel { - let encoder = JSONEncoder() - guard let data = try? encoder.encode(self) else { - fatalError("encode failed") - } - let decoder = JSONDecoder() - guard let target = try? decoder.decode(UserModel.self, from: data) else { - fatalError("decode failed") - } - return target - } - - override public func isEqual(_ object: Any?) -> Bool { - if let user = object as? UserModel { - if user.userId == userId { - return true - } - } - return false - } -} - -//NameModel -@objc class NameModel: NSObject, Codable { - @objc var errorCode: - Int32 = -1 - @objc var errorMessage: String = "" -} - -//VerifyModel -@objc class VerifyModel: NSObject, Codable { - @objc var errorCode: Int32 = -1 - @objc var errorMessage: String = "" - var data: VerifyResultModel? = nil -} - -@objc class VerifyResultModel: NSObject, Codable { - var sessionId: String? = nil - var requestId: String? = nil - var codeStr: String? = nil -} - -@objc public class ProfileManager: NSObject { - @objc public static let shared = ProfileManager() - private override init() {} - - var phone = BehaviorRelay(value: "") - var code = BehaviorRelay(value: "") - var sessionId: String = "" - @objc var curUserModel: LoginResultModel? = nil - - /// 自动登录 - /// - Parameters: - /// - success: 成功回调 - /// - failed: 失败回调 - /// - error: 错误信息 - /// - Returns:是否可以自动登录 - @objc public func autoLogin(success: @escaping ()->Void, - failed: @escaping (_ error: String)->Void) -> Bool { - let tokenKey = "com.tencent.trtcScences.demo" - if let cacheData = UserDefaults.standard.object(forKey: tokenKey) as? Data { - do { - let cacheUser = try JSONDecoder().decode(LoginResultModel.self, from: cacheData) - curUserModel = cacheUser - let fail: (_ error: String)->Void = { err in - failed(err) - UserDefaults.standard.set(nil, forKey: tokenKey) - } - login(success: success, failed: fail, auto: true) - return true - } catch { - print("Retrieve Failed") - return false - } - } - return false - } - - /// 发送验证码 - /// - Parameters: - /// - success: 成功 - /// - failed: 失败 - /// - error: 错误信息 - @objc public func sendVerifyCode(success: @escaping ()->Void, - failed: @escaping (_ error: String)-> Void) { - let verifyCodeUrl = loginBaseUrl + "sms" - let phoneValue = phone.value - assert(phoneValue.count == 11) - let params = ["phone":phoneValue, "method":"getSms"] as [String : Any] - Alamofire.request(verifyCodeUrl, method: .post, parameters: params).responseJSON { [weak self] (data) in - guard let self = self else {return} - if let respData = data.data, respData.count > 0 { - let decoder = JSONDecoder() - guard let result = try? decoder.decode(VerifyModel.self, from: respData) else { - failed("VerifyModel decode failed") - fatalError("VerifyModel decode failed") - } - if result.errorCode == 0 , let sessionID = result.data?.sessionId { - self.sessionId = sessionID - success() - } else { - failed(result.errorMessage) - } - } else { - failed("Send failed, please try again later.") - } - } - } - - /// 登录 - /// - Parameters: - /// - success: 登录成功 - /// - failed: 登录失败 - /// - error: 错误信息 - @objc public func login(success: @escaping ()->Void, - failed: @escaping (_ error: String)->Void , auto: Bool = false) { - let phoneValue = phone.value - if !auto { - assert(phoneValue.count > 0) - curUserModel = LoginResultModel(userID: phone.value) - } - // cache data - let tokenKey = "com.tencent.trtcScences.demo" - do { - let cacheData = try JSONEncoder().encode(curUserModel) - UserDefaults.standard.set(cacheData, forKey: tokenKey) - } catch { - print("Save Failed") - } - success() - } - - /// 设置昵称 - /// - Parameters: - /// - name: 昵称 - /// - success: 成功回调 - /// - failed: 失败回调 - /// - error: 错误信息 - @objc public func setNickName(name: String, success: @escaping ()->Void, - failed: @escaping (_ error: String)->Void) { - let nameUrl = loginBaseUrl + "nickname" - guard let userId = curUserModel?.userId else { - failed("Regist failed, please try again later.") - return - } - guard let token = curUserModel?.token else { - failed("Regist failed, please try again later.") - return - } - let params = ["userId":userId,"name":name,"token":token] as [String : Any] - Alamofire.request(nameUrl, method: .post, parameters: params).responseJSON { (data) in - if let respData = data.data, respData.count > 0 { - let decoder = JSONDecoder() - guard let result = try? decoder.decode(NameModel.self, from: respData) else { - failed("NameModel decode失败") - fatalError("NameModel decode失败") - } - if result.errorCode == 0 { - success() - debugPrint("\(result)") - } else { - debugPrint("\(result.errorMessage)") - if result.errorCode == -1008 { //token失效 返回到登录页面 - failed(result.errorMessage) - } else { - failed(result.errorMessage) - } - } - } else { - failed("Regist failed, please try again later.") - } - } - } - - /// 根据手机号查询用户信息 - /// - Parameters: - /// - phone: 手机号码 - /// - success: 成功回调 - /// - failed: 失败回调 - /// - error: 错误信息 - @objc public func queryUserInfo(phone: String, success: @escaping (UserModel)->Void, - failed: @escaping (_ error: String)->Void) { - if phone.count > 0 { - success(UserModel.init(userID: phone)) - } else { - failed("Wrong userID") - } - } - - /// 查询单个用户信息 - /// - Parameters: - /// - userID: 用户id - /// - success: 成功回调 - /// - failed: 失败回调 - /// - error: 错误信息 - @objc public func queryUserInfo(userID: String, success: @escaping (UserModel)->Void, - failed: @escaping (_ error: String)->Void) { - if userID.count > 0 { - success(UserModel.init(userID: userID)) - } else { - failed("Wrong userID") - } - } - - /// 查询多个用户信息 - /// - Parameters: - /// - userIDs: 用户id列表 - /// - success: 成功回调 - /// - failed: 失败回调 - /// - error : 错误信息 - @objc public func queryUserListInfo(userIDs: [String], success: @escaping ([UserModel])->Void, - failed: @escaping (_ error: String)->Void) { - if userIDs.count > 0 { - var models: [UserModel] = [] - for userID in userIDs { - models.append(UserModel.init(userID: userID)) - } - success(models) - } else { - failed("Null userIDs") - } - } - - /// IM 登录当前用户 - /// - Parameters: - /// - success: 成功 - /// - failed: 失败 - @objc func IMLogin(userSig: String, success: @escaping ()->Void, failed: @escaping (_ error: String)->Void) { - let config = TIMSdkConfig.init() - config.sdkAppId = Int32(SDKAPPID) - config.dbPath = NSHomeDirectory() + "/Documents/com_tencent_imsdk_data/" - TIMManager.sharedInstance()?.initSdk(config) - - guard let userID = curUserModel?.userId else { - failed("userID failed") - return - } - let user = String(userID) - let loginParam = TIMLoginParam.init() - loginParam.identifier = user - loginParam.userSig = userSig - TIMManager.sharedInstance()?.login(loginParam, succ: { - debugPrint("login success") - success() - }, fail: { (code, errorDes) in - failed(errorDes ?? "") - debugPrint("login failed, code:\(code), error: \(errorDes ?? "nil")") - }) - } - - @objc func curUserID() -> String? { - guard let userID = curUserModel?.userId else { - return nil - } - return userID - } - - @objc public func removeLoginCache() { - let tokenKey = "com.tencent.trtcScences.demo" - UserDefaults.standard.set(nil, forKey: tokenKey) - } - - @objc public func curUserSig() -> String { - return curUserModel?.userSig ?? "" - } -} diff --git a/iOS/Demo/TXLiteAVDemo/Login/ProfileViewController+UI.swift b/iOS/Demo/TXLiteAVDemo/Login/ProfileViewController+UI.swift deleted file mode 100644 index 11365a10..00000000 --- a/iOS/Demo/TXLiteAVDemo/Login/ProfileViewController+UI.swift +++ /dev/null @@ -1,135 +0,0 @@ -// -// loginProfileViewController+UI.swift -// trtcScenesDemo -// -// Created by xcoderliu on 1/2/20. -// Copyright © 2020 xcoderliu. All rights reserved. -// - -import Foundation -import Material -import RxSwift -import RxCocoa -import Toast_Swift - -extension ProfileViewController { - func setupUI() { - view.backgroundColor = .appBackGround - - view.addSubview(loading) - loading.snp.makeConstraints { (make) in - make.width.height.equalTo(40) - make.centerX.centerY.equalTo(view) - } - - view.addSubview(trtcTitle) - trtcTitle.snp.makeConstraints { (make) in - make.leading.equalTo(32) - make.top.equalTo(100) - make.trailing.equalTo(-32) - make.height.equalTo(30) - } - - view.addSubview(avatarTip) - avatarTip.snp.makeConstraints { (make) in - make.leading.equalTo(32) - make.top.equalTo(trtcTitle.snp.bottom).offset(40) - make.trailing.equalTo(-32) - make.height.equalTo(30) - } - - view.addSubview(avatarView) - avatarView.snp.makeConstraints { (make) in - make.leading.equalTo(avatarTip) - make.top.equalTo(avatarTip.snp.bottom).offset(4) - make.width.height.equalTo(60) - } - - view.addSubview(userNameTip) - userNameTip.snp.makeConstraints { (make) in - make.leading.equalTo(32) - make.top.equalTo(avatarView.snp.bottom).offset(10) - make.trailing.equalTo(-32) - make.height.equalTo(30) - } - - let (userName, nameSignal) = getTextObservable(placeholder: V2Localize("V2.Live.LoginMock.enterusername")) - userName.delegate = self - view.addSubview(userName) - userName.snp.makeConstraints { (make) in - make.leading.trailing.equalTo(userNameTip) - make.top.equalTo(userNameTip.snp.bottom).offset(2) - make.height.equalTo(30) - } - let _ = userName.becomeFirstResponder() - - let nameVailedSignal = nameSignal.map { - $0.count >= 2 - } - - view.addSubview(signButton) - signButton.snp.makeConstraints { (make) in - make.top.equalTo(userName.snp.bottom).offset(28) - make.height.equalTo(46) - make.leading.trailing.equalTo(userName) - } - - signButton.rx.controlEvent(.touchUpInside).subscribe(onNext: { [weak self] in - guard let self = self else {return} - self.loading.startAnimating() - guard let name = userName.text else { - return - } - ProfileManager.shared.setNickName(name: name, success: { - self.loading.stopAnimating() - self.view.makeToast(V2Localize("V2.Live.LoginMock.registsuccess")) - DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { - //show main vc - AppUtils.shared.showMainController() - } - }) { (err) in - self.loading.stopAnimating() - self.view.makeToast(err) - DispatchQueue.main.asyncAfter(deadline: .now() + 1) { - self.navigationController?.popViewController(animated: true) - } - } - }, onError: nil, onCompleted: nil, onDisposed: nil).disposed(by: disposeBag) - - nameVailedSignal.bind(to: signButton.rx.isEnabled).disposed(by: disposeBag) - nameVailedSignal.subscribe(onNext: { [weak button=signButton](enabled) in - button?.alpha = enabled ? 1 : 0.8 - button?.isEnabled = enabled - }, onError: nil, onCompleted: nil, onDisposed: nil).disposed(by: disposeBag) - } - - //MARK: - inner functionnd - func getTextObservable( placeholder:String = "🐉" ) -> (TextField, ControlProperty) { - let edit = TextField() - edit.textColor = .white - edit.dividerThickness = 0.2 - edit.dividerNormalColor = .white - edit.dividerActiveColor = .appTint - edit.placeholderNormalColor = UIColor(red: 209.0 / 255.0, green: 209.0 / 255.0, blue: 209.0 / 255.0, alpha: 1.0) - edit.placeholderActiveColor = UIColor(red: 209.0 / 255.0, green: 209.0 / 255.0, blue: 209.0 / 255.0, alpha: 1.0) - edit.placeholderLabel.font = Font.boldSystemFont(ofSize: 13) - view.addSubview(edit) - edit.placeholder = placeholder - edit.placeholderAnimation = .hidden - return (edit, edit.rx.text.orEmpty) - } -} - -// set limit for username - -extension ProfileViewController: UITextFieldDelegate { - func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { - guard let textFieldText = textField.text, - let rangeOfTextToReplace = Range(range, in: textFieldText) else { - return false - } - let substringToReplace = textFieldText[rangeOfTextToReplace] - let count = textFieldText.count - substringToReplace.count + string.count - return count <= 20 - } -} diff --git a/iOS/Demo/TXLiteAVDemo/Login/ProfileViewController.swift b/iOS/Demo/TXLiteAVDemo/Login/ProfileViewController.swift deleted file mode 100644 index 4497f19e..00000000 --- a/iOS/Demo/TXLiteAVDemo/Login/ProfileViewController.swift +++ /dev/null @@ -1,74 +0,0 @@ -// -// loginProfileViewController.swift -// trtcScenesDemo -// -// Created by xcoderliu on 1/2/20. -// Copyright © 2020 xcoderliu. All rights reserved. -// - -import Foundation -import RxSwift -import NVActivityIndicatorView -import Toast_Swift - -class ProfileViewController: UIViewController { - let disposeBag = DisposeBag() - let loading = NVActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 100, height: 60), - type: .ballBeat, - color: .appTint) - /// trtc title - let trtcTitle: UILabel = { - let title = UILabel() - title.textColor = .appTint - title.font = UIFont.boldSystemFont(ofSize: 30) - title.text = V2Localize("V2.Live.LoginMock.tencentcloudtrtc") - title.textAlignment = .center - return title - }() - - let avatarTip: UILabel = { - let tip = UILabel() - tip.text = V2Localize("V2.Live.LoginMock.avatar") - tip.textColor = .white - tip.font = UIFont.systemFont(ofSize: 14) - return tip - }() - - let avatarView: UIImageView = { - let avatar = UIImageView() - avatar.backgroundColor = .lightGray - avatar.sd_setImage(with: URL(string: ProfileManager.shared.curUserModel?.avatar ?? ""), completed: nil) - avatar.layer.cornerRadius = 2.0 - return avatar - }() - - let userNameTip: UILabel = { - let tip = UILabel() - tip.text = V2Localize("V2.Live.LoginMock.setusername") - tip.textColor = .white - tip.font = UIFont.systemFont(ofSize: 14) - return tip - }() - - let signButton: UIButton = { - let sign = UIButton() - sign.backgroundColor = .appTint - sign.setTitle(V2Localize("V2.Live.LoginMock.regist"), for: .normal) - sign.setTitleColor(.white, for: .normal) - sign.layer.cornerRadius = 4 - return sign - }() - - - override func viewDidLoad() { - super.viewDidLoad() - setupUI() - DispatchQueue.main.asyncAfter(deadline: .now() + 0.8) { - self.view.makeToast(V2Localize("V2.Live.LoginMock.adduserinformationforfirstlogin")) - } - } - - deinit { - debugPrint("deinit \(self)") - } -} diff --git a/iOS/Demo/TXLiteAVDemo/en.lproj/InfoPlist.strings b/iOS/Demo/TXLiteAVDemo/en.lproj/InfoPlist.strings deleted file mode 100644 index d8a179bf..00000000 --- a/iOS/Demo/TXLiteAVDemo/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,16 +0,0 @@ -/* - InfoPlist.strings - TXLiteAVDemo - - Created by gg on 2021/3/18. - Copyright © 2021 Tencent. All rights reserved. -*/ - -CFBundleDisplayName = "TCToolkit"; -NSAppleMusicUsageDescription = "The toolkit needs access to your media library to acquire music"; -NSCameraUsageDescription = "The toolkit needs access to your camera to capture video.Access facial data for the beauty function"; -NSMicrophoneUsageDescription = "The toolkit needs access to your mic to capture audio"; -NSPhotoLibraryAddUsageDescription = "The toolkit needs access your photo library to save edited files."; -NSPhotoLibraryUsageDescription = "The toolkit needs access to your photo library to edit videos"; -"UILaunchStoryboardName" = "LaunchScreen_en"; - diff --git a/iOS/Demo/TXLiteAVDemo/launchimage_en@2x.png b/iOS/Demo/TXLiteAVDemo/launchimage_en@2x.png deleted file mode 100644 index 5f93be83..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/launchimage_en@2x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/launchimage_en@3x.png b/iOS/Demo/TXLiteAVDemo/launchimage_en@3x.png deleted file mode 100644 index 5ec52c07..00000000 Binary files a/iOS/Demo/TXLiteAVDemo/launchimage_en@3x.png and /dev/null differ diff --git a/iOS/Demo/TXLiteAVDemo/zh-Hans.lproj/InfoPlist.strings b/iOS/Demo/TXLiteAVDemo/zh-Hans.lproj/InfoPlist.strings deleted file mode 100644 index 493b05ba..00000000 --- a/iOS/Demo/TXLiteAVDemo/zh-Hans.lproj/InfoPlist.strings +++ /dev/null @@ -1,15 +0,0 @@ -/* - InfoPlist.strings - TXLiteAVDemo - - Created by gg on 2021/3/18. - Copyright © 2021 Tencent. All rights reserved. -*/ - -CFBundleDisplayName = "腾讯云工具包"; -NSAppleMusicUsageDescription = "视频云工具包需要访问你的媒体库权限以获取音乐,不允许则无法添加音乐"; -NSCameraUsageDescription = "视频云工具包需要访问你的相机权限,开启后用于视频录制,以及访问您实时拍摄的面部信息用于美颜功能的体验"; -NSMicrophoneUsageDescription = "视频云工具包需要访问你的麦克风权限,开启后录制的视频才会有声音"; -NSPhotoLibraryAddUsageDescription = "视频云工具包需要访问你的相册权限,开启后才能保存编辑的文件"; -NSPhotoLibraryUsageDescription = "视频云工具包需要访问你的相册权限,开启后才能编辑视频文件"; -UILaunchStoryboardName = "LaunchScreen"; diff --git a/iOS/Demo/TXLiteAVDemo/zh-Hans.lproj/LaunchScreen.storyboard b/iOS/Demo/TXLiteAVDemo/zh-Hans.lproj/LaunchScreen.storyboard deleted file mode 100644 index 61204a48..00000000 --- a/iOS/Demo/TXLiteAVDemo/zh-Hans.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS/MLVB-API-Example/.gitignore b/iOS/MLVB-API-Example-OC/.gitignore similarity index 100% rename from iOS/MLVB-API-Example/.gitignore rename to iOS/MLVB-API-Example-OC/.gitignore diff --git a/iOS/MLVB-API-Example/Advanced/CustomVideoCapture/CustomVideoCaptureViewController.h b/iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/CustomVideoCaptureViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Advanced/CustomVideoCapture/CustomVideoCaptureViewController.h rename to iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/CustomVideoCaptureViewController.h diff --git a/iOS/MLVB-API-Example/Advanced/CustomVideoCapture/CustomVideoCaptureViewController.m b/iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/CustomVideoCaptureViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Advanced/CustomVideoCapture/CustomVideoCaptureViewController.m rename to iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/CustomVideoCaptureViewController.m diff --git a/iOS/MLVB-API-Example/Advanced/CustomVideoCapture/CustomVideoCaptureViewController.xib b/iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/CustomVideoCaptureViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Advanced/CustomVideoCapture/CustomVideoCaptureViewController.xib rename to iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/CustomVideoCaptureViewController.xib diff --git a/iOS/MLVB-API-Example/Advanced/CustomVideoCapture/Helper/CustomCameraHelper.h b/iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/Helper/CustomCameraHelper.h similarity index 94% rename from iOS/MLVB-API-Example/Advanced/CustomVideoCapture/Helper/CustomCameraHelper.h rename to iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/Helper/CustomCameraHelper.h index 24d13fa5..dbb9bded 100644 --- a/iOS/MLVB-API-Example/Advanced/CustomVideoCapture/Helper/CustomCameraHelper.h +++ b/iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/Helper/CustomCameraHelper.h @@ -6,8 +6,7 @@ // #import - - +#import NS_ASSUME_NONNULL_BEGIN diff --git a/iOS/MLVB-API-Example/Advanced/CustomVideoCapture/Helper/CustomCameraHelper.m b/iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/Helper/CustomCameraHelper.m similarity index 100% rename from iOS/MLVB-API-Example/Advanced/CustomVideoCapture/Helper/CustomCameraHelper.m rename to iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/Helper/CustomCameraHelper.m diff --git a/iOS/MLVB-API-Example/Advanced/CustomVideoCapture/Helper/RenderView/PixelBufferRenderView.h b/iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/Helper/RenderView/PixelBufferRenderView.h similarity index 100% rename from iOS/MLVB-API-Example/Advanced/CustomVideoCapture/Helper/RenderView/PixelBufferRenderView.h rename to iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/Helper/RenderView/PixelBufferRenderView.h diff --git a/iOS/MLVB-API-Example/Advanced/CustomVideoCapture/Helper/RenderView/PixelBufferRenderView.m b/iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/Helper/RenderView/PixelBufferRenderView.m similarity index 100% rename from iOS/MLVB-API-Example/Advanced/CustomVideoCapture/Helper/RenderView/PixelBufferRenderView.m rename to iOS/MLVB-API-Example-OC/Advanced/CustomVideoCapture/Helper/RenderView/PixelBufferRenderView.m diff --git a/iOS/MLVB-API-Example/Advanced/LocalVideoShare/helper/CustomAudioCapturor.h b/iOS/MLVB-API-Example-OC/Advanced/LocalVideoShare/helper/CustomAudioCapturor.h similarity index 100% rename from iOS/MLVB-API-Example/Advanced/LocalVideoShare/helper/CustomAudioCapturor.h rename to iOS/MLVB-API-Example-OC/Advanced/LocalVideoShare/helper/CustomAudioCapturor.h diff --git a/iOS/MLVB-API-Example/Advanced/LocalVideoShare/helper/CustomAudioCapturor.m b/iOS/MLVB-API-Example-OC/Advanced/LocalVideoShare/helper/CustomAudioCapturor.m similarity index 100% rename from iOS/MLVB-API-Example/Advanced/LocalVideoShare/helper/CustomAudioCapturor.m rename to iOS/MLVB-API-Example-OC/Advanced/LocalVideoShare/helper/CustomAudioCapturor.m diff --git a/iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayAnchorViewController.h b/iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayAnchorViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayAnchorViewController.h rename to iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayAnchorViewController.h diff --git a/iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayAnchorViewController.m b/iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayAnchorViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayAnchorViewController.m rename to iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayAnchorViewController.m diff --git a/iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayAnchorViewController.xib b/iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayAnchorViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayAnchorViewController.xib rename to iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayAnchorViewController.xib diff --git a/iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayAudienceViewController.h b/iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayAudienceViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayAudienceViewController.h rename to iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayAudienceViewController.h diff --git a/iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayAudienceViewController.m b/iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayAudienceViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayAudienceViewController.m rename to iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayAudienceViewController.m diff --git a/iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayAudienceViewController.xib b/iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayAudienceViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayAudienceViewController.xib rename to iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayAudienceViewController.xib diff --git a/iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayEnterViewController.h b/iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayEnterViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayEnterViewController.h rename to iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayEnterViewController.h diff --git a/iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayEnterViewController.m b/iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayEnterViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayEnterViewController.m rename to iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayEnterViewController.m diff --git a/iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayEnterViewController.xib b/iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayEnterViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Advanced/RTCPushAndPlay/RTCPushAndPlayEnterViewController.xib rename to iOS/MLVB-API-Example-OC/Advanced/RTCPushAndPlay/RTCPushAndPlayEnterViewController.xib diff --git a/iOS/MLVB-API-Example/Advanced/ThirdBeauty/README.md b/iOS/MLVB-API-Example-OC/Advanced/ThirdBeauty/README.md similarity index 100% rename from iOS/MLVB-API-Example/Advanced/ThirdBeauty/README.md rename to iOS/MLVB-API-Example-OC/Advanced/ThirdBeauty/README.md diff --git a/iOS/MLVB-API-Example/Advanced/ThirdBeauty/ThirdBeautyViewController.h b/iOS/MLVB-API-Example-OC/Advanced/ThirdBeauty/ThirdBeautyViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Advanced/ThirdBeauty/ThirdBeautyViewController.h rename to iOS/MLVB-API-Example-OC/Advanced/ThirdBeauty/ThirdBeautyViewController.h diff --git a/iOS/MLVB-API-Example/Advanced/ThirdBeauty/ThirdBeautyViewController.m b/iOS/MLVB-API-Example-OC/Advanced/ThirdBeauty/ThirdBeautyViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Advanced/ThirdBeauty/ThirdBeautyViewController.m rename to iOS/MLVB-API-Example-OC/Advanced/ThirdBeauty/ThirdBeautyViewController.m diff --git a/iOS/MLVB-API-Example/Advanced/ThirdBeauty/ThirdBeautyViewController.xib b/iOS/MLVB-API-Example-OC/Advanced/ThirdBeauty/ThirdBeautyViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Advanced/ThirdBeauty/ThirdBeautyViewController.xib rename to iOS/MLVB-API-Example-OC/Advanced/ThirdBeauty/ThirdBeautyViewController.xib diff --git a/iOS/MLVB-API-Example/App/AppDelegate.h b/iOS/MLVB-API-Example-OC/App/AppDelegate.h similarity index 100% rename from iOS/MLVB-API-Example/App/AppDelegate.h rename to iOS/MLVB-API-Example-OC/App/AppDelegate.h diff --git a/iOS/MLVB-API-Example/App/AppDelegate.m b/iOS/MLVB-API-Example-OC/App/AppDelegate.m similarity index 100% rename from iOS/MLVB-API-Example/App/AppDelegate.m rename to iOS/MLVB-API-Example-OC/App/AppDelegate.m diff --git a/iOS/MLVB-API-Example/App/Base.lproj/LaunchScreen.storyboard b/iOS/MLVB-API-Example-OC/App/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from iOS/MLVB-API-Example/App/Base.lproj/LaunchScreen.storyboard rename to iOS/MLVB-API-Example-OC/App/Base.lproj/LaunchScreen.storyboard diff --git a/iOS/MLVB-API-Example/App/Base.lproj/Main.storyboard b/iOS/MLVB-API-Example-OC/App/Base.lproj/Main.storyboard similarity index 100% rename from iOS/MLVB-API-Example/App/Base.lproj/Main.storyboard rename to iOS/MLVB-API-Example-OC/App/Base.lproj/Main.storyboard diff --git a/iOS/MLVB-API-Example/App/Common/LiveUrl.h b/iOS/MLVB-API-Example-OC/App/Common/LiveUrl.h similarity index 100% rename from iOS/MLVB-API-Example/App/Common/LiveUrl.h rename to iOS/MLVB-API-Example-OC/App/Common/LiveUrl.h diff --git a/iOS/MLVB-API-Example/App/Common/LiveUrl.m b/iOS/MLVB-API-Example-OC/App/Common/LiveUrl.m similarity index 100% rename from iOS/MLVB-API-Example/App/Common/LiveUrl.m rename to iOS/MLVB-API-Example-OC/App/Common/LiveUrl.m diff --git a/iOS/MLVB-API-Example/App/Extension/NSString+Common.h b/iOS/MLVB-API-Example-OC/App/Extension/NSString+Common.h similarity index 100% rename from iOS/MLVB-API-Example/App/Extension/NSString+Common.h rename to iOS/MLVB-API-Example-OC/App/Extension/NSString+Common.h diff --git a/iOS/MLVB-API-Example/App/Extension/NSString+Common.m b/iOS/MLVB-API-Example-OC/App/Extension/NSString+Common.m similarity index 100% rename from iOS/MLVB-API-Example/App/Extension/NSString+Common.m rename to iOS/MLVB-API-Example-OC/App/Extension/NSString+Common.m diff --git a/iOS/MLVB-API-Example/App/Extension/UIColor+Hex.h b/iOS/MLVB-API-Example-OC/App/Extension/UIColor+Hex.h similarity index 100% rename from iOS/MLVB-API-Example/App/Extension/UIColor+Hex.h rename to iOS/MLVB-API-Example-OC/App/Extension/UIColor+Hex.h diff --git a/iOS/MLVB-API-Example/App/Extension/UIColor+Hex.m b/iOS/MLVB-API-Example-OC/App/Extension/UIColor+Hex.m similarity index 100% rename from iOS/MLVB-API-Example/App/Extension/UIColor+Hex.m rename to iOS/MLVB-API-Example-OC/App/Extension/UIColor+Hex.m diff --git a/iOS/MLVB-API-Example/App/Extension/UIViewController+AlertViewController.h b/iOS/MLVB-API-Example-OC/App/Extension/UIViewController+AlertViewController.h similarity index 100% rename from iOS/MLVB-API-Example/App/Extension/UIViewController+AlertViewController.h rename to iOS/MLVB-API-Example-OC/App/Extension/UIViewController+AlertViewController.h diff --git a/iOS/MLVB-API-Example/App/Extension/UIViewController+AlertViewController.m b/iOS/MLVB-API-Example-OC/App/Extension/UIViewController+AlertViewController.m similarity index 100% rename from iOS/MLVB-API-Example/App/Extension/UIViewController+AlertViewController.m rename to iOS/MLVB-API-Example-OC/App/Extension/UIViewController+AlertViewController.m diff --git a/iOS/MLVB-API-Example/App/Home/HomeTableViewCell.h b/iOS/MLVB-API-Example-OC/App/Home/HomeTableViewCell.h similarity index 100% rename from iOS/MLVB-API-Example/App/Home/HomeTableViewCell.h rename to iOS/MLVB-API-Example-OC/App/Home/HomeTableViewCell.h diff --git a/iOS/MLVB-API-Example/App/Home/HomeTableViewCell.m b/iOS/MLVB-API-Example-OC/App/Home/HomeTableViewCell.m similarity index 100% rename from iOS/MLVB-API-Example/App/Home/HomeTableViewCell.m rename to iOS/MLVB-API-Example-OC/App/Home/HomeTableViewCell.m diff --git a/iOS/MLVB-API-Example/App/Home/HomeTableViewCell.xib b/iOS/MLVB-API-Example-OC/App/Home/HomeTableViewCell.xib similarity index 100% rename from iOS/MLVB-API-Example/App/Home/HomeTableViewCell.xib rename to iOS/MLVB-API-Example-OC/App/Home/HomeTableViewCell.xib diff --git a/iOS/MLVB-API-Example/App/Home/ViewController.h b/iOS/MLVB-API-Example-OC/App/Home/ViewController.h similarity index 100% rename from iOS/MLVB-API-Example/App/Home/ViewController.h rename to iOS/MLVB-API-Example-OC/App/Home/ViewController.h diff --git a/iOS/MLVB-API-Example/App/Home/ViewController.m b/iOS/MLVB-API-Example-OC/App/Home/ViewController.m similarity index 100% rename from iOS/MLVB-API-Example/App/Home/ViewController.m rename to iOS/MLVB-API-Example-OC/App/Home/ViewController.m diff --git a/iOS/MLVB-API-Example/App/Info.plist b/iOS/MLVB-API-Example-OC/App/Info.plist similarity index 97% rename from iOS/MLVB-API-Example/App/Info.plist rename to iOS/MLVB-API-Example-OC/App/Info.plist index dc0aa41b..3d666af4 100755 --- a/iOS/MLVB-API-Example/App/Info.plist +++ b/iOS/MLVB-API-Example-OC/App/Info.plist @@ -15,9 +15,9 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 8.9.0 + $(MARKETING_VERSION) CFBundleVersion - 910 + 1 LSRequiresIPhoneOS NSAppTransportSecurity diff --git a/iOS/MLVB-API-Example/App/PCH/MLVB-API-Example-OC-PrefixHeader.pch b/iOS/MLVB-API-Example-OC/App/PCH/MLVB-API-Example-OC-PrefixHeader.pch similarity index 89% rename from iOS/MLVB-API-Example/App/PCH/MLVB-API-Example-OC-PrefixHeader.pch rename to iOS/MLVB-API-Example-OC/App/PCH/MLVB-API-Example-OC-PrefixHeader.pch index 58f852a3..2a886d55 100644 --- a/iOS/MLVB-API-Example/App/PCH/MLVB-API-Example-OC-PrefixHeader.pch +++ b/iOS/MLVB-API-Example-OC/App/PCH/MLVB-API-Example-OC-PrefixHeader.pch @@ -12,8 +12,9 @@ #import "UIColor+Hex.h" #import "GenerateTestUserSig.h" #import "NSString+Common.h" -#import #import "LiveUrl.h" #import "UIViewController+AlertViewController.h" +@import TXLiteAVSDK_Smart; + #endif /* MLVB_API_Example_OC_PrefixHeader_pch */ diff --git a/iOS/MLVB-API-Example/App/main.m b/iOS/MLVB-API-Example-OC/App/main.m similarity index 100% rename from iOS/MLVB-API-Example/App/main.m rename to iOS/MLVB-API-Example-OC/App/main.m diff --git a/iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkAnchorViewController.h b/iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkAnchorViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkAnchorViewController.h rename to iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkAnchorViewController.h diff --git a/iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkAnchorViewController.m b/iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkAnchorViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkAnchorViewController.m rename to iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkAnchorViewController.m diff --git a/iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkAnchorViewController.xib b/iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkAnchorViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkAnchorViewController.xib rename to iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkAnchorViewController.xib diff --git a/iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkAudienceViewController.h b/iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkAudienceViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkAudienceViewController.h rename to iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkAudienceViewController.h diff --git a/iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkAudienceViewController.m b/iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkAudienceViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkAudienceViewController.m rename to iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkAudienceViewController.m diff --git a/iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkAudienceViewController.xib b/iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkAudienceViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkAudienceViewController.xib rename to iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkAudienceViewController.xib diff --git a/iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkEnterViewController.h b/iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkEnterViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkEnterViewController.h rename to iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkEnterViewController.h diff --git a/iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkEnterViewController.m b/iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkEnterViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkEnterViewController.m rename to iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkEnterViewController.m diff --git a/iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkEnterViewController.xib b/iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkEnterViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Basic/LiveLink/LiveLinkEnterViewController.xib rename to iOS/MLVB-API-Example-OC/Basic/LiveLink/LiveLinkEnterViewController.xib diff --git a/iOS/MLVB-API-Example/Basic/LivePK/LivePkAnchorViewController.h b/iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkAnchorViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePK/LivePkAnchorViewController.h rename to iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkAnchorViewController.h diff --git a/iOS/MLVB-API-Example/Basic/LivePK/LivePkAnchorViewController.m b/iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkAnchorViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePK/LivePkAnchorViewController.m rename to iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkAnchorViewController.m diff --git a/iOS/MLVB-API-Example/Basic/LivePK/LivePkAnchorViewController.xib b/iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkAnchorViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePK/LivePkAnchorViewController.xib rename to iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkAnchorViewController.xib diff --git a/iOS/MLVB-API-Example/Basic/LivePK/LivePkAudienceViewController.h b/iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkAudienceViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePK/LivePkAudienceViewController.h rename to iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkAudienceViewController.h diff --git a/iOS/MLVB-API-Example/Basic/LivePK/LivePkAudienceViewController.m b/iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkAudienceViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePK/LivePkAudienceViewController.m rename to iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkAudienceViewController.m diff --git a/iOS/MLVB-API-Example/Basic/LivePK/LivePkAudienceViewController.xib b/iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkAudienceViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePK/LivePkAudienceViewController.xib rename to iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkAudienceViewController.xib diff --git a/iOS/MLVB-API-Example/Basic/LivePK/LivePkEnterViewController.h b/iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkEnterViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePK/LivePkEnterViewController.h rename to iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkEnterViewController.h diff --git a/iOS/MLVB-API-Example/Basic/LivePK/LivePkEnterViewController.m b/iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkEnterViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePK/LivePkEnterViewController.m rename to iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkEnterViewController.m diff --git a/iOS/MLVB-API-Example/Basic/LivePK/LivePkEnterViewController.xib b/iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkEnterViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePK/LivePkEnterViewController.xib rename to iOS/MLVB-API-Example-OC/Basic/LivePK/LivePkEnterViewController.xib diff --git a/iOS/MLVB-API-Example/Basic/LivePlay/LivePlayEnterViewController.h b/iOS/MLVB-API-Example-OC/Basic/LivePlay/LivePlayEnterViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePlay/LivePlayEnterViewController.h rename to iOS/MLVB-API-Example-OC/Basic/LivePlay/LivePlayEnterViewController.h diff --git a/iOS/MLVB-API-Example/Basic/LivePlay/LivePlayEnterViewController.m b/iOS/MLVB-API-Example-OC/Basic/LivePlay/LivePlayEnterViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePlay/LivePlayEnterViewController.m rename to iOS/MLVB-API-Example-OC/Basic/LivePlay/LivePlayEnterViewController.m diff --git a/iOS/MLVB-API-Example/Basic/LivePlay/LivePlayEnterViewController.xib b/iOS/MLVB-API-Example-OC/Basic/LivePlay/LivePlayEnterViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePlay/LivePlayEnterViewController.xib rename to iOS/MLVB-API-Example-OC/Basic/LivePlay/LivePlayEnterViewController.xib diff --git a/iOS/MLVB-API-Example/Basic/LivePlay/LivePlayViewController.h b/iOS/MLVB-API-Example-OC/Basic/LivePlay/LivePlayViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePlay/LivePlayViewController.h rename to iOS/MLVB-API-Example-OC/Basic/LivePlay/LivePlayViewController.h diff --git a/iOS/MLVB-API-Example/Basic/LivePlay/LivePlayViewController.m b/iOS/MLVB-API-Example-OC/Basic/LivePlay/LivePlayViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePlay/LivePlayViewController.m rename to iOS/MLVB-API-Example-OC/Basic/LivePlay/LivePlayViewController.m diff --git a/iOS/MLVB-API-Example/Basic/LivePlay/LivePlayViewController.xib b/iOS/MLVB-API-Example-OC/Basic/LivePlay/LivePlayViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePlay/LivePlayViewController.xib rename to iOS/MLVB-API-Example-OC/Basic/LivePlay/LivePlayViewController.xib diff --git a/iOS/MLVB-API-Example/Basic/LivePushCamera/LivePushCameraEnterViewController.h b/iOS/MLVB-API-Example-OC/Basic/LivePushCamera/LivePushCameraEnterViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushCamera/LivePushCameraEnterViewController.h rename to iOS/MLVB-API-Example-OC/Basic/LivePushCamera/LivePushCameraEnterViewController.h diff --git a/iOS/MLVB-API-Example/Basic/LivePushCamera/LivePushCameraEnterViewController.m b/iOS/MLVB-API-Example-OC/Basic/LivePushCamera/LivePushCameraEnterViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushCamera/LivePushCameraEnterViewController.m rename to iOS/MLVB-API-Example-OC/Basic/LivePushCamera/LivePushCameraEnterViewController.m diff --git a/iOS/MLVB-API-Example/Basic/LivePushCamera/LivePushCameraEnterViewController.xib b/iOS/MLVB-API-Example-OC/Basic/LivePushCamera/LivePushCameraEnterViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushCamera/LivePushCameraEnterViewController.xib rename to iOS/MLVB-API-Example-OC/Basic/LivePushCamera/LivePushCameraEnterViewController.xib diff --git a/iOS/MLVB-API-Example/Basic/LivePushCamera/LivePushCameraViewController.h b/iOS/MLVB-API-Example-OC/Basic/LivePushCamera/LivePushCameraViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushCamera/LivePushCameraViewController.h rename to iOS/MLVB-API-Example-OC/Basic/LivePushCamera/LivePushCameraViewController.h diff --git a/iOS/MLVB-API-Example/Basic/LivePushCamera/LivePushCameraViewController.m b/iOS/MLVB-API-Example-OC/Basic/LivePushCamera/LivePushCameraViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushCamera/LivePushCameraViewController.m rename to iOS/MLVB-API-Example-OC/Basic/LivePushCamera/LivePushCameraViewController.m diff --git a/iOS/MLVB-API-Example/Basic/LivePushCamera/LivePushCameraViewController.xib b/iOS/MLVB-API-Example-OC/Basic/LivePushCamera/LivePushCameraViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushCamera/LivePushCameraViewController.xib rename to iOS/MLVB-API-Example-OC/Basic/LivePushCamera/LivePushCameraViewController.xib diff --git a/iOS/MLVB-API-Example/Basic/LivePushScreen/LivePushScreenEnterViewController.h b/iOS/MLVB-API-Example-OC/Basic/LivePushScreen/LivePushScreenEnterViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushScreen/LivePushScreenEnterViewController.h rename to iOS/MLVB-API-Example-OC/Basic/LivePushScreen/LivePushScreenEnterViewController.h diff --git a/iOS/MLVB-API-Example/Basic/LivePushScreen/LivePushScreenEnterViewController.m b/iOS/MLVB-API-Example-OC/Basic/LivePushScreen/LivePushScreenEnterViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushScreen/LivePushScreenEnterViewController.m rename to iOS/MLVB-API-Example-OC/Basic/LivePushScreen/LivePushScreenEnterViewController.m diff --git a/iOS/MLVB-API-Example/Basic/LivePushScreen/LivePushScreenEnterViewController.xib b/iOS/MLVB-API-Example-OC/Basic/LivePushScreen/LivePushScreenEnterViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushScreen/LivePushScreenEnterViewController.xib rename to iOS/MLVB-API-Example-OC/Basic/LivePushScreen/LivePushScreenEnterViewController.xib diff --git a/iOS/MLVB-API-Example/Basic/LivePushScreen/LivePushScreenViewController.h b/iOS/MLVB-API-Example-OC/Basic/LivePushScreen/LivePushScreenViewController.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushScreen/LivePushScreenViewController.h rename to iOS/MLVB-API-Example-OC/Basic/LivePushScreen/LivePushScreenViewController.h diff --git a/iOS/MLVB-API-Example/Basic/LivePushScreen/LivePushScreenViewController.m b/iOS/MLVB-API-Example-OC/Basic/LivePushScreen/LivePushScreenViewController.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushScreen/LivePushScreenViewController.m rename to iOS/MLVB-API-Example-OC/Basic/LivePushScreen/LivePushScreenViewController.m diff --git a/iOS/MLVB-API-Example/Basic/LivePushScreen/LivePushScreenViewController.xib b/iOS/MLVB-API-Example-OC/Basic/LivePushScreen/LivePushScreenViewController.xib similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushScreen/LivePushScreenViewController.xib rename to iOS/MLVB-API-Example-OC/Basic/LivePushScreen/LivePushScreenViewController.xib diff --git a/iOS/MLVB-API-Example/Basic/LivePushScreen/TRTCBroadcastExtensionLauncher.h b/iOS/MLVB-API-Example-OC/Basic/LivePushScreen/TRTCBroadcastExtensionLauncher.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushScreen/TRTCBroadcastExtensionLauncher.h rename to iOS/MLVB-API-Example-OC/Basic/LivePushScreen/TRTCBroadcastExtensionLauncher.h diff --git a/iOS/MLVB-API-Example/Basic/LivePushScreen/TRTCBroadcastExtensionLauncher.m b/iOS/MLVB-API-Example-OC/Basic/LivePushScreen/TRTCBroadcastExtensionLauncher.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushScreen/TRTCBroadcastExtensionLauncher.m rename to iOS/MLVB-API-Example-OC/Basic/LivePushScreen/TRTCBroadcastExtensionLauncher.m diff --git a/iOS/MLVB-API-Example/Basic/LivePushScreen/TXReplayKit_Screen/Info.plist b/iOS/MLVB-API-Example-OC/Basic/LivePushScreen/TXReplayKit_Screen/Info.plist similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushScreen/TXReplayKit_Screen/Info.plist rename to iOS/MLVB-API-Example-OC/Basic/LivePushScreen/TXReplayKit_Screen/Info.plist diff --git a/iOS/MLVB-API-Example/Basic/LivePushScreen/TXReplayKit_Screen/SampleHandler.h b/iOS/MLVB-API-Example-OC/Basic/LivePushScreen/TXReplayKit_Screen/SampleHandler.h similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushScreen/TXReplayKit_Screen/SampleHandler.h rename to iOS/MLVB-API-Example-OC/Basic/LivePushScreen/TXReplayKit_Screen/SampleHandler.h diff --git a/iOS/MLVB-API-Example/Basic/LivePushScreen/TXReplayKit_Screen/SampleHandler.m b/iOS/MLVB-API-Example-OC/Basic/LivePushScreen/TXReplayKit_Screen/SampleHandler.m similarity index 100% rename from iOS/MLVB-API-Example/Basic/LivePushScreen/TXReplayKit_Screen/SampleHandler.m rename to iOS/MLVB-API-Example-OC/Basic/LivePushScreen/TXReplayKit_Screen/SampleHandler.m diff --git a/iOS/MLVB-API-Example/Debug/GenerateTestUserSig.h b/iOS/MLVB-API-Example-OC/Debug/GenerateTestUserSig.h similarity index 100% rename from iOS/MLVB-API-Example/Debug/GenerateTestUserSig.h rename to iOS/MLVB-API-Example-OC/Debug/GenerateTestUserSig.h diff --git a/iOS/MLVB-API-Example/Debug/GenerateTestUserSig.m b/iOS/MLVB-API-Example-OC/Debug/GenerateTestUserSig.m similarity index 100% rename from iOS/MLVB-API-Example/Debug/GenerateTestUserSig.m rename to iOS/MLVB-API-Example-OC/Debug/GenerateTestUserSig.m diff --git a/iOS/MLVB-API-Example/MLVB-API-Example-OC.xcodeproj/project.pbxproj b/iOS/MLVB-API-Example-OC/MLVB-API-Example-OC.xcodeproj/project.pbxproj old mode 100755 new mode 100644 similarity index 97% rename from iOS/MLVB-API-Example/MLVB-API-Example-OC.xcodeproj/project.pbxproj rename to iOS/MLVB-API-Example-OC/MLVB-API-Example-OC.xcodeproj/project.pbxproj index 3bd57067..33d74e1b --- a/iOS/MLVB-API-Example/MLVB-API-Example-OC.xcodeproj/project.pbxproj +++ b/iOS/MLVB-API-Example-OC/MLVB-API-Example-OC.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + 400C520226A67EE30036AC40 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 400C520126A67EE30036AC40 /* AssetsLibrary.framework */; }; + 40D550EC26A6A9D800FE9F13 /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 40D550EB26A6A9BF00FE9F13 /* libsqlite3.0.tbd */; }; 4723A7BF26315F920094AC81 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4723A7BE26315F920094AC81 /* OpenGLES.framework */; }; 4723A7C026315F9C0094AC81 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 47ECB98B2626868400201FCB /* Accelerate.framework */; }; 4723A7C226315FA30094AC81 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4723A7C126315FA30094AC81 /* CoreMedia.framework */; }; @@ -30,12 +32,13 @@ 47ECB9892626867C00201FCB /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 47ECB9882626867C00201FCB /* libc++.tbd */; }; 47ECB98C2626868400201FCB /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 47ECB98B2626868400201FCB /* Accelerate.framework */; }; 47ECB98E2626868E00201FCB /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 47ECB98D2626868E00201FCB /* libresolv.tbd */; }; + 83044685029D8E0DB56FB692 /* TXLiteAVSDK_Smart.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E10AC77FF7B22422D1877181 /* TXLiteAVSDK_Smart.framework */; }; 880B3C4A2624411B002683FB /* GenerateTestUserSig.m in Sources */ = {isa = PBXBuildFile; fileRef = 880B3C482624411B002683FB /* GenerateTestUserSig.m */; }; 88167CB3268488C2001D99DC /* LivePushCameraEnterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88167CB1268488C2001D99DC /* LivePushCameraEnterViewController.m */; }; 88167CB4268488C2001D99DC /* LivePushCameraEnterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88167CB2268488C2001D99DC /* LivePushCameraEnterViewController.xib */; }; 88167CC52684AC91001D99DC /* LivePushCameraViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88167CC32684AC91001D99DC /* LivePushCameraViewController.m */; }; 88167CC62684AC91001D99DC /* LivePushCameraViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88167CC42684AC91001D99DC /* LivePushCameraViewController.xib */; }; - 88167CE62685B823001D99DC /* TXLiteAVSDK_Professional.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88167CE52685B823001D99DC /* TXLiteAVSDK_Professional.framework */; }; + 88167CE62685B823001D99DC /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; 88167CE92685BF58001D99DC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88167CE82685BF58001D99DC /* Foundation.framework */; }; 88167CEA2685BF7B001D99DC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8894457726282A3200193FAD /* UIKit.framework */; }; 88167CEC2685BF97001D99DC /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 88167CEB2685BF8E001D99DC /* libz.tbd */; }; @@ -72,7 +75,6 @@ 88C4C063268B503000FBB698 /* CustomVideoCaptureViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88C4C061268B503000FBB698 /* CustomVideoCaptureViewController.xib */; }; 88C4C06A268C48DF00FBB698 /* ThirdBeautyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E072AF2636A6C80027D05E /* ThirdBeautyViewController.m */; }; 88C4C06C268C49FD00FBB698 /* ThirdBeautyViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 47E072AE2636A6C80027D05E /* ThirdBeautyViewController.xib */; }; - 88D788592685D85A004B2509 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 88D788572685D849004B2509 /* libsqlite3.tbd */; }; 88FC77AE268C625300768C53 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 88FC77AD268C625300768C53 /* README.md */; }; 88FC784A268C678A00768C53 /* RTCPushAndPlayEnterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88FC7848268C678A00768C53 /* RTCPushAndPlayEnterViewController.m */; }; 88FC784B268C678A00768C53 /* RTCPushAndPlayEnterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88FC7849268C678A00768C53 /* RTCPushAndPlayEnterViewController.xib */; }; @@ -80,6 +82,7 @@ 88FC7854268C8C2D00768C53 /* RTCPushAndPlayAnchorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88FC7852268C8C2D00768C53 /* RTCPushAndPlayAnchorViewController.xib */; }; 88FC7859268C8F6E00768C53 /* RTCPushAndPlayAudienceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 88FC7857268C8F6E00768C53 /* RTCPushAndPlayAudienceViewController.m */; }; 88FC785A268C8F6E00768C53 /* RTCPushAndPlayAudienceViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88FC7858268C8F6E00768C53 /* RTCPushAndPlayAudienceViewController.xib */; }; + A548A622FB2A2C47C72BAE1C /* TXLiteAVSDK_Smart.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E10AC77FF7B22422D1877181 /* TXLiteAVSDK_Smart.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -117,6 +120,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 400C520126A67EE30036AC40 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; + 40D550EB26A6A9BF00FE9F13 /* libsqlite3.0.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.0.tbd; path = usr/lib/libsqlite3.0.tbd; sourceTree = SDKROOT; }; 4723A7BE26315F920094AC81 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; 4723A7C126315FA30094AC81 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; 4723A7C326315FAA0094AC81 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; @@ -161,7 +166,6 @@ 88167CC22684AC91001D99DC /* LivePushCameraViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LivePushCameraViewController.h; sourceTree = ""; }; 88167CC32684AC91001D99DC /* LivePushCameraViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LivePushCameraViewController.m; sourceTree = ""; }; 88167CC42684AC91001D99DC /* LivePushCameraViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LivePushCameraViewController.xib; sourceTree = ""; }; - 88167CE52685B823001D99DC /* TXLiteAVSDK_Professional.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = TXLiteAVSDK_Professional.framework; sourceTree = ""; }; 88167CE82685BF58001D99DC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 88167CEB2685BF8E001D99DC /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 8839C3B72689AE29000FF58C /* LivePushScreenViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LivePushScreenViewController.h; sourceTree = ""; }; @@ -220,6 +224,7 @@ 88FC7856268C8F6E00768C53 /* RTCPushAndPlayAudienceViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RTCPushAndPlayAudienceViewController.h; sourceTree = ""; }; 88FC7857268C8F6E00768C53 /* RTCPushAndPlayAudienceViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RTCPushAndPlayAudienceViewController.m; sourceTree = ""; }; 88FC7858268C8F6E00768C53 /* RTCPushAndPlayAudienceViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RTCPushAndPlayAudienceViewController.xib; sourceTree = ""; }; + E10AC77FF7B22422D1877181 /* TXLiteAVSDK_Smart.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TXLiteAVSDK_Smart.framework; path = ../SDK/TXLiteAVSDK_Smart.framework; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -232,14 +237,15 @@ 88167CEA2685BF7B001D99DC /* UIKit.framework in Frameworks */, 4723A7BF26315F920094AC81 /* OpenGLES.framework in Frameworks */, 47ECB98C2626868400201FCB /* Accelerate.framework in Frameworks */, - 88D788592685D85A004B2509 /* libsqlite3.tbd in Frameworks */, 4723A7C026315F9C0094AC81 /* Accelerate.framework in Frameworks */, + 40D550EC26A6A9D800FE9F13 /* libsqlite3.0.tbd in Frameworks */, 47ECB98E2626868E00201FCB /* libresolv.tbd in Frameworks */, 88167CE92685BF58001D99DC /* Foundation.framework in Frameworks */, + 400C520226A67EE30036AC40 /* AssetsLibrary.framework in Frameworks */, 4723A7C526315FB10094AC81 /* libc++.tbd in Frameworks */, 47ECB9892626867C00201FCB /* libc++.tbd in Frameworks */, 4723A7C226315FA30094AC81 /* CoreMedia.framework in Frameworks */, - 88167CE62685B823001D99DC /* TXLiteAVSDK_Professional.framework in Frameworks */, + A548A622FB2A2C47C72BAE1C /* TXLiteAVSDK_Smart.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -251,6 +257,7 @@ 88A2C846267062FF006FC026 /* Accelerate.framework in Frameworks */, 8894458D26282AF800193FAD /* TXLiteAVSDK_ReplayKitExt.framework in Frameworks */, 8894456B26282A3200193FAD /* ReplayKit.framework in Frameworks */, + 83044685029D8E0DB56FB692 /* TXLiteAVSDK_Smart.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -334,8 +341,8 @@ 477EC9D22626E44C007AAC4F /* SDK */ = { isa = PBXGroup; children = ( - 88167CE52685B823001D99DC /* TXLiteAVSDK_Professional.framework */, 889444FD262824EA00193FAD /* TXLiteAVSDK_ReplayKitExt.framework */, + E10AC77FF7B22422D1877181 /* TXLiteAVSDK_Smart.framework */, ); name = SDK; path = ../SDK; @@ -518,6 +525,8 @@ 88ED6FE02624364700C75B9D /* Frameworks */ = { isa = PBXGroup; children = ( + 40D550EB26A6A9BF00FE9F13 /* libsqlite3.0.tbd */, + 400C520126A67EE30036AC40 /* AssetsLibrary.framework */, 88D788572685D849004B2509 /* libsqlite3.tbd */, 88167CEB2685BF8E001D99DC /* libz.tbd */, 88167CE82685BF58001D99DC /* Foundation.framework */, diff --git a/iOS/MLVB-API-Example/MLVB-API-Example-OC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/iOS/MLVB-API-Example-OC/MLVB-API-Example-OC.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from iOS/MLVB-API-Example/MLVB-API-Example-OC.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to iOS/MLVB-API-Example-OC/MLVB-API-Example-OC.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/iOS/Demo/TXLiteAVDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/iOS/MLVB-API-Example-OC/MLVB-API-Example-OC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist old mode 100644 new mode 100755 similarity index 100% rename from iOS/Demo/TXLiteAVDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to iOS/MLVB-API-Example-OC/MLVB-API-Example-OC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/iOS/MLVB-API-Example/MLVB-API-Example-OC.xcodeproj/xcshareddata/xcschemes/MLVB-API-Example-OC.xcscheme b/iOS/MLVB-API-Example-OC/MLVB-API-Example-OC.xcodeproj/xcshareddata/xcschemes/MLVB-API-Example-OC.xcscheme similarity index 100% rename from iOS/MLVB-API-Example/MLVB-API-Example-OC.xcodeproj/xcshareddata/xcschemes/MLVB-API-Example-OC.xcscheme rename to iOS/MLVB-API-Example-OC/MLVB-API-Example-OC.xcodeproj/xcshareddata/xcschemes/MLVB-API-Example-OC.xcscheme diff --git a/iOS/MLVB-API-Example/MLVB-API-Example-OC.xcodeproj/xcshareddata/xcschemes/TXReplayKit_Screen.xcscheme b/iOS/MLVB-API-Example-OC/MLVB-API-Example-OC.xcodeproj/xcshareddata/xcschemes/TXReplayKit_Screen.xcscheme similarity index 100% rename from iOS/MLVB-API-Example/MLVB-API-Example-OC.xcodeproj/xcshareddata/xcschemes/TXReplayKit_Screen.xcscheme rename to iOS/MLVB-API-Example-OC/MLVB-API-Example-OC.xcodeproj/xcshareddata/xcschemes/TXReplayKit_Screen.xcscheme diff --git a/iOS/MLVB-API-Example/README.en.md b/iOS/MLVB-API-Example-OC/README.en.md similarity index 100% rename from iOS/MLVB-API-Example/README.en.md rename to iOS/MLVB-API-Example-OC/README.en.md diff --git a/iOS/MLVB-API-Example/README.md b/iOS/MLVB-API-Example-OC/README.md similarity index 100% rename from iOS/MLVB-API-Example/README.md rename to iOS/MLVB-API-Example-OC/README.md diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AccentColor.colorset/Contents.json b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from iOS/MLVB-API-Example/Resource/Assets.xcassets/AccentColor.colorset/Contents.json rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/AppIcon1024x1024.png b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/AppIcon1024x1024.png similarity index 100% rename from iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/AppIcon1024x1024.png rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/AppIcon1024x1024.png diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-120.png b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-120.png similarity index 100% rename from iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-120.png rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-120.png diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-180.png b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-180.png similarity index 100% rename from iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-180.png rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-180.png diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-40.png b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-40.png similarity index 100% rename from iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-40.png rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-40.png diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-58.png b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-58.png similarity index 100% rename from iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-58.png rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-58.png diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60.png b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60.png similarity index 100% rename from iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60.png rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60.png diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png similarity index 100% rename from iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-80.png b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-80.png similarity index 100% rename from iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-80.png rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-80.png diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-87.png b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-87.png similarity index 100% rename from iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/AppIcon.appiconset/Icon-87.png rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/AppIcon.appiconset/Icon-87.png diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Contents.json b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/Contents.json old mode 100644 new mode 100755 similarity index 100% rename from iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/Contents.json rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/Contents.json diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/audiocall_user_portrait.imageset/Contents.json b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/audiocall_user_portrait.imageset/Contents.json similarity index 100% rename from iOS/MLVB-API-Example/Resource/Assets.xcassets/audiocall_user_portrait.imageset/Contents.json rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/audiocall_user_portrait.imageset/Contents.json diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/audiocall_user_portrait.imageset/audiocall_user_portrait-1.png b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/audiocall_user_portrait.imageset/audiocall_user_portrait-1.png similarity index 100% rename from iOS/MLVB-API-Example/Resource/Assets.xcassets/audiocall_user_portrait.imageset/audiocall_user_portrait-1.png rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/audiocall_user_portrait.imageset/audiocall_user_portrait-1.png diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/audiocall_user_portrait.imageset/audiocall_user_portrait.png b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/audiocall_user_portrait.imageset/audiocall_user_portrait.png similarity index 100% rename from iOS/MLVB-API-Example/Resource/Assets.xcassets/audiocall_user_portrait.imageset/audiocall_user_portrait.png rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/audiocall_user_portrait.imageset/audiocall_user_portrait.png diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/launchimage.imageset/Contents.json b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/launchimage.imageset/Contents.json similarity index 100% rename from iOS/MLVB-API-Example/Resource/Assets.xcassets/launchimage.imageset/Contents.json rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/launchimage.imageset/Contents.json diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/launchimage.imageset/launchimage@2x.png b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/launchimage.imageset/launchimage@2x.png similarity index 100% rename from iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/launchimage.imageset/launchimage@2x.png rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/launchimage.imageset/launchimage@2x.png diff --git a/iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/launchimage.imageset/launchimage@3x.png b/iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/launchimage.imageset/launchimage@3x.png similarity index 100% rename from iOS/Demo/TXLiteAVDemo/App/Resource/Assets.xcassets/launchimage.imageset/launchimage@3x.png rename to iOS/MLVB-API-Example-OC/Resource/Assets.xcassets/launchimage.imageset/launchimage@3x.png diff --git a/iOS/MLVB-API-Example/Resource/Localized/AppLocalized.h b/iOS/MLVB-API-Example-OC/Resource/Localized/AppLocalized.h similarity index 100% rename from iOS/MLVB-API-Example/Resource/Localized/AppLocalized.h rename to iOS/MLVB-API-Example-OC/Resource/Localized/AppLocalized.h diff --git a/iOS/MLVB-API-Example/Resource/Localized/AppLocalized.m b/iOS/MLVB-API-Example-OC/Resource/Localized/AppLocalized.m similarity index 100% rename from iOS/MLVB-API-Example/Resource/Localized/AppLocalized.m rename to iOS/MLVB-API-Example-OC/Resource/Localized/AppLocalized.m diff --git a/iOS/MLVB-API-Example/Resource/Localized/en.lproj/InfoPlist.strings b/iOS/MLVB-API-Example-OC/Resource/Localized/en.lproj/InfoPlist.strings similarity index 100% rename from iOS/MLVB-API-Example/Resource/Localized/en.lproj/InfoPlist.strings rename to iOS/MLVB-API-Example-OC/Resource/Localized/en.lproj/InfoPlist.strings diff --git a/iOS/MLVB-API-Example/Resource/Localized/en.lproj/Localized.strings b/iOS/MLVB-API-Example-OC/Resource/Localized/en.lproj/Localized.strings similarity index 100% rename from iOS/MLVB-API-Example/Resource/Localized/en.lproj/Localized.strings rename to iOS/MLVB-API-Example-OC/Resource/Localized/en.lproj/Localized.strings diff --git a/iOS/MLVB-API-Example/Resource/Localized/zh-Hans.lproj/InfoPlist.strings b/iOS/MLVB-API-Example-OC/Resource/Localized/zh-Hans.lproj/InfoPlist.strings similarity index 100% rename from iOS/MLVB-API-Example/Resource/Localized/zh-Hans.lproj/InfoPlist.strings rename to iOS/MLVB-API-Example-OC/Resource/Localized/zh-Hans.lproj/InfoPlist.strings diff --git a/iOS/MLVB-API-Example/Resource/Localized/zh-Hans.lproj/Localized.strings b/iOS/MLVB-API-Example-OC/Resource/Localized/zh-Hans.lproj/Localized.strings similarity index 100% rename from iOS/MLVB-API-Example/Resource/Localized/zh-Hans.lproj/Localized.strings rename to iOS/MLVB-API-Example-OC/Resource/Localized/zh-Hans.lproj/Localized.strings diff --git a/iOS/MLVB-API-Example/MLVB-API-Example-OC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/iOS/MLVB-API-Example/MLVB-API-Example-OC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100755 index 18d98100..00000000 --- a/iOS/MLVB-API-Example/MLVB-API-Example-OC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/AppIcon1024x1024.png b/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/AppIcon1024x1024.png deleted file mode 100644 index 13740e65..00000000 Binary files a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/AppIcon1024x1024.png and /dev/null differ diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-120.png b/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-120.png deleted file mode 100644 index 661ee57d..00000000 Binary files a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-120.png and /dev/null differ diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-180.png b/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-180.png deleted file mode 100644 index f15785a3..00000000 Binary files a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-180.png and /dev/null differ diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-40.png b/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-40.png deleted file mode 100644 index 8f0ad129..00000000 Binary files a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-40.png and /dev/null differ diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-58.png b/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-58.png deleted file mode 100644 index 3c23ba31..00000000 Binary files a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-58.png and /dev/null differ diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60.png b/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60.png deleted file mode 100644 index b214a7a9..00000000 Binary files a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60.png and /dev/null differ diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png b/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png deleted file mode 100644 index 661ee57d..00000000 Binary files a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png and /dev/null differ diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-80.png b/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-80.png deleted file mode 100644 index ed74ef6f..00000000 Binary files a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-80.png and /dev/null differ diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-87.png b/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-87.png deleted file mode 100644 index d1875160..00000000 Binary files a/iOS/MLVB-API-Example/Resource/Assets.xcassets/AppIcon.appiconset/Icon-87.png and /dev/null differ diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/Contents.json b/iOS/MLVB-API-Example/Resource/Assets.xcassets/Contents.json deleted file mode 100755 index 73c00596..00000000 --- a/iOS/MLVB-API-Example/Resource/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/launchimage.imageset/launchimage@2x.png b/iOS/MLVB-API-Example/Resource/Assets.xcassets/launchimage.imageset/launchimage@2x.png deleted file mode 100644 index 35089ff5..00000000 Binary files a/iOS/MLVB-API-Example/Resource/Assets.xcassets/launchimage.imageset/launchimage@2x.png and /dev/null differ diff --git a/iOS/MLVB-API-Example/Resource/Assets.xcassets/launchimage.imageset/launchimage@3x.png b/iOS/MLVB-API-Example/Resource/Assets.xcassets/launchimage.imageset/launchimage@3x.png deleted file mode 100644 index 0045bf7e..00000000 Binary files a/iOS/MLVB-API-Example/Resource/Assets.xcassets/launchimage.imageset/launchimage@3x.png and /dev/null differ