2014-11-11 6 views
1

저는 CreateJS 라이브러리를 사용하여 빌드되는 응용 프로그램의 일부로 PreloadJS를 사용하고 있습니다. PreloadJS는 매니페스트에 나열된 그래픽 및 오디오 파일을 가져 오는 데 사용됩니다. 진행 막대를 설정하고 프리 로더의 fileprogressfileload 이벤트를 연결하여 업데이트했습니다. 이미지가로드 될 때 진행률 업데이트가 진행되므로 진행률 표시 줄이 함께 크롤링되는 것을 볼 수 있지만 오디오 파일에 대한 fileprogress 업데이트를 얻지 못했습니다. fileload (파일이 완전히로드 됨)이므로 진행률 막대가 유휴 상태로 갑자기 나타납니다. 100 %로 이동합니다. 오디오 파일은 훨씬 큰 자산이므로, 사용자에게 의미있는로드 진행을 제공하는 한 문제가 발생합니다.강제로드 사전로드 모든로드에 대해 XHR을 사용합니다.

나는 documentation for PreloadJS을 보았습니다. XHR 로딩이 진보 업데이트를 제공하지만 PreloadJS가 태그 기반 (<audio>) 오디오 파일 로딩과 같은 이유로 넘어갈 수 있기 때문에 XHR 로딩이 선호되는 방법임을 나타냅니다.

파일로드 중 로컬 또는 크로스 도메인이 없으므로 PreloadJS가 XHR을 사용해야한다고 생각됩니다.

PreloadJS가 모든 작업에 대해 XHR을 사용하도록 강제 할 수있는 방법이 있습니까? 그래서 일관된 진행 상태 업데이트를 얻을 수 있습니까? 아니면이 훨씬 더 큰 파일에 대한 진행 이벤트를 얻지 못하는 이유는 무엇입니까?

답변

3

PreloadJS 및 SoundJS에는 오디오로드가 진행 상황을보고하지 못하게하는 버그가 있다고 생각합니다. 나는 두 라이브러리에 대한 문제를 로그인 한 : https://github.com/CreateJS/PreloadJS/issues/99 https://github.com/CreateJS/SoundJS/issues/119

몇 가지 추가 정보 : PreloadJS 시도하고가 제어하는 ​​파일 형식에 대한 호의 XHR 기반 로딩, 오디오 로딩이 약간 다르게 작동 있지만.

실제로 SoundJS는 기능을 PreloadJS에 삽입하여로드를 처리하고 브라우저 기능 (및 SoundJS 플러그인)을 사용하여 오디오로드 및 재생에 의존하여 useXHR 매개 변수를 사용하지 않습니다. 불행하게도 웹 오디오에는 배열 버퍼 (XHR로로드 됨)가 필요하지만 HTML 오디오에는 HTML 태그가 필요하므로 재생 기능으로 오디오 파일로드 방식이 결정됩니다. 기본적으로

, SoundJS 순서대로 다음과 같은 플러그인을 사용 /로드 기본 설정됩니다 :

  1. 웹 오디오 (따라서 XHR)
  2. HTML (그러므로 태그 로딩)

해야 대부분의 브라우저에서 XHR 로딩 및 웹 오디오를 사용합니다 (IE는 거의 항상 HTML 로딩이 필요한 뛰어난 기능 임). 재생을 시작하기 전에 플러그인을 수동으로 등록하여 플러그인 순서를 강제 할 수 있습니다./

서핑을 부탁드립니다!

+0

이것은 실망스럽고 어느 시점에서 해결되기를 바랍니다. 데이터 형식을 내 매니페스트에 BINARY로 지정하고 파일 확장명을 .xogg (파일 형식에 따라 콘텐츠 유형이 얼마나되는지 추측하지 못함)로 변경하고 진행률을로드 할 수 있도록하는 임시 해결책을 시도했습니다. 그런 다음로드 된 데이터에서 만들어진 데이터 URI를 사용하여 registerSound를 시도했지만 SoundJS는이를 사용하지 않는 것 같습니다 : ( – theraccoonbear

+1

! 우리는 지금 큰 재구성의 한가운데있다. – Lanny

+0

현재 내가 설명한 것처럼 데이터 URI를 작동시키는 방법이 있습니까? – theraccoonbear

2

@ Lanny가 정확합니다.이 문제점에 대한 공개 된 버그가 있습니다. 현재 SoundJS는 xhr을 통해로드되는 WebAudio를 사용하는 경우에도 항상 PreloadJS로 태그로드를 사용하는 방식으로 설정됩니다. 결과는 플러그인과 상관없이 현재 진행 상황을 확인할 수있는 방법이 없습니다.

좋은 소식은 현재 PreloadJS와 SoundJS간에 로딩이 어떻게 작동 하는지를 수정하고 있으며이 문제를 해결해야한다는 것입니다.