快速集成腾讯互动直播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中点赞功能原理自己去实现。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容