Commit b5319f5fd7aeb550b87aa10ae5270c97d3e98ca7
Merge branch 'master' of bj.gitlab.cnlive.com:ios-team/LiveVideoCloud
Showing
72 changed files
with
895 additions
and
73 deletions
LiveVideoCloud.xcodeproj/project.pbxproj
| ... | ... | @@ -99,6 +99,7 @@ |
| 99 | 99 | 8178D46B1F021ED800AA78A4 /* LVCTelevisionModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8178D46A1F021ED800AA78A4 /* LVCTelevisionModel.m */; }; |
| 100 | 100 | 8178D46E1F0225E500AA78A4 /* LVCTelevisionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8178D46D1F0225E500AA78A4 /* LVCTelevisionCell.m */; }; |
| 101 | 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 | 103 | 81A483081E88B6140097A80A /* UIView+ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 81A483071E88B6140097A80A /* UIView+ViewController.m */; }; |
| 103 | 104 | 81F1C8401E8BC5CC0085C2B8 /* NSArray+Safety.m in Sources */ = {isa = PBXBuildFile; fileRef = 81F1C83F1E8BC5CC0085C2B8 /* NSArray+Safety.m */; }; |
| 104 | 105 | 81FB5B3C1E7A6FFC00F98E1D /* SevenSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = 81FB5B3B1E7A6FFC00F98E1D /* SevenSwitch.m */; }; |
| ... | ... | @@ -498,6 +499,8 @@ |
| 498 | 499 | 8178D46D1F0225E500AA78A4 /* LVCTelevisionCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCTelevisionCell.m; sourceTree = "<group>"; }; |
| 499 | 500 | 8178D46F1F0239AD00AA78A4 /* LVCPlayerLoadingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCPlayerLoadingView.h; sourceTree = "<group>"; }; |
| 500 | 501 | 8178D4701F0239AD00AA78A4 /* LVCPlayerLoadingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCPlayerLoadingView.m; sourceTree = "<group>"; }; |
| 502 | + 8181D53A1F134A7C00959E3D /* LVCBgmView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCBgmView.h; sourceTree = "<group>"; }; | |
| 503 | + 8181D53B1F134A7C00959E3D /* LVCBgmView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCBgmView.m; sourceTree = "<group>"; }; | |
| 501 | 504 | 81A483061E88B6140097A80A /* UIView+ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+ViewController.h"; sourceTree = "<group>"; }; |
| 502 | 505 | 81A483071E88B6140097A80A /* UIView+ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+ViewController.m"; sourceTree = "<group>"; }; |
| 503 | 506 | 81F1C83E1E8BC5CC0085C2B8 /* NSArray+Safety.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+Safety.h"; sourceTree = "<group>"; }; |
| ... | ... | @@ -998,6 +1001,8 @@ |
| 998 | 1001 | 8156A7B31F0F8FCC007EE146 /* LVCAERootView.m */, |
| 999 | 1002 | 8156A7B51F0F93AA007EE146 /* LVCAECommonView.h */, |
| 1000 | 1003 | 8156A7B61F0F93AA007EE146 /* LVCAECommonView.m */, |
| 1004 | + 8181D53A1F134A7C00959E3D /* LVCBgmView.h */, | |
| 1005 | + 8181D53B1F134A7C00959E3D /* LVCBgmView.m */, | |
| 1001 | 1006 | 8156A7B81F0F9541007EE146 /* AECommonCell.h */, |
| 1002 | 1007 | 8156A7B91F0F9541007EE146 /* AECommonCell.m */, |
| 1003 | 1008 | ); |
| ... | ... | @@ -2380,6 +2385,7 @@ |
| 2380 | 2385 | D2029CBF1E6EADE10027CD92 /* UIButton+WebCache.m in Sources */, |
| 2381 | 2386 | D2575C7E1E76A4F300E3A8FC /* NHPlaneViews.m in Sources */, |
| 2382 | 2387 | 4B45CE761EB86A590079AFB7 /* BeingAnchorController.m in Sources */, |
| 2388 | + 8181D53C1F134A7C00959E3D /* LVCBgmView.m in Sources */, | |
| 2383 | 2389 | D2029CC51E6EADE10027CD92 /* UIView+WebCacheOperation.m in Sources */, |
| 2384 | 2390 | D260E6101F0CE8690095E49D /* praiseModel.m in Sources */, |
| 2385 | 2391 | D2029CAB1E6EADE10027CD92 /* MJRefreshBackNormalFooter.m in Sources */, | ... | ... |
LiveVideoCloud.xcodeproj/xcuserdata/iOS.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
| ... | ... | @@ -13,5 +13,37 @@ |
| 13 | 13 | stopOnStyle = "0"> |
| 14 | 14 | </BreakpointContent> |
| 15 | 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 | 48 | </Breakpoints> |
| 17 | 49 | </Bucket> | ... | ... |
LiveVideoCloud/Classes/Sections/Mine/Controllers/LVCMineViewController.m
| ... | ... | @@ -203,8 +203,10 @@ |
| 203 | 203 | if (indexPath.row == 0) { |
| 204 | 204 | [self pushVC:[MineSettingViewController new]]; |
| 205 | 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 | 212 | // if(indexPath.row == 0) | ... | ... |
LiveVideoCloud/Classes/Sections/Mine/Controllers/LVCShortVideoController.m
| ... | ... | @@ -28,7 +28,7 @@ |
| 28 | 28 | |
| 29 | 29 | [self.view addSubview:self.previewView]; |
| 30 | 30 | [self.view addSubview:self.aeRootView]; |
| 31 | - | |
| 31 | +// | |
| 32 | 32 | [self p_setupPreViewEvent]; |
| 33 | 33 | |
| 34 | 34 | } |
| ... | ... | @@ -133,8 +133,8 @@ |
| 133 | 133 | { |
| 134 | 134 | if (!_aeRootView){ |
| 135 | 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 | 138 | _aeRootView.userInteractionEnabled = YES; |
| 139 | 139 | |
| 140 | 140 | } | ... | ... |
LiveVideoCloud/Classes/Sections/Mine/Model/AEModelTemplate.h
LiveVideoCloud/Classes/Sections/Mine/Views/AECommonCell.m
| ... | ... | @@ -56,8 +56,13 @@ |
| 56 | 56 | |
| 57 | 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 | 66 | if (!model.txt || model.txt.length == 0){ |
| 62 | 67 | _tips.hidden = YES; |
| 63 | 68 | _isOrigin = YES; | ... | ... |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCAECommonView.h
| ... | ... | @@ -11,6 +11,9 @@ |
| 11 | 11 | |
| 12 | 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 | 19 | @end | ... | ... |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCAECommonView.m
| ... | ... | @@ -13,18 +13,25 @@ |
| 13 | 13 | @interface LVCAECommonView ()<UICollectionViewDelegate, UICollectionViewDataSource> |
| 14 | 14 | |
| 15 | 15 | @property (nonatomic, strong) UICollectionView *collectionView; |
| 16 | -@property (nonatomic, strong) NSArray<__kindof AEModelTemplate *> *dataArray; | |
| 16 | +@property (nonatomic, strong) NSMutableArray *dataArray; | |
| 17 | 17 | |
| 18 | 18 | @end |
| 19 | 19 | |
| 20 | 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 | 24 | self = [super initWithFrame:frame]; |
| 25 | 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 | 37 | return self; |
| ... | ... | @@ -46,21 +53,27 @@ |
| 46 | 53 | _collectionView.backgroundColor = [UIColor clearColor]; |
| 47 | 54 | _collectionView.showsHorizontalScrollIndicator = NO; |
| 48 | 55 | _collectionView.scrollsToTop = YES; |
| 56 | + | |
| 57 | + [self.collectionView registerClass:[AECommonCell class] forCellWithReuseIdentifier:@"cell"]; | |
| 58 | + | |
| 59 | + | |
| 49 | 60 | } |
| 50 | 61 | return _collectionView; |
| 51 | 62 | } |
| 52 | 63 | |
| 53 | 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 | 68 | cell.model = self.dataArray[indexPath.row]; |
| 58 | 69 | return cell; |
| 59 | 70 | } |
| 60 | 71 | |
| 61 | 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 | 79 | - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section |
| ... | ... | @@ -68,12 +81,10 @@ |
| 68 | 81 | return self.dataArray.count; |
| 69 | 82 | } |
| 70 | 83 | |
| 71 | - | |
| 72 | - | |
| 73 | -- (NSArray<AEModelTemplate *> *)dataArray | |
| 84 | +- (NSMutableArray *)dataArray | |
| 74 | 85 | { |
| 75 | 86 | if (!_dataArray){ |
| 76 | - _dataArray = [[NSArray alloc] init]; | |
| 87 | + _dataArray = [[NSMutableArray alloc] init]; | |
| 77 | 88 | } |
| 78 | 89 | return _dataArray; |
| 79 | 90 | } | ... | ... |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCAERootView.h
| ... | ... | @@ -7,6 +7,7 @@ |
| 7 | 7 | // |
| 8 | 8 | |
| 9 | 9 | #import <UIKit/UIKit.h> |
| 10 | +#import "AEModelTemplate.h" | |
| 10 | 11 | |
| 11 | 12 | typedef NS_ENUM(NSInteger, CNLiveSelectorType){ |
| 12 | 13 | CNLiveSelectorType_Reverb, // 混响 |
| ... | ... | @@ -23,4 +24,9 @@ typedef NS_ENUM(NSUInteger, kAEStatus){ |
| 23 | 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 | 32 | @end | ... | ... |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCAERootView.m
| ... | ... | @@ -9,10 +9,11 @@ |
| 9 | 9 | #import "LVCAERootView.h" |
| 10 | 10 | #import "LVCAECommonView.h" |
| 11 | 11 | #import "AEModelTemplate.h" |
| 12 | +#import "LVCBgmView.h" | |
| 12 | 13 | |
| 13 | 14 | @interface LVCAERootView () |
| 14 | 15 | { |
| 15 | - NSMutableArray *_dataArray; | |
| 16 | + NSArray *_dataArray; | |
| 16 | 17 | } |
| 17 | 18 | |
| 18 | 19 | @property (nonatomic, strong) UIButton *bgmBtn; //背景音乐 |
| ... | ... | @@ -21,7 +22,7 @@ |
| 21 | 22 | @property (nonatomic, strong) UIButton *decalBtn; //贴纸 |
| 22 | 23 | @property (nonatomic, strong) UIButton *textDecalBtn; //字幕 |
| 23 | 24 | |
| 24 | -@property (nonatomic, strong) LVCAECommonView *bgmView; | |
| 25 | +@property (nonatomic, strong) LVCBgmView *bgmView; | |
| 25 | 26 | @property (nonatomic, strong) LVCAECommonView *aeView; |
| 26 | 27 | @property (nonatomic, strong) LVCAECommonView *reverbView; |
| 27 | 28 | @property (nonatomic, strong) LVCAECommonView *decalView; |
| ... | ... | @@ -36,27 +37,42 @@ |
| 36 | 37 | self = [super initWithFrame:frame]; |
| 37 | 38 | if (self) { |
| 38 | 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 | 44 | [self addSubview:self.bgmBtn]; |
| 40 | 45 | [self addSubview:self.aeBtn]; |
| 41 | 46 | [self addSubview:self.reverbBtn]; |
| 42 | 47 | [self addSubview:self.decalBtn]; |
| 43 | 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 | 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 | 76 | - (void)onSelectBgm:(id)sender |
| 61 | 77 | { |
| 62 | 78 | self.aeBtn.selected = NO; |
| ... | ... | @@ -64,43 +80,80 @@ |
| 64 | 80 | self.reverbBtn.selected = NO; |
| 65 | 81 | self.decalBtn.selected = NO; |
| 66 | 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 | 91 | - (void)onSelectAe:(id)sender |
| 71 | 92 | { |
| 93 | + [self addSubview:self.aeView]; | |
| 94 | + | |
| 72 | 95 | self.aeBtn.selected = YES; |
| 73 | 96 | self.bgmBtn.selected = NO; |
| 74 | 97 | self.reverbBtn.selected = NO; |
| 75 | 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 | 107 | - (void)onSelectReverb:(id)sender |
| 79 | 108 | { |
| 109 | + [self addSubview:self.reverbView]; | |
| 110 | + | |
| 80 | 111 | self.reverbBtn.selected = YES; |
| 81 | 112 | self.aeBtn.selected = NO; |
| 82 | 113 | self.bgmBtn.selected = NO; |
| 83 | 114 | self.decalBtn.selected = NO; |
| 84 | 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 | 129 | self.reverbBtn.selected = NO; |
| 90 | 130 | self.aeBtn.selected = NO; |
| 91 | 131 | self.bgmBtn.selected = NO; |
| 92 | 132 | self.decalBtn.selected = YES; |
| 93 | 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 | 146 | self.reverbBtn.selected = NO; |
| 99 | 147 | self.aeBtn.selected = NO; |
| 100 | 148 | self.bgmBtn.selected = NO; |
| 101 | 149 | self.decalBtn.selected = NO; |
| 102 | 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 | 159 | #pragma mark - |
| ... | ... | @@ -178,19 +231,19 @@ |
| 178 | 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 | 243 | - (LVCAECommonView *)aeView |
| 191 | 244 | { |
| 192 | 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 | 247 | _aeView.frame = CGRectMake(0, 40, KScreenWidth, 172); |
| 195 | 248 | } |
| 196 | 249 | return _aeView; |
| ... | ... | @@ -199,7 +252,7 @@ |
| 199 | 252 | - (LVCAECommonView *)reverbView |
| 200 | 253 | { |
| 201 | 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 | 257 | return _reverbView; |
| 205 | 258 | } |
| ... | ... | @@ -207,7 +260,7 @@ |
| 207 | 260 | - (LVCAECommonView *)decalView |
| 208 | 261 | { |
| 209 | 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 | 265 | return _decalView; |
| 213 | 266 | } |
| ... | ... | @@ -215,7 +268,7 @@ |
| 215 | 268 | - (LVCAECommonView *)textDecalView |
| 216 | 269 | { |
| 217 | 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 | 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 | 33 | @property (nonatomic, strong) UIButton *recordBtn; //录制 |
| 34 | 34 | @property (nonatomic, strong) LVCVideoMgrButton *effectsBtn; //动态贴纸 |
| 35 | 35 | @property (nonatomic, strong) UILabel *recordTimeLabel; //时间 |
| 36 | -@property (nonatomic, strong) UIButton *nextBtn; //next | |
| 36 | +@property (nonatomic, strong) LVCVideoMgrButton *nextBtn; //next | |
| 37 | 37 | @property (nonatomic, strong) UIButton *funcBtn; //更多功能 |
| 38 | 38 | @property (nonatomic, strong) UIButton *localBtn; //更多功能 |
| 39 | 39 | @property (nonatomic, strong) UIView *previewView; | ... | ... |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCPreviewView.m
| ... | ... | @@ -108,14 +108,12 @@ |
| 108 | 108 | return _funcBtn; |
| 109 | 109 | } |
| 110 | 110 | |
| 111 | -- (UIButton *)nextBtn | |
| 111 | +- (LVCVideoMgrButton *)nextBtn | |
| 112 | 112 | { |
| 113 | 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 | 116 | [_nextBtn addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside]; |
| 118 | - [_nextBtn setImage:[UIImage imageNamed:@"对勾 (2)"] forState:UIControlStateNormal]; | |
| 119 | 117 | } |
| 120 | 118 | return _nextBtn; |
| 121 | 119 | } |
| ... | ... | @@ -137,7 +135,7 @@ |
| 137 | 135 | - (LVCVideoMgrButton *)effectsBtn |
| 138 | 136 | { |
| 139 | 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 | 139 | _effectsBtn.videoMgrState = kEffectsState; |
| 142 | 140 | [_effectsBtn addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside]; |
| 143 | 141 | } | ... | ... |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCVideoMgrButton.h
| ... | ... | @@ -12,11 +12,14 @@ enum { |
| 12 | 12 | kEffectsState = (1 << 16), //导入视频状态 |
| 13 | 13 | kDeleteState = (1 << 17), //删除状态 |
| 14 | 14 | kBackSelect = (1 << 18), //回退状态(回退->删除->导入) |
| 15 | + kLocalSelect = (1 << 19), | |
| 16 | + kNextSelect = (1 << 20), | |
| 15 | 17 | }; |
| 16 | 18 | |
| 17 | 19 | @interface LVCVideoMgrButton : UIButton |
| 18 | 20 | |
| 19 | 21 | @property (nonatomic, assign) NSUInteger videoMgrState; |
| 20 | 22 | |
| 23 | +- (instancetype)initWithFrame:(CGRect)frame left:(BOOL)left; | |
| 21 | 24 | |
| 22 | 25 | @end | ... | ... |
LiveVideoCloud/Classes/Sections/Mine/Views/LVCVideoMgrButton.m
| ... | ... | @@ -11,22 +11,31 @@ |
| 11 | 11 | |
| 12 | 12 | @implementation LVCVideoMgrButton |
| 13 | 13 | |
| 14 | -- (instancetype)initWithFrame:(CGRect)frame | |
| 14 | +- (instancetype)initWithFrame:(CGRect)frame left:(BOOL)left | |
| 15 | 15 | { |
| 16 | 16 | self = [super initWithFrame:frame]; |
| 17 | 17 | if (self){ |
| 18 | 18 | |
| 19 | 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 | 41 | return self; |
| ... | ... | @@ -36,11 +45,16 @@ |
| 36 | 45 | { |
| 37 | 46 | if (videoMgrState == kEffectsState){ |
| 38 | 47 | self.tag = PreViewSubViewIdx_Effects; |
| 39 | - }else if (videoMgrState == kDeleteState){ | |
| 48 | + } else if (videoMgrState == kDeleteState){ | |
| 40 | 49 | self.tag = PreViewSubViewIdx_Delete; |
| 41 | - }else if (videoMgrState == kBackSelect){ | |
| 50 | + } else if (videoMgrState == kBackSelect){ | |
| 42 | 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 | 58 | _videoMgrState = videoMgrState; |
| 45 | 59 | |
| 46 | 60 | [self setNeedsLayout]; | ... | ... |
LiveVideoCloud/ShortVideoData.plist
| ... | ... | @@ -57,7 +57,7 @@ |
| 57 | 57 | <array> |
| 58 | 58 | <dict> |
| 59 | 59 | <key>image</key> |
| 60 | - <string>decal_0_icon</string> | |
| 60 | + <string>decal_0</string> | |
| 61 | 61 | <key>txt</key> |
| 62 | 62 | <string>nil</string> |
| 63 | 63 | <key>idx</key> |
| ... | ... | @@ -67,7 +67,7 @@ |
| 67 | 67 | </dict> |
| 68 | 68 | <dict> |
| 69 | 69 | <key>image</key> |
| 70 | - <string>decal_1_icon</string> | |
| 70 | + <string>decal_1</string> | |
| 71 | 71 | <key>txt</key> |
| 72 | 72 | <string>nil</string> |
| 73 | 73 | <key>idx</key> |
| ... | ... | @@ -77,7 +77,7 @@ |
| 77 | 77 | </dict> |
| 78 | 78 | <dict> |
| 79 | 79 | <key>image</key> |
| 80 | - <string>decal_2_icon</string> | |
| 80 | + <string>decal_2</string> | |
| 81 | 81 | <key>txt</key> |
| 82 | 82 | <string>nil</string> |
| 83 | 83 | <key>idx</key> |
| ... | ... | @@ -87,7 +87,7 @@ |
| 87 | 87 | </dict> |
| 88 | 88 | <dict> |
| 89 | 89 | <key>image</key> |
| 90 | - <string>decal_3_icon</string> | |
| 90 | + <string>decal_3</string> | |
| 91 | 91 | <key>txt</key> |
| 92 | 92 | <string>nil</string> |
| 93 | 93 | <key>idx</key> |
| ... | ... | @@ -97,7 +97,7 @@ |
| 97 | 97 | </dict> |
| 98 | 98 | <dict> |
| 99 | 99 | <key>image</key> |
| 100 | - <string>decal_4_icon</string> | |
| 100 | + <string>decal_4</string> | |
| 101 | 101 | <key>txt</key> |
| 102 | 102 | <string>nil</string> |
| 103 | 103 | <key>idx</key> |
| ... | ... | @@ -107,7 +107,7 @@ |
| 107 | 107 | </dict> |
| 108 | 108 | <dict> |
| 109 | 109 | <key>image</key> |
| 110 | - <string>decal_5_icon</string> | |
| 110 | + <string>decal_5</string> | |
| 111 | 111 | <key>txt</key> |
| 112 | 112 | <string>nil</string> |
| 113 | 113 | <key>idx</key> |
| ... | ... | @@ -117,7 +117,7 @@ |
| 117 | 117 | </dict> |
| 118 | 118 | <dict> |
| 119 | 119 | <key>image</key> |
| 120 | - <string>decal_6_icon</string> | |
| 120 | + <string>decal_6</string> | |
| 121 | 121 | <key>txt</key> |
| 122 | 122 | <string>nil</string> |
| 123 | 123 | <key>idx</key> |
| ... | ... | @@ -127,7 +127,7 @@ |
| 127 | 127 | </dict> |
| 128 | 128 | <dict> |
| 129 | 129 | <key>image</key> |
| 130 | - <string>decal_7_icon</string> | |
| 130 | + <string>decal_7</string> | |
| 131 | 131 | <key>txt</key> |
| 132 | 132 | <string>nil</string> |
| 133 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 22 | \ No newline at end of file | ... | ... |
LiveVideoCloud/animation.xcassets/ShortVideo/thumb.imageset/thumb@2x.png
0 → 100644
487 Bytes