@Rookie
2022-01-19T03:49:28.000000Z
字数 8842
阅读 958
未分类
本次更新添加h5分享参数传递, 具体微信分析需要在对应接口里面使用微信SDK调用, 然后填充对应参数即可
1. 本次需要更新JsApi.h/JsApi.m以及kLWKWebViewController.m
.h中添加
// 分享参数- (void)share:(NSDictionary *)dic;

.m中添加
/// 分享参数- (NSString *)share:(NSDictionary *)dic {if (_delegate && [_delegate respondsToSelector:@selector(share:)]) {[_delegate share:dic];}return dic;}

主要实现分享参数代理即可, 这里需要注意
不能整个文件替换, 需要注意h5地址配置,以及横竖屏分辨率配置, 集成完成后用git对比一下修改差异, 目前只修改这一处
// 分享参数-(void)share:(NSDictionary *)dic {NSLog(@"%@", dic);if ([dic isKindOfClass:[NSNull class]] || [dic isEqual:[NSNull null]]) {return;}[self.activityIndicator startAnimating];dispatch_async(dispatch_get_main_queue(), ^{NSDictionary * data = dic;NSString * title = [NSString stringWithFormat:@"%@", data[@"title"]];NSString * subTitle = [NSString stringWithFormat:@"%@", data[@"subTitle"]];NSString * url = [NSString stringWithFormat:@"%@", data[@"url"]];NSString * imageUrl = [NSString stringWithFormat:@"%@", data[@"imageUrl"]];/// 这里填写微信分析集成SDK调用[self.activityIndicator stopAnimating];});}

本次更新添加论坛中分析二维码保存到本地相册功能
1. 本次需要更新JsApi.h/JsApi.m以及kLWKWebViewController.m
2. Info.plist 需要添加访问相册权限
如果项目中原来有次权限这里可以忽略
<key>NSPhotoLibraryAddUsageDescription</key><string>请允许APP保存图片到相册</string><key>NSPhotoLibraryUsageDescription</key><string>请允许APP访问您的相册</string>

.h中添加
// 下载图片- (void)down:(NSDictionary *)dic;

.m中添加
// 下载图片- (NSString *)down:(NSDictionary *)dic {if (_delegate && [_delegate respondsToSelector:@selector(down:)]) {[_delegate down:dic];}return dic;}

主要实现下载图片的逻辑等, 具体修改查看git对比图, 这里需要注意
不能整个文件替换, 需要注意h5地址配置,以及横竖屏分辨率配置, 集成完成后用git对比一下修改差异释放和下几个图相同



本次更新视频播放比例为 16:9 格式
替换5个文件即可
GSChatView.mGSChatToolBar.mGSAnchorViewController.mGSSingleVideoViewController.mGSVerSingleVideoViewController.m
替换文件如图所示

本次更新两个分辨率 生产环境1280*720 、测试环境 1920*1080
只修改kLWKWebViewController.m 部分代码即可
如图所示

// 横屏[GSBroadcastManager sharedBroadcastManager].videoConfiguration.videoSize = CGSizeMake(1280, 720);
// 竖屏[GSBroadcastManager sharedBroadcastManager].videoConfiguration.videoSize = CGSizeMake(720, 1280);
// 横屏[GSBroadcastManager sharedBroadcastManager].videoConfiguration.videoSize = CGSizeMake(1920, 1080);
// 竖屏[GSBroadcastManager sharedBroadcastManager].videoConfiguration.videoSize = CGSizeMake(1080, 1920);
更新横竖屏的推流分辨率为1920, 1080, 更新在线用户数问题
kLWKWebViewController.mGSSingleVideoViewController.mGSVerSingleVideoViewController.m
如图所示替换即可

本次更新添加了小礼物显示动画
将 PresentView拖到工程中,如图所示

覆盖一下文件到工程中
SocketMsgModel.hGSGiftView.mGSAnchorViewController.mGSVerAnchorViewController.mGSSingleVideoViewController.mGSVerSingleVideoViewController.m
如图所示

本次更新修复了横屏禁言以及添加无礼物标识等问题
GSGiftView.mkLWKWebViewController.mGSVerAnchorViewController.mGSSingleVideoViewController.mGSVerSingleVideoViewController.m
本次更新语音连麦图片更换,修复用户端横屏状态下结束连麦问题
将 Assets.xcassets 中的 "音频连麦" 图片更换成新图片
如图

