[QAMF] AMF 0 数据类型存贮格式详解

本文内容仅供参考,如有错误,欢迎指正。

1、双精度浮点数

类型编号:0

格式:IEEE-754 的8字节 BE 编码

2、布尔

类型编号:1

格式:单字节

备注:0 为 false,其它值为 true

3、字符串

类型编号:2

格式:[字符串长度][字符串内容]

备注:字符串长度为两个字节的 WORD 类型(BE编码),字符串内容是 UTF-8 编码

4、对象类型

类型编号:3

格式:[[属性名称][对象结束类型标记|属性值]]…

备注:首先是第一个属性的名称,然后是属性的值或者对象结束标记(09),如果遇到对象结束标记,则对象属性定义结束。

5、视频剪辑

类型编号:4

格式:官方未提供支持

6、NULL 类型

类型编号:5

格式:无附加内容

7、未定义类型(Undefined)

类型编号:6

格式:无附加内容

8、引用类型

类型编号:7

格式:引用的复合类型索引(匿名对象、特定类型对象、数组或混合数组,BE编码)

9、复合数组

类型编号:8

格式:[元素数量][元素*元素数量]

备注:元素数量为32位无符号整数,后面跟每一个元素的定义

10、对象结束

类型编号:9

格式:00 00

备注:可以认为是长度为 0 的 UTF8 字符串,应用于对象和数组等复合类型

11、严格数组

类型编号:10

格式:[元素数量][元素*元素数量]

备注:元素数量为 32 位无符号整数,后面跟每个元素的定义,与复合数组不同,它没有额外的索引内容

12、日期类型

类型编号:11

格式:[日期值][00 00]

备注:日期值为1970-1-1 午夜开始的毫秒数,类型为双精度浮点数(BE 编码)

13、长字符串

类型编号:12

格式:[字符串长度][字符串内容]

备注:字符串长度为 32 位整数,后跟对应长度的 UTF-8 字符串内容

14、不支持的类型

类型编号:13

格式:官方未提供支持

15、数据集类型

类型编号:14

格式:官方未提供支持

16、XML

类型编号:15

格式:[内容长度][内容]

备注:内容长度为 32 位整数,后跟对应长度的 UTF-8 格式内容

17、特定类型对象

类型编号:16

格式:[类型名称][对象类型-对象值]*

备注:

18、AMF 3 对象

类型编号:17

格式:[AMF 3 数据类型定义]

备注:这个类型定义到对象类型定义结束,都是 AMF 3 格式。

分享到: