diff --git a/YuMi.xcodeproj/project.pbxproj b/YuMi.xcodeproj/project.pbxproj index 1a35c85a..f2b63473 100644 --- a/YuMi.xcodeproj/project.pbxproj +++ b/YuMi.xcodeproj/project.pbxproj @@ -12185,7 +12185,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 20.20.11; + MARKETING_VERSION = 20.20.12; PRODUCT_BUNDLE_IDENTIFIER = com.peko.enterprise.ios; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -12221,7 +12221,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 20.20.11; + MARKETING_VERSION = 20.20.12; PRODUCT_BUNDLE_IDENTIFIER = com.peko.enterprise.ios; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/YuMi/Global/YUMIMacroUitls.h b/YuMi/Global/YUMIMacroUitls.h index 333d5946..4ea4efcb 100644 --- a/YuMi/Global/YUMIMacroUitls.h +++ b/YuMi/Global/YUMIMacroUitls.h @@ -49,7 +49,7 @@ isPhoneXSeries = [[UIApplication sharedApplication] delegate].window.safeAreaIns ///内置版本号 -#define PI_App_Version @"2.6.1" +#define PI_App_Version @"2.6.2" ///渠道 #define PI_App_Source @"appstore" //#define PI_App_Source @"pi_tf" diff --git a/YuMi/Modules/YMRTC/RtcImpl/AgoraRtcImpl.m b/YuMi/Modules/YMRTC/RtcImpl/AgoraRtcImpl.m index b20b882f..3097e0b0 100644 --- a/YuMi/Modules/YMRTC/RtcImpl/AgoraRtcImpl.m +++ b/YuMi/Modules/YMRTC/RtcImpl/AgoraRtcImpl.m @@ -24,6 +24,9 @@ - (instancetype)initWithDelegate:(id)delegate { self = [super initWithDelegate:delegate]; if (self) { + + + _engine = [AgoraRtcEngineKit sharedEngineWithAppId:KeyWithType(KeyType_Agora) delegate:self]; [_engine setChannelProfile:AgoraChannelProfileLiveBroadcasting]; // [_engine enableLastmileTest]; @@ -102,11 +105,13 @@ /// @param musicId TRTC自己要的 - (BOOL)playBackMusic:(NSString *)filePath musicId:(int)musicId completion:(nonnull void (^)(NSString * _Nonnull))completion { if (filePath) { - self.MusicCompletion = completion; - [self changePlayState:BackMusicPlayState_Stop];//切换歌曲need stop - -// [self.engine startAudioMixing:filePath loopback:NO replace:NO cycle:1]; - [self.engine startAudioMixing:filePath loopback:NO cycle:1]; + + self.MusicCompletion = completion; + [self changePlayState:BackMusicPlayState_Stop];//切换歌曲need stop + + [self.engine startAudioMixing:filePath loopback:NO cycle:1 startPos:0]; + + return YES; } else { return NO; @@ -182,12 +187,16 @@ channelMediaRelayStateDidChange:(AgoraChannelMediaRelayState)state [self.delegate usersSpeaking:uids]; } -- (void)rtcEngineLocalAudioMixingDidFinish:(AgoraRtcEngineKit *)engine { - if (self.MusicCompletion) { - self.MusicCompletion(self.filePath); - } - ///这个用在最小化的时候 因为最小化没办法知道当前歌曲是否播放完毕了 目前没有想到其他的好的版本就用通知吧 - [[NSNotificationCenter defaultCenter] postNotificationName:kRoomBackMusicPlayMusicFinishKey object:self.filePath]; -} +- (void)rtcEngine:(AgoraRtcEngineKit *)engine audioMixingStateChanged:(AgoraAudioMixingStateType)state reasonCode:(AgoraAudioMixingReasonCode)reasonCode{ + if (reasonCode == 713 || reasonCode == 723){ + if (self.MusicCompletion) { + self.MusicCompletion(self.filePath); + } + ///这个用在最小化的时候 因为最小化没办法知道当前歌曲是否播放完毕了 目前没有想到其他的好的版本就用通知吧 + [[NSNotificationCenter defaultCenter] postNotificationName:kRoomBackMusicPlayMusicFinishKey object:self.filePath]; + } + + +} @end diff --git a/YuMi/Modules/YMRoom/Model/RoomInfoModel.h b/YuMi/Modules/YMRoom/Model/RoomInfoModel.h index 2fae5113..cf8c2d5d 100644 --- a/YuMi/Modules/YMRoom/Model/RoomInfoModel.h +++ b/YuMi/Modules/YMRoom/Model/RoomInfoModel.h @@ -115,7 +115,7 @@ typedef NS_ENUM(NSInteger, RoomDatingStateChangeType) { @property (nonatomic , copy) NSString * roomPwd; @property (nonatomic , assign) BOOL leaveMode; @property (nonatomic, copy) NSString *backPic; -@property (nonatomic , assign) RoomModeType roomModeType;//房间模式 +@property (nonatomic , assign) RoomModeType roomModeType;//房间模式 ///房间介绍 @property (nonatomic, copy) NSString *introduction; ///糖果树的配置 diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/XPRoomTransferMusicViewController.m b/YuMi/Modules/YMRoom/View/BackMusic/View/XPRoomTransferMusicViewController.m index 1c0ec54a..0102987d 100644 --- a/YuMi/Modules/YMRoom/View/BackMusic/View/XPRoomTransferMusicViewController.m +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/XPRoomTransferMusicViewController.m @@ -200,10 +200,14 @@ NSMutableArray *artists = [[AVMetadataItem metadataItemsFromArray:mp3Asset.commonMetadata withKey:AVMetadataCommonKeyArtist keySpace:AVMetadataKeySpaceCommon] mutableCopy]; NSArray *albumNames = [AVMetadataItem metadataItemsFromArray:mp3Asset.commonMetadata withKey:AVMetadataCommonKeyArtwork keySpace:AVMetadataKeySpaceCommon]; NSArray *titles = [AVMetadataItem metadataItemsFromArray:mp3Asset.commonMetadata withKey:AVMetadataCommonKeyTitle keySpace:AVMetadataKeySpaceCommon]; + NSString *randomNum = @""; + if (artists.count > 0) { AVMetadataItem *artist = [artists safeObjectAtIndex1:0]; singer = [artist.value copyWithZone:nil]; }else{ + int64_t i = random() % 1000000000; + randomNum = [NSString stringWithFormat:@"%lld",i]; singer = YMLocalizedString(@"XPRoomTransferMusicViewController11"); } @@ -222,7 +226,7 @@ } NSUUID * uuid = [UIDevice currentDevice].identifierForVendor; - NSString * musicId = [uuid.UUIDString stringByAppendingString:songName]; + NSString * musicId = [uuid.UUIDString stringByAppendingString:[NSString stringWithFormat:@"%@%@",songName,randomNum]]; self.currentMusic.author = singer; self.currentMusic.musicId = musicId; self.currentMusic.songName = songName; diff --git a/YuMi/Modules/YMRoom/View/StageView/StageView.m b/YuMi/Modules/YMRoom/View/StageView/StageView.m index 5f765cc9..4644bbc4 100644 --- a/YuMi/Modules/YMRoom/View/StageView/StageView.m +++ b/YuMi/Modules/YMRoom/View/StageView/StageView.m @@ -76,6 +76,7 @@ if (self) { _hostDelegate = delegate; _isMiniEnter = NO; + [RtcManager instance].localMuted = YES; NSInteger microCount = self.countOfMircoView; for (int i = 0; i < microCount; i++) { UIView* microView = [self microViewForIndex:i]; @@ -493,8 +494,12 @@ sequence.userInfo = nil; } } - - if (changeType == 1) { // 上麦 + RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo; + if (changeType == 2){ + if (userInfo.uid == [AccountInfoStorage instance].getUid.integerValue && roomInfo.roomModeType == RoomModeType_Open_Blind){ + [RtcManager instance].localMuted = YES; + } + }else if (changeType == 1) { // 上麦 MicroQueueModel *sequence = [self.micQueue objectForKey:position]; sequence.userInfo = userInfo; if (self.hostDelegate.getRoomInfo.showGiftValue && userInfo.uid == [AccountInfoStorage instance].getUid.integerValue) { @@ -523,8 +528,12 @@ } roomUid:roomUid micUid:uid position:position uid:uid]; } //如果是当前用户上麦,关闭自己的麦克风 - if (sequence && sequence.userInfo.uid == [AccountInfoStorage instance].getUid.integerValue && userInfo.isNoProhibitMic == NO) { - [RtcManager instance].localMuted = YES; + if (sequence && sequence.userInfo.uid == [AccountInfoStorage instance].getUid.integerValue) { + if (roomInfo.roomModeType != RoomModeType_Open_Blind){ + if (userInfo.isNoProhibitMic == NO){ + [RtcManager instance].localMuted = YES; + } + } } } if(userInfo.isNoProhibitMic == YES){