发布和订阅

  • Flutter

更新时间不可用

enableDualStreamMode

在发送端开启或关闭双流模式并设置视频小流。

Dart
Future<void> enableDualStreamMode(
      {required bool enabled, SimulcastStreamConfig? streamConfig});

废弃

弃用: 从 v4.2.0 起废弃,请改用 setDualStreamMode。

你可以在发流端调用该方法开启或关闭双流模式。双流指视频大流和视频小流:

  • 视频大流:高分辨率、高帧率的视频流。
  • 视频小流:低分辨率、低帧率的视频流。

开启双流模式后,你可以在收流端调用 setRemoteVideoStreamType 选择接收视频大流或视频小流。

注:

  • 该方法适用于发送端发送的所有类型的流,包括且不限于来自摄像头采集的视频流、屏幕共享流、自定义采集的视频流。
  • 如果需要在多频道场景下开启视频双流,可以调用 enableDualStreamModeEx 方法。
  • 该方法可以在加入频道前后调用。

参数

参数名描述
enabled

是否开启双流模式:

  • true: 开启双流模式。
  • false: (默认) 关闭双流模式。
streamConfig

视频小流的配置。详见 SimulcastStreamConfig。

注: 当设置 mode 为 disableSimulcastStream 时,再设置 streamConfig 不会生效。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

enableDualStreamModeEx

在发送端开启或关闭双流模式。

Dart
Future<void> enableDualStreamModeEx(
      {required bool enabled,
      required SimulcastStreamConfig streamConfig,
      required RtcConnection connection});

废弃

弃用: 从 v4.2.0 起废弃,请改用 setDualStreamModeEx。

你可以在发流端调用该方法开启或关闭双流模式。双流指视频大流和视频小流:

  • 视频大流:高分辨率、高帧率的视频流。
  • 视频小流:低分辨率、低帧率的视频流。

开启双流模式后,你可以在收流端调用 setRemoteVideoStreamType 选择接收视频大流或视频小流。

注: 该方法适用于发送端发送的所有类型的流,包括且不限于来自摄像头采集的视频流、屏幕共享流、自定义采集的视频流。

参数

参数名描述
enabled

是否开启双流模式:

  • true: 开启双流模式。
  • false: (默认) 关闭双流模式。
streamConfig

视频小流的配置。详见 SimulcastStreamConfig。

注: 当设置 mode 为 disableSimulcastStream 时,再设置 streamConfig 不会生效。

connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

muteAllRemoteAudioStreams

取消或恢复订阅所有远端用户的音频流。

Dart
Future<void> muteAllRemoteAudioStreams(bool mute);

成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的音频流,包括在调用该方法后加入频道的用户的音频流。

注: SDK 默认在加入频道时订阅所有远端用户的音频流,如果要修改此行为,可以在调用 joinChannel 加入频道时设置 autoSubscribeAudio 为 false,即可在加入频道时取消订阅所有用户的音频流。 如果在调用该方法之后又调用了 enableAudio 或 disableAudio,则后调用的方法会生效。

调用时机

该方法需要在加入频道后调用。

参数

参数名描述
mute

是否取消订阅所有远端用户的音频流:

  • true: 取消订阅所有远端用户的音频流。
  • false:(默认)订阅所有远端用户的音频流。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

muteAllRemoteAudioStreamsEx

取消或恢复订阅所有远端用户的音频流。

Dart
Future<void> muteAllRemoteAudioStreamsEx(
      {required bool mute, required RtcConnection connection});

成功调用该方法后,本地用户会取消或恢复订阅远端用户的音频流,包括在调用该方法后加入频道的用户的音频流。

注:

  • 该方法需要在加入频道后调用。
  • 如果需要在加入频道前设置默认不订阅远端用户音频流,可以在调用 joinChannel 加入频道时设置 autoSubscribeAudio 为 false。

参数

参数名描述
mute

是否取消订阅所有远端用户的音频流:

  • true: 取消订阅所有远端用户的音频流。
  • false:(默认)订阅所有远端用户的音频流。
connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

muteAllRemoteVideoStreams

取消或恢复订阅所有远端用户的视频流。

Dart
Future<void> muteAllRemoteVideoStreams(bool mute);

成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的视频流,包括在调用该方法后加入频道的用户的视频流。

注: SDK 默认在加入频道时订阅所有远端用户的视频流,如果要修改此行为,可以在调用 joinChannel 加入频道时设置 autoSubscribeVideo 为 false,即可在加入频道时取消订阅所有用户的视频流。 如果在调用该方法之后又调用了 enableVideo 或 disableVideo,则后调用的方法会生效。

调用时机

该方法需要在加入频道后调用。

参数

参数名描述
mute

是否取消订阅所有远端用户的视频流。

  • true: 取消订阅所有用户的视频流。
  • false:(默认)订阅所有用户的视频流。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

muteAllRemoteVideoStreamsEx

取消或恢复订阅所有远端用户的视频流。

Dart
Future<void> muteAllRemoteVideoStreamsEx(
      {required bool mute, required RtcConnection connection});

成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的视频流,包括在调用该方法后加入频道的用户的视频流。

参数

参数名描述
mute

是否取消订阅所有远端用户的视频流。

  • true: 取消订阅所有用户的视频流。
  • false:(默认)订阅所有用户的视频流。
connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

muteLocalAudioStream

取消或恢复发布本地音频流。

Dart
Future<void> muteLocalAudioStream(bool mute);

该方法用于控制是否发布本地采集的音频流。如果不发布本地采集的音频流,也不会禁用音频采集设备,所以不影响音频的采集状态。

调用时机

加入频道前后均可调用。

相关回调

成功调用该方法后,本地会触发 onAudioPublishStateChanged 回调;远端会触发 onUserMuteAudio 回调和 onRemoteAudioStateChanged 回调。

参数

参数名描述
mute

是否取消发布本地音频流。

  • true: 取消发布。
  • false:(默认)发布。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

muteLocalAudioStreamEx

取消或恢复发布本地音频流。

Dart
Future<void> muteLocalAudioStreamEx(
      {required bool mute, required RtcConnection connection});

成功调用该方法后,远端会触发 onUserMuteAudio 回调和 onRemoteAudioStateChanged 回调。

注: 该方法不影响音频采集状态,因为没有禁用音频采集设备。

参数

参数名描述
mute

是否取消发布本地音频流。

  • true: 取消发布。
  • false:(默认)发布。
connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

muteLocalVideoStream

取消或恢复发布本地视频流。

Dart
Future<void> muteLocalVideoStream(bool mute);

该方法用于控制是否发布本地采集的视频流。如果不发布本地采集的视频流,也不会禁用视频采集设备,所以不影响视频的采集状态。 相比于调用 enableLocalVideo(false) 关闭本地视频流采集、从而取消发布本地视频流的方法,该方法响应速度更快。

调用时机

加入频道前后均可调用。

相关回调

成功调用该方法后,本地会触发 onVideoPublishStateChanged 回调;远端会触发 onUserMuteVideo 回调和 onRemoteVideoStateChanged 回调。

参数

参数名描述
mute

是否取消发送本地视频流。

  • true: 取消发送本地视频流。
  • false: (默认)发送本地视频流。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

muteLocalVideoStreamEx

取消或恢复发布本地视频流。

Dart
Future<void> muteLocalVideoStreamEx(
      {required bool mute, required RtcConnection connection});

成功调用该方法后,远端会触发 onUserMuteVideo 回调。

注:

  • 该方法不影响视频采集状态,没有禁用摄像头。

参数

参数名描述
mute

是否取消发送本地视频流。

  • true: 取消发送本地视频流。
  • false: (默认)发送本地视频流。
connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

muteRemoteAudioStream

取消或恢复订阅指定远端用户的音频流。

Dart
Future<void> muteRemoteAudioStream({required int uid, required bool mute});

调用时机

该方法需要在加入频道后调用。

相关回调

成功调用该方法后,本地会触发 onAudioSubscribeStateChanged 回调。

参数

参数名描述
uid

指定用户的用户 ID。

mute

是否取消订阅指定远端用户的音频流。

  • true: 取消订阅指定用户的音频流。
  • false:(默认)订阅指定用户的音频流。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

muteRemoteAudioStreamEx

停止/恢复接收指定的音频流。

Dart
Future<void> muteRemoteAudioStreamEx(
      {required int uid,
      required bool mute,
      required RtcConnection connection});

该方法停止/恢复接收某一个指定远端用户的音频流。在加入频道前或后都可以调用。该方法的设置在离开频道后失效。

参数

参数名描述
uid

指定用户的 ID。

mute

是否停止接收指定音频流:

  • true: 停止接收指定音频流。
  • false:(默认)继续接收指定音频流。
connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

muteRemoteVideoStream

取消或恢复订阅指定远端用户的视频流。

Dart
Future<void> muteRemoteVideoStream({required int uid, required bool mute});

调用时机

该方法需要在加入频道后调用。

相关回调

成功调用该方法后,本地会触发 onVideoSubscribeStateChanged 回调。

参数

参数名描述
uid

指定用户的用户 ID。

mute

是否取消订阅指定远端用户的视频流。

  • true: 取消订阅指定用户的视频流。
  • false: (默认)订阅指定用户的视频流。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

muteRemoteVideoStreamEx

停止/恢复接收指定的视频流。

Dart
Future<void> muteRemoteVideoStreamEx(
      {required int uid,
      required bool mute,
      required RtcConnection connection});

该方法停止/恢复接收某一个指定远端用户的视频流。在加入频道前或后都可以调用。该方法的设置在离开频道后失效。

参数

参数名描述
uid

远端用户的 ID。

mute

是否停止接收某个远端用户的视频:

  • true: 停止接收。
  • false: (默认)恢复接收。
connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

setDualStreamMode

在发送端设置双流模式并设置视频小流。

Dart
Future<void> setDualStreamMode(
      {required SimulcastStreamMode mode, SimulcastStreamConfig? streamConfig});

SDK 默认在发送端开启小流自适应模式 (autoSimulcastStream),即发送端不主动发送小流,主播身份的接收端可以调用 setRemoteVideoStreamType 发起小流申请,发送端收到申请后开始自动发送小流。

  • 如果你想修改此行为,可以调用该方法并修改 mode 为 disableSimulcastStream(始终不发送小流)或 enableSimulcastStream(始终发送小流)。
  • 如果你在进行修改后又想恢复该默认行为,可重新调用该方法,并将 mode 设置为 autoSimulcastStream。

注: 该方法和 enableDualStreamMode 的区别与联系如下:

  • 调用该方法并设置 mode 为 disableSimulcastStream 时,跟调用 enableDualStreamMode 并设置 enabled 为 false 的效果相同。
  • 调用该方法并设置 mode 为 enableSimulcastStream 时,跟调用 enableDualStreamMode 并设置 enabled 为 true 的效果相同。
  • 两种方法均可在加入频道前后调用,若同时使用,则以后调用的方法中的设置为准。

参数

参数名描述
mode

发送视频流的模式。详见 SimulcastStreamMode。

streamConfig

视频小流的配置。详见 SimulcastStreamConfig。

注: 当设置 mode 为 disableSimulcastStream 时,再设置 streamConfig 不会生效。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setDualStreamModeEx

在发送端设置双流模式。

Dart
Future<void> setDualStreamModeEx(
      {required SimulcastStreamMode mode,
      required SimulcastStreamConfig streamConfig,
      required RtcConnection connection});

SDK 默认在发送端开启小流自适应模式 (autoSimulcastStream),即发送端不主动发送小流,主播身份的接收端可以调用 setRemoteVideoStreamTypeEx 发起小流申请,发送端收到申请后开始自动发送小流。

  • 如果你想修改此行为,可以调用该方法并修改 mode 为 disableSimulcastStream(始终不发送小流)或 enableSimulcastStream(始终发送小流)。
  • 如果你在进行修改后又想恢复该默认行为,可重新调用该方法,并将 mode 设置为 autoSimulcastStream。

