快速集成腾讯互动直播SDK

作者: captain_Lu | 来源:发表于2016-08-04 12:50 被阅读1976次

详细介绍参见官网地址

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中点赞功能原理自己去实现。

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

相关文章

网友评论

  • 雪中客:大哥可以求一个demo吗 官方的实在看不懂
  • 00d2c43ab44f:求Android 集成教程
  • 一只霸天犬v:请问我把demo中 SDKID 和accountType修改了 直接运行 会报错"用业务公钥验证票据失败 如果是工具生成的公私钥,请到腾讯云应用配置页面上传对应的公钥" 我申请的是托管模式 系统生成公钥
  • 超_iOS:请问拉取到列表后点击进去为什么老是崩啊
    captain_Lu:@李二超 无论使用友盟还是单独的去集成微信、微博等等官方的SDK来实现第三方登录,本质是一样的,友盟只是将各家官方的SDK集合封装在一起,方便开发者快速的集成微信、微博等等多个第三方登录,开发者不用一个一个单独的去集成微信、微博第三方登录功能
    超_iOS:@captain_Lu 传错数据了.请教第三方登录能用友盟之类的么?
    captain_Lu:@李二超 崩溃报错的是什么错误
  • MdWhat:哦哦 已经找到了.... :sweat:
  • MdWhat:大神 问一下

    4.导入 CommonLibrary

    你的这一步的 CommonLibrary 去哪里找呢 我找了半天都找不到

    这个不是你自己的吧?
    大牛大神:@某人超过 我居然在这里看到你NB

本文标题:快速集成腾讯互动直播SDK

本文链接:https://www.haomeiwen.com/subject/fuscsttx.html