[关闭]
@Rookie 2022-01-19T11:49:28.000000Z 字数 8842 阅读 753

集成文档

未分类


更新 2022年01月19日

本次更新添加h5分享参数传递, 具体微信分析需要在对应接口里面使用微信SDK调用, 然后填充对应参数即可
1. 本次需要更新JsApi.h/JsApi.m 以及 kLWKWebViewController.m

JsApi 修改

.h中添加

  1. // 分享参数
  2. - (void)share:(NSDictionary *)dic;

image_1fpo530rh1ejnau51nvi1e3kdrk9.png-196.8kB

.m中添加

  1. /// 分享参数
  2. - (NSString *)share:(NSDictionary *)dic {
  3. if (_delegate && [_delegate respondsToSelector:@selector(share:)]) {
  4. [_delegate share:dic];
  5. }
  6. return dic;
  7. }

image_1fpo5429742u1sf91sob1udk353m.png-275.9kB

kLWKWebViewController.m 修改

主要实现分享参数代理即可, 这里需要注意不能整个文件替换, 需要注意h5地址配置,以及横竖屏分辨率配置, 集成完成后用git对比一下修改差异, 目前只修改这一处

  1. // 分享参数
  2. -(void)share:(NSDictionary *)dic {
  3. NSLog(@"%@", dic);
  4. if ([dic isKindOfClass:[NSNull class]] || [dic isEqual:[NSNull null]]) {
  5. return;
  6. }
  7. [self.activityIndicator startAnimating];
  8. dispatch_async(dispatch_get_main_queue(), ^{
  9. NSDictionary * data = dic;
  10. NSString * title = [NSString stringWithFormat:@"%@", data[@"title"]];
  11. NSString * subTitle = [NSString stringWithFormat:@"%@", data[@"subTitle"]];
  12. NSString * url = [NSString stringWithFormat:@"%@", data[@"url"]];
  13. NSString * imageUrl = [NSString stringWithFormat:@"%@", data[@"imageUrl"]];
  14. /// 这里填写微信分析集成SDK调用
  15. [self.activityIndicator stopAnimating];
  16. });
  17. }

image_1fpo5d65q1kdjs20esvdpk5v1g.png-371.6kB


更新 2021年12月27日

本次更新添加论坛中分析二维码保存到本地相册功能
1. 本次需要更新JsApi.h/JsApi.m 以及 kLWKWebViewController.m
2. Info.plist 需要添加访问相册权限

Info.plist 添加权限

如果项目中原来有次权限这里可以忽略

  1. <key>NSPhotoLibraryAddUsageDescription</key>
  2. <string>请允许APP保存图片到相册</string>
  3. <key>NSPhotoLibraryUsageDescription</key>
  4. <string>请允许APP访问您的相册</string>

image_1fnu3b61pijj13t2nk58lauoc2a.png-261.9kB

JsApi 修改

.h中添加

  1. // 下载图片
  2. - (void)down:(NSDictionary *)dic;

image_1fnu2m4gosdo15ql1aht1venkd49.png-130.4kB

.m中添加

  1. // 下载图片
  2. - (NSString *)down:(NSDictionary *)dic {
  3. if (_delegate && [_delegate respondsToSelector:@selector(down:)]) {
  4. [_delegate down:dic];
  5. }
  6. return dic;
  7. }

image_1fnu2mn2ts7p1mtah4d11bj1n25m.png-195.9kB

kLWKWebViewController.m 修改

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

image_1fnu2tt2coc71uchgsf1b491arj13.png-236.1kB

image_1fnu2v4ls1lj611hj7ak1do41gu91g.png-206.3kB

image_1fnu2vrem1d71l4l13hmf76v321t.png-307.4kB

更新 2021年12月13日

本次更新视频播放比例为 16:9 格式
替换5个文件即可

  1. GSChatView.m
  2. GSChatToolBar.m
  3. GSAnchorViewController.m
  4. GSSingleVideoViewController.m
  5. GSVerSingleVideoViewController.m

替换文件如图所示
image_1fmq82ved18k4bne1cb71dsp1qkb9.png-241kB

更新说明 2021年12月09日

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

image_1fmeq6ibg1hq4171d1pklgrauba9.png-454.7kB

生产环境 1280*720 分辨率修改

  1. // 横屏
  2. [GSBroadcastManager sharedBroadcastManager].videoConfiguration.videoSize = CGSizeMake(1280, 720);
  1. // 竖屏
  2. [GSBroadcastManager sharedBroadcastManager].videoConfiguration.videoSize = CGSizeMake(720, 1280);