注: 该方法和 enableDualStreamModeEx 的区别与联系如下:

  • 调用该方法并设置 mode 为 disableSimulcastStream 时,跟 enableDualStreamModeEx(false) 的效果相同。
  • 调用该方法并设置 mode 为 enableSimulcastStream 时,跟 enableDualStreamModeEx(true) 的效果相同。
  • 两种方法均可在加入频道前后调用,若同时使用,则以后调用的方法中的设置为准。

参数

参数名描述
mode

发送视频流的模式。详见 SimulcastStreamMode。

streamConfig

视频小流的配置。详见 SimulcastStreamConfig。

注: 当设置 mode 为 disableSimulcastStream 时,再设置 streamConfig 不会生效。

connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setRemoteDefaultVideoStreamType

设置默认订阅的视频流类型。

Dart
Future<void> setRemoteDefaultVideoStreamType(VideoStreamType streamType);

取决于发送端的默认行为和调用 setDualStreamMode 的具体设置,接收端调用该方法分为以下几种情况:

  • SDK 默认在发送端开启小流自适应模式 (autoSimulcastStream),即:发送端仅发送大流,仅主播身份的接收端可以调用该方法发起小流申请,发送端收到申请后开始自动发送小流,此时频道内所有用户均可调用该方法切换到小流订阅模式。
  • 当发送端调用 setDualStreamMode 并将 mode 设置为 disableSimulcastStream(始终不发送小流),则调用该方法不生效。
  • 当发送端调用 setDualStreamMode 并将 mode 设置为 enableSimulcastStream(始终发送小流),则主播或观众身份的接收端均可调用该方法切换到小流订阅模式。

在接收视频小流时,SDK 会根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。

注: 如果你既调用了该方法,也调用了 setRemoteVideoStreamType,则 SDK 以 setRemoteVideoStreamType 中的设置为准。

调用时机

该方法只能在加入频道前调用。SDK 不支持你在加入频道后修改默认订阅的视频流类型。

参数

参数名描述
streamType

默认订阅的视频流类型: VideoStreamType。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setRemoteVideoStreamType

设置订阅的视频流类型。

Dart
Future<void> setRemoteVideoStreamType(
    {required int uid, required VideoStreamType streamType});

取决于发送端的默认行为和调用 setDualStreamMode 的具体设置,接收端调用该方法分为以下几种情况:

  • SDK 默认在发送端开启小流自适应模式 (autoSimulcastStream),即:发送端仅发送大流,仅主播身份的接收端可以调用该方法发起小流申请,发送端收到申请后开始自动发送小流,此时频道内所有用户均可调用该方法切换到小流订阅模式。
  • 当发送端调用 setDualStreamMode 并将 mode 设置为 disableSimulcastStream(始终不发送小流),则调用该方法不生效。
  • 当发送端调用 setDualStreamMode 并将 mode 设置为 enableSimulcastStream(始终发送小流),则主播或观众身份的接收端均可调用该方法切换到小流订阅模式。

在接收视频小流时,SDK 会根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。

注:

  • 该方法在加入频道前后都能调用。
  • 如果既调用了该方法,也调用了 setRemoteDefaultVideoStreamType,则 SDK 以该方法中的设置为准。

参数

参数名描述
uid

用户 ID。

streamType

视频流类型: VideoStreamType。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setRemoteVideoStreamTypeEx

设置订阅的视频流类型。

Dart
Future<void> setRemoteVideoStreamTypeEx(
      {required int uid,
      required VideoStreamType streamType,
      required RtcConnection connection});

取决于发送端的默认行为和调用 setDualStreamMode 的具体设置,接收端调用该方法分为以下几种情况:

  • SDK 默认在发送端开启小流自适应模式 (autoSimulcastStream),即:发送端仅发送大流,仅主播身份的接收端可以调用该方法发起小流申请,发送端收到申请后开始自动发送小流,此时频道内所有用户均可调用该方法切换到小流订阅模式。
  • 当发送端调用 setDualStreamMode 并将 mode 设置为 disableSimulcastStream(始终不发送小流),则调用该方法不生效。
  • 当发送端调用 setDualStreamMode 并将 mode 设置为 enableSimulcastStream(始终发送小流),则主播或观众身份的接收端均可调用该方法切换到小流订阅模式。

在接收视频小流时,SDK 会根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。

注: 如果发送端已调用 setDualStreamModeEx 并将 mode 设置为 disableSimulcastStream(始终不发送小流),则调用该方法不生效,你需要在发送端重新调用 setDualStreamModeEx 修改设置。

参数

参数名描述
uid

用户 ID。

streamType

视频流类型: VideoStreamType。

connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setRemoteVideoSubscriptionOptions

设置远端视频流的订阅选项。

Dart
Future<void> setRemoteVideoSubscriptionOptions(
      {required int uid, required VideoSubscriptionOptions options});

当远端发送双流时,可调用此方法来设置远端视频流的订阅选项。SDK 对远端视频流的默认订阅行为取决于注册的视频观测器类型:

  • 如果注册的是 VideoFrameObserver 观测器,则默认订阅原始数据和编码后的数据。
  • 如果注册的是 VideoEncodedFrameObserver 观测器,则默认仅订阅编码后的数据。
  • 如果注册了两种观测器,则默认跟随后注册的视频观测器。举例来说,如果后注册的是 VideoFrameObserver 观测器,则默认订阅原始数据和编码后的数据。

如果你想修改以上默认行为,或者想针对不同 uid 设置不同的订阅选项,可调用该方法设置。

参数

参数名描述
uid

远端用户 ID。

options

视频流的订阅设置,详见 VideoSubscriptionOptions。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setRemoteVideoSubscriptionOptionsEx

设置远端视频流的订阅选项。

Dart
Future<void> setRemoteVideoSubscriptionOptionsEx(
      {required int uid,
      required VideoSubscriptionOptions options,
      required RtcConnection connection});

当远端发送双流时,可调用此方法来设置远端视频流的订阅选项。

参数

参数名描述
uid

远端用户 ID。

options

视频流的订阅设置,详见 VideoSubscriptionOptions。

connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setSubscribeAudioAllowlist

设置音频订阅白名单。

Dart
Future<void> setSubscribeAudioAllowlist(
      {required List<int> uidList, required int uidNumber});

你可以调用该方法指定想要订阅的音频流。

注:

  • 该方法在加入频道前后均可调用。
  • 音频订阅白名单不受 muteRemoteAudioStream、muteAllRemoteAudioStreams 以及 ChannelMediaOptions 中的 autoSubscribeAudio 的影响。
  • 设置订阅白名单后,如果离开当前频道后再重新加入频道,白名单依然生效。
  • 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。

参数

参数名描述
uidList

音频订阅白名单的用户 ID 列表。 如果你想指定订阅某一发流用户的音频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅白名单中移除,需要重新调用 setSubscribeAudioAllowlist 方法更新音频订阅白名单的用户 ID 列表,使其不包含你想移除的用户的 uid。

uidNumber

白名单用户 ID 列表中的用户数量。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setSubscribeAudioAllowlistEx

设置音频订阅白名单。

Dart
Future<void> setSubscribeAudioAllowlistEx(
      {required List<int> uidList,
      required int uidNumber,
      required RtcConnection connection});

你可以调用该方法指定想要订阅的音频流。

注:

  • 该方法在加入频道前后均可调用。
  • 音频订阅白名单不受 muteRemoteAudioStream、muteAllRemoteAudioStreams 以及 ChannelMediaOptions 中的 autoSubscribeAudio 的影响。
  • 设置订阅白名单后,如果离开当前频道后再重新加入频道,白名单依然生效。
  • 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。

参数

参数名描述
uidList

音频订阅白名单的用户 ID 列表。 如果你想指定订阅某一发流用户的音频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅白名单中移除,需要重新调用 setSubscribeAudioAllowlist 方法更新音频订阅白名单的用户 ID 列表,使其不包含你想移除的用户的 uid。

uidNumber

白名单用户 ID 列表中的用户数量。

connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setSubscribeAudioBlocklist

设置音频订阅黑名单。

Dart
Future<void> setSubscribeAudioBlocklist(
      {required List<int> uidList, required int uidNumber});

你可以调用该方法指定不订阅的音频流。

注:

  • 该方法在加入频道前后均可调用。
  • 黑名单设置实时生效。将已订阅用户加入黑名单后,该用户的音频流也会停止订阅。
  • 音频订阅黑名单不受 muteRemoteAudioStream、muteAllRemoteAudioStreams 以及 ChannelMediaOptions 中的 autoSubscribeAudio 影响。
  • 设置订阅黑名单后,如果离开当前频道后再重新加入频道,黑名单依然生效。
  • 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。

参数

参数名描述
uidList

订阅黑名单的用户 ID 列表。 如果你想指定不订阅某一发流用户的音频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅黑名单中移除,需要重新调用 setSubscribeAudioBlocklist 方法更新订阅黑名单的用户 ID 列表,使其不包含你想移除的用户的 uid。

uidNumber

黑名单用户 ID 列表中的用户数量。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setSubscribeAudioBlocklistEx

设置音频订阅黑名单。

Dart
Future<void> setSubscribeAudioBlocklistEx(
      {required List<int> uidList,
      required int uidNumber,
      required RtcConnection connection});

你可以调用该方法指定不订阅的音频流。

注:

  • 该方法在加入频道前后均可调用。
  • 黑名单设置实时生效。将已订阅用户加入黑名单后,该用户的音频流也会停止订阅。
  • 音频订阅黑名单不受 muteRemoteAudioStream、muteAllRemoteAudioStreams 以及 ChannelMediaOptions 中的 autoSubscribeAudio 影响。
  • 设置订阅黑名单后,如果离开当前频道后再重新加入频道,黑名单依然生效。
  • 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。

参数

参数名描述
uidList

订阅黑名单的用户 ID 列表。 如果你想指定不订阅某一发流用户的音频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅黑名单中移除,需要重新调用 setSubscribeAudioBlocklist 方法更新订阅黑名单的用户 ID 列表,使其不包含你想移除的用户的 uid。

uidNumber

黑名单用户 ID 列表中的用户数量。

connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setSubscribeVideoAllowlist

设置视频订阅白名单。

Dart
Future<void> setSubscribeVideoAllowlist(
      {required List<int> uidList, required int uidNumber});

你可以调用该方法指定想要订阅的视频流。

注:

  • 该方法在加入频道前后均可调用。
  • 视频订阅白名单不受 muteRemoteVideoStream、muteAllRemoteVideoStreams 以及 ChannelMediaOptions 中的 autoSubscribeVideo 的影响。
  • 设置订阅白名单后,如果离开当前频道后再重新加入频道,白名单依然生效。
  • 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。

参数

参数名描述
uidList

视频订阅白名单的用户 ID 列表。 如果你想指定仅订阅某一发流用户的视频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅白名单中移除,需要重新调用 setSubscribeVideoAllowlist 方法更新音频订阅白名单的用户 ID 列表,使其不包含你想移除的用户的 uid。

uidNumber

白名单用户 ID 列表中的用户数量。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setSubscribeVideoAllowlistEx

设置视频订阅白名单。

Dart
Future<void> setSubscribeVideoAllowlistEx(
      {required List<int> uidList,
      required int uidNumber,
      required RtcConnection connection});

你可以调用该方法指定想要订阅的视频流。

注:

  • 该方法在加入频道前后均可调用。
  • 视频订阅白名单不受 muteRemoteVideoStream、muteAllRemoteVideoStreams 以及 ChannelMediaOptions 中的 autoSubscribeVideo 的影响。
  • 设置订阅白名单后,如果离开当前频道后再重新加入频道,白名单依然生效。
  • 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。

参数

参数名描述
uidList

视频订阅白名单的用户 ID 列表。 如果你想指定仅订阅某一发流用户的视频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅白名单中移除,需要重新调用 setSubscribeVideoAllowlist 方法更新音频订阅白名单的用户 ID 列表,使其不包含你想移除的用户的 uid。

uidNumber

白名单用户 ID 列表中的用户数量。

connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setSubscribeVideoBlocklist

设置视频订阅黑名单。

Dart
Future<void> setSubscribeVideoBlocklist(
      {required List<int> uidList, required int uidNumber});

你可以调用该方法指定不订阅的视频流。

注:

  • 该方法在加入频道前后均可调用。
  • 黑名单设置实时生效。将已订阅用户加入黑名单后,该用户的视频流也会停止订阅。
  • 视频订阅黑名单不受 muteRemoteVideoStream、muteAllRemoteVideoStreams 以及 ChannelMediaOptions 中的 autoSubscribeVideo 的影响。
  • 设置订阅黑名单后,如果离开当前频道后再重新加入频道,黑名单依然生效。
  • 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。

参数

参数名描述
uidList

视频订阅黑名单的用户 ID 列表。 如果你想指定不订阅某一发流用户的视频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅黑名单中移除,需要重新调用 setSubscribeVideoBlocklist 方法更新订阅黑名单的用户 ID 列表,使其不包含你想移除的用户的 uid。

uidNumber

黑名单用户 ID 列表中的用户数量。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setSubscribeVideoBlocklistEx

设置视频订阅黑名单。

Dart
Future<void> setSubscribeVideoBlocklistEx(
      {required List<int> uidList,
      required int uidNumber,
      required RtcConnection connection});

你可以调用该方法指定不订阅的视频流。

注:

  • 该方法在加入频道前后均可调用。
  • 黑名单设置实时生效。将已订阅用户加入黑名单后,该用户的视频流也会停止订阅。
  • 视频订阅黑名单不受 muteRemoteVideoStream、muteAllRemoteVideoStreams 以及 ChannelMediaOptions 中的 autoSubscribeVideo 的影响。
  • 设置订阅黑名单后,如果离开当前频道后再重新加入频道,黑名单依然生效。
  • 如果某个用户同时在音频订阅黑名单和白名单中,仅订阅黑名单生效。

参数

参数名描述
uidList

视频订阅黑名单的用户 ID 列表。 如果你想指定不订阅某一发流用户的视频流,将该用户的 ID 加入此列表中。如果你想要将某一用户从订阅黑名单中移除,需要重新调用 setSubscribeVideoBlocklist 方法更新订阅黑名单的用户 ID 列表,使其不包含你想移除的用户的 uid。

uidNumber

黑名单用户 ID 列表中的用户数量。

connection

Connection 信息。详见 RtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

onAudioPublishStateChanged

音频发布状态改变回调。

Dart
final void Function(
      String channel,
      StreamPublishState oldState,
      StreamPublishState newState,
      int elapseSinceLastState)? onAudioPublishStateChanged;

参数

参数名描述
channel

频道名。

oldState

之前的发布状态,详见 StreamPublishState。

newState

当前的发布状态,详见 StreamPublishState。

elapseSinceLastState

两次状态变化时间间隔(毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类

onAudioSubscribeStateChanged

音频订阅状态发生改变回调。

Dart
final void Function(
      String channel,
      int uid,
      StreamSubscribeState oldState,
      StreamSubscribeState newState,
      int elapseSinceLastState)? onAudioSubscribeStateChanged;

参数

参数名描述
channel

频道名。

uid

远端用户的 ID。

oldState

之前的订阅状态,详见 StreamSubscribeState。

newState

当前的订阅状态,详见 StreamSubscribeState。

elapseSinceLastState

两次状态变化时间间隔(毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类

onVideoSubscribeStateChanged

视频订阅状态发生改变回调。

Dart
final void Function(
      String channel,
      int uid,
      StreamSubscribeState oldState,
      StreamSubscribeState newState,
      int elapseSinceLastState)? onVideoSubscribeStateChanged;

参数

参数名描述
channel

频道名。

uid

远端用户的 ID。

oldState

之前的订阅状态,详见 StreamSubscribeState。

newState

当前的订阅状态,详见 StreamSubscribeState。

elapseSinceLastState

两次状态变化时间间隔(毫秒)。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类