房间改造
This commit is contained in:
@@ -50,17 +50,30 @@ target 'yinmeng-ios' do
|
||||
pod 'SZTextView'
|
||||
# 分享
|
||||
pod 'mob_sharesdk'
|
||||
pod 'mob_sharesdk/ShareSDKPlatforms/QQ'
|
||||
pod 'mob_sharesdk/ShareSDKPlatforms/WeChat_Lite'
|
||||
pod 'mob_sharesdk/ShareSDKPlatforms/Apple'
|
||||
pod 'mob_sharesdk/ShareSDKExtension'
|
||||
#轮播图
|
||||
pod 'SDCycleScrollView'
|
||||
# pod 'SDPhotoBrowser'
|
||||
|
||||
|
||||
|
||||
#vap礼物动画
|
||||
pod 'QGVAPlayer'
|
||||
pod 'IQKeyboardManager', '~> 6.5.11'
|
||||
#调试
|
||||
pod 'LookinServer', :configurations => ['Debug']
|
||||
|
||||
pod 'MarqueeLabel-ObjC'
|
||||
#声网
|
||||
pod 'AgoraRtcEngine_iOS', '~> 4.2.2'
|
||||
#UM统计
|
||||
pod 'UMCommon'
|
||||
pod 'UMDevice'
|
||||
pod 'Bugly'
|
||||
pod 'LinkedME_LinkPage'
|
||||
#上传音乐
|
||||
pod 'CocoaAsyncSocket',:modular_headers => true
|
||||
end
|
||||
|
||||
post_install do |installer|
|
||||
|
@@ -14,7 +14,38 @@ PODS:
|
||||
- AFNetworking/Serialization (4.0.1)
|
||||
- AFNetworking/UIKit (4.0.1):
|
||||
- AFNetworking/NSURLSession
|
||||
- AgoraRtcEngine_iOS (4.2.6):
|
||||
- AgoraRtcEngine_iOS/AIAEC (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/AINS (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/AudioBeauty (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/ClearVision (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/ContentInspect (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/DRM (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/FaceDetection (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/ReplayKit (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/RtcBasic (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/SpatialAudio (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/VideoCodecDec (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/VideoCodecEnc (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/VirtualBackground (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/VQA (= 4.2.6)
|
||||
- AgoraRtcEngine_iOS/AIAEC (4.2.6)
|
||||
- AgoraRtcEngine_iOS/AINS (4.2.6)
|
||||
- AgoraRtcEngine_iOS/AudioBeauty (4.2.6)
|
||||
- AgoraRtcEngine_iOS/ClearVision (4.2.6)
|
||||
- AgoraRtcEngine_iOS/ContentInspect (4.2.6)
|
||||
- AgoraRtcEngine_iOS/DRM (4.2.6)
|
||||
- AgoraRtcEngine_iOS/FaceDetection (4.2.6)
|
||||
- AgoraRtcEngine_iOS/ReplayKit (4.2.6)
|
||||
- AgoraRtcEngine_iOS/RtcBasic (4.2.6)
|
||||
- AgoraRtcEngine_iOS/SpatialAudio (4.2.6)
|
||||
- AgoraRtcEngine_iOS/VideoCodecDec (4.2.6)
|
||||
- AgoraRtcEngine_iOS/VideoCodecEnc (4.2.6)
|
||||
- AgoraRtcEngine_iOS/VirtualBackground (4.2.6)
|
||||
- AgoraRtcEngine_iOS/VQA (4.2.6)
|
||||
- Base64 (1.1.2)
|
||||
- Bugly (2.5.93)
|
||||
- CocoaAsyncSocket (7.6.5)
|
||||
- FFPopup (1.1.5)
|
||||
- FLAnimatedImage (1.0.17)
|
||||
- HappyDNS (1.0.3)
|
||||
@@ -22,9 +53,11 @@ PODS:
|
||||
- IQKeyboardManager (6.5.16)
|
||||
- JXCategoryView (1.6.1)
|
||||
- JXPagingView/Pager (2.1.2)
|
||||
- LinkedME_LinkPage (1.5.5.4)
|
||||
- LookinServer (1.2.3):
|
||||
- LookinServer/Core (= 1.2.3)
|
||||
- LookinServer/Core (1.2.3)
|
||||
- MarqueeLabel-ObjC (3.3.0)
|
||||
- Masonry (1.1.0)
|
||||
- MBProgressHUD (1.2.0)
|
||||
- MJExtension (3.4.1)
|
||||
@@ -37,6 +70,15 @@ PODS:
|
||||
- mob_sharesdk/ShareSDKExtension (4.4.20):
|
||||
- mob_sharesdk/ShareSDK
|
||||
- MOBFoundation (>= 3.2.9)
|
||||
- mob_sharesdk/ShareSDKPlatforms/Apple (4.4.20):
|
||||
- mob_sharesdk/ShareSDK
|
||||
- MOBFoundation (>= 3.2.9)
|
||||
- mob_sharesdk/ShareSDKPlatforms/QQ (4.4.20):
|
||||
- mob_sharesdk/ShareSDK
|
||||
- MOBFoundation (>= 3.2.9)
|
||||
- mob_sharesdk/ShareSDKPlatforms/WeChat_Lite (4.4.20):
|
||||
- mob_sharesdk/ShareSDK
|
||||
- MOBFoundation (>= 3.2.9)
|
||||
- MOBFoundation (3.2.60)
|
||||
- NIMSDK_LITE (8.9.119)
|
||||
- NTESBaseComponent (1.8)
|
||||
@@ -76,6 +118,9 @@ PODS:
|
||||
- TZImagePickerController/Location (= 3.8.3)
|
||||
- TZImagePickerController/Basic (3.8.3)
|
||||
- TZImagePickerController/Location (3.8.3)
|
||||
- UMCommon (7.4.3):
|
||||
- UMDevice
|
||||
- UMDevice (3.3.0)
|
||||
- YYCache (1.0.4)
|
||||
- YYImage (1.0.4):
|
||||
- YYImage/Core (= 1.0.4)
|
||||
@@ -87,20 +132,28 @@ PODS:
|
||||
|
||||
DEPENDENCIES:
|
||||
- AFNetworking
|
||||
- AgoraRtcEngine_iOS (~> 4.2.2)
|
||||
- Base64
|
||||
- Bugly
|
||||
- CocoaAsyncSocket
|
||||
- FFPopup
|
||||
- FLAnimatedImage
|
||||
- IAPHelper
|
||||
- IQKeyboardManager (~> 6.5.11)
|
||||
- JXCategoryView
|
||||
- JXPagingView/Pager
|
||||
- LinkedME_LinkPage
|
||||
- LookinServer
|
||||
- MarqueeLabel-ObjC
|
||||
- Masonry
|
||||
- MBProgressHUD
|
||||
- MJExtension
|
||||
- MJRefresh
|
||||
- mob_sharesdk
|
||||
- mob_sharesdk/ShareSDKExtension
|
||||
- mob_sharesdk/ShareSDKPlatforms/Apple
|
||||
- mob_sharesdk/ShareSDKPlatforms/QQ
|
||||
- mob_sharesdk/ShareSDKPlatforms/WeChat_Lite
|
||||
- NIMSDK_LITE (~> 8.9.0)
|
||||
- NTESQuickPass
|
||||
- pop
|
||||
@@ -116,13 +169,18 @@ DEPENDENCIES:
|
||||
- SZTextView
|
||||
- TXLiteAVSDK_TRTC (~> 10.3.12271)
|
||||
- TZImagePickerController
|
||||
- UMCommon
|
||||
- UMDevice
|
||||
- YYText
|
||||
- YYWebImage (~> 1.0.5)
|
||||
|
||||
SPEC REPOS:
|
||||
https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git:
|
||||
- AFNetworking
|
||||
- AgoraRtcEngine_iOS
|
||||
- Base64
|
||||
- Bugly
|
||||
- CocoaAsyncSocket
|
||||
- FFPopup
|
||||
- FLAnimatedImage
|
||||
- HappyDNS
|
||||
@@ -130,7 +188,9 @@ SPEC REPOS:
|
||||
- IQKeyboardManager
|
||||
- JXCategoryView
|
||||
- JXPagingView
|
||||
- LinkedME_LinkPage
|
||||
- LookinServer
|
||||
- MarqueeLabel-ObjC
|
||||
- Masonry
|
||||
- MBProgressHUD
|
||||
- MJExtension
|
||||
@@ -155,6 +215,8 @@ SPEC REPOS:
|
||||
- SZTextView
|
||||
- TXLiteAVSDK_TRTC
|
||||
- TZImagePickerController
|
||||
- UMCommon
|
||||
- UMDevice
|
||||
- YYCache
|
||||
- YYImage
|
||||
- YYText
|
||||
@@ -162,7 +224,10 @@ SPEC REPOS:
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
AFNetworking: 3bd23d814e976cd148d7d44c3ab78017b744cd58
|
||||
AgoraRtcEngine_iOS: ac647332ad8f86d79cf810601c9e62b28c3a4de0
|
||||
Base64: cecfb41a004124895a7bcee567a89bae5a89d49b
|
||||
Bugly: b8715e6ec4004b7f7fbffab0643ba80545aee3da
|
||||
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
|
||||
FFPopup: a208dcee8db3e54ec4a88fcd6481f6f5d85b7a83
|
||||
FLAnimatedImage: bbf914596368867157cc71b38a8ec834b3eeb32b
|
||||
HappyDNS: 5421fc84775a299517e994afadb9e732b265ec65
|
||||
@@ -170,7 +235,9 @@ SPEC CHECKSUMS:
|
||||
IQKeyboardManager: 024b54d7dcb765c5bc99882cb4d5ea24a8cb7c3c
|
||||
JXCategoryView: 7b1ee69ede4843c581688afe84d0f047723262f2
|
||||
JXPagingView: 90924b364a2ff7e94db534fad1fa50925ff69ee4
|
||||
LinkedME_LinkPage: 0b443cec28582eb2d7e1c09987072e33e44083ec
|
||||
LookinServer: 535f5d1ffd5823a3b0abaf97ba5c4108bd8cb5ea
|
||||
MarqueeLabel-ObjC: 696eaa82e4fcc7fb53e4fdf37ac138f03bf022d6
|
||||
Masonry: 678fab65091a9290e40e2832a55e7ab731aad201
|
||||
MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406
|
||||
MJExtension: 21c5f6f8c4d5d8844b7ae8fbae08fed0b501f961
|
||||
@@ -195,11 +262,13 @@ SPEC CHECKSUMS:
|
||||
SZTextView: 094dc6acc9beec537685c545d6e3e0d4975174e1
|
||||
TXLiteAVSDK_TRTC: c4e42ef113788558b7c5f4250bad5f81925bcfb4
|
||||
TZImagePickerController: e9909edbadf7381140efc5b5c9f5bdbfd630f7d4
|
||||
UMCommon: 8fc989e90fc40a8b100bef3ffe21f7a59fe439ea
|
||||
UMDevice: f67106f8f1a8bc465ba20d376d896e178be66ba7
|
||||
YYCache: 8105b6638f5e849296c71f331ff83891a4942952
|
||||
YYImage: 1e1b62a9997399593e4b9c4ecfbbabbf1d3f3b54
|
||||
YYText: 5c461d709e24d55a182d1441c41dc639a18a4849
|
||||
YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928
|
||||
|
||||
PODFILE CHECKSUM: 1c58a1f816bd843a9960ccc9037c039f956d7014
|
||||
PODFILE CHECKSUM: df605c7509bfb314c2e7a2d17a11bf6b94d1f65c
|
||||
|
||||
COCOAPODS: 1.14.2
|
||||
COCOAPODS: 1.12.1
|
||||
|
@@ -120,6 +120,11 @@
|
||||
237054E72B204F1000F5DE14 /* MewUtility+MewApp.m in Sources */ = {isa = PBXBuildFile; fileRef = 237054E62B204F1000F5DE14 /* MewUtility+MewApp.m */; };
|
||||
237054EA2B204F4500F5DE14 /* MewUtility+MewDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = 237054E92B204F4400F5DE14 /* MewUtility+MewDevice.m */; };
|
||||
237054ED2B20550400F5DE14 /* NSObject+MewAutoCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 237054EC2B20550400F5DE14 /* NSObject+MewAutoCoding.m */; };
|
||||
23E3FCF22B493C0F00D0B664 /* MewRoomBgImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E3FCF12B493C0F00D0B664 /* MewRoomBgImageView.m */; };
|
||||
23E3FCF62B493F3700D0B664 /* MewSVGAParserTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E3FCF52B493F3700D0B664 /* MewSVGAParserTool.m */; };
|
||||
23E3FCF92B4946AE00D0B664 /* MewRoomBgImageItemModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E3FCF82B4946AE00D0B664 /* MewRoomBgImageItemModel.m */; };
|
||||
23E3FCFC2B4957B800D0B664 /* mew_room_anchor_bg.svga in Resources */ = {isa = PBXBuildFile; fileRef = 23E3FCFB2B4957B800D0B664 /* mew_room_anchor_bg.svga */; };
|
||||
23E3FD002B495DA100D0B664 /* MewRoomTopView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23E3FCFF2B495DA100D0B664 /* MewRoomTopView.m */; };
|
||||
8C4D535A2AFD4CF600238AE6 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8C4D53582AFD4CF600238AE6 /* Main.storyboard */; };
|
||||
8C4D535C2AFD4CF700238AE6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8C4D535B2AFD4CF700238AE6 /* Assets.xcassets */; };
|
||||
8C4D535F2AFD4CF700238AE6 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8C4D535D2AFD4CF700238AE6 /* LaunchScreen.storyboard */; };
|
||||
@@ -755,6 +760,15 @@
|
||||
237054E92B204F4400F5DE14 /* MewUtility+MewDevice.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "MewUtility+MewDevice.m"; sourceTree = "<group>"; };
|
||||
237054EB2B20550400F5DE14 /* NSObject+MewAutoCoding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSObject+MewAutoCoding.h"; sourceTree = "<group>"; };
|
||||
237054EC2B20550400F5DE14 /* NSObject+MewAutoCoding.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MewAutoCoding.m"; sourceTree = "<group>"; };
|
||||
23E3FCF02B493C0F00D0B664 /* MewRoomBgImageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomBgImageView.h; sourceTree = "<group>"; };
|
||||
23E3FCF12B493C0F00D0B664 /* MewRoomBgImageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomBgImageView.m; sourceTree = "<group>"; };
|
||||
23E3FCF42B493F3700D0B664 /* MewSVGAParserTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewSVGAParserTool.h; sourceTree = "<group>"; };
|
||||
23E3FCF52B493F3700D0B664 /* MewSVGAParserTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewSVGAParserTool.m; sourceTree = "<group>"; };
|
||||
23E3FCF72B4946AE00D0B664 /* MewRoomBgImageItemModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomBgImageItemModel.h; sourceTree = "<group>"; };
|
||||
23E3FCF82B4946AE00D0B664 /* MewRoomBgImageItemModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomBgImageItemModel.m; sourceTree = "<group>"; };
|
||||
23E3FCFB2B4957B800D0B664 /* mew_room_anchor_bg.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = mew_room_anchor_bg.svga; sourceTree = "<group>"; };
|
||||
23E3FCFE2B495DA100D0B664 /* MewRoomTopView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MewRoomTopView.h; sourceTree = "<group>"; };
|
||||
23E3FCFF2B495DA100D0B664 /* MewRoomTopView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MewRoomTopView.m; sourceTree = "<group>"; };
|
||||
8C4D534C2AFD4CF600238AE6 /* yinmeng-ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "yinmeng-ios.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
8C4D53592AFD4CF600238AE6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||
8C4D535B2AFD4CF700238AE6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
@@ -1538,8 +1552,8 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
237053212B1F3AA000F5DE14 /* MewSocialStageView.h */,
|
||||
237053222B1F3AA000F5DE14 /* RoomMicroView */,
|
||||
237053252B1F3AA000F5DE14 /* MewSocialStageView.m */,
|
||||
237053222B1F3AA000F5DE14 /* RoomMicroView */,
|
||||
);
|
||||
path = RoomStageView;
|
||||
sourceTree = "<group>";
|
||||
@@ -2146,6 +2160,41 @@
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
23E3FCEF2B493BC700D0B664 /* MewRoomBgImageView */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
23E3FCF02B493C0F00D0B664 /* MewRoomBgImageView.h */,
|
||||
23E3FCF12B493C0F00D0B664 /* MewRoomBgImageView.m */,
|
||||
);
|
||||
path = MewRoomBgImageView;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
23E3FCF32B493F2700D0B664 /* MewSVGAParserTool */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
23E3FCF42B493F3700D0B664 /* MewSVGAParserTool.h */,
|
||||
23E3FCF52B493F3700D0B664 /* MewSVGAParserTool.m */,
|
||||
);
|
||||
path = MewSVGAParserTool;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
23E3FCFA2B4957AD00D0B664 /* MewSources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
23E3FCFB2B4957B800D0B664 /* mew_room_anchor_bg.svga */,
|
||||
);
|
||||
path = MewSources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
23E3FCFD2B495D9500D0B664 /* MewRoomTopView */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
23E3FCFE2B495DA100D0B664 /* MewRoomTopView.h */,
|
||||
23E3FCFF2B495DA100D0B664 /* MewRoomTopView.m */,
|
||||
);
|
||||
path = MewRoomTopView;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4A6518CB5E73E536AD820F47 /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -2177,6 +2226,7 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8C9C84B22B0E94FA00A601BC /* yinmeng-ios.entitlements */,
|
||||
23E3FCFA2B4957AD00D0B664 /* MewSources */,
|
||||
8C9C83B72B0C697A00A601BC /* ClientConfig */,
|
||||
8C9C82DE2B0C697A00A601BC /* Main */,
|
||||
8C9C82D72B0C696900A601BC /* Global */,
|
||||
@@ -2282,8 +2332,10 @@
|
||||
8C9C82F42B0C697A00A601BC /* Model */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8C9C82F52B0C697A00A601BC /* MewRoomInfoModel.m */,
|
||||
8C9C82F62B0C697A00A601BC /* MewRoomInfoModel.h */,
|
||||
8C9C82F52B0C697A00A601BC /* MewRoomInfoModel.m */,
|
||||
23E3FCF72B4946AE00D0B664 /* MewRoomBgImageItemModel.h */,
|
||||
23E3FCF82B4946AE00D0B664 /* MewRoomBgImageItemModel.m */,
|
||||
);
|
||||
path = Model;
|
||||
sourceTree = "<group>";
|
||||
@@ -2291,15 +2343,17 @@
|
||||
8C9C82F72B0C697A00A601BC /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8CAB973B2B239F4A00ED8639 /* MewView */,
|
||||
23E3FCFD2B495D9500D0B664 /* MewRoomTopView */,
|
||||
8C9C84912B0D659800A601BC /* AnimationView */,
|
||||
8C9C82F82B0C697A00A601BC /* MewMicroQueueProtocol.h */,
|
||||
8C9C82FA2B0C697A00A601BC /* MenuContainerView */,
|
||||
8C9C82FD2B0C697A00A601BC /* StageView */,
|
||||
8C9C830B2B0C697A00A601BC /* MewRoomGuestDelegate.h */,
|
||||
8C9C830D2B0C697A00A601BC /* MessageContainerView */,
|
||||
8C9C82F82B0C697A00A601BC /* MewMicroQueueProtocol.h */,
|
||||
8C9C849F2B0D6BCF00A601BC /* MewRoomAnimationProtocol.h */,
|
||||
23E3FCEF2B493BC700D0B664 /* MewRoomBgImageView */,
|
||||
8C9C830B2B0C697A00A601BC /* MewRoomGuestDelegate.h */,
|
||||
8CAB96F22B1A729300ED8639 /* MewRoomHostDelegate.h */,
|
||||
8CAB973B2B239F4A00ED8639 /* MewView */,
|
||||
8C9C82FD2B0C697A00A601BC /* StageView */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
@@ -2384,6 +2438,7 @@
|
||||
8C9C83182B0C697A00A601BC /* Tool */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
23E3FCF32B493F2700D0B664 /* MewSVGAParserTool */,
|
||||
8C9C83192B0C697A00A601BC /* MewRoomMessageParser.h */,
|
||||
8C9C831A2B0C697A00A601BC /* MewRoomMessageParser.m */,
|
||||
8C9C831B2B0C697A00A601BC /* MewRoomMessageConstant.h */,
|
||||
@@ -2829,12 +2884,12 @@
|
||||
8CAB973B2B239F4A00ED8639 /* MewView */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
237053202B1F3AA000F5DE14 /* RoomStageView */,
|
||||
237053262B1F3AA000F5DE14 /* MewRoomViewController.h */,
|
||||
237053272B1F3AA000F5DE14 /* RoomRightView */,
|
||||
237053302B1F3AA000F5DE14 /* MewRoomViewController.m */,
|
||||
2370532A2B1F3AA000F5DE14 /* RoomHeaderView */,
|
||||
2370532D2B1F3AA000F5DE14 /* RoomMessageView */,
|
||||
237053302B1F3AA000F5DE14 /* MewRoomViewController.m */,
|
||||
237053272B1F3AA000F5DE14 /* RoomRightView */,
|
||||
237053202B1F3AA000F5DE14 /* RoomStageView */,
|
||||
);
|
||||
path = MewView;
|
||||
sourceTree = "<group>";
|
||||
@@ -4039,6 +4094,7 @@
|
||||
8CD781DA2B36611200F4CFF3 /* emoji_66@2x.png in Resources */,
|
||||
8CD781F42B36611200F4CFF3 /* emoji_164@2x.png in Resources */,
|
||||
8CD781C52B36611200F4CFF3 /* emoji_25@2x.png in Resources */,
|
||||
23E3FCFC2B4957B800D0B664 /* mew_room_anchor_bg.svga in Resources */,
|
||||
8CD781CB2B36611200F4CFF3 /* emoji_150@2x.png in Resources */,
|
||||
8CD781D62B36611200F4CFF3 /* emoji_33@2x.png in Resources */,
|
||||
8CD781632B36611200F4CFF3 /* emoji_55@2x.png in Resources */,
|
||||
@@ -4275,6 +4331,7 @@
|
||||
8CD7802E2B33DBDB00F4CFF3 /* SDPhotoBrowser.m in Sources */,
|
||||
2370547F2B1F3B3200F5DE14 /* UIView+MewFilletCorner.m in Sources */,
|
||||
8CD7814D2B36611200F4CFF3 /* QKeyboardManager.m in Sources */,
|
||||
23E3FCF62B493F3700D0B664 /* MewSVGAParserTool.m in Sources */,
|
||||
8CD7800F2B33BFE600F4CFF3 /* MewCustomNavView.m in Sources */,
|
||||
8CD782212B3B493200F4CFF3 /* MewPersonalCenterHeaderView.m in Sources */,
|
||||
8CD782372B3B9DBE00F4CFF3 /* MewPersonalCenterMoreItemModel.m in Sources */,
|
||||
@@ -4410,6 +4467,7 @@
|
||||
2370538C2B1F3AA100F5DE14 /* MewLoginPasswordView.m in Sources */,
|
||||
8CD780312B33DD5500F4CFF3 /* MewUserPersonalDetailHeaderInfoView.m in Sources */,
|
||||
8C9C841E2B0C697A00A601BC /* MewRoomSendTextView.m in Sources */,
|
||||
23E3FCF22B493C0F00D0B664 /* MewRoomBgImageView.m in Sources */,
|
||||
237053992B1F3AA100F5DE14 /* MewHomeViewController.m in Sources */,
|
||||
8CD781492B36611200F4CFF3 /* QEmotion.m in Sources */,
|
||||
8C9C843E2B0C697A00A601BC /* MewMineSettingPresenter.m in Sources */,
|
||||
@@ -4502,6 +4560,7 @@
|
||||
2370538E2B1F3AA100F5DE14 /* MewLoginViewController.m in Sources */,
|
||||
8CD782832B3E7CE200F4CFF3 /* MewPayForgetPasswordViewController.m in Sources */,
|
||||
8CD780512B36137C00F4CFF3 /* MewEmptyCollectionViewCell.m in Sources */,
|
||||
23E3FCF92B4946AE00D0B664 /* MewRoomBgImageItemModel.m in Sources */,
|
||||
8CD782582B3D0EDF00F4CFF3 /* MewPersonalNoticationRemindTableCell.m in Sources */,
|
||||
8CD780812B365F3100F4CFF3 /* MewDynamicReplyCommentModel.m in Sources */,
|
||||
237054842B1F3B3200F5DE14 /* UIImageConstant.m in Sources */,
|
||||
@@ -4516,6 +4575,7 @@
|
||||
237054AB2B1F3B3200F5DE14 /* MewThemeColor.m in Sources */,
|
||||
8CD782AD2B44A11A00F4CFF3 /* MewPayModel.m in Sources */,
|
||||
8CD782C02B44E56900F4CFF3 /* MewTeenagerModeViewController.m in Sources */,
|
||||
23E3FD002B495DA100D0B664 /* MewRoomTopView.m in Sources */,
|
||||
8C9C84412B0C697A00A601BC /* MewMineCollectRoomModel.m in Sources */,
|
||||
8CD783202B473BD100F4CFF3 /* MewMineDressupHeadWearTableCell.m in Sources */,
|
||||
8CD782552B3D066800F4CFF3 /* MewNoticationRemindItemModel.m in Sources */,
|
||||
@@ -4722,6 +4782,7 @@
|
||||
DEVELOPMENT_TEAM = 48UCG35Q9W;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_NO_COMMON_BLOCKS = NO;
|
||||
GCC_PREFIX_HEADER = "yinmeng-ios/Base/Base.h";
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = "yinmeng-ios/Info.plist";
|
||||
INFOPLIST_KEY_CFBundleDisplayName = "音萌";
|
||||
@@ -4769,6 +4830,7 @@
|
||||
DEVELOPMENT_TEAM = 48UCG35Q9W;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_NO_COMMON_BLOCKS = NO;
|
||||
GCC_PREFIX_HEADER = "yinmeng-ios/Base/Base.h";
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = "yinmeng-ios/Info.plist";
|
||||
INFOPLIST_KEY_CFBundleDisplayName = "音萌";
|
||||
|
21
yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_bg_image.imageset/Contents.json
vendored
Normal file
21
yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_bg_image.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "mew_room_bg_image.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_bg_image.imageset/mew_room_bg_image.png
vendored
Normal file
BIN
yinmeng-ios/yinmeng-ios/Assets.xcassets/Mew/Room/mew_room_bg_image.imageset/mew_room_bg_image.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 339 KiB |
@@ -24,4 +24,20 @@ if (@available(iOS 11.0, *)) {\
|
||||
}\
|
||||
(isEnterprise);})
|
||||
|
||||
|
||||
|
||||
#import "NetImageView.h"
|
||||
//SVGA动画播放
|
||||
#import "SVGA.h"
|
||||
#import "MewSVGAParserTool.h"
|
||||
#import "MewGCDHelper.h"
|
||||
#import "MewMacro.h"
|
||||
#import "MewEnum.h"
|
||||
#import "MewHUDTool.h"
|
||||
#import <NIMSDK/NIMSDK.h>
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <MarqueeLabel.h>
|
||||
#import <YYText/YYLabel.h>
|
||||
#import "TTPopup.h"
|
||||
#import <FFPopup/FFPopup.h>
|
||||
#endif /* Base_h */
|
||||
|
@@ -143,4 +143,66 @@ typedef NS_ENUM(NSUInteger, MewSkillCardStateType) {
|
||||
|
||||
|
||||
|
||||
typedef NS_ENUM(NSInteger, MewRoomType) {
|
||||
MewRoomType_Game = 3,
|
||||
MewRoomType_Anchor = 6, // 个播房
|
||||
MewRoomType_MiniGame = 7//小游戏房
|
||||
};
|
||||
///RoomModeType
|
||||
typedef NS_ENUM(NSInteger, MewRoomPatternType){
|
||||
///普通模式
|
||||
MewRoomPatternType_Normal_Pattern = 0,
|
||||
///排麦模式
|
||||
MewRoomPatternType_Open_Micro_Pattern = 1,
|
||||
///关闭排麦模式
|
||||
MewRoomPatternType_Close_Micro_Pattern = 2,
|
||||
///开启PK
|
||||
MewRoomPatternType_Open_PK_Pattern = 3,
|
||||
///关闭PK
|
||||
MewRoomPatternType_Close_PK_Patterne = 4,
|
||||
///相亲
|
||||
MewRoomPatternType_Open_Blind_Pattern = 5,
|
||||
///开启跨房PK
|
||||
MewRoomPatternType_Open_AcrossRoomPK_Pattern = 7,
|
||||
};
|
||||
|
||||
//PermitRoomType
|
||||
typedef NS_ENUM(NSInteger, MewRoomAnchorType) {
|
||||
MewRoomAnchorType_Licnese = 1,//牌照
|
||||
MewRoomAnchorType_NewStar = 3,//新秀
|
||||
MewRoomAnchorType_Other//其他
|
||||
};
|
||||
|
||||
//RoomPlayDateingType
|
||||
typedef NS_ENUM(NSInteger, MewRoomBlindDateType) {
|
||||
MewRoomBlindDateType_Chat = 1,///交谈
|
||||
MewRoomBlindDateType_Pick = 2,///心动选人
|
||||
MewRoomBlindDateType_Result = 3,///公布结果
|
||||
MewRoomBlindDateType_Complete = 4,///结束
|
||||
};
|
||||
//RoomDatingStateChangeType
|
||||
///本地字段 房间相亲的状态
|
||||
typedef NS_ENUM(NSInteger, MewRoomBlindDateStateType) {
|
||||
MewRoomBlindDateStateType_Normal = 0,///默认状态
|
||||
MewRoomBlindDateStateType_Open = 1,/// 关闭->开启
|
||||
MewRoomBlindDateStateType_Close = 2,///开启->关闭
|
||||
};
|
||||
///AcrossRoomPkType
|
||||
typedef NS_ENUM(NSUInteger, MewRoomPkNameType) {
|
||||
MewRoomPkNameType_Licnese = 1, ///牌照房PK
|
||||
MewRoomPkNameType_Anchor, ///个播PK
|
||||
};
|
||||
///AcrossRoomPkStateType
|
||||
///PK处于什么阶段
|
||||
typedef NS_ENUM(NSUInteger, MewRoomPkNameStateType) {
|
||||
MewRoomPkNameStateType_Pking = 1,//PK中
|
||||
MewRoomPkNameStateType_PenaltyStage, //惩罚阶段
|
||||
MewRoomPkNameStateType_PenaltyEnd,//惩罚结束
|
||||
};
|
||||
//AnchorPKOtherMicStatus
|
||||
///个播PK对方麦克风状态
|
||||
typedef NS_ENUM(NSUInteger, MewRoomPKAdverseAnchorMicStatu) {
|
||||
MewRoomPKAdverseAnchorMicStatu_Close = 0,//关闭
|
||||
MewRoomPKAdverseAnchorMicStatu_Open = 1,//开启
|
||||
};
|
||||
#endif /* MewEnum_h */
|
||||
|
@@ -0,0 +1,29 @@
|
||||
//
|
||||
// MewRoomBgImageItemModel.h
|
||||
// yinmeng-ios
|
||||
//
|
||||
// Created by duoban on 2024/1/6.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface MewRoomBgImageItemModel : NSObject
|
||||
@property(nonatomic,copy) NSString *ID;
|
||||
@property(nonatomic,copy) NSString *createTime;
|
||||
@property(nonatomic,copy) NSString *effectTime;
|
||||
@property(nonatomic,copy) NSString *erbanNoStr;
|
||||
@property(nonatomic,copy) NSString *expireTime;
|
||||
@property(nonatomic,assign) BOOL isDefault;
|
||||
@property(nonatomic,assign) BOOL isUsed;
|
||||
@property(nonatomic,copy) NSString *name;
|
||||
@property(nonatomic,copy) NSString *picUrl;
|
||||
@property(nonatomic,copy) NSString *roomUidStr;
|
||||
@property(nonatomic,copy) NSString *seq;
|
||||
@property(nonatomic,copy) NSString *type;
|
||||
@property(nonatomic,copy) NSString *updateTime;
|
||||
@property(nonatomic,copy) NSString *viewUrl;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,14 @@
|
||||
//
|
||||
// MewRoomBgImageItemModel.m
|
||||
// yinmeng-ios
|
||||
//
|
||||
// Created by duoban on 2024/1/6.
|
||||
//
|
||||
|
||||
#import "MewRoomBgImageItemModel.h"
|
||||
|
||||
@implementation MewRoomBgImageItemModel
|
||||
+ (NSDictionary *)replacedKeyFromPropertyName {
|
||||
return @{@"ID":@"id"};
|
||||
}
|
||||
@end
|
@@ -6,33 +6,109 @@
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "MewRoomBgImageItemModel.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
typedef NS_ENUM(NSInteger, MewRoomType) {
|
||||
MewRoomType_Game = 3,
|
||||
MewRoomType_Anchor = 6, // 个播房
|
||||
MewRoomType_MiniGame = 7//小游戏房
|
||||
};
|
||||
|
||||
@interface MewRoomInfoModel : NSObject
|
||||
|
||||
@property (nonatomic , copy) NSString *avatar; //房间头像
|
||||
@property (nonatomic , assign) NSInteger onlineNum; //在线人数
|
||||
@property (nonatomic , copy) NSString *nick; //房间用户昵称
|
||||
@property (nonatomic , assign) NSInteger uid; //房间Uid
|
||||
@property (nonatomic , assign) BOOL valid; //房间是否有效
|
||||
@property (nonatomic , assign) NSInteger roomId; //房间Roomid
|
||||
@property (nonatomic , assign) MewRoomType type; //房间的类型
|
||||
@property (nonatomic , copy) NSString *title; //房间标题
|
||||
@property (nonatomic , copy) NSString * roomDesc;
|
||||
@property (nonatomic , copy) NSString * nick;
|
||||
@property (nonatomic , assign) NSInteger uid;
|
||||
@property (nonatomic , assign) NSInteger isRecom;
|
||||
@property (nonatomic , assign) NSInteger calcSumDataIndex;
|
||||
@property (nonatomic , copy) NSString * roomTag;
|
||||
@property (nonatomic , copy) NSString *singleRoomSortId;//房间分类
|
||||
@property (nonatomic , copy) NSString *sortName;
|
||||
@property (nonatomic , copy) NSString * audioSdkType;
|
||||
@property (nonatomic , copy) NSString * trtcSig;
|
||||
@property (nonatomic , assign) NSInteger hideFlag;
|
||||
@property (nonatomic , assign) MewRoomType type;
|
||||
@property (nonatomic , strong) NSArray <NSString *> * speakTemplate;
|
||||
@property (nonatomic , assign) NSInteger tagId;
|
||||
@property (nonatomic , assign) BOOL isExceptionClose;
|
||||
@property (nonatomic , assign) NSInteger recomSeq;
|
||||
@property (nonatomic , assign) BOOL redEnvelopeOpen;
|
||||
@property (nonatomic , assign) NSInteger roomId;
|
||||
@property (nonatomic , copy) NSString * meetingName;
|
||||
@property (nonatomic , assign) BOOL valid;
|
||||
@property (nonatomic , assign) NSInteger openTime;
|
||||
@property (nonatomic , copy) NSString * tagPict;
|
||||
@property (nonatomic , assign) BOOL isPureMode;
|
||||
@property (nonatomic , assign) NSInteger count;
|
||||
@property (nonatomic , assign) BOOL showGiftValue;
|
||||
@property (nonatomic , copy) NSString * avatar;
|
||||
@property (nonatomic , assign) NSInteger onlineNum;
|
||||
@property (nonatomic , assign) BOOL isCloseScreen;
|
||||
@property (nonatomic , assign) BOOL exceptionClose;
|
||||
@property (nonatomic , assign) PermitRoomType isPermitRoom;
|
||||
@property (nonatomic , assign) NSInteger abChannelType;
|
||||
@property (nonatomic , assign) BOOL hasAnimationEffect;
|
||||
@property (nonatomic , assign) MewGenderType gender;
|
||||
@property (nonatomic , assign) BOOL serverRedEnvelopeSwitch;
|
||||
@property (nonatomic , assign) BOOL isOpenGame;
|
||||
@property (nonatomic , copy) NSString * roomDesc;
|
||||
@property (nonatomic , assign) NSInteger officeUser;
|
||||
@property (nonatomic , assign) NSInteger erbanNo;
|
||||
@property (nonatomic , assign) NSInteger audioQuality;
|
||||
@property (nonatomic , copy) NSString * title;
|
||||
@property (nonatomic , assign) NSInteger closeScreenFlag;
|
||||
@property (nonatomic , assign) NSInteger operatorStatus;
|
||||
@property (nonatomic , copy) NSString * roomPwd;
|
||||
@property (nonatomic , assign) BOOL leaveMode;
|
||||
@property (nonatomic , assign) NSInteger erbanNo; //版本号
|
||||
@property (nonatomic, copy) NSString *backPic;
|
||||
@property (nonatomic , assign) RoomModeType roomModeType;//房间模式
|
||||
///房间介绍
|
||||
@property (nonatomic, copy) NSString *introduction;
|
||||
|
||||
/// 是否已经收藏
|
||||
@property(nonatomic, assign) BOOL isRoomFans;
|
||||
@property (nonatomic , assign) BOOL hasAnimationEffect;
|
||||
///当前相亲所进行到什么模式
|
||||
@property (nonatomic,assign) RoomPlayDateingType blindDateState;
|
||||
///能否开启相亲
|
||||
@property (nonatomic,assign) BOOL canOpenBlindDate;
|
||||
///相亲的vip坑位的用户uid
|
||||
@property (nonatomic,assign) NSInteger blindDateVipUid;
|
||||
///本地的字段 判断当前模式是否从相亲切换 关闭或者开启
|
||||
@property (nonatomic,assign) RoomDatingStateChangeType datingState;
|
||||
///是否切换了房间类型(本地字段)
|
||||
@property (nonatomic, assign) BOOL hadChangeRoomType;
|
||||
///是否需要重新选择小游戏,原有小游戏玩法不在最新配置里面是需要重新选择
|
||||
@property (nonatomic, assign) BOOL isReselect;
|
||||
///小游戏ID
|
||||
@property (nonatomic, assign) int64_t mgId;
|
||||
///小游戏名称
|
||||
@property (nonatomic, copy) NSString *mgName;
|
||||
///pk场次id(本地字段)
|
||||
@property (nonatomic, assign) NSInteger roundId;
|
||||
//PK进行状态(1:pk中 2:惩罚中)
|
||||
@property (nonatomic, assign) AcrossRoomPkStateType pkState;
|
||||
///个播PK赢方uid
|
||||
@property (nonatomic, copy) NSString *_Nullable winUid;
|
||||
///PK中的对方UID(本地字段)
|
||||
@property (nonatomic, copy) NSString *_Nullable pkUid;
|
||||
///PK中的对方房间roomId(本地字段)
|
||||
@property (nonatomic, copy) NSString *_Nullable pkRoomId;
|
||||
///清除公屏的时间(用于拉取此时间后的公屏消息)
|
||||
@property (nonatomic , assign) double clearScreenTime;
|
||||
///小游戏房麦位数量
|
||||
@property (nonatomic, assign) NSInteger mgMicNum;
|
||||
///是否显示跨房PK预约倒计时
|
||||
@property (nonatomic, assign) BOOL showPkBeginTime;
|
||||
///跨房PK开始时间
|
||||
@property (nonatomic, assign) long long pkBeginTime;
|
||||
///个播随机PK匹配结束时间
|
||||
@property (nonatomic, assign) long long pkMatchStartTime;
|
||||
/// 是否有心愿礼物权限
|
||||
@property (nonatomic,assign) BOOL hasWishGiftPermit;
|
||||
///是否已经开启心愿礼物
|
||||
@property (nonatomic,assign) BOOL hasOpenWishGift;
|
||||
///是否拥有特权卡权限
|
||||
@property(nonatomic,assign) BOOL hasPrivilegeCardPermit;
|
||||
///是否有房间特权卡
|
||||
@property(nonatomic,assign) BOOL hasRoomPrivilegeCard;
|
||||
///房间背景
|
||||
@property(nonatomic,strong) MewRoomBgImageItemModel *roomBackground;
|
||||
///小时榜
|
||||
@property(nonatomic,copy) NSDictionary *hourRank;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -0,0 +1,23 @@
|
||||
//
|
||||
// MewSVGAParserTool.h
|
||||
// yinmeng-ios
|
||||
//
|
||||
// Created by duoban on 2024/1/6.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
///SVGAParserManager
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface MewSVGAParserTool : NSObject
|
||||
/*
|
||||
- (void)loadSvgaWithURL:(NSURL *)url
|
||||
completionBlock:(void (^)(SVGAVideoEntity * _Nullable))completionBlock
|
||||
failureBlock:(void (^)(NSError * _Nullable))failureBlock
|
||||
*/
|
||||
- (void)mew_downloadSvgaWithURL:(NSURL *)url
|
||||
completionHandle:(void (^)(SVGAVideoEntity * _Nullable))completionHandle
|
||||
failureHandle:(void (^)(NSError * _Nullable))failureHandle;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,110 @@
|
||||
//
|
||||
// MewSVGAmewSvgaManagerTool.m
|
||||
// yinmeng-ios
|
||||
//
|
||||
// Created by duoban on 2024/1/6.
|
||||
//
|
||||
|
||||
#import "MewSVGAParserTool.h"
|
||||
static NSInteger mewRetryNum = 3;
|
||||
|
||||
|
||||
@interface MewSVGAParserTool()
|
||||
@property (nonatomic,strong) NSMutableDictionary *mewSvgaParserQueue;///mewSvgaParserQueue
|
||||
@property (nonatomic,strong) NSMutableDictionary *mewRepetitionCache;///mewRepetitionCache
|
||||
@property (nonatomic,strong) SVGAParser *mewSvgaManager;///parser
|
||||
@end
|
||||
|
||||
@implementation MewSVGAParserTool
|
||||
- (void)mew_downloadSvgaWithURL:(NSURL *)url
|
||||
completionHandle:(void (^)(SVGAVideoEntity * _Nullable))completionHandle
|
||||
failureHandle:(void (^)(NSError * _Nullable))failureHandle {
|
||||
if (!url) return;
|
||||
@kWeakify(self);
|
||||
NSString *key = [self cacheURL:url];
|
||||
[self.mewSvgaManager parseWithURL:url completionBlock:^(SVGAVideoEntity * _Nullable videoItem) {
|
||||
@kStrongify(self);
|
||||
mew_dispatch_main_sync_safe(^{
|
||||
@kStrongify(self);
|
||||
if (videoItem) {
|
||||
completionHandle(videoItem);
|
||||
[self removeCacheWithKey:key];
|
||||
[self.mewRepetitionCache removeObjectForKey:key];
|
||||
}
|
||||
});
|
||||
} failureBlock:^(NSError * _Nullable error) {
|
||||
@kStrongify(self);
|
||||
if (error) {
|
||||
if (![self.mewRepetitionCache objectForKey:key]) {
|
||||
[self.mewRepetitionCache setObject:@(0) forKey:key];
|
||||
}
|
||||
[self.mewRepetitionCache setObject:@([[self.mewRepetitionCache objectForKey:key] integerValue] + 1) forKey:key];
|
||||
if ([[self.mewRepetitionCache objectForKey:key] integerValue] < mewRetryNum) {
|
||||
[self mew_retryWithUrlKey:key completionHandle:^(SVGAVideoEntity * _Nullable videoItem) {
|
||||
completionHandle(videoItem);
|
||||
} failureHandle:^(NSError * _Nullable error) {
|
||||
failureHandle(error);
|
||||
}];
|
||||
}
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
// 尝试重新播放
|
||||
- (void)mew_retryWithUrlKey:(NSString *)urlKey
|
||||
completionHandle:(void (^)(SVGAVideoEntity * _Nullable))completionHandle
|
||||
failureHandle:(void (^)(NSError * _Nullable))failureHandle {
|
||||
if (urlKey) {
|
||||
NSURL *url = [self.mewSvgaParserQueue objectForKey:urlKey];
|
||||
[self mew_downloadSvgaWithURL:url completionHandle:^(SVGAVideoEntity * _Nullable videoItem) {
|
||||
if(completionHandle){
|
||||
completionHandle(videoItem);
|
||||
}
|
||||
|
||||
} failureHandle:^(NSError * _Nullable error) {
|
||||
if(failureHandle){
|
||||
failureHandle(error);
|
||||
}
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
// 缓存url
|
||||
- (NSString *)cacheURL:(NSURL *)url {
|
||||
NSString *key = [self getUUid];
|
||||
[self.mewSvgaParserQueue setObject:url forKey:key];
|
||||
return key;
|
||||
}
|
||||
|
||||
|
||||
- (void)removeCacheWithKey:(NSString *)key {
|
||||
[self.mewSvgaParserQueue removeObjectForKey:key];
|
||||
}
|
||||
|
||||
- (NSString *)getUUid {
|
||||
return [UIDevice currentDevice].identifierForVendor.UUIDString;
|
||||
}
|
||||
|
||||
#pragma mark - Getter
|
||||
|
||||
- (SVGAParser *)mewSvgaManager {
|
||||
if (_mewSvgaManager == nil) {
|
||||
_mewSvgaManager = [[SVGAParser alloc]init];
|
||||
}
|
||||
return _mewSvgaManager;
|
||||
}
|
||||
|
||||
- (NSMutableDictionary *)mewSvgaParserQueue {
|
||||
if (_mewSvgaParserQueue == nil) {
|
||||
_mewSvgaParserQueue = [NSMutableDictionary dictionary];
|
||||
}
|
||||
return _mewSvgaParserQueue;
|
||||
}
|
||||
|
||||
- (NSMutableDictionary *)mewRepetitionCache {
|
||||
if (_mewRepetitionCache == nil) {
|
||||
_mewRepetitionCache = [NSMutableDictionary dictionary];
|
||||
}
|
||||
return _mewRepetitionCache;
|
||||
}
|
||||
@end
|
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// MewRoomBgImageView.h
|
||||
// yinmeng-ios
|
||||
//
|
||||
// Created by duoban on 2024/1/6.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "MewRoomGuestDelegate.h"
|
||||
#import "MewRoomHostDelegate.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
///XPRoomBackContainerView
|
||||
@interface MewRoomBgImageView : UIView<MewRoomGuestDelegate>
|
||||
- (instancetype)initWithDelegate:(id<MewRoomHostDelegate>)delegate;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,211 @@
|
||||
//
|
||||
// MewRoomBgImageView.m
|
||||
// yinmeng-ios
|
||||
//
|
||||
// Created by duoban on 2024/1/6.
|
||||
//
|
||||
|
||||
#import "MewRoomBgImageView.h"
|
||||
///Third
|
||||
#import <Masonry/Masonry.h>
|
||||
#import <ReactiveObjC/ReactiveObjC.h>
|
||||
#import "MewRoomInfoModel.h"
|
||||
|
||||
@interface MewRoomBgImageView()
|
||||
///背景图片
|
||||
@property (nonatomic,strong) NetImageView *mewBgImageView;///mewBgImageView
|
||||
///动态背景
|
||||
@property (nonatomic, strong) SVGAImageView *mewSvgaView;///mewSvgaView
|
||||
@property (nonatomic, strong) MewSVGAParserTool *mewManager;///mewManager
|
||||
///host 代理
|
||||
@property (nonatomic,weak) id<MewRoomHostDelegate>delegate;
|
||||
@end
|
||||
@implementation MewRoomBgImageView
|
||||
|
||||
- (instancetype)initWithDelegate:(id<MewRoomHostDelegate>)delegate{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
self.delegate = delegate;
|
||||
[self mew_initUI];
|
||||
[self mew_initUIConstraints];
|
||||
self.clipsToBounds = YES;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
#pragma mark - Private Method
|
||||
- (void)mew_initUI {
|
||||
[self addSubview:self.mewBgImageView];
|
||||
[self addSubview:self.mewSvgaView];
|
||||
}
|
||||
|
||||
- (void)mew_initUIConstraints {
|
||||
[self.mewBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self);
|
||||
}];
|
||||
[self.mewSvgaView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)mew_onRoomEntered {
|
||||
[self mew_changeRoomBgImage];
|
||||
}
|
||||
|
||||
- (void)mew_onRoomUpdate {
|
||||
[self mew_changeRoomBgImage];
|
||||
}
|
||||
|
||||
- (void)mew_changeRoomBgImage {
|
||||
MewRoomInfoModel *roomInfo = [self.delegate mew_getRoomInformation];
|
||||
|
||||
if(roomInfo.roomBackground.picUrl.length > 0){
|
||||
|
||||
|
||||
if([roomInfo.roomBackground.picUrl containsString:@".svga"]){
|
||||
@weakify(self);
|
||||
[self.mewManager mew_downloadSvgaWithURL:[NSURL URLWithString:[roomInfo.backPic stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]] completionHandle:^(SVGAVideoEntity * _Nullable videoItem) {
|
||||
@strongify(self);
|
||||
if (videoItem != nil) {
|
||||
self.mewSvgaView.hidden = NO;
|
||||
CGFloat width = videoItem.videoSize.width;
|
||||
CGFloat height = videoItem.videoSize.height;
|
||||
if (width > height) {
|
||||
self.mewSvgaView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
} else {//高大于宽
|
||||
CGFloat resizeH = KScreenWidth * height / width;//按照屏幕的宽度去缩放,获得高度
|
||||
if (resizeH > KScreenHeight) {//如果大于屏幕高度,填充
|
||||
self.mewSvgaView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
} else {//小于屏幕高度,
|
||||
self.mewSvgaView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
}
|
||||
self.mewSvgaView.loops = INT_MAX;
|
||||
self.mewSvgaView.clearsAfterStop = NO;
|
||||
self.mewSvgaView.videoItem = videoItem;
|
||||
[self.mewSvgaView startAnimation];
|
||||
}
|
||||
} failureHandle:^(NSError * _Nullable error) {
|
||||
[MewHUDTool mew_showLoadingWithMessage:@"贵族专属背景图加载失败"];
|
||||
}];
|
||||
}else{
|
||||
[self.mewSvgaView stopAnimation];
|
||||
self.mewSvgaView.hidden = YES;
|
||||
[self.mewBgImageView loadImageWithUrl:roomInfo.roomBackground.picUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
|
||||
self.mewBgImageView.image = image;
|
||||
}];
|
||||
self.mewBgImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (roomInfo.backPic.length > 0) {
|
||||
///MARK:更改图片拉伸策略 BY lvjunhang, 2018-12-03,原值为:UIViewContentModeScaleAspectFit
|
||||
self.mewBgImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
if ([roomInfo.backPic containsString:@".svga"]) { //房间背景是SVGA动态背景
|
||||
@weakify(self);
|
||||
[self.mewManager mew_downloadSvgaWithURL:[NSURL URLWithString:[roomInfo.backPic stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]] completionHandle:^(SVGAVideoEntity * _Nullable videoItem) {
|
||||
@strongify(self);
|
||||
if (videoItem != nil) {
|
||||
self.mewSvgaView.hidden = NO;
|
||||
CGFloat width = videoItem.videoSize.width;
|
||||
CGFloat height = videoItem.videoSize.height;
|
||||
if (width > height) {
|
||||
self.mewSvgaView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
} else {//高大于宽
|
||||
CGFloat resizeH = KScreenWidth * height / width;//按照屏幕的宽度去缩放,获得高度
|
||||
if (resizeH > KScreenHeight) {//如果大于屏幕高度,填充
|
||||
self.mewSvgaView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
} else {//小于屏幕高度,
|
||||
self.mewSvgaView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
}
|
||||
self.mewSvgaView.loops = INT_MAX;
|
||||
self.mewSvgaView.clearsAfterStop = NO;
|
||||
self.mewSvgaView.videoItem = videoItem;
|
||||
[self.mewSvgaView startAnimation];
|
||||
}
|
||||
} failureHandle:^(NSError * _Nullable error) {
|
||||
[MewHUDTool mew_showLoadingWithMessage:@"贵族专属背景图加载失败"];
|
||||
}];
|
||||
} else { //房间背景是静态背景
|
||||
[self.mewSvgaView stopAnimation];
|
||||
self.mewSvgaView.hidden = YES;
|
||||
[self.mewBgImageView loadImageWithUrl:roomInfo.backPic completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
|
||||
self.mewBgImageView.image = image;
|
||||
}];
|
||||
self.mewBgImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
}
|
||||
}else { //没有设置背景,显示默认背景加高斯模糊
|
||||
if (roomInfo.type == MewRoomType_Anchor) {
|
||||
|
||||
@weakify(self);
|
||||
NSString *bgString = [[NSBundle mainBundle] pathForResource:@"mew_room_anchor_bg" ofType:@"svga"];
|
||||
NSURL *bgUrl = [NSURL fileURLWithPath:bgString];
|
||||
[self.mewManager mew_downloadSvgaWithURL:bgUrl completionHandle:^(SVGAVideoEntity * _Nullable videoItem) {
|
||||
@strongify(self);
|
||||
if (videoItem != nil) {
|
||||
self.mewSvgaView.hidden = NO;
|
||||
CGFloat width = videoItem.videoSize.width;
|
||||
CGFloat height = videoItem.videoSize.height;
|
||||
if (width > height) {
|
||||
self.mewSvgaView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
} else {//高大于宽
|
||||
CGFloat resizeH = KScreenWidth * height / width;//按照屏幕的宽度去缩放,获得高度
|
||||
if (resizeH > KScreenHeight) {//如果大于屏幕高度,填充
|
||||
self.mewSvgaView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
} else {//小于屏幕高度,
|
||||
self.mewSvgaView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
}
|
||||
}
|
||||
self.mewSvgaView.loops = INT_MAX;
|
||||
self.mewSvgaView.clearsAfterStop = NO;
|
||||
self.mewSvgaView.videoItem = videoItem;
|
||||
[self.mewSvgaView startAnimation];
|
||||
}
|
||||
} failureHandle:^(NSError * _Nullable error) {
|
||||
[MewHUDTool mew_showLoadingWithMessage:@"个播背景图加载失败"];
|
||||
}];
|
||||
return;
|
||||
}
|
||||
self.mewBgImageView.image = [UIImage imageNamed:@"mew_room_bg_image"];
|
||||
[self.mewSvgaView stopAnimation];
|
||||
self.mewSvgaView.hidden = YES;
|
||||
self.mewBgImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Getters And Setters
|
||||
- (NetImageView *)mewBgImageView {
|
||||
if (!_mewBgImageView) {
|
||||
NetImageConfig *cofing = [[NetImageConfig alloc]init];
|
||||
cofing.placeHolder = [UIImage imageNamed:@"mew_room_bg_image"];
|
||||
_mewBgImageView = [[NetImageView alloc] initWithConfig:cofing];
|
||||
_mewBgImageView.userInteractionEnabled = YES;
|
||||
_mewBgImageView.layer.masksToBounds = YES;
|
||||
_mewBgImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
}
|
||||
return _mewBgImageView;
|
||||
}
|
||||
|
||||
- (SVGAImageView *)mewSvgaView {
|
||||
if (_mewSvgaView == nil) {
|
||||
_mewSvgaView = [[SVGAImageView alloc]init];
|
||||
_mewSvgaView.contentMode = UIViewContentModeScaleToFill;
|
||||
_mewSvgaView.userInteractionEnabled = NO;
|
||||
_mewSvgaView.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
|
||||
_mewSvgaView.hidden = YES;
|
||||
_mewSvgaView.backgroundColor = [UIColor clearColor];
|
||||
}
|
||||
return _mewSvgaView;
|
||||
}
|
||||
|
||||
- (MewSVGAParserTool *)mewManager {
|
||||
if (!_mewManager) {
|
||||
_mewManager = [[MewSVGAParserTool alloc]init];
|
||||
}
|
||||
return _mewManager;
|
||||
}
|
||||
|
||||
@end
|
@@ -27,7 +27,10 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
- (void)mew_onRoomInfoUpdate;
|
||||
- (void)mew_onRoomEntered;
|
||||
|
||||
- (void)mew_onRoomUpdate;
|
||||
/// 个播 可以切换房间
|
||||
- (void)mew_onRoomChange;
|
||||
- (void)mew_onRoomMiniEntered;///最小化进房
|
||||
/// NIM 事件监听
|
||||
- (void)mew_handleNIMNotificationMessage:(NIMMessage *)message;
|
||||
- (void)mew_handleNIMCustomMessage:(NIMMessage *)message;
|
||||
|
@@ -0,0 +1,17 @@
|
||||
//
|
||||
// MewRoomTopView.h
|
||||
// yinmeng-ios
|
||||
//
|
||||
// Created by duoban on 2024/1/6.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "MewRoomGuestDelegate.h"
|
||||
#import "MewRoomHostDelegate.h"
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
///RoomHeaderView
|
||||
@interface MewRoomTopView : UIView<MewRoomGuestDelegate>
|
||||
- (instancetype)initWithDelegate:(id<MewRoomHostDelegate>)delegate;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
@@ -0,0 +1,22 @@
|
||||
//
|
||||
// MewRoomTopView.m
|
||||
// yinmeng-ios
|
||||
//
|
||||
// Created by duoban on 2024/1/6.
|
||||
//
|
||||
|
||||
#import "MewRoomTopView.h"
|
||||
@interface MewRoomTopView()
|
||||
|
||||
@end
|
||||
@implementation MewRoomTopView
|
||||
|
||||
/*
|
||||
// Only override drawRect: if you perform custom drawing.
|
||||
// An empty implementation adversely affects performance during animation.
|
||||
- (void)drawRect:(CGRect)rect {
|
||||
// Drawing code
|
||||
}
|
||||
*/
|
||||
|
||||
@end
|
BIN
yinmeng-ios/yinmeng-ios/MewSources/mew_room_anchor_bg.svga
Normal file
BIN
yinmeng-ios/yinmeng-ios/MewSources/mew_room_anchor_bg.svga
Normal file
Binary file not shown.
Reference in New Issue
Block a user