测试环境 1920*1080 分辨率修改

  1. // 横屏
  2. [GSBroadcastManager sharedBroadcastManager].videoConfiguration.videoSize = CGSizeMake(1920, 1080);
  1. // 竖屏
  2. [GSBroadcastManager sharedBroadcastManager].videoConfiguration.videoSize = CGSizeMake(1080, 1920);

更新说明 2021年12月07日(第二次)

更新横竖屏的推流分辨率为1920, 1080, 更新在线用户数问题

本次更新文件

  1. kLWKWebViewController.m
  2. GSSingleVideoViewController.m
  3. GSVerSingleVideoViewController.m

如图所示替换即可
image_1fma92a4m128uv248nh2tu2a01g.png-168.8kB

更新说明 2021年12月07日

本次更新添加了小礼物显示动画

新增文件夹

PresentView拖到工程中,如图所示
image_1fm8a0df2cbp162o1mepocl1pvk9.png-172.5kB

覆盖原来文件

覆盖一下文件到工程中

  1. SocketMsgModel.h
  2. GSGiftView.m
  3. GSAnchorViewController.m
  4. GSVerAnchorViewController.m
  5. GSSingleVideoViewController.m
  6. GSVerSingleVideoViewController.m

如图所示
image_1fm8a6coaruc1pirgi91c5t1tuvm.png-129kB
image_1fm8a7b5il6b1tftfjn196fv1113.png-193kB

更新说明 2021年10月30日

本次更新修复了横屏禁言以及添加无礼物标识等问题

更新覆盖一下文件

  1. GSGiftView.m
  2. kLWKWebViewController.m
  3. GSVerAnchorViewController.m
  4. GSSingleVideoViewController.m
  5. GSVerSingleVideoViewController.m

更新说明 2021年09月02日

本次更新语音连麦图片更换,修复用户端横屏状态下结束连麦问题

图片更换

将 Assets.xcassets 中的 "音频连麦" 图片更换成新图片

音频连麦_slices.zip25.1kB

如图
image_1fejdrvmn1kc51s5sm6q2v7ntk9.png-106.1kB

新增代码

GSVideoViewController.m类中的 - (void)playerManager:(GSPPlayerManager *)playerManager didSelfLeaveFor:(GSPLeaveReason)reason 方法, 新增已下代码

  1. if (self.isTapFullScreen) {
  2. [self tapAction];
  3. }

如图
image_1feje0av4san190riplgiqcqsm.png-396.5kB

更新说明 2021年08月31日

本次更新连麦状态中横屏状态下显示举手中按钮,以及横屏弹幕显示区域问题

替换文件

将 GSVideoViewController.m文件进行替换, 文件在下方GSVideoViewController.m.zip 的附件中

image_1fee9ubtn8qf1r6q1cef1248ke81d.png-393.8kB

GSVideoViewController.m.zip12.6kB

关于输入框发送按钮不好用问题分析

现在输入框是使用 UITextField 进行输入, 使用如下代理进行发送处理

  1. -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

send按钮不好用分析原因可能

更新说明 2021年08月28日

本次修改主要修改因为 "IQKeyboardManager" 引起的键盘高度计算问题,在直播和观众端把这个插件禁用掉即可

代码新增

分别在 'GSAnchorViewController.m' 以及 'GSVideoViewController.m' 中添加如下代码

  1. - (void)viewWillAppear:(BOOL)animated{
  2. [super viewWillAppear:animated];
  3. [IQKeyboardManager sharedManager].enable = NO;
  4. [IQKeyboardManager sharedManager].enableAutoToolbar = NO;
  5. }
  6. - (void)viewWillDisappear:(BOOL)animated{
  7. [super viewWillDisappear:animated];
  8. [IQKeyboardManager sharedManager].enable = YES;
  9. [IQKeyboardManager sharedManager].enableAutoToolbar = YES;
  10. }

如图所示
image_1fe47btqug7pi81f6fg03vi9.png-338kB
image_1fe47chgd1q7b1a3kmfbme0a9sm.png-310kB

更新说明 2021年08月26日

本次新增弹幕,修改输入框以及其他优化等等, 涉及到修改的类比较多 ,建议直接除SDK其他部分的源码都替换一下

Podfile 更新

新增 BarrageRenderer 到 Podfile 中

  1. pod 'BarrageRenderer', '1.9.1'

更新文件替换

更新文件夹里面的源码
Base
Views
Controllers

更新替换图片资源
Assets.xcassets

更新storyboard文件
Main.storyboard

以上文件全部替换

image_1fe1f8ifj1ohfo2d1bafsmufoi13.png-220.9kB

更新说明 2021年08月11日

本次修改了用户端点赞数量不变化问题,连麦视频画面问题以及错误提示问题

文件替换

将截图中三个文件进行替换即可
image_1fcqiuubd1bt7q0l19qomn0ui9m.png-216.6kB
image_1fcqit8401hfrfuh1i25gt214lk9.png-128.4kB


