Three.js: AudioLoader dan LoadingManager onLoad Race

Dibuat pada 2 Feb 2017  ·  3Komentar  ·  Sumber: mrdoob/three.js

Deskripsi masalah

AudioLoader memanggil scope.manager.itemEnd (melalui file loader) setelah memuat buffer, tetapi onLoad setelah decoding itu. Karena decoding buffer tidak sinkron (atau setidaknya, memiliki panggilan balik), Anda dapat masuk ke kondisi balapan jika pemuat audio adalah pemuat terakhir dalam antrean pengelola pemuatan, di mana manajer menganggap semua itemnya sudah selesai tetapi pemuat individual belum selesai menguraikan. Kami melihat ini dalam situasi pramuat kami dan harus menerapkan antrian pemuatan kami sendiri yang menggunakan onLoad per item untuk menandai item yang lengkap.

Sayangnya, melihat sumber FileLoader/AudioLoader, saya tidak yakin bagaimana cara memperbaikinya atau apakah itu menjadi masalah; mungkin solusi termudah untuk hanya mengklarifikasi di dokumen bahwa LoadingManager#onLoad hanya menunjukkan permintaan jaringan selesai, dan tidak menunjukkan bahwa data telah diuraikan.

Versi Three.js
  • [x] r84
Peramban
  • [x] Semuanya
OS
  • [x] Semuanya
Bug Loaders

Komentar yang paling membantu

Hmm, jadi saya kira AudioLoader tidak boleh meneruskan manajer ke FileLoader dan memanggil fungsi itu sendiri?

Semua 3 komentar

Hmm, jadi saya kira AudioLoader tidak boleh meneruskan manajer ke FileLoader dan memanggil fungsi itu sendiri?

Itu pasti akan memperbaikinya untuk pengelola pemuatan khusus. Manajer pemuatan default masih akan mengabaikan panggilan balik decoding, tetapi berapa banyak orang yang menggunakan manajer pemuatan default dalam konteks ini?

Saya mengalami masalah yang sama. Saat ini tidak mungkin memutar file audio dengan aman setelah panggilan balik manajer onLoad diaktifkan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat