Browse Source

Merge branch 'feature/dev_Chris' into develop

Chris 5 years ago
parent
commit
8f0bafec1e
97 changed files with 2539 additions and 86 deletions
  1. 22 6
      RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj
  2. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/优雅/color.png
  3. 71 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/优雅/config.json
  4. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/优雅/icon.png
  5. 69 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/光圈/config.json
  6. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/光圈/icon.png
  7. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/思念/color.png
  8. 73 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/思念/config.json
  9. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/思念/icon.png
  10. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/朝阳/color.png
  11. 71 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/朝阳/config.json
  12. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/朝阳/icon.png
  13. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/柔柔/color.png
  14. 70 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/柔柔/config.json
  15. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/柔柔/icon.png
  16. 69 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/模糊/config.json
  17. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/模糊/icon.png
  18. 69 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/波普/config.json
  19. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/波普/icon.png
  20. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/浓烈/color.png
  21. 70 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/浓烈/config.json
  22. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/浓烈/icon.png
  23. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海盐/color.png
  24. 72 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海盐/config.json
  25. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海盐/icon.png
  26. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海蓝/color.png
  27. 70 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海蓝/config.json
  28. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海蓝/icon.png
  29. 69 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/灰白/config.json
  30. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/灰白/icon.png
  31. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/炽黄/color.png
  32. 70 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/炽黄/config.json
  33. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/炽黄/icon.png
  34. 69 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/焦黄/config.json
  35. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/焦黄/icon.png
  36. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/粉桃/color.png
  37. 70 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/粉桃/config.json
  38. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/粉桃/icon.png
  39. 69 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/素描/config.json
  40. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/素描/icon.png
  41. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/红润/color.png
  42. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/红润/color2.png
  43. 70 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/红润/config.json
  44. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/红润/icon.png
  45. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/color.png
  46. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/color2.png
  47. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/color3.png
  48. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/color4.png
  49. 74 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/config.json
  50. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/icon.png
  51. 69 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/胶片/config.json
  52. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/胶片/icon.png
  53. 69 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/蓝调/config.json
  54. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/蓝调/icon.png
  55. 69 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/迷糊/config.json
  56. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/迷糊/icon.png
  57. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/闪耀/color.png
  58. 70 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/闪耀/config.json
  59. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/闪耀/icon.png
  60. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/阳光/color.png
  61. 70 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/阳光/config.json
  62. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/阳光/icon.png
  63. 70 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/雪梨/config.json
  64. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/雪梨/icon.png
  65. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/雪梨/s3.png
  66. 69 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/马赛克/config.json
  67. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/马赛克/icon.png
  68. 69 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鱼眼/config.json
  69. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鱼眼/icon.png
  70. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鲜果/color.png
  71. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鲜果/color2.png
  72. 72 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鲜果/config.json
  73. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鲜果/icon.png
  74. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/麦茶/color.png
  75. 70 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/麦茶/config.json
  76. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/麦茶/icon.png
  77. 69 0
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/黑白/config.json
  78. BIN
      RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/黑白/icon.png
  79. 106 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishTakeVideo/PublishFilterView.swift
  80. 93 7
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishTakeVideo/PublishVideoRecorderController.swift
  81. 243 73
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishTakeVideo/PublishVideoView.swift
  82. 4 0
      RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishViewController.swift
  83. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_close_white.imageset/Contents.json
  84. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_close_white.imageset/video_btn_close_white@2x.png
  85. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_close_white.imageset/video_btn_close_white@3x.png
  86. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_delete.imageset/Contents.json
  87. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_delete.imageset/video_btn_delete@2x.png
  88. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_delete.imageset/video_btn_delete@3x.png
  89. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_submit.imageset/Contents.json
  90. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_submit.imageset/video_btn_submit@2x.png
  91. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_submit.imageset/video_btn_submit@3x.png
  92. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_filter.imageset/Contents.json
  93. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_filter.imageset/video_ico_filter@2x.png
  94. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_filter.imageset/video_ico_filter@3x.png
  95. 22 0
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_music.imageset/Contents.json
  96. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_music.imageset/video_ico_music@2x.png
  97. BIN
      RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_music.imageset/video_ico_music@3x.png

+ 22 - 6
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -479,6 +479,8 @@
 		BD7AB841228438C80030646A /* OrderPaySelfPickAddressCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD7AB840228438C80030646A /* OrderPaySelfPickAddressCell.swift */; };
 		BD7AB8432284390B0030646A /* OrderPaySelfPickInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD7AB8422284390B0030646A /* OrderPaySelfPickInfoCell.swift */; };
 		BD7AB8452284398A0030646A /* OrderPaySelfPickAddInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD7AB8442284398A0030646A /* OrderPaySelfPickAddInfoCell.swift */; };
+		BD8CAE3822BBA58900873C45 /* FilterResource.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BD8CAE3722BBA58900873C45 /* FilterResource.bundle */; };
+		BD8CAE3A22BBB5ED00873C45 /* PublishFilterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD8CAE3922BBB5ED00873C45 /* PublishFilterView.swift */; };
 		BD929CCA22B8CFB10098C139 /* AliyunPathManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BD929CC822B8CFB10098C139 /* AliyunPathManager.m */; };
 		BD929CCE22B904A30098C139 /* PublishViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD929CCD22B904A30098C139 /* PublishViewController.swift */; };
 		BD929CD422B906C10098C139 /* PublishVideoRecorderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD929CD322B906C10098C139 /* PublishVideoRecorderController.swift */; };
@@ -1038,6 +1040,8 @@
 		BD7AB840228438C80030646A /* OrderPaySelfPickAddressCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderPaySelfPickAddressCell.swift; sourceTree = "<group>"; };
 		BD7AB8422284390B0030646A /* OrderPaySelfPickInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderPaySelfPickInfoCell.swift; sourceTree = "<group>"; };
 		BD7AB8442284398A0030646A /* OrderPaySelfPickAddInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderPaySelfPickAddInfoCell.swift; sourceTree = "<group>"; };
+		BD8CAE3722BBA58900873C45 /* FilterResource.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = FilterResource.bundle; sourceTree = "<group>"; };
+		BD8CAE3922BBB5ED00873C45 /* PublishFilterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublishFilterView.swift; sourceTree = "<group>"; };
 		BD9052C044FD3AE4E62D3929 /* Pods-RainbowPlanet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RainbowPlanet.debug.xcconfig"; path = "Pods/Target Support Files/Pods-RainbowPlanet/Pods-RainbowPlanet.debug.xcconfig"; sourceTree = "<group>"; };
 		BD929CC822B8CFB10098C139 /* AliyunPathManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AliyunPathManager.m; sourceTree = "<group>"; };
 		BD929CC922B8CFB10098C139 /* AliyunPathManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AliyunPathManager.h; sourceTree = "<group>"; };
@@ -1818,6 +1822,7 @@
 		A72A725322321A6900B21995 /* Lib */ = {
 			isa = PBXGroup;
 			children = (
+				BD8CAE3622BBA56100873C45 /* AliyunVideoSDK */,
 				A7778C8E22438F5C00C7C47A /* AlipaySDK */,
 				A7778C9122438F5D00C7C47A /* WeChatSDK */,
 			);
@@ -3870,13 +3875,13 @@
 		BD13B6A222B9CE8D008BB323 /* View */ = {
 			isa = PBXGroup;
 			children = (
-				BD13B6BE22BA034D008BB323 /* PublishEditAddAddressCell.swift */,
-				BD13B6BB22BA034C008BB323 /* PublishEditAddImgCollectionCell.swift */,
 				BD13B6BA22BA034C008BB323 /* PublishEditAddPicCell.swift */,
-				BD13B6C022BA034D008BB323 /* PublishEditAddTopicCell.swift */,
 				BD13B6BD22BA034D008BB323 /* PublishEditDefaultCollectionCell.swift */,
-				BD13B6BC22BA034C008BB323 /* PublishEditDescribeCell.swift */,
+				BD13B6BB22BA034C008BB323 /* PublishEditAddImgCollectionCell.swift */,
 				BD13B6BF22BA034D008BB323 /* PublishEditTitleCell.swift */,
+				BD13B6BC22BA034C008BB323 /* PublishEditDescribeCell.swift */,
+				BD13B6C022BA034D008BB323 /* PublishEditAddTopicCell.swift */,
+				BD13B6BE22BA034D008BB323 /* PublishEditAddAddressCell.swift */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -3921,11 +3926,11 @@
 		BD13B6D222BA03BB008BB323 /* View */ = {
 			isa = PBXGroup;
 			children = (
-				BD13B6D322BA03BB008BB323 /* PublishTopicTypeItemCollectionCell.swift */,
 				BD13B6D422BA03BB008BB323 /* PublishTopicHeaderView.swift */,
-				BD13B6D522BA03BB008BB323 /* PublishTopicItemCell.swift */,
 				BD13B6D622BA03BB008BB323 /* PublishSelTopicCollectionCell.swift */,
 				BD13B6D722BA03BB008BB323 /* PublishTopicTypeCell.swift */,
+				BD13B6D322BA03BB008BB323 /* PublishTopicTypeItemCollectionCell.swift */,
+				BD13B6D522BA03BB008BB323 /* PublishTopicItemCell.swift */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -4164,11 +4169,20 @@
 			path = AdressCell;
 			sourceTree = "<group>";
 		};
+		BD8CAE3622BBA56100873C45 /* AliyunVideoSDK */ = {
+			isa = PBXGroup;
+			children = (
+				BD8CAE3722BBA58900873C45 /* FilterResource.bundle */,
+			);
+			path = AliyunVideoSDK;
+			sourceTree = "<group>";
+		};
 		BDACE21222BB683000109AAD /* PublishTakeVideo */ = {
 			isa = PBXGroup;
 			children = (
 				BD929CD322B906C10098C139 /* PublishVideoRecorderController.swift */,
 				BD1EF11622BA637D0052D87A /* PublishVideoView.swift */,
+				BD8CAE3922BBB5ED00873C45 /* PublishFilterView.swift */,
 			);
 			path = PublishTakeVideo;
 			sourceTree = "<group>";
@@ -4432,6 +4446,7 @@
 			files = (
 				A7CC74DE22703B4A003C4F38 /* MineModule.xcassets in Resources */,
 				A7BF202422B392D600396DB3 /* CommunityModule.xcassets in Resources */,
+				BD8CAE3822BBA58900873C45 /* FilterResource.bundle in Resources */,
 				A71AF0BE226F1792001730FE /* ShoppingMallModule.xcassets in Resources */,
 				A7931DFE22AF827600297D0A /* Localizable.strings in Resources */,
 				A7778C9722438F5D00C7C47A /* AlipaySDK.bundle in Resources */,
@@ -4785,6 +4800,7 @@
 				BD20F1D32283D0ED00677D8E /* OrderFinishPaySuccessCell.swift in Sources */,
 				A7E19FAC22BA2D01009BCCE1 /* SearchTopicListViewController.swift in Sources */,
 				A71AA52822732173008FF1A5 /* SwiftMoyaNetWorkServiceConfig.swift in Sources */,
+				BD8CAE3A22BBB5ED00873C45 /* PublishFilterView.swift in Sources */,
 				A70B2C732289019200B2449F /* ProductDetailSkuView.swift in Sources */,
 				A70B2C4322883B4E00B2449F /* ProductDetailShopTableViewCell.swift in Sources */,
 				A70B2C102286A3BC00B2449F /* ProductDetailModel.swift in Sources */,

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/优雅/color.png


File diff suppressed because it is too large
+ 71 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/优雅/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/优雅/icon.png


File diff suppressed because it is too large
+ 69 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/光圈/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/光圈/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/思念/color.png


File diff suppressed because it is too large
+ 73 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/思念/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/思念/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/朝阳/color.png


File diff suppressed because it is too large
+ 71 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/朝阳/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/朝阳/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/柔柔/color.png


+ 70 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/柔柔/config.json

@@ -0,0 +1,70 @@
+{
+  "musicName": null, 
+  "name": "安妮", 
+  "animations": [
+    {
+      "frames": [
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 0, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }, 
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 449, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }
+      ], 
+      "name": "main"
+    }
+  ], 
+  "music": "music.mp3", 
+  "effects": [
+    {
+      "src": "", 
+      "range": "", 
+      "video": "main", 
+      "eid": 1
+    }, 
+    {
+      "filterName": "LookColor", 
+      "range": "", 
+      "eid": 2, 
+      "src": "1"
+    }
+  ], 
+  "filters": [
+    {
+      "images": [
+        "color.png"
+      ], 
+      "fragment": " \nprecision highp float;\nvarying highp vec2 textureCoordinate; \nuniform sampler2D inputImageTexture;\nuniform sampler2D inputImageTexture2;\nvoid main()\n{\n vec4 value = texture2D(inputImageTexture, textureCoordinate);\n float r = texture2D(inputImageTexture2, vec2(value.r, 0.5)).r;\n float g = texture2D(inputImageTexture2, vec2(value.g, 0.5)).g;\n float b = texture2D(inputImageTexture2, vec2(value.b, 0.5)).b;\n gl_FragColor = vec4(r,g,b,1.0);\n} ", 
+      "name": "LookColor"
+    }
+  ], 
+  "time": [
+    0
+  ], 
+  "icon": "icon.png", 
+  "musicIcon": "icon_music.png"
+}

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/柔柔/icon.png


File diff suppressed because it is too large
+ 69 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/模糊/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/模糊/icon.png


File diff suppressed because it is too large
+ 69 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/波普/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/波普/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/浓烈/color.png


+ 70 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/浓烈/config.json

@@ -0,0 +1,70 @@
+{
+  "musicName": null, 
+  "name": "车恩尚", 
+  "animations": [
+    {
+      "frames": [
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 0, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }, 
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 449, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }
+      ], 
+      "name": "main"
+    }
+  ], 
+  "music": "music.mp3", 
+  "effects": [
+    {
+      "src": "", 
+      "range": "", 
+      "video": "main", 
+      "eid": 1
+    }, 
+    {
+      "filterName": "LookColor", 
+      "range": "", 
+      "eid": 2, 
+      "src": "1"
+    }
+  ], 
+  "filters": [
+    {
+      "images": [
+        "color.png"
+      ], 
+      "fragment": " \nprecision highp float;\nvarying highp vec2 textureCoordinate; \nuniform sampler2D inputImageTexture;\nuniform sampler2D inputImageTexture2;\nvoid main()\n{\n vec4 value = texture2D(inputImageTexture, textureCoordinate);\n float r = texture2D(inputImageTexture2, vec2(value.r, 0.5)).r;\n float g = texture2D(inputImageTexture2, vec2(value.g, 0.5)).g;\n float b = texture2D(inputImageTexture2, vec2(value.b, 0.5)).b;\n gl_FragColor = vec4(r,g,b,1.0);\n} ", 
+      "name": "LookColor"
+    }
+  ], 
+  "time": [
+    0
+  ], 
+  "icon": "icon.png", 
+  "musicIcon": "icon_music.png"
+}

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/浓烈/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海盐/color.png


File diff suppressed because it is too large
+ 72 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海盐/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海盐/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海蓝/color.png


+ 70 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海蓝/config.json

@@ -0,0 +1,70 @@
+{
+  "musicName": null, 
+  "name": "车恩尚", 
+  "animations": [
+    {
+      "frames": [
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 0, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }, 
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 449, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }
+      ], 
+      "name": "main"
+    }
+  ], 
+  "music": "music.mp3", 
+  "effects": [
+    {
+      "src": "", 
+      "range": "", 
+      "video": "main", 
+      "eid": 1
+    }, 
+    {
+      "filterName": "LookColor", 
+      "range": "", 
+      "eid": 2, 
+      "src": "1"
+    }
+  ], 
+  "filters": [
+    {
+      "images": [
+        "color.png"
+      ], 
+      "fragment": " \nprecision highp float;\nvarying highp vec2 textureCoordinate; \nuniform sampler2D inputImageTexture;\nuniform sampler2D inputImageTexture2;\nvoid main()\n{\n vec4 value = texture2D(inputImageTexture, textureCoordinate);\n float r = texture2D(inputImageTexture2, vec2(value.r, 0.5)).r;\n float g = texture2D(inputImageTexture2, vec2(value.g, 0.5)).g;\n float b = texture2D(inputImageTexture2, vec2(value.b, 0.5)).b;\n gl_FragColor = vec4(r,g,b,1.0);\n} ", 
+      "name": "LookColor"
+    }
+  ], 
+  "time": [
+    0
+  ], 
+  "icon": "icon.png", 
+  "musicIcon": "icon_music.png"
+}

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/海蓝/icon.png


+ 69 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/灰白/config.json

@@ -0,0 +1,69 @@
+{
+    "musicName": null,
+    "name": "黑白",
+    "animations": [
+                   {
+                   "frames": [
+                              {
+                              "a": 0.0,
+                              "fx": 0.0,
+                              "fw": 480.0,
+                              "track": "a",
+                              "h": 1.0,
+                              "fh": 480.0,
+                              "cy": 240.0,
+                              "cx": 240.0,
+                              "t": 0,
+                              "w": 1.0,
+                              "fy": 0.0,
+                              "y": 240.0,
+                              "x": 240.0
+                              },
+                              {
+                              "a": 0.0,
+                              "fx": 0.0,
+                              "fw": 480.0,
+                              "track": "a",
+                              "h": 1.0,
+                              "fh": 480.0,
+                              "cy": 240.0,
+                              "cx": 240.0,
+                              "t": 449,
+                              "w": 1.0,
+                              "fy": 0.0,
+                              "y": 240.0,
+                              "x": 240.0
+                              }
+                              ],
+                   "name": "main"
+                   }
+                   ], 
+    "music": "music.mp3", 
+    "effects": [
+                {
+                "src": "", 
+                "range": "", 
+                "video": "main", 
+                "eid": 1
+                }, 
+                {
+                "filterName": "BlackWhite",
+                "range": "", 
+                "eid": 2, 
+                "src": "1"
+                }
+                ], 
+    "filters": [
+                {
+                "images": [
+                ], 
+                "fragment": " \nprecision highp float;\nvarying highp vec2 textureCoordinate; \nuniform sampler2D inputImageTexture;\nvoid main()\n{\n vec4 value = texture2D(inputImageTexture, textureCoordinate);\n float v = (value.r+value.g+value.b)/3.0;gl_FragColor = vec4(v,v,v,1.0);\n} ", 
+                "name": "BlackWhite"
+                }
+                ], 
+    "time": [
+             0
+             ], 
+    "icon": "icon.png", 
+    "musicIcon": "icon_music.png"
+}

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/灰白/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/炽黄/color.png


+ 70 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/炽黄/config.json

@@ -0,0 +1,70 @@
+{
+  "musicName": null, 
+  "name": "车恩尚", 
+  "animations": [
+    {
+      "frames": [
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 0, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }, 
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 449, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }
+      ], 
+      "name": "main"
+    }
+  ], 
+  "music": "music.mp3", 
+  "effects": [
+    {
+      "src": "", 
+      "range": "", 
+      "video": "main", 
+      "eid": 1
+    }, 
+    {
+      "filterName": "LookColor", 
+      "range": "", 
+      "eid": 2, 
+      "src": "1"
+    }
+  ], 
+  "filters": [
+    {
+      "images": [
+        "color.png"
+      ], 
+      "fragment": " \nprecision highp float;\nvarying highp vec2 textureCoordinate; \nuniform sampler2D inputImageTexture;\nuniform sampler2D inputImageTexture2;\nvoid main()\n{\n vec4 value = texture2D(inputImageTexture, textureCoordinate);\n float r = texture2D(inputImageTexture2, vec2(value.r, 0.5)).r;\n float g = texture2D(inputImageTexture2, vec2(value.g, 0.5)).g;\n float b = texture2D(inputImageTexture2, vec2(value.b, 0.5)).b;\n gl_FragColor = vec4(r,g,b,1.0);\n} ", 
+      "name": "LookColor"
+    }
+  ], 
+  "time": [
+    0
+  ], 
+  "icon": "icon.png", 
+  "musicIcon": "icon_music.png"
+}

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/炽黄/icon.png


File diff suppressed because it is too large
+ 69 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/焦黄/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/焦黄/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/粉桃/color.png


+ 70 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/粉桃/config.json

@@ -0,0 +1,70 @@
+{
+  "musicName": null, 
+  "name": "车恩尚", 
+  "animations": [
+    {
+      "frames": [
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 0, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }, 
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 449, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }
+      ], 
+      "name": "main"
+    }
+  ], 
+  "music": "music.mp3", 
+  "effects": [
+    {
+      "src": "", 
+      "range": "", 
+      "video": "main", 
+      "eid": 1
+    }, 
+    {
+      "filterName": "LookColor", 
+      "range": "", 
+      "eid": 2, 
+      "src": "1"
+    }
+  ], 
+  "filters": [
+    {
+      "images": [
+        "color.png"
+      ], 
+      "fragment": " \nprecision highp float;\nvarying highp vec2 textureCoordinate; \nuniform sampler2D inputImageTexture;\nuniform sampler2D inputImageTexture2;\nvoid main()\n{\n vec4 value = texture2D(inputImageTexture, textureCoordinate);\n float r = texture2D(inputImageTexture2, vec2(value.r, 0.5)).r;\n float g = texture2D(inputImageTexture2, vec2(value.g, 0.5)).g;\n float b = texture2D(inputImageTexture2, vec2(value.b, 0.5)).b;\n gl_FragColor = vec4(r,g,b,1.0);\n} ", 
+      "name": "LookColor"
+    }
+  ], 
+  "time": [
+    0
+  ], 
+  "icon": "icon.png", 
+  "musicIcon": "icon_music.png"
+}

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/粉桃/icon.png


File diff suppressed because it is too large
+ 69 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/素描/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/素描/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/红润/color.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/红润/color2.png


+ 70 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/红润/config.json

@@ -0,0 +1,70 @@
+{
+  "musicName": null, 
+  "name": "韩智恩", 
+  "animations": [
+    {
+      "frames": [
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 0, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }, 
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 449, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }
+      ], 
+      "name": "main"
+    }
+  ], 
+  "music": "music.mp3", 
+  "effects": [
+    {
+      "src": "", 
+      "range": "", 
+      "video": "main", 
+      "eid": 1
+    }, 
+    {
+      "filterName": "LookColor", 
+      "range": "", 
+      "eid": 2, 
+      "src": "1"
+    }
+  ], 
+  "filters": [
+    {
+      "images": [
+        "color.png"
+      ], 
+      "fragment": " \nprecision highp float;\nvarying highp vec2 textureCoordinate; \nuniform sampler2D inputImageTexture;\nuniform sampler2D inputImageTexture2;\nvoid main()\n{\n vec4 value = texture2D(inputImageTexture, textureCoordinate);\n float r = texture2D(inputImageTexture2, vec2(value.r, 0.5)).r;\n float g = texture2D(inputImageTexture2, vec2(value.g, 0.5)).g;\n float b = texture2D(inputImageTexture2, vec2(value.b, 0.5)).b;\n gl_FragColor = vec4(r,g,b,1.0);\n} ", 
+      "name": "LookColor"
+    }
+  ], 
+  "time": [
+    0
+  ], 
+  "icon": "icon.png", 
+  "musicIcon": "icon_music.png"
+}

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/红润/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/color.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/color2.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/color3.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/color4.png


File diff suppressed because it is too large
+ 74 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/经典/icon.png


+ 69 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/胶片/config.json

@@ -0,0 +1,69 @@
+{
+    "musicName": null,
+    "name": "胶片",
+    "animations": [
+                   {
+                   "frames": [
+                              {
+                              "a": 0.0,
+                              "fx": 0.0,
+                              "fw": 480.0,
+                              "track": "a",
+                              "h": 1.0,
+                              "fh": 480.0,
+                              "cy": 240.0,
+                              "cx": 240.0,
+                              "t": 0,
+                              "w": 1.0,
+                              "fy": 0.0,
+                              "y": 240.0,
+                              "x": 240.0
+                              },
+                              {
+                              "a": 0.0,
+                              "fx": 0.0,
+                              "fw": 480.0,
+                              "track": "a",
+                              "h": 1.0,
+                              "fh": 480.0,
+                              "cy": 240.0,
+                              "cx": 240.0,
+                              "t": 449,
+                              "w": 1.0,
+                              "fy": 0.0,
+                              "y": 240.0,
+                              "x": 240.0
+                              }
+                              ],
+                   "name": "main"
+                   }
+                   ], 
+    "music": "music.mp3", 
+    "effects": [
+                {
+                "src": "", 
+                "range": "", 
+                "video": "main", 
+                "eid": 1
+                }, 
+                {
+                "filterName": "Mosaic",
+                "range": "", 
+                "eid": 2, 
+                "src": "1"
+                }
+                ], 
+    "filters": [
+                {
+                "images": [
+                ], 
+                "fragment": "varying highp vec2 textureCoordinate;\n \n uniform sampler2D inputImageTexture;\n \n void main()\n {\n    lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);\n    \n    gl_FragColor = vec4((1.0 - textureColor.rgb), textureColor.w);\n }",
+                "name": "BlackWhite"
+                }
+                ], 
+    "time": [
+             0
+             ], 
+    "icon": "icon.png", 
+    "musicIcon": "icon_music.png"
+}

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/胶片/icon.png


+ 69 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/蓝调/config.json

@@ -0,0 +1,69 @@
+{
+    "musicName": null,
+    "name": "rgb",
+    "animations": [
+                   {
+                   "frames": [
+                              {
+                              "a": 0.0,
+                              "fx": 0.0,
+                              "fw": 480.0,
+                              "track": "a",
+                              "h": 1.0,
+                              "fh": 480.0,
+                              "cy": 240.0,
+                              "cx": 240.0,
+                              "t": 0,
+                              "w": 1.0,
+                              "fy": 0.0,
+                              "y": 240.0,
+                              "x": 240.0
+                              },
+                              {
+                              "a": 0.0,
+                              "fx": 0.0,
+                              "fw": 480.0,
+                              "track": "a",
+                              "h": 1.0,
+                              "fh": 480.0,
+                              "cy": 240.0,
+                              "cx": 240.0,
+                              "t": 449,
+                              "w": 1.0,
+                              "fy": 0.0,
+                              "y": 240.0,
+                              "x": 240.0
+                              }
+                              ],
+                   "name": "main"
+                   }
+                   ], 
+    "music": "music.mp3", 
+    "effects": [
+                {
+                "src": "", 
+                "range": "", 
+                "video": "main", 
+                "eid": 1
+                }, 
+                {
+                "filterName": "Mosaic",
+                "range": "", 
+                "eid": 2, 
+                "src": "1"
+                }
+                ], 
+    "filters": [
+                {
+                "images": [
+                ], 
+                "fragment": "varying highp vec2 textureCoordinate;\n \n uniform sampler2D inputImageTexture;\n \n \n void main()\n {\n     highp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);\n     \n     gl_FragColor = vec4(textureColor.r , textureColor.g * 0.9, textureColor.b , textureColor.a);\n }",
+                "name": "BlackWhite"
+                }
+                ], 
+    "time": [
+             0
+             ], 
+    "icon": "icon.png", 
+    "musicIcon": "icon_music.png"
+}

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/蓝调/icon.png


File diff suppressed because it is too large
+ 69 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/迷糊/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/迷糊/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/闪耀/color.png


+ 70 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/闪耀/config.json

@@ -0,0 +1,70 @@
+{
+  "musicName": null, 
+  "name": "车恩尚", 
+  "animations": [
+    {
+      "frames": [
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 0, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }, 
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 449, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }
+      ], 
+      "name": "main"
+    }
+  ], 
+  "music": "music.mp3", 
+  "effects": [
+    {
+      "src": "", 
+      "range": "", 
+      "video": "main", 
+      "eid": 1
+    }, 
+    {
+      "filterName": "LookColor", 
+      "range": "", 
+      "eid": 2, 
+      "src": "1"
+    }
+  ], 
+  "filters": [
+    {
+      "images": [
+        "color.png"
+      ], 
+      "fragment": " \nprecision highp float;\nvarying highp vec2 textureCoordinate; \nuniform sampler2D inputImageTexture;\nuniform sampler2D inputImageTexture2;\nvoid main()\n{\n vec4 value = texture2D(inputImageTexture, textureCoordinate);\n float r = texture2D(inputImageTexture2, vec2(value.r, 0.5)).r;\n float g = texture2D(inputImageTexture2, vec2(value.g, 0.5)).g;\n float b = texture2D(inputImageTexture2, vec2(value.b, 0.5)).b;\n gl_FragColor = vec4(r,g,b,1.0);\n} ", 
+      "name": "LookColor"
+    }
+  ], 
+  "time": [
+    0
+  ], 
+  "icon": "icon.png", 
+  "musicIcon": "icon_music.png"
+}

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/闪耀/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/阳光/color.png


+ 70 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/阳光/config.json

@@ -0,0 +1,70 @@
+{
+  "musicName": null, 
+  "name": "车恩尚", 
+  "animations": [
+    {
+      "frames": [
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 0, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }, 
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 449, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }
+      ], 
+      "name": "main"
+    }
+  ], 
+  "music": "music.mp3", 
+  "effects": [
+    {
+      "src": "", 
+      "range": "", 
+      "video": "main", 
+      "eid": 1
+    }, 
+    {
+      "filterName": "LookColor", 
+      "range": "", 
+      "eid": 2, 
+      "src": "1"
+    }
+  ], 
+  "filters": [
+    {
+      "images": [
+        "color.png"
+      ], 
+      "fragment": " \nprecision highp float;\nvarying highp vec2 textureCoordinate; \nuniform sampler2D inputImageTexture;\nuniform sampler2D inputImageTexture2;\nvoid main()\n{\n vec4 value = texture2D(inputImageTexture, textureCoordinate);\n float r = texture2D(inputImageTexture2, vec2(value.r, 0.5)).r;\n float g = texture2D(inputImageTexture2, vec2(value.g, 0.5)).g;\n float b = texture2D(inputImageTexture2, vec2(value.b, 0.5)).b;\n gl_FragColor = vec4(r,g,b,1.0);\n} ", 
+      "name": "LookColor"
+    }
+  ], 
+  "time": [
+    0
+  ], 
+  "icon": "icon.png", 
+  "musicIcon": "icon_music.png"
+}

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/阳光/icon.png


File diff suppressed because it is too large
+ 70 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/雪梨/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/雪梨/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/雪梨/s3.png


File diff suppressed because it is too large
+ 69 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/马赛克/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/马赛克/icon.png


File diff suppressed because it is too large
+ 69 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鱼眼/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鱼眼/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鲜果/color.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鲜果/color2.png


File diff suppressed because it is too large
+ 72 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鲜果/config.json


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/鲜果/icon.png


BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/麦茶/color.png


+ 70 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/麦茶/config.json

@@ -0,0 +1,70 @@
+{
+  "musicName": null, 
+  "name": "西北偏北", 
+  "animations": [
+    {
+      "frames": [
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 0, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }, 
+        {
+          "a": 0.0, 
+          "fx": 0.0, 
+          "fw": 480.0, 
+          "track": "a", 
+          "h": 1.0, 
+          "fh": 480.0, 
+          "cy": 240.0, 
+          "cx": 240.0, 
+          "t": 449, 
+          "w": 1.0, 
+          "fy": 0.0, 
+          "y": 240.0, 
+          "x": 240.0
+        }
+      ], 
+      "name": "main"
+    }
+  ], 
+  "music": "music.mp3", 
+  "effects": [
+    {
+      "src": "", 
+      "range": "", 
+      "video": "main", 
+      "eid": 1
+    }, 
+    {
+      "filterName": "LookColor", 
+      "range": "", 
+      "eid": 2, 
+      "src": "1"
+    }
+  ], 
+  "filters": [
+    {
+      "images": [
+        "color.png"
+      ], 
+      "fragment": " \nprecision highp float;\nvarying highp vec2 textureCoordinate; \nuniform sampler2D inputImageTexture;\nuniform sampler2D inputImageTexture2;\nvoid main()\n{\n vec4 value = texture2D(inputImageTexture, textureCoordinate);\n float r = texture2D(inputImageTexture2, vec2(value.r, 0.5)).r;\n float g = texture2D(inputImageTexture2, vec2(value.g, 0.5)).g;\n float b = texture2D(inputImageTexture2, vec2(value.b, 0.5)).b;\n gl_FragColor = vec4(r,g,b,1.0);\n} ", 
+      "name": "LookColor"
+    }
+  ], 
+  "time": [
+    0
+  ], 
+  "icon": "icon.png", 
+  "musicIcon": "icon_music.png"
+}

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/麦茶/icon.png


+ 69 - 0
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/黑白/config.json

@@ -0,0 +1,69 @@
+{
+    "musicName": null,
+    "name": "gray",
+    "animations": [
+                   {
+                   "frames": [
+                              {
+                              "a": 0.0,
+                              "fx": 0.0,
+                              "fw": 480.0,
+                              "track": "a",
+                              "h": 1.0,
+                              "fh": 480.0,
+                              "cy": 240.0,
+                              "cx": 240.0,
+                              "t": 0,
+                              "w": 1.0,
+                              "fy": 0.0,
+                              "y": 240.0,
+                              "x": 240.0
+                              },
+                              {
+                              "a": 0.0,
+                              "fx": 0.0,
+                              "fw": 480.0,
+                              "track": "a",
+                              "h": 1.0,
+                              "fh": 480.0,
+                              "cy": 240.0,
+                              "cx": 240.0,
+                              "t": 449,
+                              "w": 1.0,
+                              "fy": 0.0,
+                              "y": 240.0,
+                              "x": 240.0
+                              }
+                              ],
+                   "name": "main"
+                   }
+                   ], 
+    "music": "music.mp3", 
+    "effects": [
+                {
+                "src": "", 
+                "range": "", 
+                "video": "main", 
+                "eid": 1
+                }, 
+                {
+                "filterName": "Mosaic",
+                "range": "", 
+                "eid": 2, 
+                "src": "1"
+                }
+                ], 
+    "filters": [
+                {
+                "images": [
+                ], 
+                "fragment": "precision highp float;\n \n varying vec2 textureCoordinate;\n \n uniform sampler2D inputImageTexture;\n \n const highp vec3 W = vec3(0.2125, 0.7154, 0.0721);\n \n void main()\n {\n     lowp vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);\n     float luminance = dot(textureColor.rgb, W);\n     \n     gl_FragColor = vec4(vec3(luminance), textureColor.a);\n }",
+                "name": "BlackWhite"
+                }
+                ], 
+    "time": [
+             0
+             ], 
+    "icon": "icon.png", 
+    "musicIcon": "icon_music.png"
+}

BIN
RainbowPlanet/RainbowPlanet/Lib/AliyunVideoSDK/FilterResource.bundle/黑白/icon.png


+ 106 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishTakeVideo/PublishFilterView.swift

@@ -0,0 +1,106 @@
+//
+//  PublishFilterView.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/6/20.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//  滤镜のView
+
+import UIKit
+
+class PublishFilterView: BaseView {
+    
+    typealias DimClickClosure = () -> Void
+    var dimClickClosure : DimClickClosure?
+    
+    override func setupViews() {    
+        addSubview(dimBackView)
+        addSubview(collectionView)
+        addSubview(titleLabel)
+    }
+    
+    override func setupLayouts() {
+        dimBackView.snp.makeConstraints { (make) in
+            make.edges.equalToSuperview()
+        }
+        collectionView.snp.makeConstraints { (make) in
+            make.height.equalTo(125)
+            make.bottom.equalTo(-kSafeTabBarHeight)
+            make.left.right.equalToSuperview()
+        }
+        titleLabel.snp.makeConstraints { (make) in
+            make.height.equalTo(48)
+            make.bottom.equalTo(collectionView.snp_top)
+            make.left.right.equalToSuperview()
+        }
+    }
+    
+    private lazy var dimBackView: UIView = {
+        let dimBackView = UIView()
+        dimBackView.backgroundColor = kRGBAColor(r: 0/255.0, g: 0/255.0, b: 0/255.0, a: 0.2)
+        dimBackView.addTapGesture(1, target: self, action: #selector(dismissAction))
+        return dimBackView
+    }()
+    /// 内容详情页面
+    @objc func dismissAction() {        
+        if let dimClickClosure = self.dimClickClosure {
+            dimClickClosure()
+        }
+    }
+    
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.backgroundColor = kRGBAColor(r: 0/255.0, g: 0/255.0, b: 0/255.0, a: 0.2)
+        titleLabel.text = "滤镜"
+        titleLabel.textColor = kffffffColor
+        titleLabel.font = kRegularFont16
+        titleLabel.textAlignment = .center
+        return titleLabel
+    }()
+    
+    private lazy var collectionView: UICollectionView = {
+        let collectionView = UICollectionView.init(frame: CGRect.zero, collectionViewLayout: collectionViewLayout)
+        collectionView.backgroundColor = kRGBAColor(r: 0/255.0, g: 0/255.0, b: 0/255.0, a: 0.5)
+        collectionView.delegate = self;
+        collectionView.dataSource = self;
+        collectionView.showsVerticalScrollIndicator = false
+        collectionView.showsHorizontalScrollIndicator = false
+        collectionView.bounces = false
+        return collectionView
+    }()
+    
+    private lazy var collectionViewLayout: UICollectionViewFlowLayout = {
+        let collectionViewLayout = UICollectionViewFlowLayout.init()
+        collectionViewLayout.minimumInteritemSpacing = 15
+        collectionViewLayout.scrollDirection = .horizontal
+        return collectionViewLayout
+    }()
+}
+
+extension PublishFilterView: UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
+    func numberOfSections(in collectionView: UICollectionView) -> Int {
+        return 1
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
+        return 5
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
+        let cell = PublishSelTopicCollectionCell.cellWith(collectionView: collectionView, indexPath: indexPath)
+        return cell
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
+        return CGSize(width:52, height: 80)
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
+        return UIEdgeInsets(top: 0, left: 14, bottom: 0, right: 14)
+    }
+    
+    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+        print("点击了collection----\(indexPath.row)")
+    }
+    
+}

+ 93 - 7
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishTakeVideo/PublishVideoRecorderController.swift

@@ -12,21 +12,40 @@ import AliyunVideoSDKPro
 
 class PublishVideoRecorderController: BaseViewController {
     
+    typealias DismissClosure = () -> Void
+    var dismissClosure: DismissClosure?
+    
+    // 滤镜Items
+    var effectFilterItems: Array<AliyunEffectFilter> = []
+    
     override func viewDidLoad() {
         super.viewDidLoad()
         
         setupViews()
         setupLayouts()
+        setupFilterEffectData()
+    }
+    
+    deinit {
+        // 控制器销毁时,销毁recorder
+        recorder.destroy()
     }
     
     override func setupViews() {
         navigationBar.isHidden = true
         
-        view.addSubview(tstView)
+        view.addSubview(videoCameraView)
+        
+        view.addSubview(filterView)
+        filterView.isHidden = true
     }
     
     override func setupLayouts() {
-        tstView.snp.makeConstraints { (make) in
+        videoCameraView.snp.makeConstraints { (make) in
+            make.edges.equalToSuperview()
+        }
+        
+        filterView.snp.makeConstraints { (make) in
             make.edges.equalToSuperview()
         }
     }
@@ -44,7 +63,7 @@ class PublishVideoRecorderController: BaseViewController {
         let recorder = AliyunIRecorder.init(delegate: self as? AliyunIRecorderDelegate, videoSize: CGSize(width: 720, height: 1280))
         
         // 预览视图,必须设置
-        recorder?.preview = tstView.previewView
+        recorder?.preview = videoCameraView.previewView
         
         // 摄像头角度
         recorder?.cameraRotate = 270;
@@ -82,10 +101,50 @@ class PublishVideoRecorderController: BaseViewController {
         return recorder!
     }()
     
-    lazy var tstView: PublishVideoView = {
-        let tstView = PublishVideoView()
-//        tstView.frame = CGRect(x: 0, y: 0, width: kScreenWidth, height: kScreenHeight)
-        return tstView
+    lazy var videoCameraView: PublishVideoView = {
+        let videoCameraView = PublishVideoView()
+        videoCameraView.btnClickClosure = {
+            [weak self] (btnType) in
+            switch btnType {
+            case .back:
+                if let dismissClosure = self?.dismissClosure {
+                    dismissClosure()
+                }
+                
+            case .reverse:
+                self?.recorder.switchCameraPosition()
+                
+            case .music:
+                print("----点击-music")
+                
+            case .filter:
+                self?.filterView.isHidden = false
+                
+            case .delete:
+                print("----点击-delete")
+                
+            case .confirm:
+                print("----点击-confirm")
+            }
+        }
+        videoCameraView.videoClosure = {
+            [weak self] (isRecording) in
+            if isRecording == 0 {
+                print("----暂停录制视频")
+            } else {
+                print("----开始录制视频")
+            }
+        }
+        return videoCameraView
+    }()
+    
+    lazy var filterView: PublishFilterView = {
+        let filterView = PublishFilterView()
+        filterView.dimClickClosure = {
+            [weak self] in
+            self?.filterView.isHidden = true
+        }
+        return filterView
     }()
     
     
@@ -111,6 +170,33 @@ class PublishVideoRecorderController: BaseViewController {
     
 }
 
+// MARK: - Video
+extension PublishVideoRecorderController {
+    // 初始化滤镜数据
+    func setupFilterEffectData() {
+        let filterArr = ["炽黄","粉桃","海蓝","红润","灰白",
+                       "经典","麦茶","浓烈","柔柔","闪耀",
+                        "鲜果","雪梨","阳光","优雅","朝阳",
+                         "波普","光圈","海盐","黑白","胶片",
+                          "焦黄","蓝调","迷糊","思念","素描",
+                           "鱼眼","马赛克","模糊"]
+        
+        effectFilterItems.removeAll()
+        
+        let effectFilter1: AliyunEffectFilter = AliyunEffectFilter()
+        effectFilterItems.append(effectFilter1) //作为空效果
+        
+        for (_, filter) in filterArr.enumerated() {
+            let filterName: String = "filter/\(filter)"
+            let path = Bundle(for: type(of: self)).path(forResource: filterName, ofType: nil)
+            let effectFilter: AliyunEffectFilter = AliyunEffectFilter(file: path)
+            effectFilterItems.append(effectFilter)
+        }
+    }
+    
+}
+
+// MARK: - JXSegmentedDelegate
 extension PublishVideoRecorderController : JXSegmentedListContainerViewListDelegate {
     func listView() -> UIView {
         return view

+ 243 - 73
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishTakeVideo/PublishVideoView.swift

@@ -9,120 +9,290 @@
 import UIKit
 import RxSwift
 import RxCocoa
+import JXSegmentedView
+
+enum BtnActionType {
+    case back       // 返回
+    case reverse    // 翻转
+    case music      // 音乐
+    case filter     // 滤镜
+    case delete     // 回删
+    case confirm    // 确定
+}
 
 class PublishVideoView: BaseView {
     
-    typealias AllSelectBlock = (_ isAllSelected: Int) -> Void
-    var allSelectBlock : AllSelectBlock?
-    
-    typealias OrderPayBlock = () -> Void
-    var orderPayBlock : OrderPayBlock?
-    
-    var isAllSelected: Int? {
-        didSet {
-            // 选中状态
-            let selStatus = isAllSelected == 1 ? true : false
-            allSelectBtn.isSelected = selStatus
-        }
-    }
-    
+    typealias BtnClickClosure = (_ btnType: BtnActionType) -> Void
+    var btnClickClosure : BtnClickClosure?
     
+    typealias VideoClosure = (_ isRecording: Int) -> Void
+    var videoClosure : VideoClosure?
     
     override func setupViews() {
         self.backgroundColor = kffffffColor
-        addSubview(allSelectBtn)
-        addSubview(accountBtn)
-        addSubview(priceLabel)
-        addSubview(prePriceLabel)
-        addSubview(previewView)
         
+        addSubview(backButton)
+        addSubview(recordButton)
+        addSubview(segmentedView)
+        
+        addSubview(controlBackView)
+        controlBackView.addSubview(reverseButton)
+        controlBackView.addSubview(musicButton)
+        controlBackView.addSubview(filterButton)
+        
+        addSubview(selBackView)
+        selBackView.addSubview(confirmButton)
+        selBackView.addSubview(delButton)
+        
+        addSubview(previewView)
         insertSubview(previewView, at: 0)
     }
     
     override func setupLayouts() {
-        allSelectBtn.snp.makeConstraints { (make) in
-            make.left.equalToSuperview().offset(10)
-            make.centerY.equalToSuperview()
-            make.height.equalTo(30)
-            make.width.equalTo(54)
+        
+        backButton.snp.makeConstraints { (make) in
+            make.top.equalTo(55)
+            make.left.equalTo(5)
+            make.width.equalTo(40)
+            make.height.equalTo(40)
         }
-        allSelectBtn.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.left, imageTitleSpace: 4)
         
-        accountBtn.snp.makeConstraints { (make) in
-            make.right.equalToSuperview().offset(-14)
-            make.centerY.equalToSuperview()
+        recordButton.snp.makeConstraints { (make) in
+            make.bottom.equalTo(-56)
+            make.centerX.equalToSuperview()
             make.width.equalTo(100)
-            make.height.equalTo(37)
+            make.height.equalTo(100)
+        }
+        
+        segmentedView.snp.makeConstraints { (make) in
+            make.height.equalTo(40)
+            make.left.equalTo(14)
+            make.right.equalTo(-14)
+            make.bottom.equalTo(recordButton.snp_top).offset(-21)
         }
         
-        priceLabel.snp.makeConstraints { (make) in
-            make.centerY.equalToSuperview()
-            make.right.equalTo(accountBtn.snp_left).offset(-12)
-            make.height.equalTo(25)
+        /***** 翻转、音乐、滤镜 *****/
+        controlBackView.snp.makeConstraints { (make) in
+            make.top.equalTo(64)
+            make.right.equalTo(-15)
+            make.width.equalTo(44)
         }
         
-        prePriceLabel.snp.makeConstraints { (make) in
-            make.centerY.equalToSuperview()
-            make.right.equalTo(priceLabel.snp_left).offset(-1)
+        reverseButton.snp.makeConstraints { (make) in
+            make.top.left.right.equalToSuperview()
+            make.height.equalTo(46)
         }
+        reverseButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.top, imageTitleSpace: 4)
         
+        musicButton.snp.makeConstraints { (make) in
+            make.top.equalTo(reverseButton.snp_bottom).offset(20)
+            make.left.right.equalToSuperview()
+            make.height.equalTo(46)
+        }
+        musicButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.top, imageTitleSpace: 4)
+        
+        filterButton.snp.makeConstraints { (make) in
+            make.top.equalTo(musicButton.snp_bottom).offset(20)
+            make.left.right.equalToSuperview()
+            make.height.equalTo(46)
+            make.bottom.equalToSuperview()
+        }
+        filterButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.top, imageTitleSpace: 4)
+        
+        /***** 回删、确定 *****/
+        selBackView.snp.makeConstraints { (make) in
+            make.bottom.equalTo(-83)
+            make.right.equalTo(-24*kScaleWidth)
+            make.height.equalTo(50)
+        }
+        
+        confirmButton.snp.makeConstraints { (make) in
+            make.top.bottom.right.equalToSuperview()
+            make.width.equalTo(30)
+        }
+        confirmButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.top, imageTitleSpace: 4)
+        
+        delButton.snp.makeConstraints { (make) in
+            make.right.equalTo(confirmButton.snp_left).offset(-30*kScaleWidth)
+            make.top.bottom.equalToSuperview()
+            make.width.equalTo(30)
+            make.left.equalToSuperview()
+        }
+        delButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.top, imageTitleSpace: 4)
+        
+        /***** 预览视图 *****/
         previewView.snp.makeConstraints { (make) in
             make.edges.equalToSuperview()
         }
-        
     }
     
-    private lazy var allSelectBtn: UIButton = {
-        let allSelectBtn = UIButton(type: UIButton.ButtonType.custom)
-        allSelectBtn.setTitle("全选", for: UIControl.State.normal)
-        allSelectBtn.setTitleColor(k333333Color, for: UIControl.State.normal)
-        allSelectBtn.setTitleColor(k666666Color, for: UIControl.State.selected)
-        allSelectBtn.setImage(kImage(name: "common_uncheck_icon"), for: UIControl.State.normal)
-        allSelectBtn.setImage(kImage(name: "common_check_icon"), for: UIControl.State.selected)
-        allSelectBtn.titleLabel?.font = kScaleRegularFont16
-        allSelectBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
-            allSelectBtn.isSelected = !allSelectBtn.isSelected
-            if let allSelectBlock = self?.allSelectBlock {
-                let isAllSel: Int = allSelectBtn.isSelected == true ? 1 : 0
-                allSelectBlock(isAllSel)
+    // MARK: - 创建视图控件
+    //1.初始化JXSegmentedViewx
+    lazy var segmentedView: JXSegmentedView = {
+        let segmentedView = JXSegmentedView()
+        segmentedView.delegate = self
+        segmentedView.dataSource = segmentedDataSource
+        segmentedView.selectItemAt(index: 2)
+        segmentedView.defaultSelectedIndex = 2
+        segmentedView.backgroundColor = kRGBAColor(r: 0, g: 0, b: 0, a: 0.2)
+        segmentedView.cornerRadius = 20
+        segmentedView.masksToBounds = true
+        return segmentedView
+    }()
+    
+    //2.初始化dataSource
+    private lazy var segmentedDataSource: JXSegmentedTitleDataSource = {
+        let segmentedDataSource = JXSegmentedTitleDataSource()
+        segmentedDataSource.isTitleColorGradientEnabled = true
+        segmentedDataSource.isItemSpacingAverageEnabled = true
+        segmentedDataSource.isTitleZoomEnabled = true
+        segmentedDataSource.titleNormalColor = kffffffColor
+        segmentedDataSource.titleSelectedColor = k333333Color
+        segmentedDataSource.titleNormalFont = kRegularFont14!
+        segmentedDataSource.titleSelectedFont = kBoldFont22
+        segmentedDataSource.titles = ["极慢","慢","标准","快","极快"]
+        //reloadData(selectedIndex:)方法一定要调用,方法内部会刷新数据源数组
+        segmentedDataSource.reloadData(selectedIndex: 2)
+        
+        return segmentedDataSource
+    }()
+    
+    //3.初始化指示器indicator
+    private lazy var indicator: JXSegmentedIndicatorBackgroundView = {
+        let indicator = JXSegmentedIndicatorBackgroundView()
+//        indicator.indicatorColors = [k62CC74Color,.white,.white]
+        indicator.indicatorHeight = 40
+        return indicator
+    }()
+    
+    lazy var backButton: UIButton = {
+        let backButton = UIButton(type: UIButton.ButtonType.custom)
+        backButton.setImage(kImage(name: "video_btn_close_white"), for: UIControl.State.normal)
+        backButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            if let btnClickClosure = self?.btnClickClosure {
+                btnClickClosure(BtnActionType.back)
+            }
+        }).disposed(by: disposeBag)
+        return backButton
+    }()
+    
+    // MARK:放置"翻转、音乐、滤镜"のView
+    lazy var controlBackView: UIView = {
+        let controlBackView = UIView()
+        return controlBackView
+    }()
+    
+    private lazy var reverseButton: UIButton = {
+        let reverseButton = UIButton(type: UIButton.ButtonType.custom)
+        reverseButton.setImage(kImage(name: "video_ico_overturn"), for: UIControl.State.normal)
+        reverseButton.setTitle("翻转", for: UIControl.State.normal)
+        reverseButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        reverseButton.titleLabel?.font = kRegularFont12
+        reverseButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            if let btnClickClosure = self?.btnClickClosure {
+                btnClickClosure(BtnActionType.reverse)
             }
         }).disposed(by: disposeBag)
-        return allSelectBtn
+        return reverseButton
     }()
     
-    private lazy var accountBtn: UIButton = {
-        let accountBtn = UIButton(type: UIButton.ButtonType.custom)
-        accountBtn.setTitle("结算(0)", for: UIControl.State.normal)
-        accountBtn.titleLabel?.font = kScaleRegularFont15
-        accountBtn.cornerRadius = 18
-        accountBtn.masksToBounds = true
-        accountBtn.rx.tap.subscribe(onNext: { [weak self] (data) in
-            if let orderPayBlock = self?.orderPayBlock {
-                orderPayBlock()
+    private lazy var musicButton: UIButton = {
+        let musicButton = UIButton(type: UIButton.ButtonType.custom)
+        musicButton.setImage(kImage(name: "video_ico_music"), for: UIControl.State.normal)
+        musicButton.setTitle("音乐", for: UIControl.State.normal)
+        musicButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        musicButton.titleLabel?.font = kRegularFont12
+        musicButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            if let btnClickClosure = self?.btnClickClosure {
+                btnClickClosure(BtnActionType.music)
             }
         }).disposed(by: disposeBag)
-        return accountBtn
+        return musicButton
     }()
     
-    private lazy var priceLabel: UILabel = {
-        let priceLabel = UILabel()
-        priceLabel.textColor = kFE352BColor
-        priceLabel.font = kScaleBoldFont18
-        return priceLabel
+    private lazy var filterButton: UIButton = {
+        let filterButton = UIButton(type: UIButton.ButtonType.custom)
+        filterButton.setImage(kImage(name: "video_ico_filter"), for: UIControl.State.normal)
+        filterButton.setTitle("滤镜", for: UIControl.State.normal)
+        filterButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        filterButton.titleLabel?.font = kRegularFont12
+        filterButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            if let btnClickClosure = self?.btnClickClosure {
+                btnClickClosure(BtnActionType.filter)
+            }
+        }).disposed(by: disposeBag)
+        return filterButton
+    }()
+    
+    // MARK:放置"回删、确定"のView
+    lazy var selBackView: UIView = {
+        let selBackView = UIView()
+        return selBackView
     }()
     
-    private lazy var prePriceLabel: UILabel = {
-        let prePriceLabel = UILabel()
-        prePriceLabel.text = "合计"
-        prePriceLabel.textColor = k333333Color
-        prePriceLabel.font = kScaleRegularFont16
-        return prePriceLabel
+    private lazy var delButton: UIButton = {
+        let delButton = UIButton(type: UIButton.ButtonType.custom)
+        delButton.setImage(kImage(name: "video_btn_delete"), for: UIControl.State.normal)
+        delButton.setTitle("回删", for: UIControl.State.normal)
+        delButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        delButton.titleLabel?.font = kRegularFont12
+        delButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            if let btnClickClosure = self?.btnClickClosure {
+                btnClickClosure(BtnActionType.delete)
+            }
+        }).disposed(by: disposeBag)
+        return delButton
     }()
     
-    // 预览View
+    private lazy var confirmButton: UIButton = {
+        let confirmButton = UIButton(type: UIButton.ButtonType.custom)
+        confirmButton.setImage(kImage(name: "video_btn_submit"), for: UIControl.State.normal)
+        confirmButton.setTitle("确定", for: UIControl.State.normal)
+        confirmButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
+        confirmButton.titleLabel?.font = kRegularFont12
+        confirmButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            if let btnClickClosure = self?.btnClickClosure {
+                btnClickClosure(BtnActionType.confirm)
+            }
+        }).disposed(by: disposeBag)
+        return confirmButton
+    }()
+    
+    // MARK:录制のButton
+    private lazy var recordButton: UIButton = {
+        let recordButton = UIButton(type: UIButton.ButtonType.custom)
+        recordButton.setImage(kImage(name: "video_btn_shoot"), for: UIControl.State.normal)
+        recordButton.setImage(kImage(name: "video_btn_pause"), for: UIControl.State.selected)
+        recordButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            recordButton.isSelected = !recordButton.isSelected
+            if let videoClosure = self?.videoClosure {
+                let isRecording: Int = recordButton.isSelected == true ? 1 : 0
+                videoClosure(isRecording)
+            }
+        }).disposed(by: disposeBag)
+        
+        return recordButton
+    }()
+    
+    
+    // MARK:预览View
     lazy var previewView: UIView = {
         let previewView = UIView()
         return previewView
     }()
     
 }
+
+extension PublishVideoView : JXSegmentedViewDelegate {
+    
+    // 点击选中的情况才会调用该方法
+    func segmentedView(_ segmentedView: JXSegmentedView, didClickSelectedItemAt index: Int) {
+        print("----选中\(index)")
+    }
+    
+    /// 是否允许点击选中目标index的item
+    func segmentedView(_ segmentedView: JXSegmentedView, canClickItemAt index: Int) -> Bool {
+        return true
+    }
+}
+

+ 4 - 0
RainbowPlanet/RainbowPlanet/Modules/PublishModule/PublishViewController.swift

@@ -170,6 +170,10 @@ extension PublishViewController :JXSegmentedListContainerViewDataSource {
             return mediaVc
         case 1:
             let videoVc = PublishVideoRecorderController()
+            videoVc.dismissClosure = {
+                [weak self] in
+                self?.dismiss(animated: true, completion: nil)
+            }
             return videoVc        
         default:
             let photoVc = PublishTakePhotoController()

+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_close_white.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_close_white.imageset/video_btn_close_white@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_close_white.imageset/video_btn_close_white@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_delete.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_delete.imageset/video_btn_delete@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_delete.imageset/video_btn_delete@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_submit.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_submit.imageset/video_btn_submit@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_btn_submit.imageset/video_btn_submit@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_filter.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_filter.imageset/video_ico_filter@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_filter.imageset/video_ico_filter@3x.png


+ 22 - 0
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_music.imageset/Contents.json

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

BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_music.imageset/video_ico_music@2x.png


BIN
RainbowPlanet/RainbowPlanet/Supporting Files/PublishModule.xcassets/video_ico_music.imageset/video_ico_music@3x.png