更新说明 2021年08月11日

本次修改修复了在进入直播的时候不显示主播进入的欢迎语

文件替换

将 GSVideoViewController.m文件以及 GSAnchorViewController.m文件进行替换即可

image_1fcpn2kpm1upr17rr1d3514tk1o7o9.png-378.4kB


更新说明 2021年08月10日(新增横屏更新)

本次主要更新修复横屏问题

新增文件

把 UIDevice+TFDevice.h 和 UIDevice+TFDevice.m 新增到目标工程中
image_1fcngs6nb1bse1flp1o17491e7c9.png-58.6kB

类修改

  1. AppDelegate修改
    AppDelegate.h 中添加如下
  1. /**
  2. * 是否允许转向
  3. */
  4. @property(nonatomic,assign)BOOL allowRotation;

AppDelegate.m 中添加如下

  1. - (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window
  2. {
  3. if (self.allowRotation == YES) {
  4. //横屏
  5. return UIInterfaceOrientationMaskLandscape;
  6. }else{
  7. //竖屏
  8. return UIInterfaceOrientationMaskPortrait;
  9. }
  10. }

文件替换

将 GSVideoViewController.m 整个文件进行替换


更新说明 2021年08月10日

更新内容

本次更新主要更新了SDK的一些优化以及体验细节,已知bug等等.
主要更新了Base类 Views,Controllers,Main.storyboard以及info.plist

image_1fcmocoal1dhp8pnne41qv71prq9.png-37.2kB

文件替换

Base类文件替换

将 GSCustomViewController.m进行替换
image_1fcmon1gb15bgfd7k6v1im71q1em.png-179.7kB

Views 文件替换

将 GSChatView.h, GSChatView.m, GSChatViewCell.m,GSChatToolBar.m 文件进行替换
image_1fcmopdon8il11s01270dc63ta13.png-246.2kB

Controllers 文件替换

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

image_1fcmp1nfnk95nuhq111nk9tvh1g.png-156.9kB

注 如果kLWKWebViewController 里面逻辑你们有自定义,那么不用进行整个文件替换,
添加下面两处代码即可

代码1

  1. NSString *genseeLiveNumber = recordsDic[@"genseeLiveNumber"];
  2. if (!kStringIsEmpty(genseeLiveNumber)) {
  3. NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
  4. [defaults setObject:genseeLiveNumber forKey:@"genseeLiveNumber"];
  5. [defaults synchronize];
  6. }

代码2

  1. [GSBroadcastManager sharedBroadcastManager].videoConfiguration.videoSize = CGSizeMake(1280, 720);

image_1fcmp7plg6411leq1j6m29ndvs1t.png-235.6kB
image_1fcmp8ge3v6d1r3o1l2iblo17bp2a.png-375.3kB

Main.storyboard替换

Main.storyboard 整个文件内容全部替换

info.plist 修改

修改 Localization native development region 的value 为 China
image_1fcmpdc7cp1n9im645e0v1p3u2n.png-249kB


更新说明 2021年07月28日10:04:14

更新内容

本次修改内容较多 SDK,代码以及Storyboard 文件都有更新

SDK更新

红框部分全部做替换
image_1fbldp8g1p31shh1fin73hknc9.png-98kB

代码更新

红框部分代码全部替换
image_1fbldqm5s4h01bbhsca1d821e45m.png-74kB

资源文件更新

红框部分替换
image_1fble2aku1ons1svhf3ejj1h2e13.png-91.7kB

storyboard更新

将storyboard 文件全部重新进行替换.

请先确保demo可以正常运行切使用情况下在进行集成,有问题随时联系


更新说明 2021年07月22日

本次变动文件有三处
image_1fb6d7thuaes19dp7bgsto4999.png-24kB

Main.storyboard修改

将GSVideoViewController 关联的storyboard文件替换成最新的
image_1fb6db0bthm7albanj1sh61gkhm.png-198kB

GSVideoViewController.m 文件修改

替换整个 GSVideoViewController.m文件为最新的

kLWKWebViewController.m

替换整个 kLWKWebViewController.m文件为最新的


说明

此SDK集成了直播端和观众端,调用需要在wkWebView中进行拦截获取到直播信息,进行开播判断,从而进行调用起对应的页面, 可以先查看一下demo然后再进行逐步集成.

集成

工程设置

库的引用

系统库

  1. GLKit.framework
  2. AVFoundation.framework
  3. libz.dylib (libz.tbd)
  4. libiconv.dylib (libiconv.tbd)
  5. libsqlite3.dylib (libsqlite3.tbd)

直播库

  1. PlayerSDK.framework
  2. GSCommonKit.framework
  3. GPUImage.framework
  4. RtSDK.framework
  5. GSCommonKit.framework
  6. GPUImage.framework

Lib库

  1. libavcodec.a (ffmpeg)
  2. libavformat.a (ffmpeg)
  3. libavutil.a (ffmpeg)
  4. libswresample.a (ffmpeg)
  5. libswscale.a (ffmpeg)
  6. liblibfaad.a
  7. libx264.a
  8. libPlayerSDKLib.a

其他资源

工程设置

宏文件设置

PrefixHeader 文件添加

  1. #import <SDWebImage/SDWebImage.h>
  2. #import "MBProgressHUD+GSMJ.h"
  3. #import "UIView+GSSetRect.h"
  4. #import <GSCommonKit/GSCommonKit.h>
  5. #import <RtSDK/RtSDK.h>
  6. #import "UIView+AZGradient.h"
  7. #import "UIColor+Extension.h"
  8. #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]
  9. #define IsStrEmpty(_ref) (((_ref) == nil) || ([(_ref) isEqual:[NSNull null]]) ||([(_ref)isEqualToString:@""]) || ([(_ref) isEqual:@"null"]) || ([(_ref) isEqual:@"(null)"]))
  10. /**
  11. * 导航栏高度
  12. */
  13. #define UI_navBar_Height (UI_statusBar_height + 44.0)
  14. /**
  15. * tabbar高度
  16. */
  17. #define UI_tabBar_Height (UI_SafeArea_Bottom + 49.0)
  18. /**
  19. * 状态栏高度
  20. */
  21. #define UI_statusBar_height [[UIApplication sharedApplication] statusBarFrame].size.height
  22. /**
  23. * 获取window安全区底部高度
  24. */
  25. #define UI_SafeArea_Bottom ({\
  26. CGFloat bottom = 0;\
  27. if (@available(iOS 11.0, *)) {\
  28. bottom = [UIApplication sharedApplication].delegate.window.safeAreaInsets.bottom;\
  29. }else{\
  30. bottom = 0.0f;\
  31. }\
  32. bottom;\
  33. })
  34. /**
  35. * 获取window安全区顶部高度
  36. */
  37. #define UI_SafeArea_Top ({\
  38. CGFloat top = 0;\
  39. if (@available(iOS 11.0, *)) {\
  40. top = [UIApplication sharedApplication].delegate.window.safeAreaInsets.top;\
  41. }else{\
  42. top = 0.0f;\
  43. }\
  44. top;\
  45. })
  46. //获取当前屏幕的宽高
  47. #define ScreenHeight ([UIScreen mainScreen].bounds.size.height)
  48. #define ScreenWidth ([UIScreen mainScreen].bounds.size.width)
  49. #endif
  50. #define XKLog(fmt, ...) NSLog((@"[%@] %s " fmt), NSStringFromClass([self class]), __PRETTY_FUNCTION__, ##__VA_ARGS__);
  51. #endif /* PrefixHeader_pch */

