腾讯云实时互动教育版iOS_音视频解决方案_同尘科技

实时互动教育版 1年前 (2023-10-24) 浏览 67

开发环境要求

Xcode 14

前提条件

您已 注册腾讯云 账号,并完成 实名认证 。

步骤一:创建新的应用

1. 登录 实时互动-教育版 控制台,左侧导航栏选择快速跑通。2. 默认进入“创建应用”界面,应用类型可选择“新建应用”,输入应用名称,例如 TestLCIC。若您已创建应用,应用类型项可单击“选择已有应用”。说明:每个账号可免费创建一个试用应用,若当前账号下无试用应用,可直接创建试用应用进行体验。若需创建商用应用,可根据业务需求在 购买页 创建对应版本的应用。3. 根据实际业务需求添加或编辑标签 ,单击下一步。
说明:应用名称只允许下划线、数字或中英文字符。标签用于标识和组织您在腾讯云的各种资源。例如:企业可能有多个业务部门,每个部门有一个或多个 LCIC 应用,这时,企业可以通过给 LCIC 应用添加标签来标记部门信息。标签并非必选项,您可根据实际业务需求添加或编辑。

步骤二:获取 SDKAppId 和密钥(SecretKey)

1. 进入应用管理 > 应用配置,获取 SDKAppId 。2. 进入 访问管理(CAM)控制台 获取密钥,若无密钥,需要在 API 密钥管理中进行新建,具体可参考 访问密钥管理 。

步骤三:导入SDK

pod 集成 SDK LCIC SDK 已经发布到 cocoapods 库,您可以通过配置 podfile 下载安装。

pod 'TCICSDK_Pro', '1.8.0.4'

步骤四:配置 App 权限

在主 App 的 info.plist 中配置 App 的权限,LCIC SDK 需要以下权限:

NSCameraUsageDescription           NSMicrophoneUsageDescription	      NSPhotoLibraryAddUsageDescription  NSPhotoLibraryUsageDescription	  

步骤五:获取进入课堂所需参数

1. 通过 控制台 进入应用管理 > 应用配置,获取 SDKAppId ,即为学校编号(schoolId)信息。2. 通过云 API 接口 CreateRoom 创建课堂,可以获取到课堂号(classid)信息。3. 通过调用云 API 接口 RegisterUser 注册用户,可以获取到对应的用户 ID(userid)信息。4. 通过云 API 接口 LoginUser 登录,可以获取到用户鉴权 token 信息。5. scene、lng、camera、mic、speaker 为非必要参数,如果不设置则使用的是默认值。

字段 类型 含义 备注 必填
schoolId int 学校编号 通过控制台进入应用管理 > 应用配置,获取 SDKAppId 
classId long 课堂编号 通过 CreateRoom 接口创建返回 RoomId 获取
userId string 用户账号 通过  RegisterUser  接口获取
token string 后台鉴权参数 通过  LoginUser  接口获取
scene string 场景名称 用于区分不同的定制布局,通过 SetAppCustomContent 接口配置[roomConfig setValue:@”scene_name” forKey:@”scene”];
lng string 语言参数 可传入zh-Hans、en,默认为中文(zh-Hans)。可通过此接口设置[roomConfig setValue:@”en” forKey:@”language”];
camera int 初始化开启摄像头 1为开启摄像头,0为关闭摄像头,可通过roomConfig.jsParams 设置
mic int 初始化开启麦克风 1为开启麦克风,0为关闭麦克风,可通过roomConfig.jsParams 设置
speaker int 初始化开启扬声器 1为开启扬声器,0为关闭扬声器,可通过roomConfig.jsParams 设置

步骤六:调起组件主页面

只需传递 4 个参数就可调起 LCIC 组件主页面,分别为学校编号、课堂编号、用户账号和 token。

TCICClassConfig *roomConfig = [[TCICClassConfig alloc] init];roomConfig.schoolId = 123456;roomConfig.userId = "test";roomConfig.token = "test_token";roomConfig.classId = 654321;[roomConfig setValue:@"en" forKey:@"language"]; //语言设置,可选[roomConfig setValue:@"scene_name" forKey:@"scene"]; //可根据场景配置不同的定制,可选[roomConfig setValue:@(0) forKey:@"preferPortrait"]; //默认横屏,可选(0 是横屏,1是竖屏)
TCICClassController *vc = [TCICClassController classRoomWithConfig:roomConfig];if (vc) {  [(UINavigationController *)self.window.rootViewController pushViewController:vc animated:YES];}else {  NSLog(@"参数有误");}

如果您需要监听退出课堂通知,可以通过注册 TCICExitClassRoomCompleteNotify 的本地广播,参见如下代码:

[[NSNotificationCenter defaultCenter] addObserver:self                                       selector:@selector(yourselector)                                       name:@"TCICExitClassRoomCompleteNotify" object:nil];

步骤七:SDK授权申请

