AVDVideoMixer

Superclass:
NSObject
Declared In:

Introduction

视频混屏模块接口.

视频混屏模块定义房间中视频混屏、布局、订阅功能接口。



Methods

-addSubVideo:
-autoLayoutParams:w:h:x_begin:y_begin:
-clearSubVideos
-removeSubVideo:
-setMainVideo:
-setMainVideo:
-updateSubVideo:zorder:x:y:w:h:

addSubVideo:


- (AVDResult) addSubVideo:(AVDUserId)userId; 
Return Value

返回错误代码。 @sa addMixerOverlayVideo

Discussion

添加视频到混屏视频特定位置

@param[in] userId 摄像头Id,唯一标示一路共享的摄像头视频。 @param[in] zorder 多个视频覆盖时,前后位置,zorder越小,视频越在前面,后面会被覆盖;取值0-n @param[in] x 此视频在混屏视频的左上角左边位置,即x坐标,取值0.0~1.0,内部取值为:width (混屏视频)x X @param[in] y 此视频在混屏视频的左上角上边位置,即y坐标,取值0.0~1.0,内部取值为:height(混屏视频)x Y @param[in] w 此视频在混屏视频的宽度比例,取值0.0~1.0,内部取值为:width (混屏视频)x W @param[in] h 此视频在混屏视频的高度比例,取值0.0~1.0,内部取值为:height(混屏视频)x H


autoLayoutParams:w:h:x_begin:y_begin:


- (AVDResult) autoLayoutParams:(BOOL)isTopdown w:(CGFloat)w 
        h:(CGFloat)h x_begin:(CGFloat)x_begin y_begin:(CGFloat)y_begin; 
Return Value

返回错误代码。

缺省设置为:vl_auto_overlay布局类型,从下往上排列; w=h=0.3f; x_begin=0.7f; y_begin=0.7f;:

Discussion

混屏视频自动布局的布局参数设置

@param[in] isTopdown 各子视频在混屏视频上的排列顺序,true: 从上往下(左到右)排列; false: 从下往上(左到右)排列 @param[in] w 各子视频相对混屏视频的宽度比例,取值0.0~1.0,内部取值为:width (混屏视频)x W @param[in] h 各子视频相对混屏视频的高度比例,取值0.0~1.0,内部取值为:height(混屏视频)x H @param[in] x_begin 初始子视频在混屏视频的左上角左边位置,即x坐标,取值0.0~1.0,内部取值为:width (混屏视频)x x_begin @param[in] y_begin 初始子视频在混屏视频的左上角上边位置,即y坐标,取值0.0~1.0,内部取值为:height(混屏视频)x y_begin


clearSubVideos


- (void) clearSubVideos; 
Return Value

返回错误代码。

Discussion

清理掉所有的混屏视频,包括主视频;如果需要再次开启合屏,需要重新设置混屏视频和Overlay视频。


removeSubVideo:


- (void) removeSubVideo:(AVDUserId)userId; 
Return Value

返回错误代码。

Discussion

移除混屏视频上的某一视频

@param[in] userId 摄像头Id,唯一标示一路共享的摄像头视频。


setMainVideo:


- (AVDResult) setMainVideo:(AVDUserId)userId; 
Discussion

< 视频合屏时采用的拉伸方式


setMainVideo:


- (AVDResult) setMainVideo:(AVDUserId)userId; 
Return Value

返回错误代码。

混屏视频的主视频在vl_auto_overlay模式下可以做切换,缺省为主播视频:

Discussion

切换混屏视频的主视频(若主视频掉线,本地主播视频切为主视频)

@param[in] userId 摄像头Id,唯一标示一路共享的摄像头视频。


updateSubVideo:zorder:x:y:w:h:


- (AVDResult) updateSubVideo:(AVDUserId)userId zorder:(NSUInteger)zorder 
        x:(CGFloat)x y:(CGFloat)y w:(CGFloat)w h:(CGFloat)h; 
Return Value

返回错误代码。

Discussion

更新附加视频在混屏视频上显示的位置

@param[in] userId 摄像头Id,唯一标示一路共享的摄像头视频。 @param[in] zorder 多个视频覆盖时,前后位置,zorder越小,视频越在前面,后面会被覆盖;取值0-n @param[in] x 此视频在混屏视频的左上角左边位置,即x坐标,取值0.0~1.0,内部取值为:width (混屏视频)x X @param[in] y 此视频在混屏视频的左上角上边位置,即y坐标,取值0.0~1.0,内部取值为:height(混屏视频)x Y @param[in] w 此视频在混屏视频的宽度比例,取值0.0~1.0,内部取值为:width (混屏视频)x W @param[in] h 此视频在混屏视频的高度比例,取值0.0~1.0,内部取值为:height(混屏视频)x H


Properties

mixerSize
scaling

mixerSize


@property (nonatomic,
    assign) CGSize mixerSize; 
Discussion

< 各子视频在混屏视频中的布局类型


scaling


@property (nonatomic,
    assign) enum AVDScalingType scaling; 
Discussion

< 合屏视频图像宽,高