Three.js: AudioLoader e LoadingManager onLoad Race

Criado em 2 fev. 2017  ·  3Comentários  ·  Fonte: mrdoob/three.js

Descrição do problema

AudioLoader chama scope.manager.itemEnd (através do carregador de arquivos) após carregar o buffer, mas seu próprio onLoad após decodificá-lo. Como a decodificação do buffer é assíncrona (ou, pelo menos, tem um retorno de chamada), você pode entrar em uma condição de corrida se o carregador de áudio for o último carregador na fila do gerenciador de carregamento, onde o gerente pensa que todos os seus itens foram concluídos, mas os carregadores individuais não terminou de analisar. Percebemos isso em nossa situação de pré-carregamento e tivemos que implementar nossa própria fila de carregamento que usava onLoad por item para marcar itens completos.

Infelizmente, olhando a fonte FileLoader / AudioLoader, não tenho certeza de como consertar isso ou se é mesmo uma preocupação; talvez a solução mais fácil é apenas esclarecer nos documentos que LoadingManager#onLoad apenas indica que a solicitação de rede foi concluída e não indica que os dados foram analisados.

Versão Three.js
  • [x] r84
Navegador
  • [x] Todos eles
SO
  • [x] Todos eles
Bug Loaders

Comentários muito úteis

Hmm, então eu acho que AudioLoader não deveria passar o gerenciador para FileLoader e chamar as próprias funções?

Todos 3 comentários

Hmm, então eu acho que AudioLoader não deveria passar o gerenciador para FileLoader e chamar as próprias funções?

Isso definitivamente resolveria isso para um gerenciador de carregamento personalizado. O gerenciador de carregamento padrão ainda ignoraria o retorno de chamada de decodificação, mas quantas pessoas usam o gerenciador de carregamento padrão neste contexto?

Eu experimentei o mesmo problema. No momento não é possível reproduzir um arquivo de áudio com segurança depois que o callback dos gerenciadores onLoad disparou.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

stonexjr picture stonexjr  ·  3Comentários

Bandit picture Bandit  ·  3Comentários

yqrashawn picture yqrashawn  ·  3Comentários

fuzihaofzh picture fuzihaofzh  ·  3Comentários

jlaquinte picture jlaquinte  ·  3Comentários