关于preload的一些小疑问

来源:3-3 js实现鼠标移入移除效果

小学生6年级

2018-04-28 19:07:19

    这个metadata属性说是只加载元数据,但是老师课件中却绑定了canplay事件,然后发现也能触发.我就觉得很奇怪,于是我自己又尝试了canplaythrough,发现一样能被触发.

    于是我在chrom上测试,发现事实上metadata是会加载进度条中的一小段的,也因此,canplay是会被触发的,那么metadata也就不单单是加载元数据了,还是会加载一些歌曲数据的.但是如果把preload设置为auto的话,是会加载完进度条的一大段的.因此我觉得两者的差别应该是在这里,加载时间少些罢了. 不应该单单说只加载元数据,要不然为什么canplay,canplaythrough事件均能被触发呢.

     另外一种可能就是所谓的元数据本身就包含一些歌曲数据,我在network中查看,发现 auto与metadata相差的就是一个几MB的PHP文件, 可能这个PHP文件并未包含所有的歌曲信息,还有部分头信息是在元数据中的.

   以上均为个人推测,有老师解答下吗.谢谢!

写回答

1回答

小于飞飞

2018-04-30

你好, preload相关设置:

auto 指一旦页面加载,则开始加载音频/视频。 
metadata 指示当页面加载后加载音频/视频的元数据。元数据(包括尺寸,第一帧,曲目列表,持续时间等等)。

 canplay 事件:当浏览器能够开始播放指定的音频/视频时,发生 canplay 事件。

 canplaythrough 事件: 当浏览器预计能够在不停下来进行缓冲的情况下持续播放指定的音频/视频时,会发生 canplaythrough 事件。

可以具体指出那节视频那个时间段,以便更好的确定,祝学习愉快 。




0

0 学习 · 5012 问题

查看课程