腾讯云实时互动教育版iOS_音视频解决方案_同尘科技
开发环境要求
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 Kit
于 iOS11
才开始支持),调试时真机也尽量在 iOS11
之后。3. 主 App 要支持系统级屏幕分享,需要添加 Background Modes
。
其它
我们建议您在使用 LCICSDK 时,同时也接入腾讯 Bugly,帮助您快速发现并解决异常,同时掌握产品运营动态,及时跟进用户反馈。 接入指南参见 腾讯 Bugly 官网。参见 开发 Demo。
对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?