sendSEIMessage method

Future<int?> sendSEIMessage(
  1. ArrayBuffer message,
  2. int repeatCount,
  3. SEICountPerFrame mode
)

@detail api @hiddensdk(audiosdk) @author wangzhanqiang @brief 通过视频帧发送 SEI 数据。
在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。 @param message SEI 消息,建议每帧 SEI 数据总长度不超过 4 KB。超过长度限制的消息会被丢弃。 @param repeatCount 消息发送重复次数。取值范围是 0, max{29, \%{视频帧率}-1}。推荐范围 2,4
调用此接口后,这些 SEI 数据会添加到从当前视频帧开始的连续 \%{repeatCount}+1 个视频帧中。 @param mode SEI 发送模式,参看 SEICountPerFrame{@link #SEICountPerFrame}。 @return - >= 0: 将被添加到视频帧中的 SEI 的数量。 - < 0: 发送失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明。 @note - 每秒发送的 SEI 消息数量建议不超过当前的视频帧率。在语音通话场景下,黑帧帧率为 15 fps。 - 语音通话场景中,仅支持在内部采集模式下调用该接口发送 SEI 数据。 - 视频通话场景中,使用自定义采集并通过 pushExternalVideoFrame{@link #RTCEngine#pushExternalVideoFrame} 推送至 SDK 的视频帧,若本身未携带 SEI 数据,也可通过本接口发送 SEI 数据;若原视频帧中已添加了 SEI 数据,则调用此方法不生效。 - 视频帧仅携带前后 2s 内收到的 SEI 数据;语音通话场景下,若调用此接口后 1min 内未有 SEI 数据发送,则 SDK 会自动取消发布视频黑帧。 - 消息发送成功后,远端会收到 onSEIMessageReceived{@link #IRTCEngineEventHandler#onSEIMessageReceived} 回调。 - 语音通话切换至视频通话时,会停止使用黑帧发送 SEI 数据,自动转为用采集到的正常视频帧发送 SEI 数据。

Implementation

Future<int?> sendSEIMessage(
    ArrayBuffer message, int repeatCount, SEICountPerFrame mode) async {
  $a() => ($instance as $p_a.RTCEngine).sendSEIMessage(
      message, repeatCount, t_SEICountPerFrame.code_to_android(mode));
  $i() => ($instance as $p_i.ByteRTCEngine).sendSEIMessage(
      message, repeatCount, t_SEICountPerFrame.code_to_ios(mode));

  if (Platform.isAndroid) {
    return $a();
  } else if (Platform.isIOS) {
    return $i();
  } else {
    throw UnsupportedError(
        'Not Support Platform ${Platform.operatingSystem}');
  }
}