В моей игре, я использую советы и код из this article on fire-and-forget sound with NAudio, используя предоставленные AudioPlaybackEngine
, CachedSound
и CachedSoundSampleProvider
классов, которые принимают звуковой файл с диска и загрузить его образцы в a float[]
в памяти, играя его, смешивая его с постоянно играющим MixingSampleProvider
.аудио файл, загруженная в память имеет 500мс задержки перед игрой
Сейчас этот код используется для воспроизведения звука прыжка, когда мой тест игрока спрайт прыгает в воздухе:
private CachedSound jumpSound;
...
jumpSound = new CachedSound(ContentPackageManager.GetAbsoluteFilePath("nsmbwiiJump"));
...
AudioPlaybackEngine.Instance.PlaySound(jumpSound);
Однако звук воспроизводится после 500ms или так задержек, независимо от того, Я играю его с диска или из памяти - и задержка такая же. Что здесь происходит?
Вы проверили содержимое файла, чтобы убедиться, что в начале нет пустых образцов 500 мс? –
В начале звука было 200 мс тишины - удаление его помогло, но между вызовом «PlaySound» и прослушиванием звука все еще есть задержка. –