录屏直播

#import "VHLivePublisher.h"

开始直播

/**
 *  开始录屏直播推流 注意必须是 iOS 12及以上系统使用
 *  @param roomID       房间ID
 *  @param accessToken  accessToken
 *  @param extension    extension App bundleID
 */
- (BOOL)startPublish:(NSString*)roomID accessToken:(NSString*)accessToken extension:(NSString*)extension;

停止直播

/**
 *  停止推流
 */
- (BOOL)stopPublish;

步骤

步骤:

步骤一

设置groupid [VHLiveBase setAppGroup:@"xxxx"];

步骤二

在需要录屏功能App工程中 添加target

在子app中引入 VHScreenShareService 中的库文件, 设置正确库文件路径

在SampleHandler.m 后缀修改为 SampleHandler.mm SampleHandler.mm中内容直接使用以下内容覆盖

#import "SampleHandler.h"
#import "VHScreenShareService.h"

@interface SampleHandler()<VHScreenShareServiceDelegate>
@property (nonatomic,strong)VHScreenShareService *screenShareService;
@end


@implementation SampleHandler
- (instancetype)init
{
    self = [super init];
    if(self)
    {
        self.screenShareService = [[VHScreenShareService alloc]initWithAppGroup:@"group.com.vhall.BroadcastNew.group"];
        self.screenShareService.delegate = self;
    }
    return self;
}

- (void)dealloc
{
    self.screenShareService = nil;
}


- (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.screenShareService broadcastStartedWithSetupInfo:setupInfo];
}

- (void)broadcastPaused {
    // User has requested to pause the broadcast. Samples will stop being delivered.
    [self.screenShareService broadcastPaused];
}

- (void)broadcastResumed {
    // User has requested to resume the broadcast. Samples delivery will resume.
    [self.screenShareService broadcastResumed];
}

- (void)broadcastFinished {
    // User has requested to finish the broadcast.
    [self.screenShareService broadcastFinished];
}

- (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer withType:(RPSampleBufferType)sampleBufferType {
    
    [self.screenShareService processSampleBuffer:sampleBuffer withType:sampleBufferType];
}
- (void)VHScreenShareServiceFinishBroadcastWithError:(NSError *)error
{
    [self finishBroadcastWithError:error];
}
@end