房间改造

This commit is contained in:
liyuhua
2024-01-06 18:09:24 +08:00
parent d044d3255d
commit c87211027c
18 changed files with 800 additions and 35 deletions

View File

@@ -49,18 +49,31 @@ target 'yinmeng-ios' do
#输入
pod 'SZTextView'
# 分享
pod 'mob_sharesdk'
pod 'mob_sharesdk/ShareSDKExtension'
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|

View File

@@ -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

View File

@@ -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 = "音萌";

View 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
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 KiB

View File

@@ -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 */

View File

@@ -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 */

View File

@@ -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

View File

@@ -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

View File

@@ -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 * trtcSig;
@property (nonatomic , assign) BOOL leaveMode;
@property (nonatomic , assign) NSInteger erbanNo; //版本号
@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, 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进行状态(1pk中 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View File

@@ -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