GSVideoViewController.m类中的
- (void)playerManager:(GSPPlayerManager *)playerManager didSelfLeaveFor:(GSPLeaveReason)reason方法, 新增已下代码
if (self.isTapFullScreen) {[self tapAction];}
如图

本次更新连麦状态中横屏状态下显示举手中按钮,以及横屏弹幕显示区域问题
将 GSVideoViewController.m文件进行替换, 文件在下方GSVideoViewController.m.zip 的附件中

现在输入框是使用 UITextField 进行输入, 使用如下代理进行发送处理
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
send按钮不好用分析原因可能
本次修改主要修改因为 "IQKeyboardManager" 引起的键盘高度计算问题,在直播和观众端把这个插件禁用掉即可
分别在 'GSAnchorViewController.m' 以及 'GSVideoViewController.m' 中添加如下代码
- (void)viewWillAppear:(BOOL)animated{[super viewWillAppear:animated];[IQKeyboardManager sharedManager].enable = NO;[IQKeyboardManager sharedManager].enableAutoToolbar = NO;}- (void)viewWillDisappear:(BOOL)animated{[super viewWillDisappear:animated];[IQKeyboardManager sharedManager].enable = YES;[IQKeyboardManager sharedManager].enableAutoToolbar = YES;}
如图所示

本次新增弹幕,修改输入框以及其他优化等等, 涉及到修改的类比较多 ,建议直接除SDK其他部分的源码都替换一下
新增 BarrageRenderer 到 Podfile 中
pod 'BarrageRenderer', '1.9.1'
更新文件夹里面的源码
Base
Views
Controllers更新替换图片资源
Assets.xcassets更新storyboard文件
Main.storyboard
以上文件全部替换

本次修改了用户端点赞数量不变化问题,连麦视频画面问题以及错误提示问题
将截图中三个文件进行替换即可

本次修改修复了在进入直播的时候不显示主播进入的欢迎语
将 GSVideoViewController.m文件以及 GSAnchorViewController.m文件进行替换即可

本次主要更新修复横屏问题
把 UIDevice+TFDevice.h 和 UIDevice+TFDevice.m 新增到目标工程中

