更新时间:2024-10-23 GMT+08:00
分享

视频管理

enableLocalVideo

- (int)enableLocalVideo:(BOOL)enable;

功能说明

设置是否开启摄像头采集视频。

请求参数

enable:YES表示开启,NO表示关闭。

返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode
  • 默认开启本地视频采集,关闭不会影响视频流发送。
  • 远端用户订阅了本端用户时,会收到onRemoteVideoStateChange远端流状态变化回调。

setVideoEncoderConfig

- (int)setVideoEncoderConfig:(HWRtcVideoEncode * _Nonnull)encParam;
- (int)setVideoEncoderConfig:(NSArray<HWRtcVideoEncode*>*)videoEncodes totalBitRate:(int)totalBitRate;

功能说明

接口一:大小流模式设置大流发流编码参数。大流必须开启,小流建议开启。

接口二:多流模式,设置发流编码参数。可支持720P到180P的三路流同时推送。

请求参数

  • encParam:视频编码参数。包括流类型、宽、高、码率、帧率等。具体请参见HWRtcVideoEncode
  • videoEncodes:视频编码参数数组,包括流类型、宽、高、码率、帧率等。具体请参见HWRtcVideoEncode
  • totalBitRate:总带宽。
返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode
  • 华为SDK系统有默认的编码设置(720P+360P),一般可以不设置发流编码参数。如果您确实需要自定义发流编码参数,请参考华为SDK系统推荐码表:表56表57,否则可能设置失败。
  • 两重构接口针对不同使用方式并不通用,如果您使用的新选看系列接口setupRemoteView,需配套使用接口一大小流模式设置发流编码参数的setVideoEncoderConfigenableSmallVideoStream接口来自定义您的发流编码参数。同理使用旧的选看接口startRemoteStreamView需配套使用接口二:多流模式设置发流编码参数setVideoEncoderConfig接口。
  • 同一端大小流或多流模式多路流设置的分辨率需保持一致,否则会设置失败。
  • 多终端发流和选看的分辨率不一致时,sdk默认自适应并匹配最接近的分辨率(以实际发流分辨率优先),可能会导致选看时设置的分辨率和实际收到的流分辨率不一致。
  • 调用接口一设置编码参数的分辨率发生变化时,需要先enableSmallVideoStream关闭小流,否则会因为分辨率一致条件限制导致大流设置失败。即涉及分辨率变化时,先关闭小流,再设置大流,再设置小流。
  • ios移动端采集帧率限制15帧,建议设置的编码帧率不要超过15帧

enableSmallVideoStream

- (int)enableSmallVideoStream:(BOOL)enable encParam:(HWRtcVideoEncode * _Nonnull)encParam;

功能说明

大小流模式设置是否开启小流,并设置编码参数。小流选择性开启。

请求参数

  • enable:YES表示开启小流,NO表示关闭小流。
  • encParam:视频编码参数。包括流类型、宽、高、码率、帧率等,具体请参见HWRtcVideoEncode

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

startLocalPreview

- (int)startLocalPreview;

功能说明

开启本地预览。

请求参数

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode
  • 该接口限制在房间外调用,在房间内设置不生效,需要调用stopLocalPreview关闭预览,否则将一直处于预览状态。
  • 在房间内预览:可调用setupLocalView设置有效view开启预览,设置为0表示关闭预览,不需要调用startLocalPreview和stopLocalPreview。
  • 在房间外预览:先调用startLocalPreview开启预览,成功后再调用setupLocalView设置有效view实现预览;进入房间前需调用stopLocalPreview

    关闭预览,否则将一直处于预览状态,影响房间内预览。

stopLocalPreview

- (int)stopLocalPreview;

功能说明

关闭本地预览。

请求参数

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

如果调用了startLocalPreview,需调用stopLocalPreview关闭预览,否则将一直处于预览状态。该接口限制在房间外调用,在房间内设置不生效。

setupLocalVideo

-(int)setupLocalVideo:(HWRtcVideoCanvas *)local viewMode:(HWRtcVideoDisplayMode)viewMode;
- (int)setupLocalVideo:(HWRtcVideoCanvas *)local;

功能说明

设置/取消本地预览视图。该方法设置本地视频显示信息。 App通过调用此接口绑定本地视频流的显示视窗(view),并设置视频显示模式。

请求参数

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

updateLocalRenderMode

-(int)updateLocalRenderMode:(HWRtcVideoDisplayMode)displayMode mirrorMode:(HWRtcVideoMirrorType)mirrorMode;

功能说明

设置本地视频显示模式和镜像模式。

请求参数

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

setupRemoteView

- (int)setupRemoteView:(HWRtcVideoCanvas * _Nonnull)remote;

功能说明

设置远端流渲染视图(新选看接口)。该接口不影响收流。

请求参数

remote: 远端视图,具体请参见HWRtcVideoCanvas。remote为nil时表示关闭远端视图。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

updateRemoteRenderMode

- (int)updateRemoteRenderMode:(NSString *)userid displayMode:(HWRtcVideoDisplayMode)displayMode mirrorMode:(HWRtcVideoMirrorType)mirrorMode 

功能说明

设置远端用户视图渲染模式,镜像模式

请求参数
  • displayMode:视图显示模式,具体请参见HWRtcVideoDisplayMode
  • userid:远端用户的唯一标识。
  • mirrorMode: 镜像模式,具体请参见HWRtcVideoMirrorType。
返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

setRemoteVideoStreamType

- (int)setRemoteVideoStreamType:(NSString * _Nonnull)userId  type:(HWRtcVideoStreamType)type;

功能说明

大小流模式,设置选看指定用户的视频流类型。在通过新选看接口发起选看时调用。

