iOS直播入门及进阶第三方selector

快速集成腾讯互动直播SDK

2016-08-04  本文已影响1976人  captain_Lu

详细介绍参见官网地址

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.工程设置

AVFoundation.framework
AudioToolBox.framework
CoreGraphics.framework
CoreMedia.framework
CoreTelephony.framework
CoreVideo.framework
libstdc++.6.tbd
libsqlite3.tbd
libz.tbd
libiconv.tbd
libc++.tbd
-(void)viewDidLoad {
    [super viewDidLoad];
    // 打印SDK的版本信息
    NSLog(@"SDK Version = %@", [QAVContext getVersion]);
}

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

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

上一篇 下一篇

猜你喜欢

热点阅读