iOS 接入说明文档

接入临境直播观看 SDK 首先遵循以下步骤:

  • 配置 SDK 集成环境
  • 按照以下接入文档集成代码

SDK 集成环境配置

开发与运行环境

  • Xcode 8.1.2
  • iOS 8.0 及以上版本

Cocoapods 快速集成

pod ‘YXTLivePullLib’, ‘~> 1.12.1’

1、 使用 CocoaPods 导入直播 SDK

在您的工程根目录下新建一个 Podfile 文件,或者用终端,在工程目录下,执行 pod init。然后 open -e Podfile。在文件中输入以下内容。(在此以 1.11.1 版本为例,其中 “MyApp” 为自己工程名)

如果使用 Cocoapods 接入方式,可跳过手动集成。

  1. target 'MyApp' do
  2. pod 'YXTLivePullLib', '~> 1.12.1'
  3. end

然后在终端中运行以下命令:

  1. pod install

完成后,CocoaPods 会在您的工程根目录下生成一个 .xcworkspace 文件。您需要通过此文件打开您的工程,而不是之前的 .xcodeproj。

2、升级工程的 SDK 版本

更新您工程目录中 Podfile 指定的 SDK 版本后,在终端中执行以下命令。

  1. pod update
  • 如果搜索不到最新库,执行 pod repo update 更新一下。
  • 特殊情况下,由于网络或者别的原因,通过 CocoaPods 下载的文件可能会有问题。 这时候您可以删除 CocoaPods 的缓存(~/Library/Caches/CocoaPods/Pods/Release 目录),再次导入即可。
  • 查看当前使用的 SDK 版本,您可以在 Podfile.lock 文件中看到您工程中使用的 SDK 版本。

手动集成

1、SDK 文件说明

您需要将所有的文件导入您的工程中;
临境直播观看需要导入文件:

  • YXTLivePullLib
  • YXTToolKitsLib
  • YXTLiveBaseLib

依赖三方:

  • MBProgressHUD
  • BaiduBCEPlayerFull
  • openssl-ios-bitcode
  • WechatOpenSDK
  • RongCloudIM/IMLib
  • YYText
  • Toast
  • Masonry
  • IQKeyboardManager
    备注:1,如果项目里有同样的三方文件,如果三方文件是 framework 或 .a 形式,可以用自己项目里引用的三方文件;如果三方文件不是 framework 或 .a 形式,请用临境直播提供的三方文件;

2、添加系统库依赖

您除了在工程中导入 SDK 之前,还需要添加如下系统库的引用。

  • UIKit.framework
  • Foundation.framework
  • AssetsLibrary.framework
  • AVFoundation.framework
  • WebKit.framework
  • CoreMedia.framework
  • MobileCoreServices.framework
  • SystemConfiguration.framework
  • CoreData.framework
  • Accelerate.framework
  • libsqlite3.tbd
  • libz.tbd
  • libc++.tbd

声明SDK需要的权限

info.plist 设置权限:
info.plist权限设置

SDK集成步骤

1、AppDelegate中配置代码

1. 初始化临境直播

  1. /**
  2. 观看端 appdelegate 配置
  3. @param environment 环境配置(0:测试环境;1:正式环境)
  4. */
  5. - (void)configLivePullWithApiEnvironment:(LPullEnvironment)environment;
  6. 例如:
  7. 导入头文件 #import "YXTLivePullSDK/YXTLivePullSDK.h"
  8. appdelegate 文件下 didFinishLaunchingWithOptions 方法里添加
  9. [[YXTLivePullSDK getInstance] configLivePullWithApiEnvironment:LPullEnvironmentDevelopment];

2、跳转直播播放页面

  1. 导入头文件 #import "YXTLivePullSDK/YXTLivePullSDK.h"
  2. NSMutableDictionary *params = [NSMutableDictionary dictionary];
  3. [params setValue:@"" forKey:kLivePullSDKeyRoomCode];//直播室roomCode 必传
  4. [params setValue:@"" forKey:kLivePullSDKeyUserId];//用户userId 必传
  5. [params setValue:@"" forKey:kLivePullSDKeyUserName];//用户昵称 必传
  6. [params setValue:@"" forKey:kLivePullSDKeyAvatar];//用户头像
  7. [params setValue:@"" forKey:kLivePullSDKeyPassword];//观看密码
  8. [params setValue:@"" forKey:kLivePullSDKeyLoginName];//产线用户登陆名称
  9. [params setValue:@"" forKey:kLivePullSDKeyUserPoint];//用户积分
  10. [params setValue:@YES forKey:kLivePullSDKeyCannotEditUserInfo];//默认传Yes
  11. [[YXTLivePullSDK getInstance] loginChatRoomWithParam:params inNav:当前的navigationController];

3、绑定微信功能接入

设置微信绑定功能需要添加以下操作:

注:若不需要微信绑定功能,不需要接入改板块内容。

1. 在微信开放平台申请相应 appId;
2. 在 AppDelegate 中初始化微信

  1. #import "WXApi.h"
  2. appdelegate 文件下 didFinishLaunchingWithOptions 方法里添加
  3. [WXApi registerApp:@"微信key"];
  4. [[YXTLivePullSDK getInstance]setIsNeedBindUserInfo:YES];//打开微信绑定

3. 在 info—>URL Types 里添加微信跳转配置
微信跳转配置

4、支持后台播放功能接入

设置后台播放功能需要添加以下操作:

后台播放配置

常见问题

1、PC 推流时,直播界面未横竖屏切换失效或项目横竖屏不受控制问题

  1. 无法横竖屏切换
    解答:要求项目必须默认支持横竖屏切换

  2. 默认支持横竖屏切换,固定页面关闭横竖屏切换失败
    解答:需要自定义 UINavigationController
    并实现 shouldAutorotate 方法

    1. -(BOOL)shouldAutorotate
    2. {
    3. return self.topViewController.shouldAutorotate;
    4. }
  3. 横屏状态打开 App,启动页变成横屏
    解答:在 AppDelegate 里- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions 方法里设置竖屏显示;

  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  2. {
  3. [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
  4. return YES;
  5. }

2、PC 导入临境直播库后,如果报“Include of non-modular header inside framework module ‘…’” 或者 “Could not build module ‘…’”错误;

解答:查看“Build Settings —-> Allow Non-modular Includes In Framework Modules”的设置,要求设置为YES。

3、开始观看直播时,无法正常进入

  1. 控制台log提示“直播参数缺失:kLivePullSDKeyRoomCode value 不存在”
    解答:kLivePullSDKeyRoomCode 值为空,此参数必传
  2. 控制台log提示“直播参数缺失:kLivePullSDKeyUserName value 不存在”
    解答:kLivePullSDKeyUserName 值为空,此参数必传

关于作者

江苏云学堂网络科技有限公司开发人员,如有问题请发送邮件至 yll@yxt.com