素材rsp:Tag3-H4=7(zipt_material)

  • zip包存储着两种数据:概述、依赖于概述中类型(type字段)指定的的数据。

为直观,本文用一个示例来描述素材rsp。

图1 素材rsp前面256字节

图1中高亮部分是80字节的trsp_material80bytes。

 

一、第一部分:rsp头(48字节)

Tag3-H4=7(zipt_material)

zip包中数据版本:0.0.1-20250916(0x01350124)。0.0.1是zip包中版本格式,可认为是素材包的存储格式版本。目前是0.0.1。20250915是此素材包的最后修改日期。精确到秒文件生成时间是在trsp_material80bytes的ts。没要求这里填的四字节必须是生成日期。

rose版本:1.0.1。

bundleid:matl.leagor.courseware。对素材,bundleid的第一段建议用materia的缩写“matl”。

zip包字节数:0x98030e = 9,962,254。可算出该rsp文件字节数:48 + 9962254 + 20 = 9962322。9,962,254由两部分组成。

次序内容字节数描述
#1概述80固定字节数。sizeof(trsp_material80bytes)
#2素材数据9,962,174可变字节数。type相关的素材数据

 

二、zip包

2.1 概述

概述存储着描述信息,它是一个trsp_material80bytes结构。

#define RSP_MAXDESCBYTES	55

struct trsp_material80bytes {
	int64_t ts;
	int32_t type;
	char desc[RSP_MAXDESCBYTES + 1];
	uint32_t reserve0;
	uint32_t reserve1;
	uint32_t reserve2;
};

针对示例,它从0x30开始,占80字节。

  • ts:指示该文件的生成时间。值用C函数time(nullptr)生成。
  • type:素材类型。目前就容许出现1,指示后面的数据,类型是课件。
  • desc:描述字符串,utf-8格式。有效字符结束时,后面会补'\0'。最多56字节。图1中该值是“2025-09-15物理作业”。
  • reserve0、reserve1、reserve2。保留将来使用。目前应该都填0,在图1,reserve0值是0x12345678,是为让直观看到”desc“是哪部分。
整型type值字符型type值描述
1courseware课件。素材数据部分是个zip压缩包

 

2.2 素材数据

type相关的素材数据。课件类型的话,这是个zip压缩包

全部评论: 0

    写评论: