详细介绍参见官网地址
1.下载SDK
SDK下载地址
将包中的libs目录拖入到工程中
各framework说明
Analytics : 灯塔统计SDK
xplatform : AVSDK基础库
IMCore : IMSDK内部核心包
ImSDK : 即时通信SDK(封装IMCore)
IMSDKBugly : Bugly上报
QALSDK : 联网层sdk,实现app和后台之间的安全连接通道
QAVSDK : 音视频核心功能包
TLSSDK : 腾讯云TLS登录包
QAVSDK 和platform 为直播功能SDK
IMCore、QALSDK 、TLSSDK、IMSDKBugly、Analytics 为IM通信功能SDK包
2.工程设置
- 支持的平台
SDK支持iOS 7.0及以上系统。 - 开发环境
Xcode 7或更高版本;
iOS SDK 7.0或更高版本。 -
设置Framework Search Paths
在Build Settings > Search Paths > Framework Search Paths中添加$(PROJECT_DIR)/libs
- 添加系统库
AVFoundation.framework
AudioToolBox.framework
CoreGraphics.framework
CoreMedia.framework
CoreTelephony.framework
CoreVideo.framework
libstdc++.6.tbd
libsqlite3.tbd
libz.tbd
libiconv.tbd
libc++.tbd
-
关闭Bitcode
- 导入工程中所需要的图片资源
- 验证
- 引用头文件
在ViewController.m开头引用SDK的头文件:
#import "QAVSDK/QAVSDK.h"
- 添加调用代码
在viewDidLoad方法中添加代码:
-(void)viewDidLoad {
[super viewDidLoad];
// 打印SDK的版本信息
NSLog(@"SDK Version = %@", [QAVContext getVersion]);
}
- 如果报错
添加系统库
libresolv.tbd
- 编译运行
如果前面各个步骤都操作正确的话,HelloSDK工程应该可以顺利编译通过。在Debug模式下运行APP,Xcode的Console窗格会打印出SDK的版本信息。
2016-08-04 10:33:34.387 Live[1566:65971] SDK Version = 1.8.1.280
3.导入TCAdapter
将官方随心播demo中TCAdapter目录拖入工程中
pch中导入
#import "TCAdapterHeader.h"
targets->Build Phases->compile Sources->
设置 Enable BitCode 为NO,设置 Other Linker Flags 为 -ObjC,增加 PCH 文件
4.导入 CommonLibrary
pct中添加#import "CommonLibrary.h"
,并添加 Compiler Flags
targets->Build Phases->compile Sources->
5.导入TCShowModel、CustomUI、AppUI、ConstHeader.h
pch文件再导入
#import "ConstHeader.h"
#import "TCShowModelHeader.h"
#import "CustomUIHeader.h"
#import "AppDelegate.h"
#import "AppUIHeader.h"
如果出现以下错误
配置 AppDelegate ,使用支持登录功能
@interface AppDelegate : IMAAppDelegate
@end
工程Appdelegate 继承IMAAppDelegate
如果项目需要登录成功才能进入主界面可以在这里重写enterLoginUI和enterMainUI方法
+(instancetype)sharedAppDelegate
{
return (AppDelegate *)[UIApplication sharedApplication].delegate;
}
//重写登录界面
- (void)enterLoginUI
{
}
//登录成功进入主界面(ViewController)
- (void)enterMainUI
{
}
//这里必须设置,配置IMAPlatform 中Host 模型
- (void)configAppLaunch
{
[IMAPlatform configHostClass:[TCShowHost class]];
}
重新编译如果报以下错误
原因是工程中重复添加了QAVSDK.framework
删除libs中或者是TCAdapter->TCAVIMAdapter->libs中的任何一个即可
到此如果没有报错说明集成成功。
首先实现IM登录注册
可以参考本人的另一篇文章快速集成腾讯云通讯IMSDK 注册登录功能
主播发起直播
//1.0获取登录用户
TCShowHost *host = (TCShowHost *)[IMAPlatform sharedInstance].host;
//2.0设置直播间参数
TCShowLiveListItem *liveRoom = [[TCShowLiveListItem alloc] init];
//这里直播间设置的标题为登录用户的id
liveRoom.title = [NSString stringWithFormat:@"%@ Live", [host imUserId]];
//3.0配置直播间主播
TCShowUser *user = [[TCShowUser alloc] init];
user.avatar = [host imUserIconUrl];
user.uid = [host imUserId];
user.username = [host imUserName];
liveRoom.host = user;
//4.0配置语音房间和IM房间id,设置为一样即可,为了直播用户的avRoomId、chatRoomId和其他人重复,一般将用户的id设置为avRoomId、chatRoomId
liveRoom.avRoomId = imUserId;
liveRoom.chatRoomId = imUserId;
//开创直播间传入直播间和主播
//TCShowLiveUIViewController 为demo提供的直播试图控制器
TCShowLiveUIViewController *liveShow = [[TCShowLiveUIViewController alloc]initWith:liveRoom user:host]
直播主播视角
观众进入直播间
- (void)endLiveRoom
{
if (![IMAPlatform sharedInstance].isConnected)
{
[HUDHelper alert:@"当前无网络"];
return;
}
//直播间参数,公司项目一般是由服务器返回
TCShowLiveListItem *item = [[TCShowLiveListItem alloc]init];
item.avRoomId =xxx;
item.chatRoomId = xxx;
item.title = [NSString stringWithFormat:@"%@ live",self.selectLive.user.nickname];
//主播参数,公司项目一般是由服务器返回
TCShowUser *host = [[TCShowUser alloc]init];
host.uid =xxx;
host.username = xxx;
item.host = host;
TCShowLiveViewController *vc = [[TCShowLiveViewController alloc] initWith:item user:[IMAPlatform sharedInstance].host];
[[AppDelegate sharedAppDelegate] pushViewController:vc];
}
观众观看直播视角
关于自定义直播界面参考以下文件
目前很多直播app都包含送礼物、打赏功能等功能,可以参考demo中点赞功能原理自己去实现。
项目一般都采用独立模式开发(关于独立模式可以参考官网),具体直播的流程需要根据项目的具体情况去实现