tencent cloud

实时互动-教育版

动态与公告
低代码互动课堂产品更名公告
关于低代码互动课堂升级的公告
产品简介
产品概述
应用场景
产品功能
产品优势
购买指南
计费概述
包月套餐说明
计费示例
购买指引
欠费停服资源回收说明
退费说明
Demo 下载及体验
客户端集成指引
Web 和 H5
Android
iOS
Windows 和 macOS
控制台指南
概览
用量统计
应用管理
快速跑通
API 文档
History
Introduction
API Category
Making API Requests
User Login APIs
Room Management APIs
Group Management APIs
Application Configuration APIs
Recording Management APIs
Courseware Management APIs
User Management APIs
Developer APIs
Data Types
Error Codes
界面定制
快速开始
事件监听
监听服务端事件回调
高级功能
自定义业务域名
移动端屏幕分享
移动端预加载
实践教程
排课系统集成
账户体系集成
录制回放集成
课件模块集成
LCIC 政策
隐私政策
数据处理和安全协议
常见问题
计费相关问题
录制相关问题
控制台与 API 授权问题
互动白板涂鸦不跟手问题
屏幕共享相关问题
应对防火墙限制相关问题
集成相关问题(Web)
Electron 相关问题
设备性能要求问题
相关协议
Service Level Agreement

移动端屏幕分享

PDF
聚焦模式
字号
最后更新时间: 2024-12-12 11:36:48

iOS 端

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_ReplayKit'
end
4. 添加下列代码复制到 SampleHandler.m中,将 APPGROUP 改为第 1 步创建的 App Group
#import "SampleHandler.h"
#import <TXLiteAVSDK_ReplayKitExt/TXLiteAVSDK_ReplayKitExt.h>
#import <TCICScreenKit/TCICScreenKit.h>
// 注意:此处的 APPGROUP 需要改成上文中的创建的 App Group Identifier。
#define APPGROUP ""

@interface SampleHandler() <TXReplayKitExtDelegate>
@end
@implementation SampleHandler

- (void)broadcastStartedWithSetupInfo:(NSDictionary<NSString *,NSObject *> *)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




Android 端

说明:
Android 的屏幕分享对版本的要求: Android 5.0 +
除版本要求外,没有其他配置及特殊要求。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