iOS 接入说明文档
接入临境直播观看 SDK 首先遵循以下步骤:
- 配置 SDK 集成环境
- 按照以下接入文档集成代码
SDK 集成环境配置
开发与运行环境
- Xcode 13.3.1
- iOS 8.0 及以上版本
Cocoapods 快速集成
暂不支持
手动集成
- 将YXTLivePullComponent.framework集成到工程中
- 部分资源需要从根目录访问,将另外携带的资源文件放入主工程
声明SDK需要的权限
info.plist 设置权限:
关闭bitcode
将YXTLivePullComponent不支持bitcode,需要将Enable Bitcode关闭
解决打包失败
Swift工程在打包时如果某个framework含有模拟器架构就会出现冲突出现IPA processing failed错误,解决方法是在打包时将YXTLivePullComponent中的可执行文件的模拟器架构删除;
- 永久删除模拟器架构
- 添加脚本,在打包时将自动移除模拟器架构,但不影响YXTLivePullComponent本身
脚本内容:
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
EXTRACTED_ARCHS=()
for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done
echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"
echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
done
SDK集成配置
1、环境配置
#import "YXTLivePullComponent/YXTLivePullComponent.h"
/**
环境配置
@param environment 环境配置(0:测试环境;1:正式环境)
*/
[[YXTLivePullSDK getInstance] configLivePullWithApiEnvironment:LPullEnvironmentDevelopment];
[YXTLivePullSDK getInstance].isUsedOutside = YES;
[YXTLiveBaseSDK getInstance].isUsedOutside = YES;
2、跳转直播播放页面
#import "YXTLivePullComponent/YXTLivePullComponent.h"
NSMutableDictionary *params = [NSMutableDictionary dictionary];
[params setValue:@"" forKey:kLivePullSDKeyRoomCode];//直播室roomCode 必传
[params setValue:@"" forKey:kLivePullSDKeyUserId];//用户userId 必传
[params setValue:@"" forKey:kLivePullSDKeyUserName];//用户昵称 必传
[params setValue:@"" forKey:kLivePullSDKeyAvatar];//用户头像
[params setValue:@"" forKey:kLivePullSDKeyPassword];//观看密码
[params setValue:@"" forKey:kLivePullSDKeyLoginName];//产线用户登陆名称
[params setValue:@"" forKey:kLivePullSDKeyUserPoint];//用户积分
[params setValue:@YES forKey:kLivePullSDKeyCannotEditUserInfo];//默认传Yes
[[YXTLivePullSDK getInstance] loginChatRoomWithParam:params inNav:当前的navigationController];
3、绑定微信功能接入
设置微信绑定功能需要添加以下操作:
注:若不需要微信绑定功能,不需要接入改板块内容。
1. 在微信开放平台申请相应 appId;
2. 在 AppDelegate 中初始化微信
#import "WXApi.h"
在 appdelegate 文件下 didFinishLaunchingWithOptions 方法里添加
[WXApi registerApp:@"微信key"];
[[YXTLivePullSDK getInstance]setIsNeedBindUserInfo:YES];//打开微信绑定
3. 在 info—>URL Types 里添加微信跳转配置
4、支持后台播放功能接入
设置后台播放功能需要添加以下操作:
常见问题
1、PC 推流时,直播界面未横竖屏切换失效或项目横竖屏不受控制问题
无法横竖屏切换
解答:要求项目必须默认支持横竖屏切换默认支持横竖屏切换,固定页面关闭横竖屏切换失败
解答:需要自定义 UINavigationController
并实现 shouldAutorotate 方法-(BOOL)shouldAutorotate
{
return self.topViewController.shouldAutorotate;
}
横屏状态打开 App,启动页变成横屏
解答:在 AppDelegate 里- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions 方法里设置竖屏显示;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
return YES;
}
2、开始观看直播时,无法正常进入
- 控制台log提示“直播参数缺失:kLivePullSDKeyRoomCode value 不存在”
解答:kLivePullSDKeyRoomCode 值为空,此参数必传 - 控制台log提示“直播参数缺失:kLivePullSDKeyUserName value 不存在”
解答:kLivePullSDKeyUserName 值为空,此参数必传
关于作者
江苏云学堂网络科技有限公司开发人员,如有问题请发送邮件至 yll@yxt.com。