content: package com.genersoft.iot.vmp.jt1078.proc.response;
  
  import com.genersoft.iot.vmp.jt1078.annotation.MsgId;
  import io.netty.buffer.ByteBuf;
  import io.netty.buffer.ByteBufUtil;
  import io.netty.buffer.Unpooled;
  import io.netty.util.CharsetUtil;
  import lombok.Getter;
  import lombok.Setter;
  
  import java.nio.charset.Charset;
  
  /**
   * 回放请求
   *
   * @author QingtaiJiang
   * @date 2023/4/28 10:37
   * @email qingtaij@163.com
   */
  @Setter
  @Getter
  @MsgId(id = "9201")
  public class J9201 extends Rs {
      // 服务器IP地址
      private String ip;
  
      // 实时视频服务器TCP端口号
      private int tcpPort;
  
      // 实时视频服务器UDP端口号
      private int udpPort;
  
      // 逻辑通道号
      private int channel;
  
      // 音视频资源类型：0.音视频 1.音频 2.视频 3.视频或音视频
      private int type;
  
      // 码流类型：0.所有码流 1.主码流 2.子码流(如果此通道只传输音频,此字段置0)
      private int rate;
  
      // 存储器类型：0.所有存储器 1.主存储器 2.灾备存储器"
      private int storageType;
  
      // 回放方式：0.正常回放 1.快进回放 2.关键帧快退回放 3.关键帧播放 4.单帧上传
      private int playbackType;
  
      // 快进或快退倍数：0.无效 1.1倍 2.2倍 3.4倍 4.8倍 5.16倍 (回放控制为1和2时,此字段内容有效,否则置0)
      private int playbackSpeed;
  
      // 开始时间YYMMDDHHMMSS,回放方式为4时,该字段表示单帧上传时间
      private String startTime;
  
      // 结束时间YYMMDDHHMMSS,回放方式为4时,该字段无效,为0表示一直回放
      private String endTime;
  
      @Override
      public ByteBuf encode() {
          ByteBuf buffer = Unpooled.buffer();
          buffer.writeByte(ip.getBytes(Charset.forName("GBK")).length);
          buffer.writeCharSequence(ip, Charset.forName("GBK"));
          buffer.writeShort(tcpPort);
          buffer.writeShort(udpPort);
          buffer.writeByte(channel);
          buffer.writeByte(type);
          buffer.writeByte(rate);
          buffer.writeByte(storageType);
          buffer.writeByte(playbackType);
          buffer.writeByte(playbackSpeed);
          buffer.writeBytes(ByteBufUtil.decodeHexDump(startTime));
          buffer.writeBytes(ByteBufUtil.decodeHexDump(endTime));
          return buffer;
      }
  
      @Override
      public String toString() {
          return "J9201{" +
                  "ip='" + ip + '\'' +
                  ", tcpPort=" + tcpPort +
                  ", udpPort=" + udpPort +
                  ", channel=" + channel +
                  ", type=" + type +
                  ", rate=" + rate +
                  ", storageType=" + storageType +
                  ", playbackType=" + playbackType +
                  ", playbackSpeed=" + playbackSpeed +
                  ", startTime='" + startTime + '\'' +
                  ", endTime='" + endTime + '\'' +
                  '}';
      }
  }
  