暖暖视频免费观**,国产免费美女被艹视频,毛片一级毛片,不卡三级

智慧服務(wù),成就美好體驗 項目咨詢

主頁 > 服務(wù)與支持 > 開發(fā)平臺 > 客戶端SDK參考 > iOS UI SDK > 業(yè)務(wù)開發(fā) 會議中屏幕共享

入門使用

會議中屏幕共享

更新時間:2019-11-20

描述

iOS端屏幕共享需要進行iOS Extension的開發(fā)進行實現(xiàn),以下步驟用于說明如何集成SDK進行屏幕共享Extension的開發(fā),另外由于相關(guān)特性對系統(tǒng)能力的依賴,因此需要iOS12及以上版本才能支持屏幕共享功能。

業(yè)務(wù)流程

  1. 準備過程:iOS應(yīng)用主工程、Extension的開發(fā)所需要的證書和文件。
  2. 以下以CloudLinkMeetingDemo為例進行說明,打開主工程中的AppGroup開關(guān),并設(shè)置在1中申請到的可用的appid。

  3. 創(chuàng)建新的Extensions Target,選擇File---New---Target--Broadcast Upload Extension,創(chuàng)建Extension target。

  4. 打開Extensions里面的appgroup開關(guān)。

  5. 設(shè)置entitlements文件中的appGroups為1中申請的值。

  6. 在Extensions 的“Build Phases > Link Binary With Libraries”中添加如下庫。

    ReplayKit.framework:系統(tǒng)庫

    CloudLinkMeetingScreenShare.framework:SDK提供的庫

  7. 在Extensions 的SampleHandler.m文件中添加代碼如下。
    #import "SampleHandler.h"
    #import <CLoudLinkMeetingScreenShare/ScreenShareManager.h>
    
    @interface SampleHandler()<ScreenShareManagerDelegate>
    @property (strong, nonatomic) ScreenShareManager *screenShareManager;
    
    @end
    
    @implementation SampleHandler
    
    - (instancetype)init {
        if (self = [super init]) {
            self.screenShareManager = [[ScreenShareManager alloc] initWithAppGroupIdentifier:自己申請的appGroupIdentifier];
            self.screenShareManager.delegate = self;
        }
        return self;
    }
    
    
    - (void)broadcastStartedWithSetupInfo:(NSDictionary<NSString *,NSObject *> *)setupInfo {
        // User has requested to start the broadcast. Setup info from the UI extension can be supplied but optional.
        [self.screenShareManager broadcastStartedWithSetupInfo:setupInfo];
    }
    
    - (void)dealloc {
        self.screenShareManager = nil;
    }
    
    - (void)broadcastPaused {
        // User has requested to pause the broadcast. Samples will stop being delivered.
        [self.screenShareManager broadcastPaused];
    }
    
    - (void)broadcastResumed {
        // User has requested to resume the broadcast. Samples delivery will resume.
        [self.screenShareManager broadcastResumed];
    }
    
    - (void)broadcastFinished {
        // User has requested to finish the broadcast.
        [self.screenShareManager broadcastFinished];
    }
    
    - (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer withType:(RPSampleBufferType)sampleBufferType {
    
        switch (sampleBufferType) {
            case RPSampleBufferTypeVideo:
                // Handle video sample buffer
                [self.screenShareManager processSampleBuffer:sampleBuffer withType:RPSampleBufferTypeVideo];
                break;
            case RPSampleBufferTypeAudioApp:
                // Handle audio sample buffer for app audio
                break;
            case RPSampleBufferTypeAudioMic:
                // Handle audio sample buffer for mic audio
                break;
    
            default:
                break;
        }
    }
    
    - (void)screenShareManagerFinishBroadcastWithError:(NSError *)error {
        [self finishBroadcastWithError: error];
    }
    
    @end
     
  8. 在主工程中設(shè)置groupId,在clm_init之前配置跟extension中相同的groupId,示例代碼如下:
    CloudLinkMeeting *clm = [CloudLinkMeeting sharedInstance];
    clm.screenShareGroupId = 跟extension中相同的groupId;
    //開始ClooudLinkMeeting的其他接口調(diào)用
     
  9. 完成編碼。
  10. 屏幕共享有兩種開啟方式,只能在會議中進行。
    1. 會議中點擊下方的屏幕共享按鈕,選擇應(yīng)用進行屏幕共享。

       

    2. 會議中打開手機的控制中心,長按錄制按鈕,彈出菜單中選擇。