快速集成腾讯互动直播SDK

详细介绍参见官网地址

1.下载SDK

SDK下载地址
将包中的libs目录拖入到工程中

libs.png

各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


    SearchPath.png
  • 添加系统库
AVFoundation.framework
AudioToolBox.framework
CoreGraphics.framework
CoreMedia.framework
CoreTelephony.framework
CoreVideo.framework
libstdc++.6.tbd
libsqlite3.tbd
libz.tbd
libiconv.tbd
libc++.tbd
  • 关闭Bitcode


    bitcode.png
  • 导入工程中所需要的图片资源
  • 验证
  • 引用头文件
    在ViewController.m开头引用SDK的头文件:
    #import "QAVSDK/QAVSDK.h"
  • 添加调用代码
    在viewDidLoad方法中添加代码:
-(void)viewDidLoad {
    [super viewDidLoad];
    // 打印SDK的版本信息
    NSLog(@"SDK Version = %@", [QAVContext getVersion]);
}
  • 如果报错
    错误.png

    添加系统库
    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目录拖入工程中

TCAdapter.png

pch中导入#import "TCAdapterHeader.h"
targets->Build Phases->compile Sources->

AVG.png

AVF.png

设置 Enable BitCode 为NO,设置 Other Linker Flags 为 -ObjC,增加 PCH 文件

4.导入 CommonLibrary

pct中添加#import "CommonLibrary.h",并添加 Compiler Flags
targets->Build Phases->compile Sources->

JSON.png

5.导入TCShowModel、CustomUI、AppUI、ConstHeader.h

pch文件再导入

#import "ConstHeader.h"
#import "TCShowModelHeader.h"
#import "CustomUIHeader.h"
#import "AppDelegate.h"
#import "AppUIHeader.h"

如果出现以下错误


报错.png

配置 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]];
}

重新编译如果报以下错误


报错.png

原因是工程中重复添加了QAVSDK.framework
删除libs中或者是TCAdapter->TCAVIMAdapter->libs中的任何一个即可

到此如果没有报错说明集成成功。

首先实现IM登录注册

可以参考本人的另一篇文章快速集成腾讯云通讯IMSDK 注册登录功能

登录注册.png

主播发起直播
//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]

直播主播视角


主播.jpg
观众进入直播间
- (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];
}

观众观看直播视角


IMG_0411.jpg

关于自定义直播界面参考以下文件


界面UI.png

目前很多直播app都包含送礼物、打赏功能等功能,可以参考demo中点赞功能原理自己去实现。

项目一般都采用独立模式开发(关于独立模式可以参考官网),具体直播的流程需要根据项目的具体情况去实现

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容