/*** 是否允许转向*/@property(nonatomic,assign)BOOL allowRotation;
AppDelegate.m 中添加如下
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window{if (self.allowRotation == YES) {//横屏return UIInterfaceOrientationMaskLandscape;}else{//竖屏return UIInterfaceOrientationMaskPortrait;}}
将 GSVideoViewController.m 整个文件进行替换
本次更新主要更新了SDK的一些优化以及体验细节,已知bug等等.
主要更新了Base类 Views,Controllers,Main.storyboard以及info.plist

将 GSCustomViewController.m进行替换

将 GSChatView.h, GSChatView.m, GSChatViewCell.m,GSChatToolBar.m 文件进行替换

将 kLWKWebViewController.m, GSAnchorViewController.m, GSVideoViewController.m进行替换

注 如果kLWKWebViewController 里面逻辑你们有自定义,那么不用进行整个文件替换,
添加下面两处代码即可
代码1
NSString *genseeLiveNumber = recordsDic[@"genseeLiveNumber"];if (!kStringIsEmpty(genseeLiveNumber)) {NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];[defaults setObject:genseeLiveNumber forKey:@"genseeLiveNumber"];[defaults synchronize];}
代码2
[GSBroadcastManager sharedBroadcastManager].videoConfiguration.videoSize = CGSizeMake(1280, 720);

Main.storyboard 整个文件内容全部替换
修改 Localization native development region 的value 为 China

本次修改内容较多 SDK,代码以及Storyboard 文件都有更新
红框部分全部做替换

红框部分代码全部替换

红框部分替换

将storyboard 文件全部重新进行替换.
本次变动文件有三处

将GSVideoViewController 关联的storyboard文件替换成最新的

替换整个 GSVideoViewController.m文件为最新的
替换整个 kLWKWebViewController.m文件为最新的
此SDK集成了直播端和观众端,调用需要在wkWebView中进行拦截获取到直播信息,进行开播判断,从而进行调用起对应的页面, 可以先查看一下demo然后再进行逐步集成.
GLKit.frameworkAVFoundation.frameworklibz.dylib (libz.tbd)libiconv.dylib (libiconv.tbd)libsqlite3.dylib (libsqlite3.tbd)
PlayerSDK.frameworkGSCommonKit.frameworkGPUImage.frameworkRtSDK.frameworkGSCommonKit.frameworkGPUImage.framework
libavcodec.a (ffmpeg)libavformat.a (ffmpeg)libavutil.a (ffmpeg)libswresample.a (ffmpeg)libswscale.a (ffmpeg)liblibfaad.alibx264.alibPlayerSDKLib.a
PrefixHeader 文件添加
#import <SDWebImage/SDWebImage.h>#import "MBProgressHUD+GSMJ.h"#import "UIView+GSSetRect.h"#import <GSCommonKit/GSCommonKit.h>#import <RtSDK/RtSDK.h>#import "UIView+AZGradient.h"#import "UIColor+Extension.h"#define UICOLOR16(value) [UIColor colorWithRed:((float)((value & 0xFF0000) >> 16))/255.0 green:((float)((value & 0xFF00) >> 8))/255.0 blue:((float)(value & 0xFF))/255.0 alpha:1.0]#define IsStrEmpty(_ref) (((_ref) == nil) || ([(_ref) isEqual:[NSNull null]]) ||([(_ref)isEqualToString:@""]) || ([(_ref) isEqual:@"null"]) || ([(_ref) isEqual:@"(null)"]))/*** 导航栏高度*/#define UI_navBar_Height (UI_statusBar_height + 44.0)/*** tabbar高度*/#define UI_tabBar_Height (UI_SafeArea_Bottom + 49.0)/*** 状态栏高度*/#define UI_statusBar_height [[UIApplication sharedApplication] statusBarFrame].size.height/*** 获取window安全区底部高度*/#define UI_SafeArea_Bottom ({\CGFloat bottom = 0;\if (@available(iOS 11.0, *)) {\bottom = [UIApplication sharedApplication].delegate.window.safeAreaInsets.bottom;\}else{\bottom = 0.0f;\}\bottom;\})/*** 获取window安全区顶部高度*/#define UI_SafeArea_Top ({\CGFloat top = 0;\if (@available(iOS 11.0, *)) {\top = [UIApplication sharedApplication].delegate.window.safeAreaInsets.top;\}else{\top = 0.0f;\}\top;\})//获取当前屏幕的宽高#define ScreenHeight ([UIScreen mainScreen].bounds.size.height)#define ScreenWidth ([UIScreen mainScreen].bounds.size.width)#endif#define XKLog(fmt, ...) NSLog((@"[%@] %s " fmt), NSStringFromClass([self class]), __PRETTY_FUNCTION__, ##__VA_ARGS__);#endif /* PrefixHeader_pch */
在info.plist 中添加,具体权限说明自行修改
<key>NSCameraUsageDescription</key><string>获取您的摄像头权限以用于视频数据获取</string><key>NSMicrophoneUsageDescription</key><string>获取您的麦克风权限以用于音频数据获取</string><key>UIApplicationSceneManifest</key>
将 Assets.xcassets 文件中的直播文件夹 拖到目标工程中
Podfile中添加, 如果目标项目有已有的,自行兼容一下版本
pod 'AFNetworking'pod 'IQKeyboardManager'pod 'SDWebImage'pod 'MJRefresh'pod 'Masonry'pod 'SDWebImage', '~> 5.0'
将代码文件夹一次拖入到项目中
NetWorkThirdPartyCategoryLibsFrameworksBaseViewsControllers
将Main.storyboard 中见文件复制到目标工程中 ,然后根据项目结构进行调整
A.编译时出现Library not found for –lxxx 错误
答:lib库的search Path没有设置好路径,xcode->选择工程->build settings->找到Library Search Paths,输入lib库的路径(如何知道路径?找到文件夹直接拖进去即可),如果lib库路径下有子文件,需要将其设置为recursive
案例:
B.编译时出现 file not found 错误
答:framework库的search Path没有设置好路径,xcode->选择工程->build settings->找到framework Search Paths,输入framework库的路径(如何知道路径?找到文件夹直接拖进去即可)
案例:
