Three.js: AudioLoader et LoadingManager onLoad Race

Créé le 2 févr. 2017  ·  3Commentaires  ·  Source: mrdoob/three.js

description du problème

AudioLoader appelle scope.manager.itemEnd (via le chargeur de fichiers) après le chargement du tampon, mais son propre onLoad après le décodage. Étant donné que le décodage du tampon est asynchrone (ou au moins, a un rappel), vous pouvez entrer dans une condition de concurrence si le chargeur audio est le dernier chargeur dans la file d'attente du gestionnaire de chargement, où le gestionnaire pense que tous ses éléments sont terminés mais les chargeurs individuels n'ont pas fini d'analyser. Nous l'avons remarqué dans notre situation de préchargement et avons dû implémenter notre propre file d'attente de chargement qui utilisait le onLoad par élément pour cocher les éléments complets.

Malheureusement, en regardant la source FileLoader/AudioLoader, je ne sais pas comment résoudre ce problème ou si c'est même un problème ; peut-être la solution la plus simple pour clarifier dans la documentation que LoadingManager#onLoad indique uniquement que la demande de réseau est terminée et n'indique pas que les données ont été analysées.

Version trois.js
  • [x] r84
Le navigateur
  • [x] Tous
Système d'exploitation
  • [x] Tous
Bug Loaders

Commentaire le plus utile

Hmm, donc je suppose qu'AudioLoader ne devrait pas passer le gestionnaire à FileLoader et appeler les fonctions elles-mêmes ?

Tous les 3 commentaires

Hmm, donc je suppose qu'AudioLoader ne devrait pas passer le gestionnaire à FileLoader et appeler les fonctions elles-mêmes ?

Cela résoudrait certainement le problème pour un gestionnaire de chargement personnalisé. Le gestionnaire de chargement par défaut ignorerait toujours le rappel de décodage, mais combien de personnes utilisent le gestionnaire de chargement par défaut dans ce contexte ?

J'ai rencontré le même problème. Pour le moment, il n'est pas possible de lire un fichier audio en toute sécurité après le déclenchement du rappel onLoad du gestionnaire.

Cette page vous a été utile?
0 / 5 - 0 notes