请求参数

  • userId: 远端用户唯一标识。
  • type: 视频流类型,指大流、小流,具体请参见HWRtcVideoStreamType

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

setPriorRemoteVideoStreamType

- (int)setPriorRemoteVideoStreamType:(HWRtcVideoStreamType)type;

功能说明

大小流模式,设置所有订阅的远端视频流类型。默认订阅大流,优先使用setRemoteVideoStreamType接口设置的用户流类型。

请求参数

type:视频流类型,指大流、小流,具体请参见HWRtcVideoStreamType

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

pushLocalVideo

- (int)pushLocalVideo:(BOOL)push;

功能说明

设置是否发送本地视频流。

请求参数

push:YES表示开启视频流发送,NO表示关闭视频流发送。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode
  • 默认开启本地视频发流。
  • 关闭本地视频发流,不影响本地视图采集,仍可见本地视图。
  • 远端用户订阅了本端用户时,会收到onRemoteVideoStateChange远端流状态变化回调。

pullRemoteVideo

- (int)pullRemoteVideo:(NSString *)userid pull:(BOOL)pull;

功能说明

订阅或取消订阅某个用户视频流。只能加入房间后调用。

请求参数

  • userid:远端用户的id,唯一标识。
  • pull:YES表示订阅,NO表示取消订阅。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

pullAllRemoteVideo

- (int)pullAllRemoteVideo:(BOOL)pull;

功能说明

批量订阅或取消订阅当前房间所有远端用户视频流。

请求参数

pull:YES表示订阅,NO表示取消订阅,默认开启订阅。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

startRemoteStreamView

-(int)startRemoteStreamView:(HWRtcVideoCanvas *)remote  streamType:(HWRtcStreamType)streamType disableAdjustRes:(BOOL)disableAdjustRes;

功能说明

设置远端用户渲染视图,并开启收流(选看)。

请求参数
  • remote:远端预览视图,具体请参见HWRtcVideoCanvas
  • streamType:流清晰度,具体请参见HWRtcStreamType
  • disableAdjustRes:下行流码率自适应,默认关闭。YES表示关闭,NO表示开启。若关闭,在网络环境较差情况下可能会有卡顿现象。
返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

该接口为选看的旧接口,通过该接口和updateRemoteRenderMode完成一次完整的选看流程。新的完成选看功能拆分为三个接口:setupRemoteViewpullRemoteVideosetRemoteVideoStreamType接口,将设置渲染模式、窗口句柄、选看的流类型拆分并增加pullRemoteVideo收流控制接口,以实现更细化的选看流程控制(将窗口绑定和收流控制分开)。您可以根据需要选择调用不同的接口组合以实现视频选看。

stopRemoteStreamView

- (int)stopRemoteStreamView:(NSString*)userid;

功能说明

关闭远端用户的渲染视图,并停止收流(停止选看)。

请求参数

userid:远端用户的唯一标识。

返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

新选看建议通过setupRemoteView接口设置窗口为空来停止选看。

setRemoteVideoAdjustResolution

- (int)setRemoteVideoAdjustResolution:(BOOL)enable;

功能说明

设置远端下行视频流分辨率的自适应 。

请求参数

enable:YES表示启动自适应,NO表示关闭自适应。默认开启。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

setVideoEncoderMirror

- (int)setVideoEncoderMirror:(HWRtcVideoMirrorType)mirror;

功能说明

设置视频编码(本地发流)画面镜像模式。

请求参数

mirror:镜像类型,是否开启镜像。具体请参见HWRtcVideoMirrorType

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

该接口不改变本地摄像头的预览画面,但会使远端用户看到的和服务器录制的画面为指定的镜像效果。

startPublishStream

- (int)startPublishStream:(NSString *)taskId urls:(NSArray *)urls transcodeConfig:(TranscodeConfigModel *)configModel;

功能说明

开始旁路推流。

请求参数

  • taskId:任务id,支持自定义,需保证唯一。
  • urls:url数组。
  • configModel:用户id数组和其他参数,具体请参见TranscodeConfigModel

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

updateTransCoding

- (int)updateTransCodingWithTaskId:(NSString *)taskId transcodeConfig:(TranscodeConfigModel *)configModel;

功能说明

更新旁路推流。在收到远端用户重新入会通知时,需要业务主动调用该接口。

请求参数

  • taskId:任务id。
  • configModel:用户id数组和其他参数,具体请参见TranscodeConfigModel

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

stopPublishStream

- (int)stopPublishStream:(NSString*)taskId;

功能说明

停止旁路推流。

请求参数

taskId:任务id,业务自行定义,保证唯一。

返回参数

  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

startAllRemoteView

startAllRemoteView(NSArray <HWRtcVideoRemoteView *>*_Nullable)remoteViews count:(unsigned int)count

功能说明

批量设置远端流视图。

【请求参数】

  • remoteViews:必选,数组类型,元素类型为HWRtcVideoRemoteView类型。
  • count:必选,选看个数,当count为0时,取消所有选看,

    注意:count不能大于remoteViews.count,否则订阅失败。

返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HRTCErrorCode

appendLocalView

- (int)appendLocalView:(HWRtcVideoCanvas *)local

功能说明

设置本地视频另一个窗口显示。只有在SDK渲染的模式下有效。

【请求参数】

local:窗口句柄。null表示取消扩展的窗口显示,类型为HWRtcVideoCanvas

返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

appendRemoteView

- (int)appendRemoteView:(HWRtcVideoCanvas *)remote

功能说明

设置远程视频另一个窗口显示。只有在SDK渲染的模式下有效。

【请求参数】

remote:窗口句柄。null表示取消扩展的窗口显示,类型为HWRtcVideoCanvas

返回参数
  • 0:方法调用成功。
  • > 0:方法调用失败。具体请参见HWRtcErrorCode

相关文档