添加权限

在info.plist 中添加,具体权限说明自行修改

  1. <key>NSCameraUsageDescription</key>
  2. <string>获取您的摄像头权限以用于视频数据获取</string>
  3. <key>NSMicrophoneUsageDescription</key>
  4. <string>获取您的麦克风权限以用于音频数据获取</string>
  5. <key>UIApplicationSceneManifest</key>

添加图片文件

将 Assets.xcassets 文件中的直播文件夹 拖到目标工程中

Podfile添加

Podfile中添加, 如果目标项目有已有的,自行兼容一下版本

  1. pod 'AFNetworking'
  2. pod 'IQKeyboardManager'
  3. pod 'SDWebImage'
  4. pod 'MJRefresh'
  5. pod 'Masonry'
  6. pod 'SDWebImage', '~> 5.0'

代码文件

将代码文件夹一次拖入到项目中

  1. NetWork
  2. ThirdParty
  3. Category
  4. Libs
  5. Frameworks
  6. Base
  7. Views
  8. Controllers

storyboard

将Main.storyboard 中见文件复制到目标工程中 ,然后根据项目结构进行调整

常见问题

A.编译时出现Library not found for –lxxx 错误
答:lib库的search Path没有设置好路径,xcode->选择工程->build settings->找到Library Search Paths,输入lib库的路径(如何知道路径?找到文件夹直接拖进去即可),如果lib库路径下有子文件,需要将其设置为recursive
案例:
image_1fak2olim11o11g0s17sp1p85e3r9.png-542kB
B.编译时出现 file not found 错误
答:framework库的search Path没有设置好路径,xcode->选择工程->build settings->找到framework Search Paths,输入framework库的路径(如何知道路径?找到文件夹直接拖进去即可)
案例:

image_1fak2ostodjhqihahm13k1bbkm.png-489.3kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注