视频设置
本文档主要介绍如何使用
RTC Room Engine
SDK 实现视频设置相关功能。前提条件
使用指引
开启/关闭本地摄像头
您可以分别通过调用
openLocalCamera
和closeLocalCamera
两个接口,来开启或关闭您本地的摄像头。openLocalCamera
接口需要传入 选择前后置摄像头 isFront
和 视频质量 quality
两个参数。isFront
为布尔值,true 为打开前置摄像头,false 为打开后置摄像头。quality
是 TUIVideoQuality
类型的枚举。枚举值类型 | 含义 |
quality360P | 低清360P。 |
quality540P | 标清540P。 |
quality720P | 高清720P。 |
quality1080P | 超清1080P。 |
下面以打开前置摄像头并且视频质量为
quality1080P
为例,提供了开启本地麦克风和关闭本地摄像头的示例代码。您可以分别通过调用
openLocalCamera
和closeLocalCamera
两个接口,来开启或关闭您本地的摄像头。openLocalCamera
接口需要传入 选择前后置摄像头 isFront
和 视频质量 quality
两个参数。isFront
为布尔值,true 为打开前置摄像头,false 为打开后置摄像头。quality
是 VideoQuality
类型的枚举。枚举值类型 | 含义 |
Q_360P | 低清360P。 |
Q_540P | 标清540P。 |
Q_720P | 高清720P。 |
Q_1080P | 超清1080P。 |
下面以打开前置摄像头并且视频质量为
Q_1080P
为例,提供了开启本地麦克风和关闭本地摄像头的示例代码。import RTCRoomEnginelet roomEngine = TUIRoomEngine.sharedInstance()// 开启本地摄像头let isFrontCamera = truelet videoQuality: TUIVideoQuality = .quality1080ProomEngine.openLocalCamera(isFront: isFrontCamera, quality: videoQuality) {// 开启成功} onError: { code, message in// 开启失败}// 关闭本地摄像头roomEngine.closeLocalCamera
()
TUIRoomEngine roomEngine = TUIRoomEngine.sharedInstance();// 开启本地摄像头boolean isFrontCamera = true;TUIRoomDefine.VideoQuality videoQuality = TUIRoomDefine.VideoQuality.Q_1080P;roomEngine.openLocalCamera(isFrontCamera, videoQuality, new TUIRoomDefine.ActionCallback() {@Overridepublic void onSuccess() {// 开启成功}@Overridepublic void onError(TUICommonDefine.Error error, String message) {// 开启失败}});// 关闭本地摄像头roomEngine.closeLocalCamera();
设置本地视频画面镜像
以下是一个开启本地视频画面镜像的示例,您可以通过以下代码开启/关闭本地视频画面的镜像。
import RTCRoomEngineimport TXLiteAVSDK_Professionallet trtcCloud = TUIRoomEngine.sharedInstance().getTRTCCloud()let params = TRTCRenderParams()params.mirrorType = .enable // 关闭镜像时,将此处参数设置为 .disable 即可trtcCloud.setLocalRenderParams(params)trtcCloud.setVideoEncoderMirror(true)
TRTCCloud trtcCloud = TUIRoomEngine.sharedInstance().getTRTCCloud();TRTCCloudDef.TRTCRenderParams params = new TRTCCloudDef.TRTCRenderParams();params.mirrorType = TRTC_VIDEO_MIRROR_TYPE_ENABLE; // 关闭镜像时,将此处参数设置为 TRTC_VIDEO_MIRROR_TYPE_DISABLE 即可trtcCloud.setLocalRenderParams(params);trtcCloud.setVideoEncoderMirror(true);
切换摄像头
调用
switchCamera
接口切换摄像头时,需要传入一个 Bool 参数frontCamera
,传入 true 时切换为前置摄像头,传入 false 时切换为后置摄像头。以下是切换为前置摄像头的示例代码:import RTCRoomEngineTUIRoomEngine.sharedInstance().getMediaDeviceManager().switchCamera(true)
TUIRoomEngine.sharedInstance().getMediaDeviceManager().switchCamera(true);
更新本地视频编码质量
更新本地视频编码质量时,需要传入的参数类型
TUIVideoQuality
与上文中提到的相同。下面以默认模式为例,调用updateVideoQuality
接口更新本地视频的编码质量:import RTCRoomEnginelet videoQuality: TUIVideoQuality = .quality1080PTUIRoomEngine.sharedInstance().updateVideoQuality(videoQuality)
更新本地视频编码质量时,需要传入的参数类型
VideoQuality
与上文中提到的相同。下面以默认模式为例,调用updateVideoQuality
接口更新本地视频的编码质量:TUIRoomDefine.VideoQuality videoQuality = TUIRoomDefine.VideoQuality.Q_1080P;TUIRoomEngine.sharedInstance().updateVideoQuality(videoQuality);
设置视频编码器的编码参数
设置视频编码器的编码参数时,需要传入的参数类型
TUIRoomVideoEncoderParams
。下面以默认模式为例,调用updateVideoQualityEx
接口更新本地视频的编码质量:TUIRoomVideoEncoderParams
参数介绍:参数项 | 参数名称 |
分辨率 | videoResolution |
帧率 | fps |
分辨率模式 | resolutionMode |
最高码率 | bitrate |
import RTCRoomEnginelet roomEngine = TUIRoomEngine.sharedInstance()let params = TUIRoomVideoEncoderParams()params.fps = 10 //此处换为您真实需要的值params.resolutionMode = .portrait //竖屏分辨率params.bitrate = .1600 //此处换为您真实需要的值params.videoResolution = .quality720P //此处换位您需要的值roomEngine.updateVideoQualityEx(streamType: .screenStream, params: params)
设置视频编码器的编码参数时,需要传入的参数类型
TUIRoomDefine.RoomVideoEncoderParams
。下面以默认模式为例,调用updateVideoQualityEx
接口更新本地视频的编码质量:TUIRoomDefine.RoomVideoEncoderParams
参数介绍:参数项 | 参数名称 |
分辨率 | videoResolution |
帧率 | fps |
分辨率模式 | resolutionMode |
最高码率 | bitrate |
TUIRoomEngine roomEngine = TUIRoomEngine.sharedInstance();TUIRoomDefine.RoomVideoEncoderParams params = new TUIRoomDefine.RoomVideoEncoderParams();params.videoResolution = TUIRoomDefine.VideoQuality.Q_720P; //此处换为您真实需要的值params.bitrate = 1600; //此处换为您真实需要的值params.fps = 10; //此处换为您真实需要的值params.resolutionMode = TUIRoomDefine.ResolutionMode.PORTRAIT; //竖屏分辨率roomEngine.updateVideoQualityEx(TUIRoomDefine.RoomVideoEncoderParams params)
开始/停止推送本地视频
当您在直播间内时,您可能需要开始/停止推送您的本地视频,您可以通过调用以下接口来实现:
import RTCRoomEnginelet roomEngine = TUIRoomEngine.sharedInstance()// 开始推送本地视频(默认开启)roomEngine.startPushLocalVideo()// 停止推送本地视频roomEngine.stopPushLocalVideo()
TUIRoomEngine roomEngine = TUIRoomEngine.sharedInstance();// 开始推送本地视频(默认开启)roomEngine.startPushLocalVideo();// 停止推送本地视频roomEngine.stopPushLocalVideo();
说明: