Commit 3069e376d2018b36a7cf42f1faf718fe896b74dd
1 parent
3e497392
no message
Showing
72 changed files
with
895 additions
and
73 deletions
LiveVideoCloud.xcodeproj/project.pbxproj
| @@ -99,6 +99,7 @@ | @@ -99,6 +99,7 @@ | ||
| 99 | 8178D46B1F021ED800AA78A4 /* LVCTelevisionModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8178D46A1F021ED800AA78A4 /* LVCTelevisionModel.m */; }; | 99 | 8178D46B1F021ED800AA78A4 /* LVCTelevisionModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8178D46A1F021ED800AA78A4 /* LVCTelevisionModel.m */; }; |
| 100 | 8178D46E1F0225E500AA78A4 /* LVCTelevisionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8178D46D1F0225E500AA78A4 /* LVCTelevisionCell.m */; }; | 100 | 8178D46E1F0225E500AA78A4 /* LVCTelevisionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8178D46D1F0225E500AA78A4 /* LVCTelevisionCell.m */; }; |
| 101 | 8178D4711F0239AD00AA78A4 /* LVCPlayerLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8178D4701F0239AD00AA78A4 /* LVCPlayerLoadingView.m */; }; | 101 | 8178D4711F0239AD00AA78A4 /* LVCPlayerLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8178D4701F0239AD00AA78A4 /* LVCPlayerLoadingView.m */; }; |
| 102 | + 8181D53C1F134A7C00959E3D /* LVCBgmView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8181D53B1F134A7C00959E3D /* LVCBgmView.m */; }; | ||
| 102 | 81A483081E88B6140097A80A /* UIView+ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 81A483071E88B6140097A80A /* UIView+ViewController.m */; }; | 103 | 81A483081E88B6140097A80A /* UIView+ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 81A483071E88B6140097A80A /* UIView+ViewController.m */; }; |
| 103 | 81F1C8401E8BC5CC0085C2B8 /* NSArray+Safety.m in Sources */ = {isa = PBXBuildFile; fileRef = 81F1C83F1E8BC5CC0085C2B8 /* NSArray+Safety.m */; }; | 104 | 81F1C8401E8BC5CC0085C2B8 /* NSArray+Safety.m in Sources */ = {isa = PBXBuildFile; fileRef = 81F1C83F1E8BC5CC0085C2B8 /* NSArray+Safety.m */; }; |
| 104 | 81FB5B3C1E7A6FFC00F98E1D /* SevenSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = 81FB5B3B1E7A6FFC00F98E1D /* SevenSwitch.m */; }; | 105 | 81FB5B3C1E7A6FFC00F98E1D /* SevenSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = 81FB5B3B1E7A6FFC00F98E1D /* SevenSwitch.m */; }; |
| @@ -497,6 +498,8 @@ | @@ -497,6 +498,8 @@ | ||
| 497 | 8178D46D1F0225E500AA78A4 /* LVCTelevisionCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCTelevisionCell.m; sourceTree = "<group>"; }; | 498 | 8178D46D1F0225E500AA78A4 /* LVCTelevisionCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCTelevisionCell.m; sourceTree = "<group>"; }; |
| 498 | 8178D46F1F0239AD00AA78A4 /* LVCPlayerLoadingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCPlayerLoadingView.h; sourceTree = "<group>"; }; | 499 | 8178D46F1F0239AD00AA78A4 /* LVCPlayerLoadingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCPlayerLoadingView.h; sourceTree = "<group>"; }; |
| 499 | 8178D4701F0239AD00AA78A4 /* LVCPlayerLoadingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCPlayerLoadingView.m; sourceTree = "<group>"; }; | 500 | 8178D4701F0239AD00AA78A4 /* LVCPlayerLoadingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCPlayerLoadingView.m; sourceTree = "<group>"; }; |
| 501 | + 8181D53A1F134A7C00959E3D /* LVCBgmView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCBgmView.h; sourceTree = "<group>"; }; | ||
| 502 | + 8181D53B1F134A7C00959E3D /* LVCBgmView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCBgmView.m; sourceTree = "<group>"; }; | ||
| 500 | 81A483061E88B6140097A80A /* UIView+ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+ViewController.h"; sourceTree = "<group>"; }; | 503 | 81A483061E88B6140097A80A /* UIView+ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+ViewController.h"; sourceTree = "<group>"; }; |
| 501 | 81A483071E88B6140097A80A /* UIView+ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+ViewController.m"; sourceTree = "<group>"; }; | 504 | 81A483071E88B6140097A80A /* UIView+ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+ViewController.m"; sourceTree = "<group>"; }; |
| 502 | 81F1C83E1E8BC5CC0085C2B8 /* NSArray+Safety.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+Safety.h"; sourceTree = "<group>"; }; | 505 | 81F1C83E1E8BC5CC0085C2B8 /* NSArray+Safety.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+Safety.h"; sourceTree = "<group>"; }; |
| @@ -995,6 +998,8 @@ | @@ -995,6 +998,8 @@ | ||
| 995 | 8156A7B31F0F8FCC007EE146 /* LVCAERootView.m */, | 998 | 8156A7B31F0F8FCC007EE146 /* LVCAERootView.m */, |
| 996 | 8156A7B51F0F93AA007EE146 /* LVCAECommonView.h */, | 999 | 8156A7B51F0F93AA007EE146 /* LVCAECommonView.h */, |
| 997 | 8156A7B61F0F93AA007EE146 /* LVCAECommonView.m */, | 1000 | 8156A7B61F0F93AA007EE146 /* LVCAECommonView.m */, |
| 1001 | + 8181D53A1F134A7C00959E3D /* LVCBgmView.h */, | ||
| 1002 | + 8181D53B1F134A7C00959E3D /* LVCBgmView.m */, | ||
| 998 | 8156A7B81F0F9541007EE146 /* AECommonCell.h */, | 1003 | 8156A7B81F0F9541007EE146 /* AECommonCell.h */, |
| 999 | 8156A7B91F0F9541007EE146 /* AECommonCell.m */, | 1004 | 8156A7B91F0F9541007EE146 /* AECommonCell.m */, |
| 1000 | ); | 1005 | ); |
| @@ -2376,6 +2381,7 @@ | @@ -2376,6 +2381,7 @@ | ||
| 2376 | D2029CBF1E6EADE10027CD92 /* UIButton+WebCache.m in Sources */, | 2381 | D2029CBF1E6EADE10027CD92 /* UIButton+WebCache.m in Sources */, |
| 2377 | D2575C7E1E76A4F300E3A8FC /* NHPlaneViews.m in Sources */, | 2382 | D2575C7E1E76A4F300E3A8FC /* NHPlaneViews.m in Sources */, |
| 2378 | 4B45CE761EB86A590079AFB7 /* BeingAnchorController.m in Sources */, | 2383 | 4B45CE761EB86A590079AFB7 /* BeingAnchorController.m in Sources */, |
| 2384 | + 8181D53C1F134A7C00959E3D /* LVCBgmView.m in Sources */, | ||
| 2379 | D2029CC51E6EADE10027CD92 /* UIView+WebCacheOperation.m in Sources */, | 2385 | D2029CC51E6EADE10027CD92 /* UIView+WebCacheOperation.m in Sources */, |
| 2380 | D260E6101F0CE8690095E49D /* praiseModel.m in Sources */, | 2386 | D260E6101F0CE8690095E49D /* praiseModel.m in Sources */, |
| 2381 | D2029CAB1E6EADE10027CD92 /* MJRefreshBackNormalFooter.m in Sources */, | 2387 | D2029CAB1E6EADE10027CD92 /* MJRefreshBackNormalFooter.m in Sources */, |
LiveVideoCloud.xcodeproj/xcuserdata/iOS.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
| @@ -13,5 +13,37 @@ | @@ -13,5 +13,37 @@ | ||
| 13 | stopOnStyle = "0"> | 13 | stopOnStyle = "0"> |
| 14 | </BreakpointContent> | 14 | </BreakpointContent> |
| 15 | </BreakpointProxy> | 15 | </BreakpointProxy> |
| 16 | + <BreakpointProxy | ||
| 17 | + BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> | ||
| 18 | + <BreakpointContent | ||
| 19 | + shouldBeEnabled = "Yes" | ||
| 20 | + ignoreCount = "0" | ||
| 21 | + continueAfterRunningActions = "No" | ||
| 22 | + filePath = "LiveVideoCloud/Classes/Sections/Mine/Views/LVCVideoMgrButton.m" | ||
| 23 | + timestampString = "521361420.44809" | ||
| 24 | + startingColumnNumber = "9223372036854775807" | ||
| 25 | + endingColumnNumber = "9223372036854775807" | ||
| 26 | + startingLineNumber = "21" | ||
| 27 | + endingLineNumber = "21" | ||
| 28 | + landmarkName = "-initWithFrame:left:" | ||
| 29 | + landmarkType = "7"> | ||
| 30 | + </BreakpointContent> | ||
| 31 | + </BreakpointProxy> | ||
| 32 | + <BreakpointProxy | ||
| 33 | + BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> | ||
| 34 | + <BreakpointContent | ||
| 35 | + shouldBeEnabled = "Yes" | ||
| 36 | + ignoreCount = "0" | ||
| 37 | + continueAfterRunningActions = "No" | ||
| 38 | + filePath = "LiveVideoCloud/Classes/Sections/Mine/Views/LVCVideoMgrButton.m" | ||
| 39 | + timestampString = "521361430.079111" | ||
| 40 | + startingColumnNumber = "9223372036854775807" | ||
| 41 | + endingColumnNumber = "9223372036854775807" | ||
| 42 | + startingLineNumber = "46" | ||
| 43 | + endingLineNumber = "46" | ||
| 44 | + landmarkName = "-setVideoMgrState:" | ||
| 45 | + landmarkType = "7"> | ||
| 46 | + </BreakpointContent> | ||
| 47 | + </BreakpointProxy> | ||
| 16 | </Breakpoints> | 48 | </Breakpoints> |
| 17 | </Bucket> | 49 | </Bucket> |
LiveVideoCloud/Classes/Sections/Mine/Controllers/LVCMineViewController.m
| @@ -203,8 +203,10 @@ | @@ -203,8 +203,10 @@ | ||
| 203 | if (indexPath.row == 0) { | 203 | if (indexPath.row == 0) { |
| 204 | [self pushVC:[MineSettingViewController new]]; | 204 | [self pushVC:[MineSettingViewController new]]; |
| 205 | } else if (indexPath.row == 1) { | 205 | } else if (indexPath.row == 1) { |
| 206 | - LVCShortVideoController *shortVideoVC = [[LVCShortVideoController alloc] init]; | ||
| 207 | - [self presentViewController:shortVideoVC animated:YES completion:NULL]; | 206 | + dispatch_async(dispatch_get_main_queue(), ^{ |
| 207 | + LVCShortVideoController *shortVideoVC = [[LVCShortVideoController alloc] init]; | ||
| 208 | + [self presentViewController:shortVideoVC animated:YES completion:NULL]; | ||
| 209 | + }); | ||
| 208 | } | 210 | } |
| 209 | 211 | ||
| 210 | // if(indexPath.row == 0) | 212 | // if(indexPath.row == 0) |
LiveVideoCloud/Classes/Sections/Mine/Controllers/LVCShortVideoController.m
| @@ -28,7 +28,7 @@ | @@ -28,7 +28,7 @@ | ||
| 28 | 28 | ||
| 29 | [self.view addSubview:self.previewView]; | 29 | [self.view addSubview:self.previewView]; |
| 30 | [self.view addSubview:self.aeRootView]; | 30 | [self.view addSubview:self.aeRootView]; |
| 31 | - | 31 | +// |
| 32 | [self p_setupPreViewEvent]; | 32 | [self p_setupPreViewEvent]; |
| 33 | 33 | ||
| 34 | } | 34 | } |
| @@ -133,8 +133,8 @@ | @@ -133,8 +133,8 @@ | ||
| 133 | { | 133 | { |
| 134 | if (!_aeRootView){ | 134 | if (!_aeRootView){ |
| 135 | _aeRootView = [[LVCAERootView alloc] initWithFrame:kAERootViewHideFrame]; | 135 | _aeRootView = [[LVCAERootView alloc] initWithFrame:kAERootViewHideFrame]; |
| 136 | - [(UIView *)[_aeRootView valueForKey:@"decalBtn"] setHidden:YES]; | ||
| 137 | - [(UIView *)[_aeRootView valueForKey:@"textDecalBtn"] setHidden:YES]; | 136 | +// [(UIView *)[_aeRootView valueForKey:@"decalBtn"] setHidden:YES]; |
| 137 | +// [(UIView *)[_aeRootView valueForKey:@"textDecalBtn"] setHidden:YES]; | ||
| 138 | _aeRootView.userInteractionEnabled = YES; | 138 | _aeRootView.userInteractionEnabled = YES; |
| 139 | 139 | ||
| 140 | } | 140 | } |
LiveVideoCloud/Classes/Sections/Mine/Model/AEModelTemplate.h
| @@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
| 14 | 14 | ||
| 15 | @property(nonatomic, assign)NSUInteger idx; | 15 | @property(nonatomic, assign)NSUInteger idx; |
| 16 | 16 | ||
| 17 | -@property(nonatomic, strong)UIImage *image; | 17 | +@property(nonatomic, strong)NSString *image; |
| 18 | 18 | ||
| 19 | @property(nonatomic, strong)NSString *txt; | 19 | @property(nonatomic, strong)NSString *txt; |
| 20 | 20 |
LiveVideoCloud/Classes/Sections/Mine/Views/AECommonCell.m
| @@ -56,8 +56,13 @@ | @@ -56,8 +56,13 @@ | ||
| 56 | 56 | ||
| 57 | - (void)setModel:(AEModelTemplate *)model | 57 | - (void)setModel:(AEModelTemplate *)model |
| 58 | { | 58 | { |
| 59 | - _thumb.image = model.image; | ||
| 60 | - _tips.text = model.txt; | 59 | + _thumb.image = [UIImage imageNamed:model.image]; |
| 60 | + if (![model.txt isEqualToString:@"nil"]) { | ||
| 61 | + _tips.text = model.txt; | ||
| 62 | + } else { | ||
| 63 | + _tips.text = @""; | ||
| 64 | + } | ||
| 65 | + | ||
| 61 | if (!model.txt || model.txt.length == 0){ | 66 | if (!model.txt || model.txt.length == 0){ |
| 62 | _tips.hidden = YES; | 67 | _tips.hidden = YES; |
| 63 | _isOrigin = YES; | 68 | _isOrigin = YES; |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCAECommonView.h
| @@ -11,6 +11,9 @@ | @@ -11,6 +11,9 @@ | ||
| 11 | 11 | ||
| 12 | @interface LVCAECommonView : UIView | 12 | @interface LVCAECommonView : UIView |
| 13 | 13 | ||
| 14 | -- (instancetype)initWithFrame:(CGRect)frame type:(NSUInteger)type data:(NSArray<__kindof AEModelTemplate *> *)dataSource; | 14 | +@property (nonatomic, copy)void(^FuncBlock)(AEModelTemplate *model); |
| 15 | + | ||
| 16 | +- (instancetype)initWithFrame:(CGRect)frame type:(NSUInteger)type data:(NSArray *)dataSource; | ||
| 17 | + | ||
| 15 | 18 | ||
| 16 | @end | 19 | @end |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCAECommonView.m
| @@ -13,18 +13,25 @@ | @@ -13,18 +13,25 @@ | ||
| 13 | @interface LVCAECommonView ()<UICollectionViewDelegate, UICollectionViewDataSource> | 13 | @interface LVCAECommonView ()<UICollectionViewDelegate, UICollectionViewDataSource> |
| 14 | 14 | ||
| 15 | @property (nonatomic, strong) UICollectionView *collectionView; | 15 | @property (nonatomic, strong) UICollectionView *collectionView; |
| 16 | -@property (nonatomic, strong) NSArray<__kindof AEModelTemplate *> *dataArray; | 16 | +@property (nonatomic, strong) NSMutableArray *dataArray; |
| 17 | 17 | ||
| 18 | @end | 18 | @end |
| 19 | 19 | ||
| 20 | @implementation LVCAECommonView | 20 | @implementation LVCAECommonView |
| 21 | 21 | ||
| 22 | -- (instancetype)initWithFrame:(CGRect)frame type:(NSUInteger)type data:(NSArray<__kindof AEModelTemplate *> *)dataSource { | 22 | +- (instancetype)initWithFrame:(CGRect)frame type:(NSUInteger)type data:(NSArray*)dataSource { |
| 23 | 23 | ||
| 24 | self = [super initWithFrame:frame]; | 24 | self = [super initWithFrame:frame]; |
| 25 | if (self) { | 25 | if (self) { |
| 26 | 26 | ||
| 27 | - _dataArray = dataSource; | 27 | + _dataArray = [[NSMutableArray alloc] init]; |
| 28 | + | ||
| 29 | + for (NSDictionary *dic in dataSource) { | ||
| 30 | + AEModelTemplate *model = [AEModelTemplate mj_objectWithKeyValues:dic]; | ||
| 31 | + [_dataArray addObject:model]; | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + [self addSubview:self.collectionView]; | ||
| 28 | 35 | ||
| 29 | } | 36 | } |
| 30 | return self; | 37 | return self; |
| @@ -46,21 +53,27 @@ | @@ -46,21 +53,27 @@ | ||
| 46 | _collectionView.backgroundColor = [UIColor clearColor]; | 53 | _collectionView.backgroundColor = [UIColor clearColor]; |
| 47 | _collectionView.showsHorizontalScrollIndicator = NO; | 54 | _collectionView.showsHorizontalScrollIndicator = NO; |
| 48 | _collectionView.scrollsToTop = YES; | 55 | _collectionView.scrollsToTop = YES; |
| 56 | + | ||
| 57 | + [self.collectionView registerClass:[AECommonCell class] forCellWithReuseIdentifier:@"cell"]; | ||
| 58 | + | ||
| 59 | + | ||
| 49 | } | 60 | } |
| 50 | return _collectionView; | 61 | return _collectionView; |
| 51 | } | 62 | } |
| 52 | 63 | ||
| 53 | - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath | 64 | - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath |
| 54 | { | 65 | { |
| 55 | - static NSString *identifier = @"AECommonCell"; | ||
| 56 | - AECommonCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath]; | 66 | +// static NSString *identifier = @"AECommonCell"; |
| 67 | + AECommonCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath]; | ||
| 57 | cell.model = self.dataArray[indexPath.row]; | 68 | cell.model = self.dataArray[indexPath.row]; |
| 58 | return cell; | 69 | return cell; |
| 59 | } | 70 | } |
| 60 | 71 | ||
| 61 | - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath | 72 | - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath |
| 62 | { | 73 | { |
| 63 | - | 74 | + if (self.FuncBlock) { |
| 75 | + self.FuncBlock(_dataArray[indexPath.row]); | ||
| 76 | + } | ||
| 64 | } | 77 | } |
| 65 | 78 | ||
| 66 | - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section | 79 | - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section |
| @@ -68,12 +81,10 @@ | @@ -68,12 +81,10 @@ | ||
| 68 | return self.dataArray.count; | 81 | return self.dataArray.count; |
| 69 | } | 82 | } |
| 70 | 83 | ||
| 71 | - | ||
| 72 | - | ||
| 73 | -- (NSArray<AEModelTemplate *> *)dataArray | 84 | +- (NSMutableArray *)dataArray |
| 74 | { | 85 | { |
| 75 | if (!_dataArray){ | 86 | if (!_dataArray){ |
| 76 | - _dataArray = [[NSArray alloc] init]; | 87 | + _dataArray = [[NSMutableArray alloc] init]; |
| 77 | } | 88 | } |
| 78 | return _dataArray; | 89 | return _dataArray; |
| 79 | } | 90 | } |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCAERootView.h
| @@ -7,6 +7,7 @@ | @@ -7,6 +7,7 @@ | ||
| 7 | // | 7 | // |
| 8 | 8 | ||
| 9 | #import <UIKit/UIKit.h> | 9 | #import <UIKit/UIKit.h> |
| 10 | +#import "AEModelTemplate.h" | ||
| 10 | 11 | ||
| 11 | typedef NS_ENUM(NSInteger, CNLiveSelectorType){ | 12 | typedef NS_ENUM(NSInteger, CNLiveSelectorType){ |
| 12 | CNLiveSelectorType_Reverb, // 混响 | 13 | CNLiveSelectorType_Reverb, // 混响 |
| @@ -23,4 +24,9 @@ typedef NS_ENUM(NSUInteger, kAEStatus){ | @@ -23,4 +24,9 @@ typedef NS_ENUM(NSUInteger, kAEStatus){ | ||
| 23 | kAEShow, | 24 | kAEShow, |
| 24 | }; | 25 | }; |
| 25 | 26 | ||
| 27 | +@property (nonatomic, copy) void(^BgmVolumeBlock)(float origin, float dub); //音量回调 | ||
| 28 | +@property (nonatomic, copy) void(^BgmBlock)(AEModelTemplate *model); | ||
| 29 | +@property (nonatomic, copy) void(^AEBlock)(AEModelTemplate *model); | ||
| 30 | +@property (nonatomic, copy) void(^DEBlock)(AEModelTemplate *model); | ||
| 31 | + | ||
| 26 | @end | 32 | @end |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCAERootView.m
| @@ -9,10 +9,11 @@ | @@ -9,10 +9,11 @@ | ||
| 9 | #import "LVCAERootView.h" | 9 | #import "LVCAERootView.h" |
| 10 | #import "LVCAECommonView.h" | 10 | #import "LVCAECommonView.h" |
| 11 | #import "AEModelTemplate.h" | 11 | #import "AEModelTemplate.h" |
| 12 | +#import "LVCBgmView.h" | ||
| 12 | 13 | ||
| 13 | @interface LVCAERootView () | 14 | @interface LVCAERootView () |
| 14 | { | 15 | { |
| 15 | - NSMutableArray *_dataArray; | 16 | + NSArray *_dataArray; |
| 16 | } | 17 | } |
| 17 | 18 | ||
| 18 | @property (nonatomic, strong) UIButton *bgmBtn; //背景音乐 | 19 | @property (nonatomic, strong) UIButton *bgmBtn; //背景音乐 |
| @@ -21,7 +22,7 @@ | @@ -21,7 +22,7 @@ | ||
| 21 | @property (nonatomic, strong) UIButton *decalBtn; //贴纸 | 22 | @property (nonatomic, strong) UIButton *decalBtn; //贴纸 |
| 22 | @property (nonatomic, strong) UIButton *textDecalBtn; //字幕 | 23 | @property (nonatomic, strong) UIButton *textDecalBtn; //字幕 |
| 23 | 24 | ||
| 24 | -@property (nonatomic, strong) LVCAECommonView *bgmView; | 25 | +@property (nonatomic, strong) LVCBgmView *bgmView; |
| 25 | @property (nonatomic, strong) LVCAECommonView *aeView; | 26 | @property (nonatomic, strong) LVCAECommonView *aeView; |
| 26 | @property (nonatomic, strong) LVCAECommonView *reverbView; | 27 | @property (nonatomic, strong) LVCAECommonView *reverbView; |
| 27 | @property (nonatomic, strong) LVCAECommonView *decalView; | 28 | @property (nonatomic, strong) LVCAECommonView *decalView; |
| @@ -36,27 +37,42 @@ | @@ -36,27 +37,42 @@ | ||
| 36 | self = [super initWithFrame:frame]; | 37 | self = [super initWithFrame:frame]; |
| 37 | if (self) { | 38 | if (self) { |
| 38 | self.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1.0]; | 39 | self.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1.0]; |
| 40 | + | ||
| 41 | + NSString* plistfile1 = [[NSBundle mainBundle]pathForResource:@"ShortVideoData" ofType:@"plist"]; | ||
| 42 | + _dataArray = [[NSArray alloc] initWithContentsOfFile:plistfile1]; | ||
| 43 | + | ||
| 39 | [self addSubview:self.bgmBtn]; | 44 | [self addSubview:self.bgmBtn]; |
| 40 | [self addSubview:self.aeBtn]; | 45 | [self addSubview:self.aeBtn]; |
| 41 | [self addSubview:self.reverbBtn]; | 46 | [self addSubview:self.reverbBtn]; |
| 42 | [self addSubview:self.decalBtn]; | 47 | [self addSubview:self.decalBtn]; |
| 43 | [self addSubview:self.textDecalBtn]; | 48 | [self addSubview:self.textDecalBtn]; |
| 49 | + [self addSubview:self.bgmView]; | ||
| 44 | 50 | ||
| 45 | - _dataArray = [[NSMutableArray alloc] init]; | ||
| 46 | - NSString* plistfile1 = [[NSBundle mainBundle]pathForResource:@"ShortVideoData" ofType:@"plist"]; | ||
| 47 | - NSArray *dataArr = [[NSArray alloc] initWithContentsOfFile:plistfile1]; | ||
| 48 | - //打印出字典里的数据 | ||
| 49 | -// NSLog(@"%@",dataArr); | ||
| 50 | - for (NSDictionary *dic in dataArr) { | ||
| 51 | - AEModelTemplate *model = [AEModelTemplate mj_objectWithKeyValues:dic]; | ||
| 52 | - [_dataArray addObject:model]; | ||
| 53 | - } | ||
| 54 | - | ||
| 55 | - NSLog(@"-------%@", _dataArray); | ||
| 56 | } | 51 | } |
| 57 | return self; | 52 | return self; |
| 58 | } | 53 | } |
| 59 | 54 | ||
| 55 | +#pragma mark - | ||
| 56 | +#pragma mark - setter | ||
| 57 | +- (void)setBgmBlock:(void (^)(AEModelTemplate *))BgmBlock | ||
| 58 | +{ | ||
| 59 | + self.bgmView.bgmView.FuncBlock = BgmBlock; | ||
| 60 | +} | ||
| 61 | + | ||
| 62 | +- (void)setBgmVolumeBlock:(void (^)(float, float))BgmVolumeBlock | ||
| 63 | +{ | ||
| 64 | + self.bgmView.BgmVolumeBlock = BgmVolumeBlock; | ||
| 65 | +} | ||
| 66 | + | ||
| 67 | +- (void)setAEBlock:(void (^)(AEModelTemplate *))AEBlock { | ||
| 68 | + self.aeView.FuncBlock = AEBlock; | ||
| 69 | +} | ||
| 70 | + | ||
| 71 | +- (void)setDEBlock:(void (^)(AEModelTemplate *))DEBlock { | ||
| 72 | + self.decalView.FuncBlock = DEBlock; | ||
| 73 | + self.textDecalView.FuncBlock = DEBlock; | ||
| 74 | +} | ||
| 75 | + | ||
| 60 | - (void)onSelectBgm:(id)sender | 76 | - (void)onSelectBgm:(id)sender |
| 61 | { | 77 | { |
| 62 | self.aeBtn.selected = NO; | 78 | self.aeBtn.selected = NO; |
| @@ -64,43 +80,80 @@ | @@ -64,43 +80,80 @@ | ||
| 64 | self.reverbBtn.selected = NO; | 80 | self.reverbBtn.selected = NO; |
| 65 | self.decalBtn.selected = NO; | 81 | self.decalBtn.selected = NO; |
| 66 | self.textDecalBtn.selected = NO; | 82 | self.textDecalBtn.selected = NO; |
| 67 | - | 83 | + |
| 84 | + self.bgmView.hidden = NO; | ||
| 85 | + self.aeView.hidden = YES; | ||
| 86 | + self.reverbView.hidden = YES; | ||
| 87 | + self.decalView.hidden = YES; | ||
| 88 | + self.textDecalView.hidden = YES; | ||
| 68 | } | 89 | } |
| 69 | 90 | ||
| 70 | - (void)onSelectAe:(id)sender | 91 | - (void)onSelectAe:(id)sender |
| 71 | { | 92 | { |
| 93 | + [self addSubview:self.aeView]; | ||
| 94 | + | ||
| 72 | self.aeBtn.selected = YES; | 95 | self.aeBtn.selected = YES; |
| 73 | self.bgmBtn.selected = NO; | 96 | self.bgmBtn.selected = NO; |
| 74 | self.reverbBtn.selected = NO; | 97 | self.reverbBtn.selected = NO; |
| 75 | self.decalBtn.selected = NO; | 98 | self.decalBtn.selected = NO; |
| 99 | + | ||
| 100 | + self.bgmView.hidden = YES; | ||
| 101 | + self.aeView.hidden = NO; | ||
| 102 | + self.reverbView.hidden = YES; | ||
| 103 | + self.decalView.hidden = YES; | ||
| 104 | + self.textDecalView.hidden = YES; | ||
| 76 | } | 105 | } |
| 77 | 106 | ||
| 78 | - (void)onSelectReverb:(id)sender | 107 | - (void)onSelectReverb:(id)sender |
| 79 | { | 108 | { |
| 109 | + [self addSubview:self.reverbView]; | ||
| 110 | + | ||
| 80 | self.reverbBtn.selected = YES; | 111 | self.reverbBtn.selected = YES; |
| 81 | self.aeBtn.selected = NO; | 112 | self.aeBtn.selected = NO; |
| 82 | self.bgmBtn.selected = NO; | 113 | self.bgmBtn.selected = NO; |
| 83 | self.decalBtn.selected = NO; | 114 | self.decalBtn.selected = NO; |
| 84 | self.textDecalBtn.selected = NO; | 115 | self.textDecalBtn.selected = NO; |
| 116 | + | ||
| 117 | + self.bgmView.hidden = YES; | ||
| 118 | + self.aeView.hidden = YES; | ||
| 119 | + self.reverbView.hidden = NO; | ||
| 120 | + self.decalView.hidden = YES; | ||
| 121 | + self.textDecalView.hidden = YES; | ||
| 85 | 122 | ||
| 86 | } | 123 | } |
| 87 | 124 | ||
| 88 | -- (void)onSelectDecel:(id)sender{ | 125 | +- (void)onSelectDecel:(id)sender |
| 126 | +{ | ||
| 127 | + [self addSubview:self.decalView]; | ||
| 128 | + | ||
| 89 | self.reverbBtn.selected = NO; | 129 | self.reverbBtn.selected = NO; |
| 90 | self.aeBtn.selected = NO; | 130 | self.aeBtn.selected = NO; |
| 91 | self.bgmBtn.selected = NO; | 131 | self.bgmBtn.selected = NO; |
| 92 | self.decalBtn.selected = YES; | 132 | self.decalBtn.selected = YES; |
| 93 | self.textDecalBtn.selected = NO; | 133 | self.textDecalBtn.selected = NO; |
| 94 | 134 | ||
| 135 | + self.bgmView.hidden = YES; | ||
| 136 | + self.aeView.hidden = YES; | ||
| 137 | + self.reverbView.hidden = YES; | ||
| 138 | + self.decalView.hidden = NO; | ||
| 139 | + self.textDecalView.hidden = YES; | ||
| 95 | } | 140 | } |
| 96 | 141 | ||
| 97 | -- (void)onSelectTextDecal:(UIButton *)btn{ | 142 | +- (void)onSelectTextDecal:(UIButton *)btn |
| 143 | +{ | ||
| 144 | + [self addSubview:self.textDecalView]; | ||
| 145 | + | ||
| 98 | self.reverbBtn.selected = NO; | 146 | self.reverbBtn.selected = NO; |
| 99 | self.aeBtn.selected = NO; | 147 | self.aeBtn.selected = NO; |
| 100 | self.bgmBtn.selected = NO; | 148 | self.bgmBtn.selected = NO; |
| 101 | self.decalBtn.selected = NO; | 149 | self.decalBtn.selected = NO; |
| 102 | self.textDecalBtn.selected = YES; | 150 | self.textDecalBtn.selected = YES; |
| 103 | 151 | ||
| 152 | + self.bgmView.hidden = YES; | ||
| 153 | + self.aeView.hidden = YES; | ||
| 154 | + self.reverbView.hidden = YES; | ||
| 155 | + self.decalView.hidden = YES; | ||
| 156 | + self.textDecalView.hidden = NO; | ||
| 104 | } | 157 | } |
| 105 | 158 | ||
| 106 | #pragma mark - | 159 | #pragma mark - |
| @@ -178,19 +231,19 @@ | @@ -178,19 +231,19 @@ | ||
| 178 | return _textDecalBtn; | 231 | return _textDecalBtn; |
| 179 | } | 232 | } |
| 180 | 233 | ||
| 181 | -//- (BgmSelectorView *)bgmView | ||
| 182 | -//{ | ||
| 183 | -// if (!_bgmView){ | ||
| 184 | -// _bgmView = [[BgmSelectorView alloc] initWithFrame:CGRectMake(0, 30, KScreenWidth, 172)]; | ||
| 185 | -// } | ||
| 186 | -// return _bgmView; | ||
| 187 | -//} | 234 | +- (LVCBgmView *)bgmView |
| 235 | +{ | ||
| 236 | + if (!_bgmView){ | ||
| 237 | + _bgmView = [[LVCBgmView alloc] initWithFrame:CGRectMake(0, 30, KScreenWidth, 172) type:CNLiveSelectorType_BGM data:_dataArray[4]]; | ||
| 238 | + } | ||
| 239 | + return _bgmView; | ||
| 240 | +} | ||
| 188 | 241 | ||
| 189 | 242 | ||
| 190 | - (LVCAECommonView *)aeView | 243 | - (LVCAECommonView *)aeView |
| 191 | { | 244 | { |
| 192 | if (!_aeView){ | 245 | if (!_aeView){ |
| 193 | - _aeView = [[LVCAECommonView alloc] initWithFrame:CGRectMake(0, 40, KScreenWidth, 172) type:CNLiveSelectorType_AE data:@[]]; | 246 | + _aeView = [[LVCAECommonView alloc] initWithFrame:CGRectMake(0, 40, KScreenWidth, 172) type:CNLiveSelectorType_AE data:_dataArray[2]]; |
| 194 | _aeView.frame = CGRectMake(0, 40, KScreenWidth, 172); | 247 | _aeView.frame = CGRectMake(0, 40, KScreenWidth, 172); |
| 195 | } | 248 | } |
| 196 | return _aeView; | 249 | return _aeView; |
| @@ -199,7 +252,7 @@ | @@ -199,7 +252,7 @@ | ||
| 199 | - (LVCAECommonView *)reverbView | 252 | - (LVCAECommonView *)reverbView |
| 200 | { | 253 | { |
| 201 | if (!_reverbView){ | 254 | if (!_reverbView){ |
| 202 | - _reverbView = [[LVCAECommonView alloc] initWithFrame:CGRectMake(0, 40, KScreenWidth, 172) type:CNLiveSelectorType_Reverb data:@[]]; | 255 | + _reverbView = [[LVCAECommonView alloc] initWithFrame:CGRectMake(0, 40, KScreenWidth, 172) type:CNLiveSelectorType_Reverb data:_dataArray[3]]; |
| 203 | } | 256 | } |
| 204 | return _reverbView; | 257 | return _reverbView; |
| 205 | } | 258 | } |
| @@ -207,7 +260,7 @@ | @@ -207,7 +260,7 @@ | ||
| 207 | - (LVCAECommonView *)decalView | 260 | - (LVCAECommonView *)decalView |
| 208 | { | 261 | { |
| 209 | if (!_decalView){ | 262 | if (!_decalView){ |
| 210 | - _decalView = [[LVCAECommonView alloc] initWithFrame:CGRectMake(0, 40, KScreenWidth, 172) type:CNLiveSelectorType_Decal data:@[]]; | 263 | + _decalView = [[LVCAECommonView alloc] initWithFrame:CGRectMake(0, 40, KScreenWidth, 172) type:CNLiveSelectorType_Decal data:_dataArray[1]]; |
| 211 | } | 264 | } |
| 212 | return _decalView; | 265 | return _decalView; |
| 213 | } | 266 | } |
| @@ -215,7 +268,7 @@ | @@ -215,7 +268,7 @@ | ||
| 215 | - (LVCAECommonView *)textDecalView | 268 | - (LVCAECommonView *)textDecalView |
| 216 | { | 269 | { |
| 217 | if (!_textDecalView){ | 270 | if (!_textDecalView){ |
| 218 | - _textDecalView = [[LVCAECommonView alloc] initWithFrame:CGRectMake(0, 40, KScreenWidth, 172) type:CNLiveSelectorType_TextDecal data:@[]]; | 271 | + _textDecalView = [[LVCAECommonView alloc] initWithFrame:CGRectMake(0, 40, KScreenWidth, 172) type:CNLiveSelectorType_TextDecal data:_dataArray[0]]; |
| 219 | } | 272 | } |
| 220 | return _textDecalView; | 273 | return _textDecalView; |
| 221 | } | 274 | } |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCBgmView.h
0 → 100644
| 1 | +// | ||
| 2 | +// LVCBgmView.h | ||
| 3 | +// LiveVideoCloud | ||
| 4 | +// | ||
| 5 | +// Created by iOS on 2017/7/10. | ||
| 6 | +// Copyright © 2017年 cnlive. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +#import <UIKit/UIKit.h> | ||
| 10 | +#import "LVCAECommonView.h" | ||
| 11 | + | ||
| 12 | +@interface LVCBgmView : UIView | ||
| 13 | + | ||
| 14 | +@property (nonatomic, strong) LVCAECommonView *bgmView; | ||
| 15 | +@property (nonatomic, copy) void(^BgmVolumeBlock)(float origin, float dub); | ||
| 16 | + | ||
| 17 | +- (instancetype)initWithFrame:(CGRect)frame type:(NSUInteger)type data:(NSArray *)dataSource; | ||
| 18 | + | ||
| 19 | +@end |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCBgmView.m
0 → 100644
| 1 | +// | ||
| 2 | +// LVCBgmView.m | ||
| 3 | +// LiveVideoCloud | ||
| 4 | +// | ||
| 5 | +// Created by iOS on 2017/7/10. | ||
| 6 | +// Copyright © 2017年 cnlive. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +#import "LVCBgmView.h" | ||
| 10 | +#import "LVCAERootView.h" | ||
| 11 | + | ||
| 12 | +@interface LVCBgmView () | ||
| 13 | +{ | ||
| 14 | + NSArray *_bgmArr; | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +@property (nonatomic, strong) UISlider *originVolumeSlider; | ||
| 18 | +@property (nonatomic, strong) UISlider *dubVolumeSlider; | ||
| 19 | + | ||
| 20 | +@end | ||
| 21 | + | ||
| 22 | +@implementation LVCBgmView | ||
| 23 | + | ||
| 24 | +- (instancetype)initWithFrame:(CGRect)frame type:(NSUInteger)type data:(NSArray *)dataSource | ||
| 25 | +{ | ||
| 26 | + self = [super initWithFrame:frame]; | ||
| 27 | + if (self) { | ||
| 28 | + _bgmArr = dataSource; | ||
| 29 | + | ||
| 30 | + [self addSubview:self.bgmView]; | ||
| 31 | + [self addSubview:self.originVolumeSlider]; | ||
| 32 | + [self addSubview:self.dubVolumeSlider]; | ||
| 33 | + } | ||
| 34 | + return self; | ||
| 35 | +} | ||
| 36 | + | ||
| 37 | +#pragma mark - | ||
| 38 | +#pragma mark - Action | ||
| 39 | +- (void)sliderValueChanged:(UISlider *)slider | ||
| 40 | +{ | ||
| 41 | + if (self.BgmVolumeBlock){ | ||
| 42 | + self.BgmVolumeBlock(self.originVolumeSlider.value, self.dubVolumeSlider.value); | ||
| 43 | + } | ||
| 44 | +} | ||
| 45 | + | ||
| 46 | +#pragma mark - | ||
| 47 | +#pragma mark - getter | ||
| 48 | +- (LVCAECommonView *)bgmView | ||
| 49 | +{ | ||
| 50 | + if (!_bgmView) { | ||
| 51 | + _bgmView = [[LVCAECommonView alloc] initWithFrame:self.bounds type:CNLiveSelectorType_BGM data:_bgmArr]; | ||
| 52 | + } | ||
| 53 | + return _bgmView; | ||
| 54 | +} | ||
| 55 | + | ||
| 56 | +- (UISlider *)originVolumeSlider | ||
| 57 | +{ | ||
| 58 | + if (!_originVolumeSlider){ | ||
| 59 | + _originVolumeSlider = [self createSlider:@"原声"]; | ||
| 60 | + _originVolumeSlider.frame = CGRectMake(60, self.bounds.size.height-50, self.bounds.size.width-60-24, 20); | ||
| 61 | + _originVolumeSlider.tag = 0; | ||
| 62 | + } | ||
| 63 | + return _originVolumeSlider; | ||
| 64 | + | ||
| 65 | +} | ||
| 66 | + | ||
| 67 | +- (UISlider *)dubVolumeSlider | ||
| 68 | +{ | ||
| 69 | + if (!_dubVolumeSlider){ | ||
| 70 | + _dubVolumeSlider = [self createSlider:@"配音"]; | ||
| 71 | + _dubVolumeSlider.frame = CGRectMake(60, self.bounds.size.height-20, self.bounds.size.width-60-24, 20); | ||
| 72 | + _dubVolumeSlider.tag = 1; | ||
| 73 | + _dubVolumeSlider.enabled = NO; | ||
| 74 | + } | ||
| 75 | + return _dubVolumeSlider; | ||
| 76 | +} | ||
| 77 | + | ||
| 78 | +- (UISlider *)createSlider:(NSString *)title | ||
| 79 | +{ | ||
| 80 | + UISlider *slider = [[UISlider alloc] init]; | ||
| 81 | + slider.minimumValue = 0; | ||
| 82 | + slider.maximumValue = 1; | ||
| 83 | + | ||
| 84 | + slider.thumbTintColor = [UIColor colorWithHexString:@"#ff2c53"]; | ||
| 85 | + slider.maximumTrackTintColor = [UIColor colorWithHexString:@"#999999"]; | ||
| 86 | + slider.minimumTrackTintColor = [UIColor colorWithHexString:@"#ff2c53"]; | ||
| 87 | + [slider setThumbImage:[UIImage imageNamed:@"thumb"] forState:UIControlStateNormal]; | ||
| 88 | + [slider setThumbImage:[UIImage imageNamed:@"thumb"] forState:UIControlStateHighlighted]; | ||
| 89 | + [slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged]; | ||
| 90 | + | ||
| 91 | + UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(-35, 4, 30, 20)]; | ||
| 92 | + label.font = [UIFont systemFontOfSize:14]; | ||
| 93 | + label.text = title; | ||
| 94 | + label.textColor = [UIColor colorWithHexString:@"#999999"]; | ||
| 95 | + [label sizeToFit]; | ||
| 96 | + | ||
| 97 | + [slider addSubview:label]; | ||
| 98 | + | ||
| 99 | + return slider; | ||
| 100 | +} | ||
| 101 | + | ||
| 102 | + | ||
| 103 | +/* | ||
| 104 | +// Only override drawRect: if you perform custom drawing. | ||
| 105 | +// An empty implementation adversely affects performance during animation. | ||
| 106 | +- (void)drawRect:(CGRect)rect { | ||
| 107 | + // Drawing code | ||
| 108 | +} | ||
| 109 | +*/ | ||
| 110 | + | ||
| 111 | +@end |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCPreviewView.h
| @@ -33,7 +33,7 @@ typedef NS_ENUM(NSUInteger, PreViewSubViewIdx){ | @@ -33,7 +33,7 @@ typedef NS_ENUM(NSUInteger, PreViewSubViewIdx){ | ||
| 33 | @property (nonatomic, strong) UIButton *recordBtn; //录制 | 33 | @property (nonatomic, strong) UIButton *recordBtn; //录制 |
| 34 | @property (nonatomic, strong) LVCVideoMgrButton *effectsBtn; //动态贴纸 | 34 | @property (nonatomic, strong) LVCVideoMgrButton *effectsBtn; //动态贴纸 |
| 35 | @property (nonatomic, strong) UILabel *recordTimeLabel; //时间 | 35 | @property (nonatomic, strong) UILabel *recordTimeLabel; //时间 |
| 36 | -@property (nonatomic, strong) UIButton *nextBtn; //next | 36 | +@property (nonatomic, strong) LVCVideoMgrButton *nextBtn; //next |
| 37 | @property (nonatomic, strong) UIButton *funcBtn; //更多功能 | 37 | @property (nonatomic, strong) UIButton *funcBtn; //更多功能 |
| 38 | @property (nonatomic, strong) UIButton *localBtn; //更多功能 | 38 | @property (nonatomic, strong) UIButton *localBtn; //更多功能 |
| 39 | @property (nonatomic, strong) UIView *previewView; | 39 | @property (nonatomic, strong) UIView *previewView; |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCPreviewView.m
| @@ -108,14 +108,12 @@ | @@ -108,14 +108,12 @@ | ||
| 108 | return _funcBtn; | 108 | return _funcBtn; |
| 109 | } | 109 | } |
| 110 | 110 | ||
| 111 | -- (UIButton *)nextBtn | 111 | +- (LVCVideoMgrButton *)nextBtn |
| 112 | { | 112 | { |
| 113 | if (!_nextBtn){ | 113 | if (!_nextBtn){ |
| 114 | - _nextBtn = [UIButton buttonWithType:UIButtonTypeCustom]; | ||
| 115 | - _nextBtn.frame = CGRectMake(KScreenWidth-BOTTOM_ICON_WIDTH-50, KScreenHeight-BOTTOM_ICON_WIDTH-50, BOTTOM_ICON_WIDTH, BOTTOM_ICON_WIDTH); | ||
| 116 | - _nextBtn.tag = PreViewSubViewIdx_Next; | 114 | + _nextBtn = [[LVCVideoMgrButton alloc] initWithFrame:CGRectMake(KScreenWidth-BOTTOM_ICON_WIDTH-50, KScreenHeight-BOTTOM_ICON_WIDTH-50, BOTTOM_ICON_WIDTH, BOTTOM_ICON_WIDTH) left:NO]; |
| 115 | + _nextBtn.videoMgrState = kLocalSelect; | ||
| 117 | [_nextBtn addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside]; | 116 | [_nextBtn addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside]; |
| 118 | - [_nextBtn setImage:[UIImage imageNamed:@"对勾 (2)"] forState:UIControlStateNormal]; | ||
| 119 | } | 117 | } |
| 120 | return _nextBtn; | 118 | return _nextBtn; |
| 121 | } | 119 | } |
| @@ -137,7 +135,7 @@ | @@ -137,7 +135,7 @@ | ||
| 137 | - (LVCVideoMgrButton *)effectsBtn | 135 | - (LVCVideoMgrButton *)effectsBtn |
| 138 | { | 136 | { |
| 139 | if (!_effectsBtn){ | 137 | if (!_effectsBtn){ |
| 140 | - _effectsBtn = [[LVCVideoMgrButton alloc] initWithFrame:CGRectMake(50, KScreenHeight-BOTTOM_ICON_WIDTH-50, BOTTOM_ICON_WIDTH, BOTTOM_ICON_WIDTH)]; | 138 | + _effectsBtn = [[LVCVideoMgrButton alloc] initWithFrame:CGRectMake(50, KScreenHeight-BOTTOM_ICON_WIDTH-50, BOTTOM_ICON_WIDTH, BOTTOM_ICON_WIDTH) left:YES]; |
| 141 | _effectsBtn.videoMgrState = kEffectsState; | 139 | _effectsBtn.videoMgrState = kEffectsState; |
| 142 | [_effectsBtn addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside]; | 140 | [_effectsBtn addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside]; |
| 143 | } | 141 | } |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCVideoMgrButton.h
| @@ -12,11 +12,14 @@ enum { | @@ -12,11 +12,14 @@ enum { | ||
| 12 | kEffectsState = (1 << 16), //导入视频状态 | 12 | kEffectsState = (1 << 16), //导入视频状态 |
| 13 | kDeleteState = (1 << 17), //删除状态 | 13 | kDeleteState = (1 << 17), //删除状态 |
| 14 | kBackSelect = (1 << 18), //回退状态(回退->删除->导入) | 14 | kBackSelect = (1 << 18), //回退状态(回退->删除->导入) |
| 15 | + kLocalSelect = (1 << 19), | ||
| 16 | + kNextSelect = (1 << 20), | ||
| 15 | }; | 17 | }; |
| 16 | 18 | ||
| 17 | @interface LVCVideoMgrButton : UIButton | 19 | @interface LVCVideoMgrButton : UIButton |
| 18 | 20 | ||
| 19 | @property (nonatomic, assign) NSUInteger videoMgrState; | 21 | @property (nonatomic, assign) NSUInteger videoMgrState; |
| 20 | 22 | ||
| 23 | +- (instancetype)initWithFrame:(CGRect)frame left:(BOOL)left; | ||
| 21 | 24 | ||
| 22 | @end | 25 | @end |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCVideoMgrButton.m
| @@ -11,22 +11,31 @@ | @@ -11,22 +11,31 @@ | ||
| 11 | 11 | ||
| 12 | @implementation LVCVideoMgrButton | 12 | @implementation LVCVideoMgrButton |
| 13 | 13 | ||
| 14 | -- (instancetype)initWithFrame:(CGRect)frame | 14 | +- (instancetype)initWithFrame:(CGRect)frame left:(BOOL)left |
| 15 | { | 15 | { |
| 16 | self = [super initWithFrame:frame]; | 16 | self = [super initWithFrame:frame]; |
| 17 | if (self){ | 17 | if (self){ |
| 18 | 18 | ||
| 19 | self.backgroundColor = [UIColor blackColor]; | 19 | self.backgroundColor = [UIColor blackColor]; |
| 20 | 20 | ||
| 21 | - [self setImage:[UIImage imageNamed:@"美颜设置-角色"] forState:kEffectsState]; | ||
| 22 | - [self setImage:[UIImage imageNamed:@"美颜设置-角色"] forState:(kEffectsState | UIControlStateHighlighted )]; | ||
| 23 | - [self setImage:[UIImage imageNamed:@"美颜设置-角色"] forState:(kEffectsState | UIControlStateDisabled )]; | ||
| 24 | - [self setImage:[UIImage imageNamed:@"delete"] forState:kDeleteState]; | ||
| 25 | - [self setImage:[UIImage imageNamed:@"delete"] forState:(kDeleteState | UIControlStateHighlighted)]; | ||
| 26 | - [self setImage:[UIImage imageNamed:@"delete"] forState:(kDeleteState | UIControlStateDisabled )]; | ||
| 27 | - [self setImage:[UIImage imageNamed:@"revoke"] forState:kBackSelect]; | ||
| 28 | - [self setImage:[UIImage imageNamed:@"revoke"] forState:(kBackSelect | UIControlStateHighlighted)]; | ||
| 29 | - [self setImage:[UIImage imageNamed:@"revoke"] forState:(kBackSelect | UIControlStateDisabled )]; | 21 | + if (left) { |
| 22 | + [self setImage:[UIImage imageNamed:@"美颜设置-角色"] forState:kEffectsState]; | ||
| 23 | + [self setImage:[UIImage imageNamed:@"美颜设置-角色"] forState:(kEffectsState | UIControlStateHighlighted )]; | ||
| 24 | + [self setImage:[UIImage imageNamed:@"美颜设置-角色"] forState:(kEffectsState | UIControlStateDisabled )]; | ||
| 25 | + [self setImage:[UIImage imageNamed:@"delete"] forState:kDeleteState]; | ||
| 26 | + [self setImage:[UIImage imageNamed:@"delete"] forState:(kDeleteState | UIControlStateHighlighted)]; | ||
| 27 | + [self setImage:[UIImage imageNamed:@"delete"] forState:(kDeleteState | UIControlStateDisabled )]; | ||
| 28 | + [self setImage:[UIImage imageNamed:@"revoke"] forState:kBackSelect]; | ||
| 29 | + [self setImage:[UIImage imageNamed:@"revoke"] forState:(kBackSelect | UIControlStateHighlighted)]; | ||
| 30 | + [self setImage:[UIImage imageNamed:@"revoke"] forState:(kBackSelect | UIControlStateDisabled )]; | ||
| 31 | + } else { | ||
| 32 | + [self setImage:[UIImage imageNamed:@"相册"] forState:kLocalSelect]; | ||
| 33 | + [self setImage:[UIImage imageNamed:@"相册"] forState:(kLocalSelect | UIControlStateHighlighted )]; | ||
| 34 | + [self setImage:[UIImage imageNamed:@"相册"] forState:(kLocalSelect | UIControlStateDisabled )]; | ||
| 35 | + [self setImage:[UIImage imageNamed:@"对勾 (2)"] forState:kNextSelect]; | ||
| 36 | + [self setImage:[UIImage imageNamed:@"对勾 (2)"] forState:(kNextSelect | UIControlStateHighlighted)]; | ||
| 37 | + [self setImage:[UIImage imageNamed:@"对勾 (2)"] forState:(kNextSelect | UIControlStateDisabled )]; | ||
| 38 | + } | ||
| 30 | 39 | ||
| 31 | } | 40 | } |
| 32 | return self; | 41 | return self; |
| @@ -36,11 +45,16 @@ | @@ -36,11 +45,16 @@ | ||
| 36 | { | 45 | { |
| 37 | if (videoMgrState == kEffectsState){ | 46 | if (videoMgrState == kEffectsState){ |
| 38 | self.tag = PreViewSubViewIdx_Effects; | 47 | self.tag = PreViewSubViewIdx_Effects; |
| 39 | - }else if (videoMgrState == kDeleteState){ | 48 | + } else if (videoMgrState == kDeleteState){ |
| 40 | self.tag = PreViewSubViewIdx_Delete; | 49 | self.tag = PreViewSubViewIdx_Delete; |
| 41 | - }else if (videoMgrState == kBackSelect){ | 50 | + } else if (videoMgrState == kBackSelect){ |
| 42 | self.tag = PreViewSubViewIdx_Revoke; | 51 | self.tag = PreViewSubViewIdx_Revoke; |
| 52 | + } else if (videoMgrState == kLocalSelect) { | ||
| 53 | + self.tag = PreViewSubViewIdx_LocalVideo; | ||
| 54 | + } else if (videoMgrState == kNextSelect) { | ||
| 55 | + self.tag = PreViewSubViewIdx_Next; | ||
| 43 | } | 56 | } |
| 57 | + | ||
| 44 | _videoMgrState = videoMgrState; | 58 | _videoMgrState = videoMgrState; |
| 45 | 59 | ||
| 46 | [self setNeedsLayout]; | 60 | [self setNeedsLayout]; |
LiveVideoCloud/ShortVideoData.plist
| @@ -57,7 +57,7 @@ | @@ -57,7 +57,7 @@ | ||
| 57 | <array> | 57 | <array> |
| 58 | <dict> | 58 | <dict> |
| 59 | <key>image</key> | 59 | <key>image</key> |
| 60 | - <string>decal_0_icon</string> | 60 | + <string>decal_0</string> |
| 61 | <key>txt</key> | 61 | <key>txt</key> |
| 62 | <string>nil</string> | 62 | <string>nil</string> |
| 63 | <key>idx</key> | 63 | <key>idx</key> |
| @@ -67,7 +67,7 @@ | @@ -67,7 +67,7 @@ | ||
| 67 | </dict> | 67 | </dict> |
| 68 | <dict> | 68 | <dict> |
| 69 | <key>image</key> | 69 | <key>image</key> |
| 70 | - <string>decal_1_icon</string> | 70 | + <string>decal_1</string> |
| 71 | <key>txt</key> | 71 | <key>txt</key> |
| 72 | <string>nil</string> | 72 | <string>nil</string> |
| 73 | <key>idx</key> | 73 | <key>idx</key> |
| @@ -77,7 +77,7 @@ | @@ -77,7 +77,7 @@ | ||
| 77 | </dict> | 77 | </dict> |
| 78 | <dict> | 78 | <dict> |
| 79 | <key>image</key> | 79 | <key>image</key> |
| 80 | - <string>decal_2_icon</string> | 80 | + <string>decal_2</string> |
| 81 | <key>txt</key> | 81 | <key>txt</key> |
| 82 | <string>nil</string> | 82 | <string>nil</string> |
| 83 | <key>idx</key> | 83 | <key>idx</key> |
| @@ -87,7 +87,7 @@ | @@ -87,7 +87,7 @@ | ||
| 87 | </dict> | 87 | </dict> |
| 88 | <dict> | 88 | <dict> |
| 89 | <key>image</key> | 89 | <key>image</key> |
| 90 | - <string>decal_3_icon</string> | 90 | + <string>decal_3</string> |
| 91 | <key>txt</key> | 91 | <key>txt</key> |
| 92 | <string>nil</string> | 92 | <string>nil</string> |
| 93 | <key>idx</key> | 93 | <key>idx</key> |
| @@ -97,7 +97,7 @@ | @@ -97,7 +97,7 @@ | ||
| 97 | </dict> | 97 | </dict> |
| 98 | <dict> | 98 | <dict> |
| 99 | <key>image</key> | 99 | <key>image</key> |
| 100 | - <string>decal_4_icon</string> | 100 | + <string>decal_4</string> |
| 101 | <key>txt</key> | 101 | <key>txt</key> |
| 102 | <string>nil</string> | 102 | <string>nil</string> |
| 103 | <key>idx</key> | 103 | <key>idx</key> |
| @@ -107,7 +107,7 @@ | @@ -107,7 +107,7 @@ | ||
| 107 | </dict> | 107 | </dict> |
| 108 | <dict> | 108 | <dict> |
| 109 | <key>image</key> | 109 | <key>image</key> |
| 110 | - <string>decal_5_icon</string> | 110 | + <string>decal_5</string> |
| 111 | <key>txt</key> | 111 | <key>txt</key> |
| 112 | <string>nil</string> | 112 | <string>nil</string> |
| 113 | <key>idx</key> | 113 | <key>idx</key> |
| @@ -117,7 +117,7 @@ | @@ -117,7 +117,7 @@ | ||
| 117 | </dict> | 117 | </dict> |
| 118 | <dict> | 118 | <dict> |
| 119 | <key>image</key> | 119 | <key>image</key> |
| 120 | - <string>decal_6_icon</string> | 120 | + <string>decal_6</string> |
| 121 | <key>txt</key> | 121 | <key>txt</key> |
| 122 | <string>nil</string> | 122 | <string>nil</string> |
| 123 | <key>idx</key> | 123 | <key>idx</key> |
| @@ -127,7 +127,7 @@ | @@ -127,7 +127,7 @@ | ||
| 127 | </dict> | 127 | </dict> |
| 128 | <dict> | 128 | <dict> |
| 129 | <key>image</key> | 129 | <key>image</key> |
| 130 | - <string>decal_7_icon</string> | 130 | + <string>decal_7</string> |
| 131 | <key>txt</key> | 131 | <key>txt</key> |
| 132 | <string>nil</string> | 132 | <string>nil</string> |
| 133 | <key>idx</key> | 133 | <key>idx</key> |
LiveVideoCloud/animation.xcassets/ShortVideo/ae/Contents.json
0 → 100644
LiveVideoCloud/animation.xcassets/ShortVideo/ae/Frozen.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "filename" : "Frozen.png", | ||
| 6 | + "scale" : "1x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/ae/Frozen.imageset/Frozen.png
0 → 100644
217 KB
LiveVideoCloud/animation.xcassets/ShortVideo/ae/See You Again.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "filename" : "See You Again.png", | ||
| 6 | + "scale" : "1x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/ae/See You Again.imageset/See You Again.png
0 → 100644
243 KB
LiveVideoCloud/animation.xcassets/ShortVideo/ae/Stay.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "filename" : "Stay.png", | ||
| 6 | + "scale" : "1x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/ae/Stay.imageset/Stay.png
0 → 100644
86.9 KB
LiveVideoCloud/animation.xcassets/ShortVideo/ae/closeef.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "filename" : "关闭效果@2x.png", | ||
| 6 | + "scale" : "1x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "filename" : "关闭效果@3x.png", | ||
| 11 | + "scale" : "2x" | ||
| 12 | + }, | ||
| 13 | + { | ||
| 14 | + "idiom" : "universal", | ||
| 15 | + "scale" : "3x" | ||
| 16 | + } | ||
| 17 | + ], | ||
| 18 | + "info" : { | ||
| 19 | + "version" : 1, | ||
| 20 | + "author" : "xcode" | ||
| 21 | + } | ||
| 22 | +} | ||
| 0 | \ No newline at end of file | 23 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/ae/closeef.imageset/关闭效果@2x.png
0 → 100644
2.36 KB
LiveVideoCloud/animation.xcassets/ShortVideo/ae/closeef.imageset/关闭效果@3x.png
0 → 100644
4.18 KB
LiveVideoCloud/animation.xcassets/ShortVideo/ae/concert.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "filename" : "concert.png", | ||
| 6 | + "scale" : "1x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/ae/concert.imageset/concert.png
0 → 100644
58.9 KB
LiveVideoCloud/animation.xcassets/ShortVideo/ae/ktv.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "filename" : "ktv.png", | ||
| 6 | + "scale" : "1x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/ae/ktv.imageset/ktv.png
0 → 100644
42.1 KB
LiveVideoCloud/animation.xcassets/ShortVideo/ae/man.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "filename" : "man.png", | ||
| 6 | + "scale" : "1x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/ae/man.imageset/man.png
0 → 100644
30.4 KB
LiveVideoCloud/animation.xcassets/ShortVideo/ae/robot.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "filename" : "robot.png", | ||
| 6 | + "scale" : "1x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/ae/robot.imageset/robot.png
0 → 100644
62.6 KB
LiveVideoCloud/animation.xcassets/ShortVideo/ae/solemn.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "filename" : "solemn.png", | ||
| 6 | + "scale" : "1x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/ae/solemn.imageset/solemn.png
0 → 100644
37.1 KB
LiveVideoCloud/animation.xcassets/ShortVideo/ae/studio.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "filename" : "studio.png", | ||
| 6 | + "scale" : "1x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/ae/studio.imageset/studio.png
0 → 100644
26 KB
LiveVideoCloud/animation.xcassets/ShortVideo/ae/woman.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "filename" : "woman.png", | ||
| 6 | + "scale" : "1x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/ae/woman.imageset/woman.png
0 → 100644
53.4 KB
LiveVideoCloud/animation.xcassets/ShortVideo/ae/woodwing.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "filename" : "woodwing.png", | ||
| 6 | + "scale" : "1x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/ae/woodwing.imageset/woodwing.png
0 → 100644
40.5 KB
LiveVideoCloud/animation.xcassets/ShortVideo/decals/Contents.json
0 → 100644
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_0.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "decal_0.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_0.imageset/decal_0.png
0 → 100644
88.1 KB
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_1.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "decal_1.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_1.imageset/decal_1.png
0 → 100644
107 KB
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_2.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "decal_2.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_2.imageset/decal_2.png
0 → 100644
119 KB
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_3.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "decal_3.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_3.imageset/decal_3.png
0 → 100644
68.9 KB
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_4.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "decal_4.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_4.imageset/decal_4.png
0 → 100644
37 KB
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_5.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "decal_5.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_5.imageset/decal_5.png
0 → 100644
40.1 KB
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_6.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "decal_6.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_6.imageset/decal_6.png
0 → 100644
33.4 KB
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_7.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "decal_7.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_7.imageset/decal_7.png
0 → 100644
26.1 KB
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_t_0.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "decal_t_0.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_t_0.imageset/decal_t_0.png
0 → 100644
37.6 KB
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_t_1.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "decal_t_1.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_t_1.imageset/decal_t_1.png
0 → 100644
42.8 KB
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_t_2.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "decal_t_2.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_t_2.imageset/decal_t_2.png
0 → 100644
25.6 KB
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_t_3.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "decal_t_3.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_t_3.imageset/decal_t_3.png
0 → 100644
33.1 KB
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_t_4.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "decal_t_4.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/decals/decal_t_4.imageset/decal_t_4.png
0 → 100644
26.6 KB
LiveVideoCloud/animation.xcassets/ShortVideo/thumb.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "idiom" : "universal", | ||
| 9 | + "filename" : "thumb@2x.png", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "idiom" : "universal", | ||
| 14 | + "scale" : "3x" | ||
| 15 | + } | ||
| 16 | + ], | ||
| 17 | + "info" : { | ||
| 18 | + "version" : 1, | ||
| 19 | + "author" : "xcode" | ||
| 20 | + } | ||
| 21 | +} | ||
| 0 | \ No newline at end of file | 22 | \ No newline at end of file |
LiveVideoCloud/animation.xcassets/ShortVideo/thumb.imageset/thumb@2x.png
0 → 100644
487 Bytes