# 视频管理

# 启用视频模块

void enableVideo();

该方法用于打开视频模式。可以在加入频道前或者通话中调用,在加入频道前调用,则自动开启视频模式,在通话中调用则由音频模式切换为视频模式。调用disableVideo 方法可关闭视频模式。

成功调用该方法后,远端会触发 onUserEnableVideo(true) 回调。

注解

  • 该方法设置的是内部引擎为开启状态,在频道内和频道外均可调用,且在 leaveChannel 后仍然有效。

# 关闭视频模块

void disableVideo();

关闭视频模块。

该方法用于关闭视频。可以在加入频道前或者通话中调用,在加入频道前调用,则自动开启纯音频模式,在通话中调用则由视频模式切换为纯音频频模式。调用 enableVideo 方法可开启视频模式。

成功调用该方法后,远端会触发 onUserEnableVideo(false) 回调。

注解

  • 该方法设置的是内部引擎为禁用状态,在频道内和频道外均可调用,且在 leaveChannel 后仍然有效。

# 初始化本地视图

void setupLocalVideo(VideoCanvas local);

初始化本地视图。

该方法初始化本地视图并设置本地用户视频显示信息,只影响本地用户看到的视频画面,不影响本地发布视频。 调用该方法绑定本地视频流的显示视窗(View),并设置本地用户视图的渲染模式和镜像模式。

注解

  • 请在主线程调用该方法。
  • 如果你希望在通话中更新本地用户视图的渲染或镜像模式,请使用 setLocalRenderMode 方法。

VideoCanvas参数

参数 描述
view 本地视频View,通过CreateRendererView创建生成

# 初始化远端用户视图

void setupRemoteVideo(VideoCanvas remote);

初始化远端用户视图。

该方法绑定远端用户和显示视图,并设置远端用户视图在本地显示时的渲染模式和镜像模式,只影响本地用户看到的视频画面。

注解

  • 请在主线程调用该方法。 如果你希望在通话中更新远端用户的渲染或镜像模式,请使用 setRemoteRenderMode 方法。

VideoCanvas参数

参数 描述
view 远端视频View,通过CreateRendererView创建生成
code 视频编码
remoteStream 远端视频流

# 创建RendererView

SurfaceView CreateRendererView(Context context);

创建 RendererView。

该方法创建视频 RendererView,返回 SurfaceView 的类型。View 的操作和布局由 app 管理, Agora SDK 在 app 提供的 View 上进行渲染。显示视频视图必须调用该方法,而不是直接调用 SurfaceView。

如果你需要使用 SurfaceView,请调用本方法;如果你需要使用 TextureView,请调用 CreateTextureView 方法

注解

  • 请在主线程调用该方法。

参数

参数 描述
context 安卓活动 (Android Activity) 的上下文。

# 创建 TextureView

TextureView CreateTextureView(Context context);

创建 TextureView。

该方法创建 TextureView,适用于需要对视频画面进行缩放、旋转和平移的场景,如屏幕共享。View 的操作和布局由 app 管理,SDK 仅在 app 提供的 View 上进行渲染。

如果你需要使用 TextureView,请调用本方法。如果你需要使用 SurfaceView,请调用 CreateRendererView 方法。

参数

参数 描述
context 安卓活动 (Android Activity) 的上下文。

# 开启视频预览

void startPreview();

开启本地视频预览。

注解

  • 本地预览默认开启镜像功能。

# 停止视频预览

void stopPreview();

该方法用于停止视频预览。

# 开启/关闭本地视频采集

void enableLocalVideo(boolean 	enabled);

开启/关闭本地视频采集。

该方法禁用或重新启用本地视频采集。不影响接收远端视频。

调用 enableVideo 后,本地视频即默认开启。 你可以调用 enableLocalVideo(false) 关闭本地视频采集。关闭后如果想重新开启,则可调用 enableLocalVideo(true)。

参数

参数 描述
enabled 是否启用本地视频:true: 开启本地视频采集和渲染(默认)false: 关闭使用本地摄像头设备。关闭后,远端用户会接收不到本地用户的视频流;但本地用户依然可以接收远端用户的视频流。

# 停止接收指定视频流

void muteRemoteVideoStream(String uid )	

停止接收指定视频流。

参数

参数 描述
uid 指定的用户 ID。

# 停止/恢复接收所有视频流

void muteAllRemoteVideoStreams(boolean 	muted);

停止/恢复接收所有视频流

参数

参数 描述
muted 是否停止接收所有远端视频流:true: 停止接收所有远端视频流。false: (默认)继续接收所有远端视频流。

# 切换前置/后置摄像头

int switchCamera(boolean 	muted);

切换前置/后置摄像头。

返回

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

# 开/关视频双流模式

int enableDualStreamMode(boolean 	enabled);

开/关视频双流模式。

该方法设置单流或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。其中,大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。

参数

参数 描述
enabled 指定双流或者单流模式:true: 双流。false: (默认)单流。

# 免提/听筒模式切换

int setSpeakerphoneOn(boolean 	enabled);

免提/听筒模式切换。

该方法设置免提/听筒模式切换,在加入频道前后都可设置。

参数

参数 描述
enabled 指定免提或听筒模式:true: 免提模式。false: 听筒模式。