AVDScreen Class Reference

Inherits from AVDModule : NSObject
Declared in AVDScreen.h
AVDScreen.mm

Overview

房间中屏幕窗口共享模块接口.

房间屏幕窗口共享模块定义房间中屏幕窗口共享相关功能接口。

Other Methods

  publishedScreens

< 屏幕窗口共享模块回调接口代理

@property (nonatomic, retain, readonly) NSMutableArray *publishedScreens

Discussion

< 屏幕窗口共享模块回调接口代理

Declared In

AVDScreen.h

  subscribedScreens

< 已共享屏幕窗口信息列表,数组中存放AVDVideoDevice对象

@property (nonatomic, retain, readonly) NSMutableArray *subscribedScreens

Discussion

< 已共享屏幕窗口信息列表,数组中存放AVDVideoDevice对象

Declared In

AVDScreen.h

+ getScreen:

获取屏幕共享功能模块对象

+ (AVDScreen *)getScreen:(AVDRoom *)room

Return Value

返回屏幕共享模块对象。

Discussion

获取屏幕共享功能模块对象

@param[in] *room 房间对象指针

Declared In

AVDScreen.h

– subscribe:

订阅共屏屏幕窗口视频

- (AVDResult)subscribe:(AVDDeviceId)deviceId

Return Value

返回错误代码。

Discussion

订阅共屏屏幕窗口视频

@param[in] deviceId 屏幕窗口Id,唯一标示一路共享的屏幕窗口视频。

Note: 订阅操作为异步操作,操作结果在 onSubscribeResult 中返回。

Declared In

AVDScreen.h

– unsubscribe:

取消订阅共屏屏幕窗口视频

- (AVDResult)unsubscribe:(AVDDeviceId)deviceId

Return Value

返回错误代码。

Discussion

取消订阅共屏屏幕窗口视频

@param[in] deviceId 屏幕窗口Id,唯一标示一路共享的屏幕窗口视频。

Note: 取消订阅操作为异步操作,操作结果在 onUnsubscribeResult 中返回。

Declared In

AVDScreen.h

– isScreenSubscribed:

判断屏幕窗口是否已经被本用户订阅

- (BOOL)isScreenSubscribed:(AVDDeviceId)deviceId

Discussion

判断屏幕窗口是否已经被本用户订阅

Declared In

AVDScreen.h

– attachRenderWithDeviceId:render:

关联共享的屏幕窗口视频数据和显示对象,在render中显示视频

- (AVDResult)attachRenderWithDeviceId:(AVDDeviceId)deviceId render:(id<AVDVideoRenderer>)render

Return Value

返回错误代码。

Discussion

关联共享的屏幕窗口视频数据和显示对象,在render中显示视频

@param[in] deviceId 屏幕窗口Id,唯一标示一路共享的屏幕窗口视频。 @param[in] render 显示对象接口指针。

Note: 视频数据可以在多个显示对象上显示,而一个显示对象某一时刻只能显示一路视频。 在屏幕窗口视频发布到房间中,或者远端屏幕窗口视频订阅成功后,调用此接口完成视频与显示对象的对接,从而在显示对象中显示视频。

Declared In

AVDScreen.h

– detachRenderWithDeviceId:

解除屏幕窗口视频的所有显示对象关联

- (AVDResult)detachRenderWithDeviceId:(AVDDeviceId)deviceId

Return Value

返回错误代码。

Discussion

解除屏幕窗口视频的所有显示对象关联

@param[in] deviceId 屏幕窗口Id,唯一标示一路共享的屏幕窗口视频。

Declared In

AVDScreen.h

– detachRenderWithRender:

解除某一显示对象与屏幕窗口视频的关联

- (AVDResult)detachRenderWithRender:(id<AVDVideoRenderer>)render

Discussion

解除某一显示对象与屏幕窗口视频的关联

@param[in] render 显示对象接口指针。

Declared In

AVDScreen.h

– publishScreen

发布iOS全屏幕共享流(ps:当前应用内) return 错误代码

- (AVDResult)publishScreen

Discussion

发布iOS全屏幕共享流(ps:当前应用内) return 错误代码

Declared In

AVDScreen.h

– publishScreen:fps:

发布指定分辨率屏幕共享(ps:当前应用内)

- (AVDResult)publishScreen:(ScreenResolutionType)type fps:(int)fps

Parameters

type

分辨率e类型

fps

fps

Return Value

错误代码

Discussion

发布指定分辨率屏幕共享(ps:当前应用内)

Declared In

AVDScreen.h

– publishScreen:catY:catW:catH:

发布屏幕共享可以指定坐标(ps:当前应用内)

- (AVDResult)publishScreen:(NSInteger)catX catY:(NSInteger)catY catW:(NSInteger)catW catH:(NSInteger)catH

Parameters

catX

x

catY

y

catW

w

catH

h

Return Value

错误代码

Discussion

发布屏幕共享可以指定坐标(ps:当前应用内)

Declared In

AVDScreen.h

– publishScreenLandscape:catY:catW:catH:

发布横屏屏幕可以指定坐标(ps:当前应用内)

- (AVDResult)publishScreenLandscape:(NSInteger)catX catY:(NSInteger)catY catW:(NSInteger)catW catH:(NSInteger)catH

Parameters

catX

x

catY

y

catW

w

catH

h

Return Value

错误代码

Discussion

发布横屏屏幕可以指定坐标(ps:当前应用内)

Declared In

AVDScreen.h

– publishScreen:resolution:fps:

发布屏幕共享可以指定坐标(ps:当前应用内)

- (AVDResult)publishScreen:(NSInteger)catY resolution:(ScreenResolutionType)type fps:(int)fps

Parameters

catY

y

type

分辨率类型

fps

fps

Return Value

错误代码

Discussion

发布屏幕共享可以指定坐标(ps:当前应用内)

Declared In

AVDScreen.h

– publishSystemScreen:fps:

发布iOS全屏幕共享流(ps:系统级别可以录制其他app以及桌面 ios12及以上可用)

- (AVDResult)publishSystemScreen:(ScreenResolutionType)type fps:(int)fps

Return Value

错误代码

Discussion

发布iOS全屏幕共享流(ps:系统级别可以录制其他app以及桌面 ios12及以上可用)

Declared In

AVDScreen.h

– unpublishScreen

取消发布 return 错误代码

- (AVDResult)unpublishScreen

Discussion

取消发布 return 错误代码

Declared In

AVDScreen.h

– updateScreenData:level:description:

更新桌面共享信息

- (AVDResult)updateScreenData:(AVDDeviceId)deviceId level:(NSInteger)level description:(NSString *)description

Parameters

deviceId

设备id

level

0

description

描述信息{“video_name”:“客服”}

Return Value

错误代码

Discussion

更新桌面共享信息

Declared In

AVDScreen.h

– stopRecord

停止屏幕采集

- (BOOL)stopRecord

Return Value

bool

Discussion

停止屏幕采集

Declared In

AVDScreen.h

– proceedRecord

继续屏幕采集

- (BOOL)proceedRecord

Return Value

bool

Discussion

继续屏幕采集

Declared In

AVDScreen.h

– setScreenBitrate:min:max:

设置视频动态码率调整的范围,最小和最大比特率,

- (AVDResult)setScreenBitrate:(AVDDeviceId)deviceId min:(NSInteger)minBitrateBps max:(NSInteger)maxBitrateBps

Return Value

返回错误代码。

Discussion

设置视频动态码率调整的范围,最小和最大比特率,

@param[in] deviceId 设备对应ID。 @param[in] minBitrateBps 最小比特率,单位bps @param[in] maxBitrateBps 最大比特率,单位bps

Note: 例如30k/s = 3081000 bps(bits/s)。当min和max相等时,码率固定,将不会动态调整。 需要在桌面共享publish成功后才能做设置。 参考码流: 3840x2160 [80001000, 160001000] 1920x1080 [20001000, 40001000] 1280x720 [10001000, 20001000] 640x480 [5001000, 10001000] 320x240 [2501000, 5001000]

Declared In

AVDScreen.h

– setPublishScreenKeepAliveTime:

设置当前屏幕共享流推送的保活时长

- (void)setPublishScreenKeepAliveTime:(NSInteger)time

Parameters

time

保活时长(单位为毫秒)

Discussion

设置当前屏幕共享流推送的保活时长

Declared In

AVDScreen.h

Other Methods

– getPublishedScreens

获取已共享屏幕窗口信息

- (NSMutableArray *)getPublishedScreens

Return Value

返回错误代码。

Discussion

获取已共享屏幕窗口信息

@param[in,out] items 屏幕窗口集合存放列表。

Declared In

AVDScreen.mm

– getSubscribedScreens

获取已订阅屏幕窗口信息

- (NSMutableArray *)getSubscribedScreens

Return Value

返回错误代码。

Discussion

获取已订阅屏幕窗口信息

@param[in,out] items 屏幕窗口集合存放列表。

Declared In

AVDScreen.mm