@Rookie
2022-01-19T11:49:28.000000Z
字数 8842
阅读 753
未分类
本次更新添加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.m
GSChatToolBar.m
GSAnchorViewController.m
GSSingleVideoViewController.m
GSVerSingleVideoViewController.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.m
GSSingleVideoViewController.m
GSVerSingleVideoViewController.m
如图所示替换即可
本次更新添加了小礼物显示动画
将 PresentView
拖到工程中,如图所示
覆盖一下文件到工程中
SocketMsgModel.h
GSGiftView.m
GSAnchorViewController.m
GSVerAnchorViewController.m
GSSingleVideoViewController.m
GSVerSingleVideoViewController.m
如图所示
本次更新修复了横屏禁言以及添加无礼物标识等问题
GSGiftView.m
kLWKWebViewController.m
GSVerAnchorViewController.m
GSSingleVideoViewController.m
GSVerSingleVideoViewController.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.framework
AVFoundation.framework
libz.dylib (libz.tbd)
libiconv.dylib (libiconv.tbd)
libsqlite3.dylib (libsqlite3.tbd)
PlayerSDK.framework
GSCommonKit.framework
GPUImage.framework
RtSDK.framework
GSCommonKit.framework
GPUImage.framework
libavcodec.a (ffmpeg)
libavformat.a (ffmpeg)
libavutil.a (ffmpeg)
libswresample.a (ffmpeg)
libswscale.a (ffmpeg)
liblibfaad.a
libx264.a
libPlayerSDKLib.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'
将代码文件夹一次拖入到项目中
NetWork
ThirdParty
Category
Libs
Frameworks
Base
Views
Controllers
将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库的路径(如何知道路径?找到文件夹直接拖进去即可)
案例: