onWTNDataMessageReceived method

FutureOr<void> onWTNDataMessageReceived(
  1. dynamic streamId,
  2. dynamic message,
  3. dynamic sourceType
)
override

@detail callback @valid since 3.60. @author hanchenchen @brief 回调 WTN 流中包含的数据信息。
通过 subscribeWTNAudioStream{@link #IWTNStream#subscribeWTNAudioStream}/subscribeWTNVideoStream{@link #IWTNStream#subscribeWTNVideoStream} 订阅 WTN 流后,通过监听本回调获取 WTN 流中的数据消息,包括调用 Open API 发送的 SEI 消息和音量回调。 @param streamId WTN 流 ID @param message 收到的数据消息内容,如下:

  • 调用 WTN 流 OpenAPI 发送的自定义消息。
  • 媒体流音量变化,需要通过 WTN 流 OpenAPI 开启回调。JSON 格式说明如下:
    {
    "Type" : "VolumeIndication", //具体业务类型
    "VolumeInfos" : [ // 业务类型对应信息
    {
    "RoomId":"1000001", // 房间 ID
    "UserId":"1000001", // 用户 ID
    "StreamType":0, // 0:摄像头流;1:屏幕流
    "LinearVolume":1 // 线性音量大小
    }
    @param sourceType 数据消息来源,参看 DataMessageSourceType{@link #DataMessageSourceType}。 @note 通过调用客户端 API 插入的 SEI 信息,应通过回调 onWTNSEIMessageReceived{@link #IWTNStreamEventHandler#onWTNSEIMessageReceived} 获取。 @order 6

Implementation

FutureOr<void> onWTNDataMessageReceived(
    dynamic streamId, dynamic message, dynamic sourceType) async {
  if ($instance == null || $instance is! IWTNStreamEventHandler) {
    return;
  }
  return ($instance as IWTNStreamEventHandler).onWTNDataMessageReceived?.call(
      streamId.toString(),
      message,
      t_DataMessageSourceType.android_to_code(
          $p_a.DataMessageSourceType.values.firstWhere(
              (t) => t.$value == sourceType || t.name == sourceType)));
}