元数据用途:
元数据在代码中的作用就是向编译器提供如何编译程序的信息,专门给编译器用的,说白了是告诉编译器做某些事情, 就Bindable来讲,它的作用是告诉flex编译器,给某些东西建立绑定关系,flex编译器会在编译过程中给AS加事件发生和处理的代码。
自定义元数据
元数据是可以自定义的,在"additional compiler arguments(附加的编译器参数)"中添加 "-keep-as3-metadata = Meta1,Meta2", 注意,使用逗号来分隔不同的元数据标签。
方法1
从mvhd - movie header atom中找到time scale和duration,duration除以time scale即是整部电影的长度。
time scale相当于定义了标准的1秒在这部电影里面的刻度是多少。
例如audio track的time scale = 8000, duration = 560128,所以总长度是70.016,video track的time scale = 600, duration = 42000,所以总长度是70
方法2
首先计算出共有多少个帧,也就是sample(从sample size atoms中得到),然后整部电影的duration = 每个帧的duration之和(从Time-to-sample atoms中得出)
例如audio track共有547个sample,每个sample的长度是1024,则总duration是560128,电影长度是70.016;video track共有1050个sample,每个sample的长度是40,则总duration是42000,电影长度是70
[mp4文件格式]获取mp4文件信息2 - 计算电影图像宽度和高度
从tkhd – track header atom中找到宽度和高度即是。
[mp4文件格式]获取mp4文件信息3 - 计算电影声音采样频率
从tkhd – track header atom中找出audio track的time scale即是声音的采样频率。
[mp4文件格式]获取mp4文件信息6 - 查找sample