sendSEIMsg method

Future<bool?> sendSEIMsg(
  1. String data,
  2. int repeatCount
)

使用 trtc 的 SEI 通道将自定义消息发送给房间内的所有用户

sendCustomCmdMsg 的工作方式不同,sendSEIMsg 直接将数据插入到视频数据头中。因此,即使视频帧被中继到 CSS CDN,数据也将始终存在。由于需要将数据嵌入到视频帧中,建议您将数据大小保持在几个字节以内。

最常见的用法是通过 sendSEIMsg 将自定义时间戳嵌入到视频帧中。这种方案的最大好处是可以实现消息和视频画面之间的完美对齐。

参数:

data 要发送的数据,最多可包含 1 KB(1,000 字节)的数据

repeatCount 数据发送次数

返回值:

true:允许发送消息,将发送到后续视频帧;false:不允许发送消息。

此 API 有以下限制:

调用此 API 后,数据不会立即发送;相反,它将在调用 API 后的下一个视频帧中插入。

每秒最多可以向房间中的所有用户发送 30 条消息(与 sendCustomCmdMsg 共享此限制)。

每个数据包最多可包含 1 KB(与 sendCustomCmdMsg 共享此限制)。如果发送大量数据,视频比特率将增加,可能会降低视频质量甚至导致卡顿。

每个客户端每秒最多可发送 8 KB 的数据(与 sendCustomCmdMsg 共享此限制)。

如果需要多次发送(即 repeatCount > 1),数据将连续插入到 repeatCount 个视频帧中以进行发送,这将增加视频比特率。

如果 repeatCount 大于 1,数据将多次发送,且在 TRTCCloudListener.onRecvSEIMsg 回调中可能会多次接收到相同的消息;因此,需要进行重复数据删除。

不支持:

  • web
  • Windows

Implementation

Future<bool?> sendSEIMsg(String data, int repeatCount) {
  return _channel
      .invokeMethod('sendSEIMsg', {"data": data, "repeatCount": repeatCount});
}