SellyCloudSDK_demo/Example/SellyCloudSDK/Live/SCLiveStatsView.m

151 lines
4.7 KiB
Objective-C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// SCLiveStatsView.m
// SellyCloudSDK_Example
//
// Created by Caleb on 21/10/25.
// Copyright © 2025 Caleb. All rights reserved.
//
#import "SCLiveStatsView.h"
@interface SCLiveStatsView ()
@property (nonatomic, strong)UILabel *protocolLabel;
@property (nonatomic, strong)UILabel *appCPULabel;
@property (nonatomic, strong)UILabel *sysCPULabel;
@property (nonatomic, strong)UILabel *audioBitrateLabel;
@property (nonatomic, strong)UILabel *videoBitrateLabel;
@property (nonatomic, strong)UILabel *fpsLabel;
@property (nonatomic, strong)UILabel *rttLabel;
@end
@implementation SCLiveStatsView
- (instancetype)init
{
self = [super init];
if (self) {
self.backgroundColor = [UIColor colorWithWhite:0 alpha:0.1];
[self setupView];
}
return self;
}
- (void)setupView {
[self addSubview:self.protocolLabel];
[self.protocolLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.offset(10);
}];
[self addSubview:self.appCPULabel];
[self.appCPULabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(10);
make.top.equalTo(self.protocolLabel.mas_bottom).offset(10);
}];
[self addSubview:self.sysCPULabel];
[self.sysCPULabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(10);
make.top.equalTo(self.appCPULabel.mas_bottom).offset(10);
}];
[self addSubview:self.audioBitrateLabel];
[self.audioBitrateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.appCPULabel);
make.top.equalTo(self.sysCPULabel.mas_bottom).offset(10);
}];
[self addSubview:self.videoBitrateLabel];
[self.videoBitrateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.appCPULabel);
make.top.equalTo(self.audioBitrateLabel.mas_bottom).offset(10);
}];
[self addSubview:self.fpsLabel];
[self.fpsLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(10);
make.top.equalTo(self.videoBitrateLabel.mas_bottom).offset(10);
}];
[self addSubview:self.rttLabel];
[self.rttLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(10);
make.top.equalTo(self.fpsLabel.mas_bottom).offset(10);
}];
}
- (void)setStats:(SellyLivePusherStats *)stats {
_stats = stats;
self.protocolLabel.text = [NSString stringWithFormat:@"protocol%@",stats.protocol];
self.appCPULabel.text = [NSString stringWithFormat:@"app cpu%ld%%",stats.appCpu];
self.sysCPULabel.text = [NSString stringWithFormat:@"system cpu%ld%%",stats.systemCpu];
self.audioBitrateLabel.text = [NSString stringWithFormat:@"audio bitrate%ld kbps",stats.audioBitrate];
self.videoBitrateLabel.text = [NSString stringWithFormat:@"video bitrate%ld kbps",stats.videoBitrate];
self.fpsLabel.text = [NSString stringWithFormat:@"fps%ld",stats.fps];
self.rttLabel.text = [NSString stringWithFormat:@"rtt%ld ms",stats.rtt];
}
- (UILabel *)protocolLabel {
if (!_protocolLabel) {
_protocolLabel = [[UILabel alloc] init];
_protocolLabel.font = [UIFont systemFontOfSize:16];
_protocolLabel.textColor = UIColor.blackColor;
}
return _protocolLabel;
}
- (UILabel *)appCPULabel {
if (!_appCPULabel) {
_appCPULabel = [[UILabel alloc] init];
_appCPULabel.font = [UIFont systemFontOfSize:16];
_appCPULabel.textColor = UIColor.blackColor;
}
return _appCPULabel;
}
- (UILabel *)sysCPULabel {
if (!_sysCPULabel) {
_sysCPULabel = [[UILabel alloc] init];
_sysCPULabel.font = [UIFont systemFontOfSize:16];
_sysCPULabel.textColor = UIColor.blackColor;
}
return _sysCPULabel;
}
- (UILabel *)audioBitrateLabel {
if (!_audioBitrateLabel) {
_audioBitrateLabel = [[UILabel alloc] init];
_audioBitrateLabel.font = [UIFont systemFontOfSize:16];
_audioBitrateLabel.textColor = UIColor.blackColor;
}
return _audioBitrateLabel;
}
- (UILabel *)videoBitrateLabel {
if (!_videoBitrateLabel) {
_videoBitrateLabel = [[UILabel alloc] init];
_videoBitrateLabel.font = [UIFont systemFontOfSize:16];
_videoBitrateLabel.textColor = UIColor.blackColor;
}
return _videoBitrateLabel;
}
- (UILabel *)fpsLabel {
if (!_fpsLabel) {
_fpsLabel = [[UILabel alloc] init];
_fpsLabel.font = [UIFont systemFontOfSize:16];
_fpsLabel.textColor = UIColor.blackColor;
}
return _fpsLabel;
}
- (UILabel *)rttLabel {
if (!_rttLabel) {
_rttLabel = [[UILabel alloc] init];
_rttLabel.font = [UIFont systemFontOfSize:16];
_rttLabel.textColor = UIColor.blackColor;
}
return _rttLabel;
}
@end