需要您发送邮件申请 SDK 权限。请按以下模板发送邮件至 tylerding@tencent.com 联系我们。信息确认无误的情况下我们将会在1个工作日完成。说明:包名用于快直播播放器签名授权,请提供所需授权的正式应用的 App Name、Package Name 和 Bundle ID 信息,并发送邮件。
收件人:tylerding@tencent.com主题实时互动-教育版 iOS SDK 授权申请内容公司名称:xxx 有限公司个人姓名:联系方式:App Name:Package Name (Android): Bundle ID (iOS): 

高级功能:移动端屏幕分享

1. 创建App Group, 参见 TRTC 官网文档 > 步骤 1:创建 App Group。2. 创建Broadcast Upload Extension,参见 TRTC 官网文档 > 步骤 2:创建 Broadcast Upload Extension。3. 为新创建的 Target,依赖依赖 TCICSDK_ReplayKit,如下,之后重新 pod install 即可。

target '新target名' do# Comment the next line if you don't want to use dynamic frameworks# use_frameworks!pod 'TCICSDK_Pro_ReplayKit'end

4. 添加下列代码复制到 SampleHandler.m中,将 APPGROUP 改为第 1 步创建的 App Group

#import "SampleHandler.h"#import #import // 注意:此处的 APPGROUP 需要改成上文中的创建的 App Group Identifier。#define APPGROUP ""
@interface SampleHandler() @end@implementation SampleHandler
- (void)broadcastStartedWithSetupInfo:(NSDictionary *)setupInfo {    [[TXReplayKitExt sharedInstance] setupWithAppGroup:APPGROUP delegate:self];
    [[TCICScreenKit sharedScreenKit] onScreenKitStarted];}- (void)broadcastPaused {    // User has requested to pause the broadcast. Samples will stop being delivered.    [[TCICScreenKit sharedScreenKit] onScreenKitPaused];}- (void)broadcastResumed {    // User has requested to resume the broadcast. Samples delivery will resume.    [[TCICScreenKit sharedScreenKit] onScreenKitResumed];}- (void)broadcastFinished {    [[TXReplayKitExt sharedInstance] finishBroadcast];    // User has requested to finish the broadcast.    [[TCICScreenKit sharedScreenKit] onScreenKitFinished];}#pragma mark - TXReplayKitExtDelegate- (void)broadcastFinished:(TXReplayKitExt *)broadcast reason:(TXReplayKitExtReason)reason{    NSString *tip = @"";    switch (reason) {        case TXReplayKitExtReasonRequestedByMain:            tip = @"屏幕共享已结束";            break;        case TXReplayKitExtReasonDisconnected:            tip = @"应用断开";            break;        case TXReplayKitExtReasonVersionMismatch:            tip = @"集成错误(SDK 版本号不相符合)";            break;    }    NSError *error = [NSError errorWithDomain:NSStringFromClass(self.class) code:0 userInfo:@{        NSLocalizedFailureReasonErrorKey:tip    }];    [self finishBroadcastWithError:error];}- (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer withType:    (RPSampleBufferType)sampleBufferType {    switch (sampleBufferType) {        case RPSampleBufferTypeVideo:            [[TXReplayKitExt sharedInstance] sendVideoSampleBuffer:sampleBuffer];            break;        case RPSampleBufferTypeAudioApp:            // Handle audio sample buffer for app audio            break;        case RPSampleBufferTypeAudioMic:            // Handle audio sample buffer for mic audio            break;
        default:            break;    }}@end

5. 对接主 App 端的接收逻辑:目前主 App 中的使用 TCICSDK,已支持系统屏幕分享相关逻辑,只需要业务方配置好 App Group 即可,且在进入课堂前,设置 AppGroup 即可。


TCICClassConfig *roomConfig = [[TCICClassConfig alloc] init];roomConfig.userId = "test";roomConfig.token = "test_token";roomConfig.classId = 123454;roomConfig.schoolId = xxxxx;
// 通过KVC方式设置AppGroup[roomConfig setValue:@"group.com.xx.xxxx" forKey:@"appGroup"];

注意事项

1. TCICSDK 中已支持屏幕分享的触发按钮,具体可参见 TRTC 官网文档 > 步骤 4:增加屏幕分享的触发按钮(可选),但该功能有限制条件。1.1 屏幕分享的触发按钮只支持 iOS12 以上,同时需要创建的工程,不依赖 Scene 生命周期,如果代码中已支持 Scenedelegate,可参见 Xcode 11 删除 Scenedelegate,进行移除。以 Demo 为例,弹出效果如下,单击开始直播即可。
1.2 对于 iOS11 的机型,需要业务侧引导用户从远程控制中长按录屏进行触发,并选择业务自创建的 Broadcast Upload Extension 进行触发,下图以腾讯会议为例:
2. 创建的 Upload Extension 的 Deployment target 配置在 iOS 11.0 (Replay KitiOS11 才开始支持),调试时真机也尽量在 iOS11 之后。3. 主 App 要支持系统级屏幕分享,需要添加 Background Modes。

其它

我们建议您在使用 LCICSDK 时,同时也接入腾讯 Bugly,帮助您快速发现并解决异常,同时掌握产品运营动态,及时跟进用户反馈。 接入指南参见 腾讯 Bugly 官网。参见 开发 Demo。

对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?