|
|
@@ -26,6 +26,7 @@
|
|
|
BOOL isExitType;//退出云机
|
|
|
|
|
|
NSInteger checkLinkTimerNumber;//0 --2 开始发起重连
|
|
|
+ NSInteger preDelayedMS;//记录上一次延时数据 控制controlBtn 的图片刷新 非必要 不刷新
|
|
|
}
|
|
|
@property (nonatomic, copy) NSTimer *playerSecondTimer; // 定时器-控制按钮
|
|
|
@property (nonatomic, assign) RTCIceConnectionState linkState;
|
|
|
@@ -987,9 +988,9 @@
|
|
|
if ([rtcStatistics.type isEqualToString:@"transport"]) {
|
|
|
//HLog(@"传输数据---->%@",rtcStatistics.values);
|
|
|
double timestamp = rtcStatistics.timestamp_us;
|
|
|
- NSNumber *bytesReceived = [rtcStatistics.values objectForKey:@"bytesReceived"];
|
|
|
+ NSNumber *bytesReceived = (NSNumber *)[rtcStatistics.values objectForKey:@"bytesReceived"];
|
|
|
|
|
|
- NSNumber *packetsReceivedNumber = [rtcStatistics.values objectForKey:@"packetsReceived"];
|
|
|
+ NSNumber *packetsReceivedNumber = (NSNumber *)[rtcStatistics.values objectForKey:@"packetsReceived"];
|
|
|
packetsReceived = [packetsReceivedNumber longValue];
|
|
|
|
|
|
if (lastTimestamp > 0) {
|
|
|
@@ -1020,23 +1021,23 @@
|
|
|
lastBytesReceived = bytesReceived;
|
|
|
}
|
|
|
|
|
|
- selectedCandidatePairId = [rtcStatistics.values objectForKey:@"selectedCandidatePairId"];
|
|
|
+ selectedCandidatePairId = (NSString *)[rtcStatistics.values objectForKey:@"selectedCandidatePairId"];
|
|
|
//HLog(@"三网数据--selectedCandidatePairId-->%@",selectedCandidatePairId);
|
|
|
}
|
|
|
|
|
|
/*丢包数据*/
|
|
|
if ([rtcStatistics.type isEqualToString:@"inbound-rtp"]) {
|
|
|
- NSString *kind = [rtcStatistics.values objectForKey:@"kind"];
|
|
|
+ NSString *kind = (NSString *)[rtcStatistics.values objectForKey:@"kind"];
|
|
|
|
|
|
if([kind isEqualToString:@"video"]){
|
|
|
- NSNumber*videolostDataNumber = [rtcStatistics.values objectForKey:@"packetsLost"];
|
|
|
+ NSNumber*videolostDataNumber = (NSNumber *)[rtcStatistics.values objectForKey:@"packetsLost"];
|
|
|
videolostData = [videolostDataNumber longValue];
|
|
|
|
|
|
- NSNumber*framesPerSecondNumber = [rtcStatistics.values objectForKey:@"framesPerSecond"];
|
|
|
+ NSNumber*framesPerSecondNumber = (NSNumber *)[rtcStatistics.values objectForKey:@"framesPerSecond"];
|
|
|
framesPerSecond = [framesPerSecondNumber integerValue];
|
|
|
}
|
|
|
else if([kind isEqualToString:@"audio"]){
|
|
|
- NSNumber*audiolostDataNumber = [rtcStatistics.values objectForKey:@"packetsLost"];
|
|
|
+ NSNumber*audiolostDataNumber = (NSNumber *)[rtcStatistics.values objectForKey:@"packetsLost"];
|
|
|
audiolostData = [audiolostDataNumber longValue];
|
|
|
}
|
|
|
|
|
|
@@ -1045,7 +1046,7 @@
|
|
|
for (NSString *keyin in [rtcStatistics.values allKeys]) {
|
|
|
if ([keyin isEqualToString:@"currentRoundTripTime"]){
|
|
|
/*延时数据*/
|
|
|
- currentRoundTripTime = [rtcStatistics.values objectForKey:@"currentRoundTripTime"];
|
|
|
+ currentRoundTripTime = (NSNumber*)[rtcStatistics.values objectForKey:@"currentRoundTripTime"];
|
|
|
|
|
|
//[self updateAutoRateAndNetWorkStatesWithDelatyMS:(NSInteger)currentRoundTripTime.floatValue*1000];
|
|
|
break;
|
|
|
@@ -1061,8 +1062,8 @@
|
|
|
if ([rtcStatistics.type isEqualToString:@"candidate-pair"]){
|
|
|
NSString *tempselectedCandidatePairId = rtcStatistics.id;
|
|
|
if ([tempselectedCandidatePairId isEqualToString:selectedCandidatePairId]) {
|
|
|
- localCandidateId = [rtcStatistics.values objectForKey:@"localCandidateId"];
|
|
|
- remoteCandidateId = [rtcStatistics.values objectForKey:@"remoteCandidateId"];
|
|
|
+ localCandidateId = (NSString *)[rtcStatistics.values objectForKey:@"localCandidateId"];
|
|
|
+ remoteCandidateId = (NSString *)[rtcStatistics.values objectForKey:@"remoteCandidateId"];
|
|
|
|
|
|
// HLog(@"三网数据--localCandidateId-->%@",localCandidateId);
|
|
|
// HLog(@"三网数据--remoteCandidateId-->%@",remoteCandidateId);
|
|
|
@@ -1081,22 +1082,22 @@
|
|
|
if ([templocalCandidateId isEqualToString:localCandidateId]) {
|
|
|
//HLog(@"三网数据--localCandidateIdInfo-->%@",rtcStatistics.values);
|
|
|
localCandidateStr = @"本地\n";
|
|
|
- NSString *candidateType = [rtcStatistics.values objectForKey:@"candidateType"];
|
|
|
+ NSString *candidateType = (NSString *)[rtcStatistics.values objectForKey:@"candidateType"];
|
|
|
if (candidateType) {
|
|
|
localCandidateStr = [localCandidateStr stringByAppendingString:[NSString stringWithFormat:@"candidateType:%@",candidateType]];
|
|
|
localCandidateStr = [localCandidateStr stringByAppendingString:@"\n"];
|
|
|
}
|
|
|
- NSString *address = [rtcStatistics.values objectForKey:@"address"];
|
|
|
+ NSString *address = (NSString *)[rtcStatistics.values objectForKey:@"address"];
|
|
|
if (address) {
|
|
|
localCandidateStr = [localCandidateStr stringByAppendingString:[NSString stringWithFormat:@"address:%@",address]];
|
|
|
localCandidateStr = [localCandidateStr stringByAppendingString:@"\n"];
|
|
|
}
|
|
|
- NSString *ip = [rtcStatistics.values objectForKey:@"ip"];
|
|
|
+ NSString *ip = (NSString *)[rtcStatistics.values objectForKey:@"ip"];
|
|
|
if (ip) {
|
|
|
localCandidateStr = [localCandidateStr stringByAppendingString:[NSString stringWithFormat:@"ip:%@",ip]];
|
|
|
localCandidateStr = [localCandidateStr stringByAppendingString:@"\n"];
|
|
|
}
|
|
|
- NSString *relatedAddress = [rtcStatistics.values objectForKey:@"relatedAddress"];
|
|
|
+ NSString *relatedAddress = (NSString *)[rtcStatistics.values objectForKey:@"relatedAddress"];
|
|
|
if (relatedAddress) {
|
|
|
localCandidateStr = [localCandidateStr stringByAppendingString:[NSString stringWithFormat:@"relatedAddress:%@",relatedAddress]];
|
|
|
localCandidateStr = [localCandidateStr stringByAppendingString:@"\n"];
|
|
|
@@ -1107,22 +1108,22 @@
|
|
|
if ([tempRemoteCandidateId isEqualToString:remoteCandidateId]) {
|
|
|
//HLog(@"三网数据--remoteCandidateIdInfo-->%@",rtcStatistics.values);
|
|
|
remoteCandidateStr = @"远端\n";
|
|
|
- NSString *candidateType = [rtcStatistics.values objectForKey:@"candidateType"];
|
|
|
+ NSString *candidateType = (NSString *)[rtcStatistics.values objectForKey:@"candidateType"];
|
|
|
if (candidateType) {
|
|
|
remoteCandidateStr = [remoteCandidateStr stringByAppendingString:[NSString stringWithFormat:@"candidateType:%@",candidateType]];
|
|
|
remoteCandidateStr = [remoteCandidateStr stringByAppendingString:@"\n"];
|
|
|
}
|
|
|
- NSString *address = [rtcStatistics.values objectForKey:@"address"];
|
|
|
+ NSString *address = (NSString *)[rtcStatistics.values objectForKey:@"address"];
|
|
|
if (address) {
|
|
|
remoteCandidateStr = [remoteCandidateStr stringByAppendingString:[NSString stringWithFormat:@"address:%@",address]];
|
|
|
remoteCandidateStr = [remoteCandidateStr stringByAppendingString:@"\n"];
|
|
|
}
|
|
|
- NSString *ip = [rtcStatistics.values objectForKey:@"ip"];
|
|
|
+ NSString *ip = (NSString *)[rtcStatistics.values objectForKey:@"ip"];
|
|
|
if (ip) {
|
|
|
remoteCandidateStr = [remoteCandidateStr stringByAppendingString:[NSString stringWithFormat:@"ip:%@",ip]];
|
|
|
remoteCandidateStr = [remoteCandidateStr stringByAppendingString:@"\n"];
|
|
|
}
|
|
|
- NSString *relatedAddress = [rtcStatistics.values objectForKey:@"relatedAddress"];
|
|
|
+ NSString *relatedAddress = (NSString *)[rtcStatistics.values objectForKey:@"relatedAddress"];
|
|
|
if (relatedAddress) {
|
|
|
remoteCandidateStr = [remoteCandidateStr stringByAppendingString:[NSString stringWithFormat:@"relatedAddress:%@",relatedAddress]];
|
|
|
remoteCandidateStr = [remoteCandidateStr stringByAppendingString:@"\n"];
|
|
|
@@ -1175,12 +1176,38 @@
|
|
|
|
|
|
mainBlock(^{
|
|
|
if(weakSelf.playerSetV){
|
|
|
+ [weakSelf updateControlBtnBgImageWith:delayedMS];
|
|
|
[weakSelf.playerSetV setWebRctMsgBydelayed:delayedMS withPacketLoss:lostDataStr withSpeed:netDataSpeedStr withFPS:FPSStr];
|
|
|
}
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
+#pragma mark 更新悬浮图标的颜色
|
|
|
+- (void)updateControlBtnBgImageWith:(NSInteger)delayedMS{
|
|
|
+ if (delayedMS < 50) {
|
|
|
+ if(preDelayedMS > 0 && preDelayedMS < 50){
|
|
|
+ return;//没有变化 不处理
|
|
|
+ }
|
|
|
+ [controlBtn setBackgroundImage:[UIImage imageNamed:@"you_icon"] forState:(UIControlStateNormal)];
|
|
|
+ }
|
|
|
+ else if (delayedMS < 100){
|
|
|
+ if(preDelayedMS > 50 && preDelayedMS < 100){
|
|
|
+ return;//没有变化 不处理
|
|
|
+ }
|
|
|
+ [controlBtn setBackgroundImage:[UIImage imageNamed:@"you_yellow"] forState:(UIControlStateNormal)];
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ if( preDelayedMS > 100){
|
|
|
+ return;//没有变化 不处理
|
|
|
+ }
|
|
|
+ [controlBtn setBackgroundImage:[UIImage imageNamed:@"you_red"] forState:(UIControlStateNormal)];
|
|
|
+ }
|
|
|
+
|
|
|
+ preDelayedMS = delayedMS;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
#pragma mark 收到的webrtc消息处理
|
|
|
- (void)handleWebRtcMsgResponseBy:(NSData*)message
|
|
|
{
|