首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制PreloadJS在所有加载中使用XHR

强制PreloadJS在所有加载中使用XHR
EN

Stack Overflow用户
提问于 2014-11-11 16:38:42
回答 2查看 818关注 0票数 1

我使用PreloadJS作为正在用CreateJS库构建的应用程序的一部分。PreloadJS用于提取清单中列出的图形和音频文件。我已经设置了一个进度条,并连接了预加载器的fileprogressfileload事件来更新它。当图像加载时,我会得到进度更新,所以我可以看到进度条在爬行,但是我从来没有得到音频文件的fileprogress更新,只有fileload (文件完全加载),所以进度条处于空闲状态,然后突然跳到100%。由于音频文件是迄今为止最大的资产,这就给用户提供了有意义的加载进度带来了一些问题。

我看过PreloadJS文档,它表明XHR加载是首选的方法,因为它确实提供了进度更新,但是PreloadJS可以回到基于标记(<audio>)加载音频文件的情况。

没有一个文件加载是本地的或跨域的,所以在我看来,PreloadJS应该使用XHR。

是否有一种方法可以强迫PreloadJS对任何事情使用XHR,这样我就可以得到一致的进度更新,或者为什么我不会为这些更大的文件获取进度事件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-12 16:43:42

我相信PreloadJS和SoundJS中存在开放的bug,它们阻止音频加载报告进度。我记录了两个库的问题:https://github.com/CreateJS/PreloadJS/issues/99 https://github.com/CreateJS/SoundJS/issues/119

一些附加信息:,尽管PreloadJS将尝试并支持基于XHR的文件类型加载,但音频加载的工作方式略有不同。

SoundJS实际上将该功能注入PreloadJS以处理加载,并且不尊重useXHR参数,而是依赖浏览器功能(和SoundJS插件)来加载和播放音频。不幸的是,web音频需要一个数组缓冲区(加载了XHR),而HTML音频需要HTML标记,所以播放功能决定了音频文件的加载方式。

默认情况下,SoundJS将默认加载/使用以下插件:

  1. WebAudio (因此XHR)
  2. HTML (因此,标签加载)

这应该有利于大多数浏览器的XHR加载和网络音频(IE是几乎总是需要HTML加载的标准)。在开始播放/之前,您可以通过手动注册插件命令插件。

谢谢你把这个露出来!

票数 3
EN

Stack Overflow用户

发布于 2014-11-12 18:31:16

@Lanny是对的,这个问题上有很多未解决的问题。目前,SoundJS的设置方式总是使用PreloadJS加载标记,即使在使用通过xhr加载的WebAudio时也是如此。结果是,不管插件是什么,目前都无法获得进度事件。

好消息是,我们目前正在修改PreloadJS和SoundJS之间的加载工作方式,这个问题应该得到解决。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26869860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档