视频双流
enableDualStreamMode
在发送端开启或关闭双流模式并设置视频小流。
Future<void> enableDualStreamMode(
{required bool enabled, SimulcastStreamConfig? streamConfig});
详情
- 视频大流:高分辨率、高帧率的视频流。
- 视频小流:低分辨率、低帧率的视频流。
开启双流模式后,你可以在收流端调用 setRemoteVideoStreamType 选择接收视频大流或视频小流。
- 该方法适用于发送端发送的所有类型的流,包括且不限于来自摄像头采集的视频流、屏幕共享流、自定义采集的视频流。
- 如果需要在多频道场景下开启视频双流,可以调用 enableDualStreamModeEx 方法。
- 该方法可以在加入频道前后调用。
参数
- enabled
- 是否开启双流模式:
true
: 开启双流模式。false
: (默认) 关闭双流模式。
- streamConfig
- 视频小流的配置。详见 SimulcastStreamConfig。信息当设置 mode 为 disableSimulcastStream 时,再设置 streamConfig 不会生效。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类enableDualStreamModeEx
在发送端开启或关闭双流模式。
Future<void> enableDualStreamModeEx(
{required bool enabled,
required SimulcastStreamConfig streamConfig,
required RtcConnection connection});
详情
- 视频大流:高分辨率、高帧率的视频流。
- 视频小流:低分辨率、低帧率的视频流。
开启双流模式后,你可以在收流端调用 setRemoteVideoStreamType 选择接收视频大流或视频小流。
参数
- enabled
- 是否开启双流模式:
true
: 开启双流模式。false
: (默认) 关闭双流模式。
- streamConfig
- 视频小流的配置。详见 SimulcastStreamConfig。信息当设置 mode 为 disableSimulcastStream 时,再设置 streamConfig 不会生效。
- connection
- Connection 信息。详见 RtcConnection。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类setDualStreamMode
在发送端设置双流模式并设置视频小流。
Future<void> setDualStreamMode(
{required SimulcastStreamMode mode, SimulcastStreamConfig? streamConfig});
详情
- 如果你想修改此行为,可以调用该方法并修改 mode 为 disableSimulcastStream(始终不发送小流)或 enableSimulcastStream(始终发送小流)。
- 如果你在进行修改后又想恢复该默认行为,可重新调用该方法,并将 mode 设置为 autoSimulcastStream。
- 调用该方法并设置 mode 为 disableSimulcastStream 时,跟调用 enableDualStreamMode 并设置 enabled 为
false
的效果相同。 - 调用该方法并设置 mode 为 enableSimulcastStream 时,跟调用 enableDualStreamMode 并设置 enabled 为
true
的效果相同。 - 两种方法均可在加入频道前后调用,若同时使用,则以后调用的方法中的设置为准。
参数
- mode
- 发送视频流的模式。详见 SimulcastStreamMode。
- streamConfig
- 视频小流的配置。详见 SimulcastStreamConfig。信息当设置 mode 为 disableSimulcastStream 时,再设置 streamConfig 不会生效。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类setDualStreamModeEx
在发送端设置双流模式。
Future<void> setDualStreamModeEx(
{required SimulcastStreamMode mode,
required SimulcastStreamConfig streamConfig,
required RtcConnection connection});
详情
- 如果你想修改此行为,可以调用该方法并修改 mode 为 disableSimulcastStream(始终不发送小流)或 enableSimulcastStream(始终发送小流)。
- 如果你在进行修改后又想恢复该默认行为,可重新调用该方法,并将 mode 设置为 autoSimulcastStream。
- 调用该方法并设置 mode 为 disableSimulcastStream 时,跟 enableDualStreamModeEx
(false)
的效果相同。 - 调用该方法并设置 mode 为 enableSimulcastStream 时,跟 enableDualStreamModeEx
(true)
的效果相同。 - 两种方法均可在加入频道前后调用,若同时使用,则以后调用的方法中的设置为准。
参数
- mode
- 发送视频流的模式。详见 SimulcastStreamMode。
- streamConfig
- 视频小流的配置。详见 SimulcastStreamConfig。信息当设置 mode 为 disableSimulcastStream 时,再设置 streamConfig 不会生效。
- connection
- Connection 信息。详见 RtcConnection。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类setRemoteDefaultVideoStreamType
设置默认订阅的视频流类型。
Future<void> setRemoteDefaultVideoStreamType(VideoStreamType streamType);
详情
- SDK 默认在发送端开启小流自适应模式 (autoSimulcastStream),即:发送端仅发送大流,仅主播身份的接收端可以调用该方法发起小流申请,发送端收到申请后开始自动发送小流,此时频道内所有用户均可调用该方法切换到小流订阅模式。
- 当发送端调用 setDualStreamMode 并将 mode 设置为 disableSimulcastStream(始终不发送小流),则调用该方法不生效。
- 当发送端调用 setDualStreamMode 并将 mode 设置为 enableSimulcastStream(始终发送小流),则主播或观众身份的接收端均可调用该方法切换到小流订阅模式。
在接收视频小流时,SDK 会根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
- 该方法只能在加入频道前调用。SDK 不支持你在加入频道后修改默认订阅的视频流类型。
- 如果你既调用了该方法,也调用了 setRemoteVideoStreamType,则 SDK 以 setRemoteVideoStreamType 中的设置为准。
参数
- streamType
默认订阅的视频流类型: VideoStreamType。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类setRemoteVideoStreamType
设置订阅的视频流类型。
Future<void> setRemoteVideoStreamType(
{required int uid, required VideoStreamType streamType});
详情
- SDK 默认在发送端开启小流自适应模式 (autoSimulcastStream),即:发送端仅发送大流,仅主播身份的接收端可以调用该方法发起小流申请,发送端收到申请后开始自动发送小流,此时频道内所有用户均可调用该方法切换到小流订阅模式。
- 当发送端调用 setDualStreamMode 并将 mode 设置为 disableSimulcastStream(始终不发送小流),则调用该方法不生效。
- 当发送端调用 setDualStreamMode 并将 mode 设置为 enableSimulcastStream(始终发送小流),则主播或观众身份的接收端均可调用该方法切换到小流订阅模式。
在接收视频小流时,SDK 会根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
- 该方法在加入频道前后都能调用。
- 如果既调用了该方法,也调用了 setRemoteDefaultVideoStreamType,则 SDK 以该方法中的设置为准。
参数
- uid
- 用户 ID。
- streamType
视频流类型: VideoStreamType。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类setRemoteVideoStreamTypeEx
设置订阅的视频流类型。
Future<void> setRemoteVideoStreamTypeEx(
{required int uid,
required VideoStreamType streamType,
required RtcConnection connection});
详情
- SDK 默认在发送端开启小流自适应模式 (autoSimulcastStream),即:发送端仅发送大流,仅主播身份的接收端可以调用该方法发起小流申请,发送端收到申请后开始自动发送小流,此时频道内所有用户均可调用该方法切换到小流订阅模式。
- 当发送端调用 setDualStreamMode 并将 mode 设置为 disableSimulcastStream(始终不发送小流),则调用该方法不生效。
- 当发送端调用 setDualStreamMode 并将 mode 设置为 enableSimulcastStream(始终发送小流),则主播或观众身份的接收端均可调用该方法切换到小流订阅模式。
在接收视频小流时,SDK 会根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
- 如果发送端已调用 setDualStreamModeEx 并将 mode 设置为 disableSimulcastStream(始终不发送小流),则调用该方法不生效,你需要在发送端重新调用 setDualStreamModeEx 修改设置。
- 观众角色的接收端调用该方法不生效。
参数
- uid
- 用户 ID。
- streamType
视频流类型: VideoStreamType。
- connection
- Connection 信息。详见 RtcConnection。
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类